C语言期末考试试题及详细答案

上传人:积*** 文档编号:120183330 上传时间:2022-07-16 格式:DOC 页数:31 大小:105.50KB
返回 下载 相关 举报
C语言期末考试试题及详细答案_第1页
第1页 / 共31页
C语言期末考试试题及详细答案_第2页
第2页 / 共31页
C语言期末考试试题及详细答案_第3页
第3页 / 共31页
点击查看更多>>
资源描述
选择练习题 1、C语言中最简朴的数据类型涉及( B )。 A、整型,实型,逻辑型B、整型,实型,字符型 C、整型,字符型,逻辑型D、整型,实型,逻辑型,字符型 2、C语言中,运算对象必须是整型数的运算符是(A )。 A、%B、/C、%和/D、* 3、为表达关系xyz,应使用C语言体现式( A )。 A、(xy)&(yz) B、(xy)AND(yz) C、(xyz) D、(xy) &(yz) 4、C语言程序的基本单位是( C )。 A、程序行 B、语句 C、函数 D、字符 5、C语言的程序一行写不下时,可以( D )。 A、用逗号换行 B、用分号换行 C、用回车符换行 D、在任意一空格处换行标记符由字母,数字和下划线构成且第一种字符必须为字母或下划线 6、下述标记符中,( C )是合法的顾客标记符。 A、A&B B、void C、_student D、ab* 7、在C语言中,字符型数据在内存中以( B )形式寄存。 A、补码 B、ASCII码 C、反码 D、原码 8、一种程序由若干文献构成,共用同一变量,则此变量的存储类别应当为( B )。auto自动变量register寄存器变量extern 外部变量static静态变量 A、auto B、extern C、static D、Register 9、如下有关switch语句和break语句的描述中,只有(B )是对的的。 A、在switch语句中必须使用break语句 B、在switch语句中,可以根据需要使用或不使用break语句 C、break语句只能用于switch语句中 D、break语句是switch语句的一部分 10、C语言规定:调用一种函数时,实参变量和形参变量之间的数据传递是(B )。 A、地址传递 B、值传递 C、由实参传给形参,并由形参传回给实参 D、由顾客指定传递方式 11、下述C语言转义符中( D )是非法的。 A、b B、037 C、0xf D、 12、为了要计算s=10!(10的阶乘),则如下对s的定义对的的是( D )。 A、int s B、unsigned s C、short s D、long s 13、判断变量ch中的字符与否为大写字母,最简朴的对的体现式是( A )。 A、ch=A&ch=z B、A=ch=Z C、A=ch=z D、ch=A&ch=z 14、在C语言中,能表达无符号长整型常数的是(D )。 A、OL B、4962710U C、912374u D、2UL 15、能对的表达C语言的字符常量的是( C )。 A、0x41 B、A C、0 D、0 16、C语言中逻辑体现式的值为( A )。 A、0或1 B、非零值或零值 C、true或false D、true或false 17、C语言提供的基本数据类型核心字是( C )。 A、integer B、FLOAT C、unsigned D、Double 18、若定义语句:int b =1,2,3,4,5,*P=b;则体现式*p+的值是( A )。 A、1 B、2 C、b0的地址 D、b1的地址 19、在下列选项中,不对的的体现式是( C )。 A、ab B、c-, +b, a+=1 C、a=c+bn-m=k D、p+ 20、若有如下定义: int a =1,2,3,4,5,6,7; char cl=b,c2=2; 则数值不为2的体现式是( D )。 A、a1 B、d-cl C、a3-c2 D、c2-0 25、下述对C语言字符数组的描述中错误的是( C )。 A、字符数组可以寄存字符串 B、字符数组中的字符串可以整体输入、输出 C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值 D、不可以用关系运算符对字符组中的字符串进行比较 27、如下程序的输出成果是( A )。 main( ) int i=010, j=10, k=ox10; printf(%d,%d,%dn,i,j,k); A、8,10,16 B、8,10,10 C、10,10,10 D、10,10,16 28、如下程序的输出成果是( B )。 #includestdio.h main( ) printf(%dn,NULL); A、不拟定的值(因变量无定义) B、0 C、-1 D、1 29、如下程序的输出成果是( B )。 main( ) char c1=6,c2=0; printf(%d,%d,%dn,c1,c2,c1-c2); A、因输出格式不合法,输出出错信息 B、54,48,6 C、6.0,7 D、6,0,6 32、下述对C语言字符数组的描述中错误的是( C )。 A、字符数组可以寄存字符串 B、字符数组中的字符串可以整体输入、输出 C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值 D、不可以用关系运算符对字符组中的字符串进行比较 33、Turbo C中,对于如下程序( A )。 main( ) int x,y; y=creat(&x); printf(%d n, y); creat(int a) return a+; A、编译时会给出错信息 B、顺利进行编译、连接、执行;不报任何错误 C、顺利通过编译、连接、但不能执行 D、顺利通过编译,但连接出错 34、设有如下定义: int x=10, y=4,z;则语句: printf(%dn, z=(x%y, x/y);的输出成果是( C )。 A、1 B、0 C、2 D、3 35、下述程序段的输出成果是( D )。 main( ) int x=10, y=10; printf(%d, %dn, x+, +y); A、10,10 B、11,11 C、11,10 D、10,11 36、定义如下变量和数组: int j; int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出成果是( C )。 for(i=0;i3;i+ printf(%d, xi2-i); A、159 B、147 C、357 D、369 37、若规定在if后一对圆括号中表达a不等于0的关系,则不能对的表达这一关系的体现式为( C )。 A、a0 B、!a C、a=0 D、a 38、若m,y,z均为int型变量,则执行下面语句后m值是(A )。 m=1;x=2;y=3;z=4; m=(mx)?m:x; m=(my)?m:y; m=(mz) ?m:z; A、1 B、2 C、3 D、4 39、若有定义:int a=7;float x=2.5,y=4.7,则体现式x+a%3*(int)(x+y)%2/4的值是( A )。 A、2.500000 B、2.750000 C、3.500000 D、0.000000 40、如下说法不对的的是( C )。 A、ca+b等效于c(a+b) B、若a,b均为真,则a|b为真 C、体现式c&d的值为0 D、逻辑运算符!比逻辑运算符|的优先级高 41、putchar()函数可以向终端输出一种( B )。 A、整型变量体现式值 B、字符 C、字符串 D、实型变量值 42、体现式18/4*sqrt(4.0)/8值的数据类型为( C )。 A、int B、float C、double D、不拟定 43、若已定义a为整型变量: a=-2L; printf(%dn,a);则以上语句( B )。 A、赋值不合法 B、输出值为-2 C、输出为不拟定值 D、输出值为2 45、若int类型数据占两个字节,则如下语句的输出为( D )。 int k= -1; printf(%d,%un,k,k); A、-1,-1 B、-1,32767 C、-1,32768 D、-1,65535 46、已知字母a的ASCII码十进制值为97,则执行如下语句后的输出为( C )。yhg char a=a; a-; printf(%d,%cn,a+2-0,a+3-0); A、b,c B、a运算不合法,故有语法错 C、98,c D、格式描述和输出项不匹配,输出无定值 47、下面语句中( B )是C语言的对的赋值语句。 A、a=1,b=2 B、I+; C、a=b=5 D、y=int(x);A中声明变量并初始化时:int a=1,b=5;但是,只赋值时是不能这样写的,应当写成a=1;b=2;C无分号,不是完整的语句,D中x没有定义,如果是 int x=3;int y; y=int(x);这样是对的 48、设有如下阐明语句 struct stu int a; float b; stutype;则下面的论述不对的的是( C )。 A、struct是构造体类型的核心字 B、struct stu是顾客定义的构造体类型 C、stutype是顾客定义的构造体类型名 D、a和b都是构造体成员名 49、能对的表达:当x的取值范畴在1,10或100,110内为真,否则为假的体现式是( C )。 A、(x1)&(x10)&(x100)&(x110) B、(x1)|(x10)|(x100)|(x110) C、(x1)&(x10)|(x100)&(x110) D、(x1)|(x10)&(x100)&(x110) 50、设n为整型变量,则循环语句for(n=10;n0;n-)的循环次数为( A )。 A、10 B、9 C、11 D、12 51、在对文献进行操作时,若规定文献的位置指针回到文献的开头,则应当调用的库函数是( D )。 A、fopen() B、fseek() C、fclose() D、rewind() 52、下列哪个数组定义是对的的( D )。 A、int a5.5; B、INT a10; C、int an; D、int a3+2; 53、一种变量的指针就是( A )。 A、变量的地址 B、变量的值 C、变量的名称 D、变量的类型 55、下列对的的说法是(C )。 A、宏替代是在程序运营时进行的 B、函数调用是在程序编译时进行的 C、宏替代时,如果实参是体现式,应先求体现式的值,再替代 D、函数调用时,如果实参是体现式,应先求体现式的值,再替代 56、对于数学式/2a,下面对的的C语言体现式是( D )。 A、sqr(x)/2a B、sqr(x)/2*a C、sqrt(x)/(2*a) D、sqrt(x)/2*a 57、若int类型数据占2字节,则如下语句的输出为( D )。 int k=32768; printf(%d,%un,k,k); A、-1,65535 B、-1,32767 C、-1,-1, D、-32768,32768 59、下面程序中( B )有错误。 1)#includestdio.h 2)main ( ) 3) 4)int a3=0,0,0; 5)int i; 6)for(i=0;i3;i+scanf(%D,&ai); 7)for(i=1;i3;i+a0=a0+ai; 8)printf(%dn,a0; A、第4行 B、第6行 C、第7行 D、第8行 60、下面程序的运营成果( C )。 main( ) unsigned a=3,b=10;5 printf(%dna2|b1; A、3 B、10 C、13 D、14%m.nd表达最大场宽m,小数位为n位,整数位则为m-n-1位,够m位右对齐。%-m.nf可以控制输出左对齐 61、已定义x为float型变量。 x=213.82631; Printf(%-4.2fn,x);则以上程序( A )。 A、输出格式描述符的域宽不够,不能输出 B、输出为213.83 C、输出为213.82 D、输出为-213.82 62、设已定义整型变量K,则下面的程序输出为( D )。 k=017;s=111; printf(%d,+k); printf(%xn,s+); A、15 6f B、16 70 C、15 71 D、16 6f 63、不能对的表达a*b/c*d的C语言体现式是( C )。 A、a*b/c*d B、a/(c*d)*b C、a*b/c/d D、a*b/(c*d) 64、下列( C )体现式不满足;当x的值为偶数时值为“真”,为奇数时值为“假”。 A、x%2= =0 B、!x%2!=0 C、x/2*2-x= =0 D、!(x%2) 65、设已定义k为int型变量,则下面while循环执行( C )次。 k=10; while(k=0)k=-1; A、执行10次 B、无限循环 C、一次也不执行 D、执行一次 67、用高档语言编写的程序称之为( A )。 A、源程序 B、目的程序 C、汇编程序 D、命令程序 69、有如下程序的输出成果为( B )。 main( ) char a=0x95,b,c; b=(a&0xf)4; c=(a&0xf0)4; a=b|c; printf(%xn,a); A、24 B、59 C、34 D、56 70、下述程序段的输出成果是( A )。 int a=3;b=4; int c=ab3; printf(%d,c) A、3 B、4 C、5 D、6 73、设int型变量在内存中占用两个字节存储单元,定义如下构造体: struct student char name10; char sex; int age; struct int year; int month; int day; birth; stul;则体现式sizeof(stul)的值是( )。 A、5 B、8 C、2 D、26 75、下述程序段的运营成果是( B )。 #include main( ) int m=7,n=4; float a=38.4,b=0.4,x; x=m/2+n*a/b+1/2; printf(%fn,x); A、22 B、387.000000 C、27 D、26 76、下面程序的运营成果是( C )。 main( ) int cl=2,c2=0; while(!c2- -) printf(%d%d,cl- -,c2); A、陷入死循环 B、不输出任何内容 C、输出2 -1 D、输出20 77、下面程序的运营成果是( B )。 int m=4,n=6; max(int x,int y) int max; max=xy?x:y; return(max); main( ) int m=10; printf(%dn,max(m,n); A、4 B、10 C、6 D、5 78、下面程序的运营成果是( B )。 fun(int p) int k=1; static t=2; k=k+1; t=t+1; return(p*k*t); main( ) int x=4; fun(x); printf(%dn,fun(x); A、4 B、32 C、30 D、16 79、阅读下面的程序: main( ) char ch; scanf(%c,&ch); if(ch=a& ch=z) ch=ch-32; printf(%c,ch); 若输入字符为:e,则程序运营成果为( A )。 A、E B、A C、e D、z 80、下面程序的运营成果是( B )。 main( ) static int a33=3,2,1,(4,5,6),-2,9,1; int i,j,sum=0; for(i=0;i3;i+) for(j=0;j3;j+) if(i= =j) sum=sum+aiJj; printf(sum=%d,sum); A、sum=10 B、sum=9 C、9 D、10 84、下述程序的运营成果是( A )。 #include void fun(int x) putchar(0+(x% 10); fun(x/10); main( ) printf(n); fun(1234); A、4321 B、321 C、21 D、1 86、设已定义i和k为int类型变量,则如下for循环语句( B )。 for(i=0,k=-1;i+,k+) printf(* * * *n); A、判断循环结束的条件不合法 B、是无限循环 C、循环一次也不执行 D、循环只执行一次 87、下列程序段选择项中,使i的运营成果为4的程序段是( D )。 A、int i=0,j=0; B、int i=1,j=70; (i=3,(j+)+i); j=i=(i=3) *2); C、int i=0,j=1; D、int i=1,j=1; (j= =1)?(i=1):(i=3); i+=j+=2; 89、阅读如下程序(最左边是附加的行号)。 1)#include 2)main( ) 3) float s5; 4) int i,k=0; 5) for(i=0;i5;i+) 6) scanf(%d,s+i); 7) for(i=0;i5;i+) 8) k=si; 9) printf(n%f,(float)k); 10)此段程序( A )。 A、没有错误 B、第4行错误 C、第6行错误 D、第9行错误 90、下列程序中有三个是完全相似的功能,只有( B )所完毕的功能与其她程序不同。 A、s=0; B、s=0; i=0; i=1; while(i=100) while(i+100) s+=i+; s+=i; C、s=0; D、s=0; i=0; i=0; while(i=100) while(+i=100) s+=+i; s+=i; 92、执行下面的程序后,a的值为( D )。 main( ) int a,b; for(a=1,b=1;a=20)break; if(b%3= =1) b+3; continue; b-=5; A、7 B、8 C、 D、10 93、下面的程序中( C )有错误。 1)#include 2)main( ) 3) 4) float a3=0.0; 5) int i; 6) for(i=0;i3;i+) 7) scanf(%D,&ai); 8) for(i=1;i3;i+)a0=a0+ai; 9) printf(%fn,a0); A、第4行 B、第6行 C、第7行 D、第8行 94、如下程序的输出成果是( C )。 #include main( ) int i; for(i=1;i7) n-; printf(%d,n); A、1098 B、987 C、10987 D、9876 100、两次运营下面的程序,如果键盘上分别输入6和4,则输出成果是( A )。 main( ) int x; scanf(%d,&x); int(x+5) printf(%dn,x-); A、7和5 B、6和3 C、7和4 D、6和4 101、运营下段程序的成果是( D )。 #include main( ) int x; for(x=1;x=100;x+) if(+x%= =0) if(+x%3= =0) if(+x%5= =0) printf(%d,x); A、31,61,91 B、30,60,90 C、不输出任何内容 D、29,59,89 102、运营下述程序段后,i值为4的是( B )。 A、int i=1,j=0; B、inti=1,j=1; i=j=(i=3)+); i+=i+=2; C、int i= =0,j=0; D、int i=0,j=1; (i=2,i+(j=2); (j= =1)?i+=3:i=2; 104、如下程序的输出成果是( D )。 main() int a=-1,b=4,k; k=(+a,0)&!(b-=0); printf(%d,%d,%dn,k,a,b); A、1,0,4 B、1,0,3 C、0,0,3 D、0,0,4 105、如下程序的输出成果是( A )。 main( ) int x=3,y=0,z=0; if(x=y+z) printf(* * * *); else printf(# # # #); A、# # # # B、* * * * C、1 D、4 106、如下程序的输出成果是( A )。 int m=13; int fun2(int x, int y) int m=3; return(x*y-m); main( ) int a=7,b=5; printf(%dn,fun2(a,b)/m); A、2 B、3 C、7 D、5 112、阅读程序: #include main( ) int m,n,w; scanf(%d,%d,&m,&n); while(n) w=m%n; m=n; n=w; printf(%d,m); 如果输入10,6,则输出成果是( D )。 A、60 B、120 C、2 D、10 113、下列程序执行后输出的成果是( A )。 #include f(int a) int b=0; static c=2; a=c+, b+; return(a+b); main( ) int a=2,i,k; for(i=0;i2;i+); k=f(a+); printf(%dn,k); A、3 B、0 C、4 D、5 115、下列程序的运营成果是( B )。 main( ) static int a34=1,2,3,4,5,6,7,8,9,10,11,12; int i,j, sum=0; for(i=0;i3;i+) for(j=0;ji) sum+=aij; printf(sum=%dn,sum); A、40 B、36 C、24 D、30 120、阅读下列程序: main( ) int n3,i,j,k; for(i=0;i3;i+) ni=0; k=2; for(i=0;ik;i+) for(j=0;jk;j+) nj=ni+1; for(i=0;i3;i+) printf(%d,ni); printf(n); 运营该程序,其输出成果是( B )。 A、230 B、330 C、123 D、321 123、下述程序段的运营成果是( B )。 main( ) static int a33=1,2,3,4,5,6,7,8,9; int b32,i,j; for(i=0;i3;i+) for(j=0;j3;j+) bij=aji+aij; printf(%5d,bij); printf(n); A、2 4 7 B、2 6 10 C、18 14 10 D、18 2 3 2 10 8 6 10 14 14 10 6 4 10 2 3 6 18 10 14 18 10 6 2 7 4 2 124、如果程序中有如下的阐明和定义: struct s int x,y; struct s x,y; 则会发生的状况是( A )。 A、编译出错 B、能顺利编译和链接,但不能执行 C、程序能顺利通过编译,但是链接时会出错 D、程序能顺利编译,链接,执行 127、对C语言的文献存取方式的论述中,对的的是文献( C )。 A、只能顺序存取 B、只能随机存取(也称直接存取) C、可以是顺序存取,也可以是随机存取 D、只能从文献的开头存取 填空练习题1、有如下定义:int x; float y; 执行scanf(%3d%f,&x,&y);时,如果输入的数据为: 12345 678,则x的值为 123 ,y的值为 这个与12345后有无空格有关,届时候看着办吧(有空格就是45.000000) 。 2、有定义语句:int x,y,z;,执行x=(y=4,z=8,z=16) 后,x的值为 16 。 3、计算体现式b=25/3%3后,b的值为 2 。 4、设有定义语句int x=1,y=0;,则体现式x-(y+x)?10:12y+?A: Z的值是: 65 。 5、请写出如下语句的输出成果 9 。 printf(%d,strlen(t065xffabn); 7、C语言规定:标记符只能由 字母 、 数字 、 下划线 三种字符构成。 8、有定义语句:int x=5,y=1;体现式x&y=y? x|y:xy的值为 5 。 9、下述程序段的循环次数是 0 次,输出成果是 y=1,x=0 。 int x=0,y=0; do y+; x*=x; while(x0&y5) printf(y=%d,x=%d,y,x); 10、若m,y,z,均为int型变量,则执行下面语句后m值是1 。 m=1;x=2;y=3;z=4; m=(mx)?m:x;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!