C语言期末考试题考 (修复的).docx_第1页
C语言期末考试题考 (修复的).docx_第2页
C语言期末考试题考 (修复的).docx_第3页
C语言期末考试题考 (修复的).docx_第4页
C语言期末考试题考 (修复的).docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选择题1. C语句 x *y2;可以写作_B_。A、xy2B、xx *(y2); C、x2y * x; D、xx * y2;2. 下列运算符中优先级最高的是_A_。A、 B、C、|D、3. 在一个C程序中,A。A、main函数可以在任何函数之间出现B、main函数必须出现在所有函数之后C、main函数必须出现在所有函数之前D、main函数必须出现在固定位置4. C语言程序的三种基本结构是_A_。A、顺序、选择、循环B、选择、递归、循环5. 若有以下定义:char a;int b;float c;double d;则表达式 a * bd c 值的类型是A。C、顺序、循环、子程序D、嵌套、选择、循环Doubie fioat LongUnsignedInt char,short A、double B、floatC、intD、char6. 字符型常量在内存中存放的是该字符对应的D。A、BCD代码值B、内部码值C、十进制代码值D、ASCII代码值7. 下列说法中正确的是D。A、C语言程序总是从第一个函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序中的main()函数必须放在程序的开始部分D、C语言程序总是从main()函数开始执行8. 若变量已正确定义,要将a和b中的数进行交换,下列选项中不正确的是B。A、ta,ab,bt;B、at;tb;ba;C、tb;ba;at;D、aab,ba b,aa b;9. 完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为_B_。A、连接、运行B、编译、连接C、运行D、连接、编译10. 若有说明和语句:int a5,b;ba;此处变量b的值是C。A、6B、4kC、5D、711. 下面不是C语言整型常量的是D。A、-32768B、01C、0x11D、08112. sizeof运算的功能是求出运算对象在计算机的内存中所占用的字节数。(double)是一个_A_。A、整型表达式B、双精度型表达式C、字符型表达式D、不合法的表达式13. 若定义x和y为double类型,当x1时,yx3/2的值是_B_。A、2.5B、2.0C、1D、214. 设x和y均为int型变量,则语句:xy;yx y;xy;的功能是_D_。A、无确定结果3B、把x和y按从小到大排列printf(“%dn”,x,y);x 2002C、把x和y按从大到小排列D、交换x和y中的值15. 设有如下程序段:int x2002,y2003;printf(%d n,(x,y);则以下叙述中正确的是_C_。A、输出值为2002B、运行时产生出错信息C、输出值为2003D、输出语句中格式说明符的个数少于输出项的个数,不能正确输出字节是816. 设有如下的变量定义:unsigned long w5;double x1;则执行printf(%ld n,sizeof(x)w);输出的结果是B。A、6.0B、13C、9D、617. C语言中运算对象必须是整型的运算符是B。A、/B、%C、*D、+18. 对于下列程序段:int x10,y3;printf(%d n,x%y,x / y);其输出结果是A。A、1还有枚举型B、0C、3D、419. 下面不是C语言基本数据类型的是D。A、无符号长整型B、单精度型C、整型D、指针类型20. 若 int a,b,c;,则表达式(a2,b5,b,ab)的值是_A_。A、8B、2C、7D、621. 从键盘输入x,不能输出x的语句段是C。A、cgetchar();putchar(c);B、scanf(%c,&c);printf(%c,c);C、getchar(c);putchar(c);标识符只能由字母,数字和下画线3种字符组成,且第一个字符必须是字母或下划线,并且标识符不允许与关键字重名。D、putchar(getchar();22. 下列变量名中合法的是B。A、Tom B、_6a7b C、3a6bD、$ABC23. 若有以下程序段:# include main() int x102,y012; printf(%2d,%2d n,x,y); 执行后输出结果是B。A、02,10B、102,10 C、02,12 D、10,0124. 下列程序的输出结果是A。# include main() int a0x12;a=18 printf(a%d n,a12);A、a30B、a24C、a22D、a3625. 以下程序,运行后的输出结果是C。#include main()int x1,a0,b0;switch(x)case 0:b;case 1:a;case 2:a;b;printf(a%d,b%dn,a,b);A、a2,b2B、a1,b0C、a2,b1D、a1,b126. 设初始化int a0,b0,c0,x9;则执行下列语句之后,变量x的值是_D_。if(a) x;else if(b) if(!c) x3; else x4;A、3B、4C、8D、927. 为了避免嵌套的条件分支语句if-else的二义性,C语言规定程序中的else总是与(A)组成配对的关系。A、在其之前未配对的最近的ifB、同一行上的ifC、在其之前未配对的ifD、编排位置相同的else28. 运行下列程序段后,x,y的值分别为_D_。int x=1,y=1;if(x=2) y=3;else y=4;A、1,1B、1,4C、2,4D、2,329. 以下程序,运行后输入65,程序的输出结果是_C_。#include main()int m;scanf(%d,&m);if(m45)printf(%d ,m);else printf(%d ,m);if(m25)printf(%d ,m);A、6565B、65C、656666D、不能确定30. 有如下程序,运行后的输出结果是_B_。#include main()int a2,b1,c2;if(a) if(b0) c0; else c;printf(%dn,c);A、1B、0C、3D、231. 有以下程序,运行后的输出结果是_A_。#include main()int a15,b21,m0;switch(a%3)case 0:m;break;case 1:m;switch(b%2)default:m;case 0:m;break;printf(%dn,m);A、1B、4C、3D、232. 运行下列程序后,结果是_C_。#include main()int x=3,y=0,z=0;if(x=yz) printf(*);else printf(#);A、可以通过编译但不能通过连接,因而不能运行B、输出*C、输出#D、有语法错误不能通过编译33. 以下程序段中与语句k=a?bc?1:0):0;功能等价的是BA、if(ab)|(bC) k1;else k0;B、if(ab)&(bC) k1;else k0;C、if(ab) k0; else if(bb)k1; else if(bC) k1;34运行下面程序时,当输入字符B后,输出的结果是_C_。#include main()char a;scanf(%c,&a);switch(a)case a:printf(1);break;case b:printf(2);break;case c:printf(3);break;default:printf(4);A、1B、3C、4D、235. 有如下程序,运行后的输出结果是_A_。#include main()float x2.0,y;if(x0.0) y0.0;else if(x10.0) y1.0/x; else y1.0;printf(%fn,y);A、0.500000B、0.250000C、1.000000D、0.00000036. 阅读以下程序,程序运行后,如果从键盘上输入5,则输出结果是C先输入X=5,X!5所以执行else语句但此时X=4,输出了#include main()int x;scanf(%d,&x);if(x5)printf(%d,x);else printf(%d,x);A、6B、3C、4D、537. 有以下程序,程序运行后输入2,程序的输出结果是_C_。getchar()函数是一个无参数函数,但进行调用时括号一定要写,括号是函数的标志。从输入设备接收到的字节的ASCII码值作为函数的结果#includemain()int c;cgetchar();switch(c2)case 0:case 1:putchar(c4);case 2:putchar(c4);break;case 3:putchar(c3);case 4:putchar(c2);break;A、没有输出内容B、6654C、66D、638. 下列关于switch和break语句的论述中,正确的是DA、switch语句中必须使用break语句B、以上结论中有两个正确C、break语句是switch语句中的一部分D、switch语句中可以根据需要使用或不使用break语句执行语句:for(il;10;i),其中表达式il将被执行_次A、1B、无穷次C、0D、不确定39. 执行语句:for(il;10;i),其中表达式il将被执行_A_次A、1B、无穷次C、0D、不确定40. 对于以下程序段,其运行后的输出结果为_C_。int x2;while(x1) printf(%2d,x);A、2,1B、2C、反复输出1的死循环D、不显示任何内容41. 下面程序的运行结果是_B_。i=4的时候不执行了0+4=4;sum=4。“;”里面是空句#include main()int i,sum0;for(i1;i3;i);sumi;printf(%dn,sum);A、6B、4C、3D、死循环42. 运行以下程序段,其输出结果是_B_。int x3;doprintf(%d,x2);while(x)上面x=1;-x=0;while(0)结束循环;输出1;A、1 2B、1C、3 0D、死循环43. 有以下程序,运行后的输出结果是_C_。#include main()int i,n0;Continue语句与break语句的区别是:break语句是结束整个循环,跳到循环外的下一条语句去执行;continue语句只是结束本次循环过程,转而进行下一个循环过程,并不终止整个循环的执行。for(i2;i5;i) do if(i%3) continue; n; while(!i)i=2;i%3=2;n=1;i=3;i%3=0;n=3;i=4;i%3=1;n=4;;n;printf(n%dn,n);A、n=2B、n=5C、n=4D、n=344. 以下关于C语言的叙述中,正确的是_C_。A、不能使用dowhile语句构成的循环B、dowhile语句构成的循环必须用break语句才能退出C、在dowhile语句构成的循环中,当while语句中表达式的值为零时结束循环D、在dowhile语句构成的循环中,当while语句中表达式的值为非零时结束循环45. 运行以下程序后的输出结果是_C_。#include main()int n9;while(n6) n; printf(%d,n); A、987B、8765C、876D、9876第一个for循环中i=2时执行第二个for循环j=3;m+=1;j=7;m+=2;j=11;m+=3;j=15;m+=4;j=19;m+=5;退出循环,进入第一个for循环中i=6.一直到i=14一共四次m=5+5+5+5=2046. 以下程序的输出结果是_D_。#include main()int i,j,m0;for(i2;i14;i4)for(j3;j19;j4)m;printf(%dn,m);A、16B、8C、25D、2047. 语句while(!E);中的条件!E为真!E不为零等价于_B_。A、E1 B、E0C、ED、E!048. 下面程序的功能是求满足下述条件的最小偶数:当它分别被3.4.5.6除时余数均为2,请在 _D_处选择正确答案。#include main()int i0;while(_)if(i%32)&(i%42)&(i%52)&(i%62)printf(%d,i);break;ii2;A、0B、i=0C、i!=0D、149. 语句for(表达式1;表达式3)等价于_A_。A、for(表达式1;1;表达式3)B、for(表达式1;表达式1;表达式3)C、for(表达式1;0;表达式3)D、for(表达式1;表达式3;表达式3)50. 将下列程序补充完整,使其能打印出1000以内的所有完全数。完全数是指一个正整数,其所有小于该数的因子之和等于该数本身。例如:6123,又如:28124714。#include main()int i,j,s;for(j2;j1000;j)s0;for(i1;ij;i)if(_D_)si;if(js)printf(%4d,j);A、j!sB、j%iC、jsD、j%i051. 下列程序的输出结果是_D_。#include main()int i;i=1;输出*#;i=2;退出循环;i=3输出*#;i=4;退出循环;i=5输出$for(i1;i5;i) if(i%2) printf(*); else continue; printf(#);printf($n);A、#*#*$B、*#*#*#$C、#*#*#*$D、*#*#$52. 在运行以下程序时,如果从键盘上输入,ABCdef,则输出结果为_B_。#include main()char ch;while(chgetchar()!n)if(chA & cha & chz)chch32;printf(%c,ch);printf(n);A、abcB、abcDEFC、DEFD、ABCdef53. 以下程序的输出结果是_A_。#include main()int i,j;for(j10;j11;j) for(i9;ij1)printf(%d,j);A、10B、9C、10 11D、1154. 下面的for循环_B_。for(x0,y0;(y!123)&(x4);x);A、循环次数不定B、执行4次C、执行3次D、执行无限次55. 以下程序的功能是:按顺序读入10位学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:#include main()int n,k;float score,sum,ave;sum0.0;for(n1;n10;n) for(k1;k4;k) scanf(%f,&score);sumscore; avesum/4.0; printf(NO%d:%fn,n,ave);上述程序运行后BA、avesun/4.0;B、sum0.0; C、printf(NO%d:%fn,n,ave);D、sumscore;56. 下列程序的运行结果是_A_。#include #include main()int m,k,i,n0;for(m6;m15;m) ksqrt计算x12(m); for(i2;ik1) printf(%3d,m); nn1; A、7 11 13B、6 8 10 12 14C、8 10 12 14D、11 7 1357. 以下程序运行后的输出结果是_A_。#include X=15;满足循环条件,x+=16;if(1)为真执行x+;break结束整个循环。X=17main()int x15;while(x10& x50)x;if(x/3)x;break;else continue;printf(%dn,x);A、17B、15C、16D、1858. 若i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是_C_。for(i5;i;i)for(j0;j4;j)A、24B、25C、20D、3059. 以下程序运行后的输出结果是_C_。#include main()int x0,y5,z3;while(z0&x5) yy1;printf(%d,%d,%dn,x,y,z);A、4,3,1B、5,2,5C、3,2,1D、3,2,060. 有以下程序,程序运行后的输出结果是_A_。#include main()int i,s0;for(i1;i10;i2)si1;printf(%dn,s);A、自然数110中的偶数之和B、自然数19中的奇数之和 C、自然数110的累加和D、自然数19的累加和61. 在循环语句的循环体中,continue语句的作用是_C_。A、死循环B、立即终止整个循环C、结束本次循环D、继续执行continue语句之后的循环体各句62. 有以下程序,运行后输出结果是_C_。#include main()int i;for(i0;i3;i)i=0;执行default输出i=0;i=1;执行case1输出i=1;case2输出i=1;default输出i=1;switch(i) case 1:printf(%d ,i); case 2:printf(%d,i); default:printf(%d,i);A、0 12B、01 2020C、01 1122D、1 2063. 下面关于C语言变量的定义与使用描述中,不正确的是_D_。A、变量按所定义的类型存放数据B、变量应该先定义后使用C、系统按变量定义的类型为变量分配相应大小的存储空间D、通过类型转换可以更改变量所占存储空间的大小64e3. 当调用函数时,实参是一个数组名,则向函数传送的是( A)。A、数组的首地址B、数组每一个元素的地址C、数组每个元素中的值D、数组的长度65. 以下所列的各函数首部中,正确的是_D_。A、void play(int a,b)B、Sub play(a as integer,b as integer)C、void play(var:Integer,var b:Integer)D、void play(int a,int b)66. 在C语言中,形参的缺省存储类是_B_。A、extern外部的B、auto自动的C、static静态的D、register寄存器的67. 一个函数返回值的类型是由(C)决定的。A、return语句中表达式的类型B、在调用函数时临时指定C、定义函数时指定的函数类型D、调用该函数的主调函数的类型68. 在C语言的函数中,下列说法正确的是(C)。A、数组不能作形参B、形参必须是变量名C、可以有也可以没有形参D、必须有形参69. 下列哪种数据不存放在动态存储区中(A )。A、局部静态变量B、局部自动变量C、函数形参变量D、函数调用时的现场保护和返回地址70. 以下叙述中不正确的是( C)。A、在一个函数内定义的变量只在本函数范围内有效B、函数中的形式参数是局部变量C、在一个函数内的复合语句中定义的变量在本函数范围内有效D、在不同的函数中可以使用相同名字的变量71. 如果在一个函数的复合语句中定义了一个变量,则该变量(A )。A、只在该复合语句中有效,在该复合语句外无效B、在本程序的源文件范围内均有效C、此定义方法错误,其变量为非法变量D、在该函数中任何位置都有效72、C语言中,函数类型可以缺省,此时隐含的函数类型是_A_。A、intB、floatC、voidD、double73、以下数组定义中不正确的是_B_。A、int b 30,1,2,3;B、int d3 1,2,1,2,3, 1,2,3,4;C、int a23;D、int c1001000;74、若有以下说明:int a121,2,3,4,5,6,7,8,9,10,11,12;char ca;则数值为4的表达式是_A_。A、adcB、agc C、adcD、a4 75、有以下程序#include #include main()char a a,b,c,d,e,f,g,h,0;int i,j;isizeof(a);jstrlen(a);printf(%d,%db,i,j);运行后的输出结果是_D_。A、8,9B、9,9C、1,8 D、9,876、在定义int n56后第10个元素是(D )。A、n25B、n24C、n14D、n1377、函数调用:strcat(strcpy(str1,str2),str3)的功能是_D_。A、将串str1连接到串str2之后再复制到串str3之后B、将串str2连接到串str1之后再将串str1复制到串str3中C、将串str1复制到串str2中后再连接到串str3之后D、将串str2复制到串str1中后再将串str3连接到串str1之后78、以下定义语句中,错误的是_A_。A、int n5,an;B、char s10test;C、int a 1,2;D、char a3;79、下面程序运行时输入WindowsXP1.0,则输出的结果是_C_。#include main()char str17;scanf(%s,str);printf(%sn,str);A、程序中的scanf()函数格式有错,程序无法运行B、WindowsXPC、WindowsXP1.0D、Windows80、假定int类型变量在内存中占两个字节,若有定义:int x100,2,4;则数组x在内存中所占字节数是_C_。A、10B、6C、20D、381、下列对C语言字符数组的描述中错误的是_C_。A、字符数组可以存入字符串B、字符数组中的字符串可以整体输入、输出C、可以在程序中通过赋值运算符“”对字符数组整体赋值D、不可以用关系运算符对字符数组中的字符串进行比较82、以下对一维数组m进行正确初始化的是( C)。A、int m10= ;B、int m10=(0,0,0,0) ;C、int m =0;D、int m10=10*2;83、以下程序的输出结果是_B_。#include #include main()char a91234567;char b4abc;strcpy(a,b);a3&;printf(%cn,a4);A、c B、5C、0D、484、以下关于数组的描述正确的是_D_。A、数组的大小是固定的,但可以有不同的类型的数组元素B、数组的大小是可变的,但所有数组元素的类型必须相同C、数组的大小是可变的,可以有不同的类型的数组元素D、数组的大小是固定的,所有数组元素的类型必须相同85、若说明:int a23; 则对a数组元素的正确引用是(A ) 。A、a12!1B、a20C、a1,3D、a(1,2)86、C程序中二维数组y有m列,则按先行后列存储在yij前的数据元素个数是_B_。A、(i1)*mj1B、i*mjC、j*miD、i*mj187、若有以下程序段char strabn012;printf(%dn,strlen(str);运行后的输出结果是_B_。A、4B、6C、3D、12二、判断1、一条include 命令可以指定多个被包含的文件。(x)2、char c=Very Good;是一个合法的为字符串数组赋值的语句。(对)3、若有说明int c;则while(c=getchar();是正确的C语句。(对)4、关系运算符= b)=c 的值为真。(对)9、a是合法的字符串常量。(对12、在C程序中,函数既可以嵌套定义,也可以嵌套调用。(对)13、判断一个量是否为真时,0代表假,非0代表真。(对)14、假设有float x=3;则x%2的值为1。(x)15、若有 int i=10,j=2;则执行完i*=j+8;后的值为28。(x)三、填空1、以下程序的输出结果是_-1_。int main() int x = 2; while ( x- ); printf(%d, x); 2、若有以下定义,请写出以下程序段中输出语句执行后的结果。(1)_-200 2500 _(2)_i = -200,j = 2500_(3)_i = -200 j = 2500_ int i = -200, j =2500; (1) printf(%d %d, i, j); (2) printf(i = %d, j = %dn, i, j); (3) printf(i = %d j = %dn, i, j);3、阅读下面程序,程序执行后的输出结果为_0918273645_。#include stdio.hmain()char a,b;for(a=0,b=9; ab; a+,b-) printf(%c%c,a,b); 4、C语言中用_非零_表示逻辑真,用_0_表示逻辑假。5、以下程序的执行结果是_9_。main() int k=8; switch(k) case 9: k+=1;case 10: k+=1;case 11: k+=1; break;default: k+=1; printf(%dn,k);6、若变量已正确定义,以下语句段的输出结果是_*#_。x = 0; y = 2; z = 3;switch(x) case 0: switch( y = 2) case 1: printf(*); /cout*; break; case 2: printf(%); /cout%; break; case 1: switch( z ) case 1: printf($); /cout$; case 2: printf(*); /cout*; break; default : printf(#); /couty) if(xz) printf(%d,x); /coutx; else printf(%d,y); /couty; printf(%d,z); /cout 100) printf(“%dn”, a 100);else printf(“%dn”, a a; if(a50) printf(%d,a); /cout40) printf(%d,a); /cout30) printf(%d,a); /couta; 10、组成C程序的基本单位是 _函数_,其组成部分包括_函数首部_和_函数体_。11、结构化程序由_顺序_、_条件分支_、_循环_三种基本结构组成。12、表达式3.5 + 1 / 2的计算结果是_3.5_。13、把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_float a1 = 1.0, a2 = 1.0;_。14、若k为int型变量且赋值11,请写出运算k+后表达式的值_11_和变量的值_12_。15在C语言程序中,用关键字_int_定义基本整型变量,用关键字_float_定义单精度实型变量,用关键字_double_定义双精度实型变量。四、程序改错1、程序用于将字符串中的小写字母转换为大写字母.*/#includeint main()char s255;int i;scanf(%s,s);for (i=0;si;i+)/*ERROR*/if(si=b & si=a & si=z)(2)【参考答案】si = si -a + A;2. /*程序改错*以下程序的功能:输出数组中的最大元素及其下标值。*/#includeint main() /*ERROR*/ int a10=(0,-3,9,2,5,4,8,7,6,1); int t,max,i; max=a0; /*ERROR*/ t=1; i=1; /*ERROR*/ while(i=10) if(maxai) max=ai; t=i; i+; printf(MAX=%d,ADDRESS=%d,max,t);2(1)【参考答案】int a10=0,-3,9,2,5,4,8,7,6,1;(2)【参考答案】t=0;(3)【参考答案】while(i10)while(i=9)3功能:求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论