《c语言期末复习》由会员分享,可在线阅读,更多相关《c语言期末复习(35页珍藏版)》请在金锄头文库上搜索。
1、题型:,20*2=40,2*10=20,2*10=20,2*10=20,改错、填空多考点:,#include 预处理#define N 10 宏定义float ff(float a,float b,float c); 函数声明main() 主函数int i,j,a10,*p,sum,x=1; 变量定义sum=0; 赋值scanf(“%d”,&a0); 输入语句,参数是地址if(i=0) for(;),while语句的考察,注意表达式的判断,循环体语句的判断。输出语句,函数调用,int ss(int a,int b,int *q)main()int x,s10,y;ss(x,s,&y); 实参和
2、形参个数相同,类型相同。,双层循环,int a56for(i=0;i=0;j-) i,j的范围 if(i%2=0) 奇数位对应偶数下标 aij=i+j+1; 规律,总体上必须清楚的:,1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)。2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以二进制的形式。数据存放的位置就是他的地址。4)二进制 如何划成 十进制。,概念常考到的:,、编译预处理不是C语言的一部分,不占运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文
3、本文件中。、每个C语言程序中main 函数是有且只有一个。、在函数中不可以再定义函数。定义不可嵌套,但调用可以。、break可用于循环结构和switch语句。、优先级:单目(+,- -,!)算术表达式关系表达式逻辑表达式三目赋值。,14.C语言的下列运算符中,优先级最高的运算符是( )。A.+B. +=C. |D. !=下列叙述正确的是() A 为提高程序运行速度可在源程序中加入一些宏定义 B 一个C语言源程序只能有一条预处理命令 C 宏定义不占用程序运行时间,但与程序中的语句一样需要编程 D 宏定义中的宏名必须用大写字母表示,A,C,第一章,1)合法的用户标识符由字母,数字,下划线组成。并且
4、第一个必须为字母或则是下划线。关键字不可以作为用户标识符号。main define scanf printf 都是关键字。If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.33310-1。 考试口诀:e前e后必有数,e后必为整数。 2.3 小数点前后可省略其中一个。3)字符数据的合法形式:: 1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号0)。 0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。4) char是1字节,int是2字节,long是4字节, f
5、loat是4个字节,double是8字节,5)在转义字符中,x6d 十六进制数。141八进制数。 108 是非法的,因为不可以出现8。6)强制类型转换: 一定是 (int)a 不是 int(a),类型上一定有括号的。 注意(int)(3.6+3.6)=7和(int) 3.6+3.6=6.6的区别。 7)表达式的考查: 是表达式就一定有数值。 赋值表达式:表达式左边一定是一个变量。 自加、自减表达式:假设a=5,+a(是为6), a+(为5);考试口诀:+在前先加后赋,+在后先赋后加。 逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。8)
6、位运算的考查:会有一到二题考试题目。 右移一位表示除以2,2位除4,3位除6。9)% (求余)符号两边要求是整数。10)取整丢小数的情况: 、(int)1.6=1;、1/2=0;,18.( )为正确的变量名。A.-k15B. intC. k_5D. k.jeep19.( )为正确的字符常量。A.B. 24mC. cD. M22.以下选项中,合法的实型常数是( )。A.E-3B. .2E1C. 1E.5D. 1.5E29.语句 k=(m=5,n=+m); 运行之后,变量k、m、n的值依次为( )。A.5,5,6 B. 5,6,5C. 6,6,5D. 6,6,635.若有定义:int m=4,n=
7、5;float k;,则以下符合C语言语法的表达式是( )。A.(m+n)*=kB. m=(n=5) C. k=float(n)/mD. n%2.5,44. 若有定义 int i=1,j=9; 则表达式 (+j)*(i-) 的值为( )。A. 0B. 10C. 9D. 8,c,D,B,D,B,B,第二章,1)printf函数的格式考查: %d对应int整型;%c对应char字符;%f对应float单精度;%ld对应 long int;%lf 对应double。宽度的,左对齐等修饰。 %.3f2)scanf函数的格式考察: 注意该函数的第二个部分是&a 这样的地址,不是a; scanf(“%d%
8、d%*d%d”,&a,&b,&c); 跳过输入的第三个数据(b没赋值)。 输入语句不能出现%6.2f,只能是%6f。,3)putchar ,getchar 函数的考查: char a;a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar(y)把字符y输出到屏幕中。4)如何实现两个变量x ,y中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5) while(c=getchar())!=n) 注意点: 括号在这里的重要性。,52. 若已定义:int a=5,b=9,c=6; 则语句 b+; +c; a=b-c
9、; 运行后a的值为( )。A. 5B. 3C. 2D. 454.若已定义 float x; 要从键盘输入数据36.582给变量x,则应选用( )语句。A.scanf(%2.3f,&x) ;B. scanf(%6f,&x) ;C. scanf(%6.3f,&x) ;D. scanf(%5.3f,&x) ; 58.若已定义 int a=11; 执行以下语句后的输出结果是( )。 printf(a=%d,a=%o,a=%xn,a,a,a) ;A. a=11, a=11, a=bB. a=11, a=13, a=b C. a=11, a=13, a=cD. a=11, a=12, a=1361. 以下
10、程序段的运行结果是( )。int a=1; printf(%d, %d, %dn, a, +a, a+);3,3,1B. 1, 2, 2C. 1, 2, 3 D. 3, 2, 1,B,B,B,A,66. 有以下程序:main() int c; while(c=getchar()!= n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; 当输入:247,程序的输出结果是( )。689B. 66
11、89C. 66778D. 66887,B,c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式: 表达式的数值只能为1(表示为真),或0(表示假) 关系的表达是为真的时候得到1。如 98这个是真的,所以表达式的数值就是1; abc的问题2)逻辑表达式:为1(表示为真),0(表示假) a) !&| 优先的级别。 b) 不完全计算问题。 c) 要表示 x 是比0大,比10小的方法。0x10是不可以的。 一定要用 (0x)&(x10) 。,36.若有定义:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是( )。A.10B. 0C. 34D. 2446.若已定义 int a
12、=3,b=2,c=1; 则语句 +a|+b&+c; 运行后b的值为( )。A. 0B. 3C. 1D. 248.若已定义:int a=2,b=2; 则表达式 (a+(b+), b) 的值是( )。A. 2B. 3C. 4D. 669.若已定义 int x=-16,y=-12,z; 语句z=x=cC. c-b|a+b&(b*c-a-c)D. (b*c-a-c)&(b*c-a-b)80.已定义 double k=3.6; 则正确的赋值表达式是( )。A. k=double(-3.6)B. k%3C. k=k*(-1.0)=-3.6D. k+=k-=(k=1.2)*(k=3),89. 若有定义:fl
13、oat x=2,y=4,h=3; 下列表达式中与(x+y)*h/2.0计算结果不相符的是( )。(x+y)*h/2 B. (x+y)*h*1/2C. (1/2)*(x+y)*hD. h/2*(x+y),C,D,D,c,1)if 语句 else 是与最接近的if且没有else配套的相组合的。2)条件表达式: 条件表达式1 ?表达式2 :表达式3 注意是条件判断为真时执行表达式2的数值,当是假时执行表达式3的数值。 3)switch语句: a)一定要注意:有break 和没有break的差别,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了 swiche语句。 b)switch只可以和break一起用,不可以和continue用。,