写点什么

C 语言 _ 语句与位运算练习

作者:DS小龙哥
  • 2022 年 5 月 08 日
  • 本文字数:3266 字

    阅读完需:约 11 分钟

总结 C 语言语句的几个基本练习题,计算素数、排序、求偶数和、可逆素数、水仙花数、交换大小写、交换变量的值、位运算、语法特性等知识点。

1. 输出 100~200 之间所有可逆素数

1.输出100~200之间所有可逆素数(除了1和本身能够整除)。----练习for的控制比如: 3  7   13   11示例:#include <stdio.h>int main(int argc, char * argv[]){  int i,j,k;   int a,b,c;   int data;   for(i=100;i<200;i++) //范围   {    for(j=2;j<i;j++) //排除可能条件     {      if(i%j==0) //不是素数      {        break;      }    }     if(j==i) //素数判断成功     {       a=i/100;//123       b=i%100/10;       c=i%10/1;       data=c*100+b*10+a*1;             for(j=2;j<data;j++) //判断素数       {        if(data%j==0)        {          break;        }      }      if(j==data) //判断是不是素数      {        printf("%d,%d\n",i,data);      }     }   }  return 0;}
复制代码

2. 输入任意 3 个数,按从大到小的顺序输出

2.输入任意3个数,按从大到小的顺序输出--->练习if语句,了解排序原理示例:#include <stdio.h>int main(int argc, char * argv[]){  int a=500,b=200,c=600,tmp;      if(a<b)  //如何条件成立,就交换a和b的位置 ----a的值最大   {    tmp=a;    a=b;    b=tmp;   }      if(b<c) //如何条件成立,交换b和c的值-----b的值最大   {      tmp=b;    b=c;    c=tmp;   }      if(a<b) //如何条件成立,交换a和b的值-----a的值最大   {    tmp=b;    b=a;    a=tmp;  }
printf("%d,%d,%d\n",a,b,c); //从大到小 600,500,200 return 0;}
复制代码

3. 编程计算: 123+345….99100101 的值

3.编程计算: 1*2*3+3*4*5….99*100*101的值示例:#include <stdio.h>int main(int argc, char * argv[]){  //1*2*3+3*4*5….99*100*101   int i;   int sum=0;   for(i=1;i<=99;i+=2)   {    sum+=i*(i+1)*(i+2);   }   printf("sum=%d\n",sum);  return 0;}
复制代码

4. 输出 0~100 以内的偶数之和。

4.输出0~100以内的偶数之和。示例:#include <stdio.h>int main(int argc, char * argv[]){   int i;   int sum=0;  for(i=0;i<=100;i++)   {    if(i%2==0) //判断偶数     {       sum+=i;     }   }   printf("sum=%d\n",sum);  return 0;}
复制代码

5. 打印所有的水仙花数

5.打印所有的水仙花数。水仙花数是3位数---个位+十位+百位立方和等于它本身例如: 123=1*1*1+2*2*2+3*3*3  示例:#include <stdio.h>int main(int argc, char * argv[]){   int i;   int sum=0;   int a,b,c;  for(i=100;i<=999;i++)   {    a=i/100;     b=i%100/10;     c=i%10/1;     sum=a*a*a+b*b*b+c*c*c; //计算立方和     if(sum==i)     {      printf("%d ",i);    }   }  return 0;}
复制代码

6. 转换大小写

位作业:------处理数据都得使用二进制1.转换大小写 (位运算完成大小写转换)示例:#include <stdio.h>int main(int argc, char * argv[]){   char c;   printf("输入一个字符:");   scanf("%c",&c);   c=c^0x20; //0b00100000  0x123   printf("%c\n",c);  return 0;}
复制代码

7. 使用位运算交换两个变量的值

2.使用位运算交换两个变量的值。(规定: 只有两个变量)示例:   (可以做加密算法)#include <stdio.h>int main(int argc, char * argv[]){  /*    01000001  原文   ^    01100001  密码    --------    00100000  密文        01100001  密码    --------------    01000001  原文      */   int a=65,b=97;   a=a^b;   b=a^b;a=a^b;   printf("%d,%d\n",a,b);  return 0;}
复制代码

8. 完成位运算的综合运用

