C语言期末考试全部知识点复习资料--重点--常考点 下载本文

a)表达式的数值只能为1(表示为真),或0(表示假)。

如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1。 如 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0 b)考试最容易错的:就是int x=1,y=0,z=2; x

带入为1<0<2,从数学的角度出发肯定是错的,但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成了0<2那么运算结果就是1,成为了真的了!

c)等号和赋值的区别!一定记住“=”就是赋值,“==”才是等号。 (7)逻辑表达式:共有&& || ! 三种逻辑运算符号。 核心:表达式的数值只能为1(表示为真),或0(表示假)。

a) !>&&>|| 优先的级别。

b) 注意短路现象。如:x && y 中x若为0,不计算y; x || y中若x为非零值,则也不计算y。

c) 表示 x 小于0大于10的方法:0

总的处理方法:(先把十进制变成二进制,计算出结果后再变成十进制)。 例1: char a = 6, b;

b = a<<2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。

例2: 一定要记住,异或的位运算符号” ^ ”。

0 异或 1得到1。 0 异或 0得到0。两个女的生不出来。

考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。

例3: 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。 (9)补充:

a)空语句不可以随意执行,会导致逻辑错误。

b)注释:注释不是C语言,不占运行时间,没有分号。不可以嵌套! c)强制类型转换:

一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b) 和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。

d)三种取整丢小数的情况:int a =1.6; (int)a; 1/2; 3/2; 19.数据输出函数printf

1)使用printf和scanf函数时,要在最前面加上#include 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)一定要记住的

格式说明 表示内容 格式说明 表示内容 %d 整型 int %c 字符 char %ld 长整型 long int %s 字符串 %f 浮点型 float double %lf double %o 八进制 %#o 带前导的八进制 %x 十六进制 %#x 带前导的十六进制

] %% 输出一个百分号 举例说明:

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

20.数据输入

1)scanf(“a=%d,b=%d”,&a,&b) 考试超级重点!

一定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。 在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。有一点不同也不行。

2)scanf(“%d,%d”,x,y);这种写法绝对错误,scanf的第二个部分一定要是地址!

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)补充说明:

a)scanf函数的格式考察:

注意该函数的第二个部分是&a 这样的地址,不是a; scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。 b)putchar ,getchar 函数的考查:

char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量