例2: 一定要记住,异或的位运算符号” ^ ”。0 异或 1得到1。
0 异或 0得到0。两个女的生不出来。 考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。
例3: 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。
第二章
第一节:数据输出(一)(二)
1、使用printf和scanf函数时,要在最前面加上#include“stdio.h” 2、printf可以只有一个参数,也可以有两个参数。(选择题考过一次)
3、printf(“ 第一部分 ”,第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来!
4、printf(“a=%d,b=%d,”12, 34) 考试重点!
一定要记住是将12和34以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为:
一模一样。在黑色屏幕上面显示为 a=12,b=34
printf(“a=%d,\\n b=%d,”12, 34)那么输出的结果就是:a=12,
b=34
5、int x=017; 一定要弄清楚为什么是这个结果!过程很重要 printf(“%d,” x); 15
printf(“%o,” x); 17 printf(“%#o,”x); 017 printf(“%x,” x); 11 printf(“%#x,”x); 0x11
6、int x=12,y=34; 注意这种题型 char z=‘a’;
printf(“%d ”,x,y); 一个格式说明,两个输出变量,后面的y不输出 printf(“%c,”z); 结果为:12a 7、一定要背诵的
格式说明 %d %ld %f %lf %% ] 举例说明:
printf(“-,”123 ); 第二部分有三位,大于指定的两位,原样输出123 printf(“],”123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123 printf(“f,”1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000 printf(“%5.3f,”125 ); 小数三位,整个五位,结果为1.250(小数点算一位) printf(“%3.1f,”1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入) 第三节 数据输入
1、scanf(“a=%d,b=%d,”&a,&b) 考试超级重点!
一定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。
在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。有一点不同也不行。
2、scanf(“%d,%d,”x,y);这种写法绝对错误,scanf的第二个部分一定要是地址!
表示内容 整型 int 长整型 long int 浮点型 float double 输出一个百分号 格式说明 %c %s %o %#o %x %#x 表示内容 字符 char 字符串 八进制 带前导的八进制 十六进制 带前导的十六进制
scanf(“%d,%d,”&x,&y);注意写成这样才可以! 3、特别注意指针在scanf的考察 例如: int x=2;int *p=&x;
scanf(“%d,”x); 错误 scanf(“%d,”p);正确 scanf(“%d,”&p); 错误 scanf(“%d,”*p)错误 4、指定输入的长度 (考试重点) 终端输入:1234567
scanf(“-M%d,”&x,&y,&z);x为12,y为3456,z为7 终端输入:1 234567 由于1和2中间有空格,所以只有1位给x scanf(“-M%d,”&x,&y,&z);x为1,y为2345,z为67 5、字符和整型是近亲: int x=97;
printf(“%d,”x); 结果为97 printf(“%c,”x); 结果为 a
6、输入时候字符和整数的区别(考试超级重点)
scanf(“%d,”&x);这个时候输入1,特别注意表示的是整数1
scanf(“%c,”&x);这个时候输入1,特别注意表示的是字符‘1’ASCII为整数48。 补充说明:
1)scanf函数的格式考察:
注意该函数的第二个部分是&a 这样的地址,不是a; scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。 2)putchar ,getchar 函数的考查:
char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar(‘y’)把字符y输出到屏幕中。
3)如何实现两个变量x ,y中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。
4)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) y=(int)(x*100+0.5)/100.0 这个保留两位,对第三位四舍五入 y=(int)(x*1000+0.5)/1000.0 这个保留三位,对第四位四舍五入
y=(int)(x*10000+0.5)/10000.0 这个保留四位,对第五位四舍五入
这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。 第三章
特别要注意:C语言中是用非0表示逻辑真的,用0表示逻辑假的。 C语言有构造类型,没有逻辑类型。
关系运算符号:注意<=的写法,==和=的区别!(考试重点) if只管后面一个语句,要管多个,请用大括号! 1)关系表达式:
a、表达式的数值只能为1(表示为真),或0(表示假)。
如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1。 如 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0
b、考试最容易错的:就是int x=1,y=0,z=2;
x 错的,但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成 了0<2那么运算结果就是1,称为了真的了! c、等号和赋值的区别!一定记住“=”就是赋值,“= =”才是等号。虽然很多人可以背 诵,但我依然要大家一定好好记住,否则,做错了,我一定会强烈的鄙视你! 2)逻辑表达式: 核心:表达式的数值只能为1(表示为真),或0(表示假)。 a) 共有&& || ! 三种逻辑运算符号。 b) !>&&>|| 优先的级别。 c) 注意短路现象。考试比较喜欢考到。 详细请见书上例子,一定要会做例1和例2 d) 表示 x 小于0大于10的方法。 0 3)if 语句 a、else 是与最接近的if且没有else的语句匹配。 b、交换的程序写法:t=x;x=y;y=t; c、if(a if(a else min=b; 嵌套的if语句:if(a if(b>c)printf(“ok!”); 多选一的if语句if(a= =t)printf(“a”); else if(b= =t)printf(“b”); else if(c= =t)printf(“c”); else pritnf(“d”); 通过习题,要熟悉以上几种if语句! 经典考题:结合上面四种if语句题型做题,答错了,请自行了断!预备,开始! int a=1,b=0; if(!a)b++; else if(a= =0)
C语言知识点总结【完美版】



