《C语言期末复习卷习题》由会员分享,可在线阅读,更多相关《C语言期末复习卷习题(16页珍藏版)》请在金锄头文库上搜索。
1、期末总复习(基础知识+程序设计部分)一. 填空1已知charch二A ;则下列表达式的值是:aCh=(ch= A &chy) +(y!=z)|(x+y)&(y-z)O_3) x+-y+(+z)136. 设x,y,z为int型变量,请用C语言表达式描述下列命题1) x 禾廿 y 中有一个小于 z(xz|xz&yz)=12) x,y和z中有两个为负数(xO&y=0|z 0&y=O|y 0&x=0)=13) y 是奇数 y%2?!=07. 下面for循环语句最多可执行4次For(x=0,y=0?;(y?!=99)&(xxw:zyz:x值是411. 若定义的函数没有返回值时,则应该在该函数定义时加上类
2、型说 明符void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态 储13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递 归14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应 以函数的文件中应将该文件的存储类型定义成型,厘调用函数的文件 中将该函数说明为型。15. 对于所定义的二维数组a23,元素a12是数组的第6个元 素。N*j+m+116. 若有定义:char*str二” lamastudent. ” ;则字符串在存储单元中 占16个字节。17. 在执行 inta3=1,2,3,4;语句后,a12的值是 0。18. 调用strlen(“ abc0e
3、f0g ”)的返回值是3。0为停止符19. 设有定义:chars12= “string ”;则 printf(“dn” ,strlen(s);的输出值是620. 执行下列程序段后,*p等于3inta5=1,3,5,7,9;*p=a;p+;二. 判断(trueorfalse )1. 调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。T2. 函数可以嵌套定义F3. 函数必须有返回值,否则不能正确作用F4. C程序中有调用关系的所有 函数必须放在同一源程序文件中。F5. 全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F6. 函数定义时可以不制定形参的类型,函数
4、调用时由实参的类型决定形参的类型F7. 当函数定义放在main()函数前面时,可以缺省函数声明。T8. C语言中允许函数嵌套调用 T9. 局部静态变量是在编译时赋初值的,即只赋一次初值。T10. 外部变量必须定义在文件的开头部分F11. 字符0 是字符串的结束标记,其 ASCII码为0.T12. 若有说明 ?:inta34=0 ;则数组 a 中每个元素的初值都为 0.T13. 若有说明?:inta24=0, 0;则只有 a00和 a01的初值为 0, 其余元素的初值均不为 0.F14. 若有说明?:inta34;则数组a中各元素可在程序的编译阶 段达到初值 0.F15. 若用数组名作为函数调用
5、时的实参,则实际上传递给形参的是 数组的第一个元素值。 F16. 在两个字符串的比较中, 字符个数多的字符串比字符少的字符 串大。F17. 当需要接受用户从键盘上输入的含有空格的字符串时,应使用 gets ()函数。 T18. 在C语言中,二维数组元素在内存中的存放顺序可以随意调整 变化 。 F19. &b 指的是变量 b 的地址 处所存放的值 ; F20. 指针变量 可用于保存同类型变量的地址值 ; F21. 存放地址的变量同其他类型的变量一样,可以 存放任何类型的 数据; F22. 指向同一数组的两指针 p1,p2 相减的结果与所指元素的 下标 相减的结果是相同的 。 F23. 如果定义函
6、数时参数是指针变量,那么,调用函数时的参数就 可以是同类型的指针变量,数组名或简单变量的地址 T个元素都是指向字符数据的 指针型数据。F25. 语句y二*p+;和y=(*p)+;是等价的。F26. 函数指针指向的是函数的入口地址。T27. int*p ;定义了一个指针变量,其值是整型的。F28. 用指针作为函数参数时,采用的是“地址传送”方式 .T三、选择题1下列变量名中哪些是合法的?2aa#C$t3_var int2. 语言中用示逻辑值“真”。A) trueB)整型值0C)非零整数值D)T3. 下列合法的字符常量为。A) a B)n C)ch in aD)a4. 设有语句charc=72;则
7、变量c。A) 包含1个字符B)包含2个字符C)包含3个字符D)不合法5. 字符串tNameAddressn的长度为。A) 19B)15C)18D)不合法6. 设a,b,c 为int型变量,且a=3,b=4,c=5,下面表达式值为0的是。A)a&bB)a=bC)a|b+c&b-cD) !(ab)&!c|1)7. 若有以下定义:chara;in tb;floatc;doubled;则表达式a*b+d -c的值的类型为A)floatB)i ntC)charD)double8. 设有语句inta=3;执行了语句a+=a-=a*a; 后,变量a的值是A)3 B)0C)9D)-129. 设有语句inta=
8、3;执行了语句printf(%d,-a+);后,输出的结果是_C,变量a的值是_D。A)3 B)4C)-3D)-210. 将下列数学表达式表示为合法的C语言表达式。备:a2 b2(1) (2) (a b)(c d) 2 (3) (ln x sin(y)/22c(4)2 r( 5)匕(6)sin(3)x2e ! 12y yx12. 下列可作为C语言赋值语句的是: 。A)x=3,y=5 B)a=b=c C)i-;D)y=i nt(x);13. 以下程序的输出结果为: 。mai n()in ta=2,c=5;prin tf(a=%d,b=%dn,a,c);A) a=%2,b=%5B)a=2,b=5C
9、)a=%d,b=%dD)a=%d,b=%d14. 在下面的条件语句中,只有一个在功能上与其它三个语句不等价 (其中si和s2表示它是C语句),这个不等价的语句是:。A) if(a)s1;elses2;B) if(!a)s2;elses1;C) if(a!=0)s1;elses2;D) if(a=0)s1;elses2;15. 设有声明语句:in ta=1,b=0;则执行以下语句后输出为:。switch(a)case1:switch(b)caseO:printf(*O*);break;case1:printf(*1*);break;case2:printf(*2*);break;A) *0* b
10、) *0*2*C)*0*1*2* d)有语法错误16. 在while(x)语句中的x与下面条件表达式等价的是:A)x=0 B)x=1 C)x!=1 D)x!=017. 若intx;且有下面的程序片断,则输出结果为:。for(x=3;xs2) B) if(strcmp(s1,s2)C)if(strcmp(s2,s1)0)D)if(strcmp(s1,s2)0)23.若用数组名作为函数调用时的实参,则实际上传递给形参的 是:。A)数组的首地址;B)数组的第一个元素值;C)数组中全部元素的值;D)数组元素的个数。24. 在函数调用时,以下说法中 正确的是:。A) 在C语言中,实参与其对应的形参各占独
11、立的存储单元;B) 在C语言中,实参与其对应的形参共占同一个存储单元;C) 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D) 在C语言中,形参是虚拟的,不占存储单元。25. C语言中形参的缺省存储类别是:。A)自动(auto) B)静态(static)C)寄存器(register)D)外部(extern)26. C语言规定:简单变量做实参时,它和对应形参之间数据的传 递方式为:。A)地址传递;B)单向值传递;C)由实参传给形参,再由形参传回给实参;D)由用户指定传递方式。27.(1 )阅读程序,选择程序的运行结果#includeintTry(intn)if(n0)retur n(n *Try( n_2);elsereturnl;main()intx;x=Try(5);print