3.完成位运算的综合运用。(1)定义一个int类型的变量。 (2)在int类型类型变量里存放4个字母(A B C D)。(3)存放之后在将字母取出来打印出来。(4) 在不影响其他数据的情况下将B改为K或者其他数据
#include <stdio.h>int main(int argc, char * argv[]){ unsigned int data=344545;
/*1. 存放数据*/ data='A'<<24; data|='B'<<16; data|='C'<<8; data|='D'<<0; /*2. 取出数据*/ printf("%c\n",data>>24); printf("%c\n",(data>>16)&0xFF); printf("%c\n",(data>>8)&0xFF); printf("%c\n",(data>>0)&0xFF); /*3. 修改数据的值*/ data&=~(0xFF<<16); //清除数据 data|='K'<<16; //赋值 /*4. 取出数据*/ printf("%c\n",data>>24); printf("%c\n",(data>>16)&0xFF); printf("%c\n",(data>>8)&0xFF); printf("%c\n",(data>>0)&0xFF); return 0;}
复制代码

9. 显示中文

  通过*号打印出自己的名字。1.颜色转换的例子:  RGB888  RGB565  RGB66….    int data=12345; //RGB888的颜色   要求将data转为RGB565    -去掉高位2.实际的运用
short c1=1234; //R占11~15位 G占2~7位short c2=4567; //B占 11~15位要求: 将以上RGB分量提取出来,存在另一个变量(16位的变量)中—RGB565 。
unsigned int data_1; //整型 4个字节 unsigned short data_2; //短整型 2个字节 unsigned long data_3; //长整型 4个字节 unsigned long long data_3; //双长整型 8个字节
复制代码

10. C 语言的特性:

C语言的特性:(1) C语言程序顺序控制语法---执行顺序是从上到下。(2) C语言程序基本组成:  函数组成---->专用的工具包。(3) C语言语法: 变量、常量、函数、语句、关键字(4) C语言技术关键: 数据结构、算法C语言的基本框架:#include <stdio.h>  //头文件--->引用int main(int argc, char *argv[])  //主函数…..入口{  printf("hello!\n");   return 0;}学习开始:  输入(scanf)和输出(printf)
复制代码

11. C 语言规则约定

C语言编程约定(1)每条语句分号;结束;  int data;(2), 逗号  分隔符号。比如: int a,b,c,d;(3)程序里不能出现中文符号。(,   ,)(4)基本逻辑程序都是在函数内部编写{  }之间。
int main(int argc, char *argv[]){ ………………… …………………}(5) 编写每条语句,或者变量,每换一次行都需要对齐。(距离左边距4个空格---一个TAB键的距离)(6) 编写代码时,括号要连打

基本单位1个字节------8位------------->计算机存储只能是二进制----------->1kb-------------1024字节1mb------------1024kb数据类型----决定每一个空间的大小。int : 整型(0,12,45565,56565), 占4字节char :字符类型(‘A’,’6’,’7’,’D’) ,占1字节float: 单精度浮点类型(12.454678), 占4字节double:双精度浮点类型,占8字节long :长整型 , 占4字节long long :双长整型 ,占8字节怎么计算?#include <stdio.h>int main(int argc, char *argv[]){ printf("int=%d 字节\n",sizeof(int)); printf("char=%d 字节\n",sizeof(char)); printf("float=%d 字节\n",sizeof(float)); printf("double=%d 字节\n",sizeof(double)); return 0;}
变量语法: <数据类型> 变量的名称; Int data; 变量名字命名规则:(1)数字不能开头(2)A~Z a~z 0~9 _格式化打印
printf(“格式1,格式2…..\n”,变量1,变量2……….);格式化输入scanf(“格式1,格式2……”,&变量1,&变量2………….);格式: %d 整型 %c 字符类型 %f 符点类型 %s 字符串类型 %o 8进制%x 16进制%p 打印地址无符号声明: unsigned 只能针对整型和字符类型有效 示例: unsigned char data2=255;测试变量的数据存放范围:#include <stdio.h>int main(int argc, char *argv[]){ char data1=128; //范围+127 ~ -128 unsigned char data2=256; //范围 +0 ~ +255 printf("datat1=%d\n",data1); printf("datat2=%d\n",data2); return 0;}
基本运算符 + - * \ %表示取余运算符 8%4=0 =表示赋值运算符
结合运算符:+= -= *= \=
比如: a=a+b; -------->a+=b;
复制代码


发布于: 刚刚阅读数: 3
用户头像

DS小龙哥

关注

之所以觉得累,是因为说的比做的多。 2022.01.06 加入

熟悉C/C++、51单片机、STM32、Linux应用开发、Linux驱动开发、音视频开发、QT开发. 目前已经完成的项目涉及音视频、物联网、智能家居、工业控制领域

评论

发布
暂无评论
C语言_语句与位运算练习_5月月更_DS小龙哥_InfoQ写作社区