C语言试题库试题库.doc_第1页
C语言试题库试题库.doc_第2页
C语言试题库试题库.doc_第3页
C语言试题库试题库.doc_第4页
C语言试题库试题库.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第1章算法及算法描述一、填空题1、算法具有以下五个特点 、 、 、 、 2、 判断一个算法的优劣的主要标准 、 、 、 、 3、常用的算法图形表示法主要包括 、 、 4、影响程序质量的质量要素主要包括 、 、 、 、 、 、 、 5、程序设计语言经历了的发展历程是 、 、 、 6、算法实现包括的阶段是 、 、 、 、 第2章 C语言概述一、判断题(a为正确,b为错误)1、C程序的基本组成单位是函数。2、C程序的一行只能写一条语句。3、main 函数必须写在一个 C 程序的最前面。4、一个 C 程序可以包含若干函数,但必须有主函数。5、一个c程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。6、C语言是一种结构化程序设计语言。7、一个C程序可以有若干个C源程序组成,而C源程序可以由若干个函数和预处理组成。8、在标准C中,语句必须以“;”结束。9、在C程序中,注释说明只能位于一条语句的后面。10、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。第3章 数据类型与数据运算一、判断题(a为正确,b为错误)1、a-b是合法的标识符。2、在C程序中,APH和aph是两个相同的变量。3、在标准C中,变量可以先使用再定义。4、逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。5、“+”运算符的优先级比“+”运算符的优先低。6、无符号整型变量的取值范围是:0-65535。7、表达式i+与+i在任何场合功能完全相同。8、若有 int i=10, j=2;则执行完* =j+8; 后的值为28。二、多项选择题1、C语言提供的合法的数据类型关键字是( ) 。A、Double B、short C、int D、Char2、下面均是不合法的用户标识符的选项是( )。A、 A. B、float C、b-a D、一123 P-0 1a0 goto temp do 一A int INT3、已知ch是字符型变量,下面不正确的赋值表达式是( )。A、ch= “123” B、ch=xff C、ch=007 D、cg=4、若有以下定义,则能使值为3的表达式是: int k= 7,x =12;( )A、 x%=(k%= 5) B、 x%=(k一k%5)C、 x%=11- k%5 D、(x%=k)-(k%=5)5、下关于运算符优先顺序的描述中正确的是( )。A、赋值运算符 逻辑与运算符 关系运算符 逻辑非运算符B、逻辑 运算符 关系运算符 算术运算符 赋值运算符C、赋值运算符 逻辑与运算符 关系运算符 算术运算符D、算术运算符 关系运算符 赋值运算符b)&(n=cd)后n的值( )。A、1 B、2 C、3 D、46、设有 int x=11; 则表达式(x+*1/3)的值( )。 A、3 B、3.6 C、4 D、4.07、int a;float f;double i;表达式15+i*f+A-a的值是( )型。A、float B、int C、char D、double8、设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为( )。A、int B、 float C、double D、不确定四、编程题1、某件商品的价格为120元,分别安十进制、八进制和十六进制输出其值。2、编程实现:从键盘输入正方体的变长,求其表面积和体积。3、编程实现:从键盘输入球的半径,计算球的表面积和体积。4、编程实现:定义int型变量i1和i2的值分别为65和97,依次按字符、十进制、八进制和十六进制整数的形式输出它们的值,要求每个变量各占一行。5、编程实现:从键盘输入一个实数,分别按小数形式和指数形式输出该实数的值。第4章 常用库函数一、单选题1、以下程序输出结果是 (注表示空格)Main() printf(“*s1=%15s*n*s2=%-5s*”,”chinabeijing”,”chi”);A *s1=chinabeijing* B *s1=chianbeijing *s1=*chi* *s2=chiC *s1=*chinabeijing* D *s1=chianbeijing* *s2=chi *S2=chi*2、根据定义和数据的输入方式,输入语句的正确形式为 已有定义:float f1,f2;输入方式为:4.52,3.5A scanf(“%f, %f”,&f1,&f2); Bscanf(“%f%f”,&f1,&f2);C scanf(“%3.3f,%2.1f”,&f1,&f2); D scanf(“%3.2f,%2.1f”,&f1,f2&);3、又如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式为 (注表示空格)A 132 B 1,3,2 C a=1b=3c=2 D a=1,b=3,c=2 4、设有如下定义:int x=10,y=3,z;则语句printf(“%dn”,z=(x%y,x/y);的输出结果是 。A 1 B 0 C 4 D 35、printf函数中用到的格式符%5s,其中数字5表示输出的字符串占5列。如果字符串长度大于5,则输出方式为 A 从左起输出该字符串,右补空格 B按原字符长从左向右全部输出C 右对齐输出该字串,左补空格 D输出错误信息6、printf函数中用到的格式符%5s,其中数字5表示输出的字符串占5列。如果字符串长度小于5,则输出方式为 A 从左起输出该字符串,右补空格 B按原字符长从左向右全部输出C 右对齐输出该字串,左补空格 D输出错误信息7、已有定义inta=-2,和输出语句:printf(“%8lx”,a);以下正确的叙述是 A 整形变量的输出格式符只有%d一种 B %是格式符的一种,它可以适应任何一种类型的数据 C %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D %8lx不是错误的格式符,其中数字8规定了输出字符的宽度8、下列语句输出结果是 。 Unsigned i=-1;printf(“%u”,i);A 65535 B 65536 C-1 D 19、下列语句输出结果是 。int i=65535;printf(“%d”,i);A 65535 B 0 C -1 D语法错误10、下列语句输出结果是 。Long a=oxffff;int b=a; printf(“%d”,b);A 65535 B65536 C -1 D 111、已知ch是字符型变量,下面不正确的赋值表达式是 。A ch=123 B ch=xff C ch=008 Dch=n12、设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是 。A k+ B k+=1 C +k Dk+113、已知int a;float b;所用的scanf调用语句格式为:scanf(“a/%d,b=%f”,&a,&b);为了将数据3和25.08分别赋给x和y,正确的输入应当是 。A 3,25.08 B a=3,b=25.08 C a/3,b=25.08 D a/3b=25.0814、语句printf(“%dn”,strlen(“t”065xffn”) 的输出结果是 A 5 B 14 C 8 D 输出项不合法,无正确输出15、下列格式符中,哪一个可以用于以8进制形式输出整数 。A %d B %8d C %o D %ld16、字符变量ch =A,int类型变量K=25,语句printf(“%3d,%3dn”,ch,k);输出 。A 65,253 B 65 253 C 65,25 D A 2517、有以下程序Main()Int m,n,p;Scanf(“m=%dn=%dp=%d”,&m,&n,&p);Printf(“%d%d%dn”,m,n,p);(注: 表示空格)若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A m=123n=456p=789 Bm=123n=456p=789 Cm=123,n=456,p=789 D123 456 78918、逻辑运算符两侧运算对象的数据类型 。A只能是0或1 B只能是0或非零整数 C只能是整形或字符型数据 D可以是任何类型的数据19、当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是 。Am=n=p B(m=k)&(n=k) C(m=k)|(n=k) D(k=m)&(n=k)20、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数,表达式的值为假。则以下不能满足要求的表达式是 。A A%2=1 B!( a%2=0) C !(A%2) D A%221、putchar函数可以向终端输出一个 。 A 整型变量表达式值;B 实型变量值;C 字符串;D字符或字符型变量值22、若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 A scanf( %d%lx,%le,&x,&y,&z); B scanf(%2d * %d%lf&x,&y,&z ); C scanf(%x %* d%o,&x,&y); D scanf(%x%o%6.2f,&x,&y,&z); 23、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 。int a1,a2; char c1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2); A 1020AB B 10 20AB C 10 20 AB D 10 20AB24、设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是 A y&y B x =y C x|y+z&y-z D !(xy)&!z|1)25、若有以下定义:int a,b ;float x;,则正确的赋值语句是 。A a1,b2, B b+; C ab5 D b=int(x)26、判断char型变量ch是否为大写字母的正确表达式是 。A A=ch=A)&(ch=A)&(ch+Z) D (A=ch27、执行以下语句后a的值为 。int a=5,b=6,w=1,x=2,y=3,z=4;(a=wx)&(b=yz);A 5 B 0 C 2 D 128、已知 x=43,ch=A,y=0;则表达式(x=y&chB&!y)的值是 。A 0 B 语法错 C 1 D 假29、设x、y和s是int型变量,且x3,y4,z5,则下面表达式中值为0的是 。A x&y B x=y C x|y+z&y-z D !(xy)&!z二、多选题1、若x,y 均定义为int 型,z定义为double型,以下合法的 scanf函数调用语句是 A scanf(“%d%lx,%le”,&x,&y,&z); B scanf(“%2d * %d%lf”,x,y,z);C scanf(“%x %* d%o”,&x,&y); D scanf(“%x%o%6.2f”,&x,&y,&z);2、已知 int I,j,k; scanf(“%d%d%d”,&I,&j,&k); 若从键盘送入I,j,k 的值分别为1,2,3 时,则正确的输入方式是 。(注:表示空格,表示回车)A 1,2,3 B 123 C 123 D1233、以下说法正确的是 A、输入项可以为一个实型常量,如scanf(“%f”,3.5);B、只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C、当输入一个实型数据时,格式控制部分不能规定小数点后的位数,如scanf(“%4.2”,&f)是错误的;D当输入数据时,必须指明控制变量的地址,如scanf(“%f”,&f);4、a是int类型变量,c是字符变量,下列输入语句哪些是正确的 A scanf(“%d,%c”,&a,&c); B scanf(“%d%c”,a,c);C scanf(“%d%c”,&a,&c); D scanf(“d=%d,c=%c”,&a,&c);三、填空题1、以下程序的输出结果是 。 Main() int a=177;printf(“%o”,a);2、以下程序的输出结果是 。 Main() int a=1234; printf(“2dn”,a);四、阅读程序题 分析下来函数段,写出其对应的执行结果。1、已知字母A的ASCII码是65,以下程序的执行结果是。Main()Char c1=A,c2=Y;printf(“%d,%dn”,c1,c2);2、阅读以下程序,当输入数据的形式为:25,13,10,正确的输出为。Main()Int x,y,z;Scanf(“%d,%d,%d”,&x,&y,&z);Printf(“x+y+z=%dn”,x+y+z);3、main()Int a,b;Scanf(“%2d %*2d %2d”,&a,&b);Printf(“%d”,a+b);上面程序运行时,输入12345678回车,结果。4、void main()int a=10,b=10;Printf(“%dt%d”,a-,-b);以上程序运行结果为:。5、main()Int a;Printf(“%dn”,(a=3*4,a*5,a+5);以上程序运行结果为。6、main()Float a=123.45678;Printf(“%-4.2fn”,a);以上程序结构为:。7、main()Char c,d;C=getchar();D=c-33;printf(“%d,%c”,c,d);又以上程序,若输入d,则输出结果为。8、mian()int i=010,j=10,k=ox10;Printf(“%d,%d,%d”,I,j,k);以上程序的运行结果为:。五、操作题1看程序写结果。# include stdio.hmain()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);输出结果为:2.看程序写结果。#include stdio.hvoid main()int a=123,b=-3721;float x=123.456;printf(a=%d,b=%dn,a,b);printf(a=%4d a=%0d a=%-4dn,a,a,a);printf(b=%7d b=%07d b=%-9d b=%2dn,b,b,b,b);printf(a=%8ld,b=%8ldn,a,b);printf(a=%-8ld,b=%-8ldn ,a,b);printf(%3s,%7.2s,%.4s,%-5.3sn,sun,sun,sun,sun);printf(%f,%e,%gn,x,x,x);printf(%10.3e,%010.1e,%012.5en,x,x,x);输出结果为:3.看程序,写结果# include stdio.hvoid main()int a;char c;scanf(%d,&a);scanf(%c,&c);printf(a=%d,a);printf(c=%c,c);输出结果为:4.看程序,写结果# include stdio.hvoid main()char s=goodnsuntday;puts(s);输出结果为:5.看程序,写结果# includestdio.hvoid main()char s10;gets(s);puts(s);结果为:6看程序,写结果# include stdio.h# include stdio.hvoid main()char s115=hello,s210=world;strcat(s1,s2);puts(s1);puts(s2);strcat(s1,good);puts(s1);结果为:7.看程序,写结果#include string.h#include stdio.hvoid main()char s120=helloworld,s210=good;strcpy(s1,s2);puts(s1);puts(s2);strcpy(s1,welcome);puts(s1);结果为:8.看程序,写结果# include string.h#include stdio.hvoid main()char s1=ABC,s2=ABD;int n;n=strcmp(s1,s2);printf(n=%dn,n);n=strcmp(s2,s1);printf(n=%dn,n);结果为:9.看程序,写结果# include “string.h”# include string.h# include stdio.hvoid main()char s1=goodetbettertbestn;char s2=ab105;puts(s1);puts(s2);printf(%dn,strlen(s1);printf(%dn,strlen(s2);printf(%dn,strlen(hello);printf(%dn,strlen(world);结果为:10.看程序,写结果# include string.h# include stdio.hvoid main()char s1=GoodtBetteRtBesrn;char s2=AB105;puts(s1);puts(s2);strlwr(s1);strlwr(s2);puts(s1);puts(s2);结果为:11.看程序,写结果# include “string.h”# include string.h# include stdio.hvoid main()char s1=goodtbettertbestn;char s2=ab105;puts(s1);puts(s2);strupr(s1);sstrupr(s2);puts(s1);puts(s2);结果为:12. 看程序,写结果# include string.h# include stdio.hvoid main()char c;printf(please input a letter:);scanf(%c,&c);c=(c=a&c0); 不能看作是一条合法的条件语句3、if语句后面的表达式只能是关系表达式4、判断整型变量a即是5又是7的整数倍的C表达式是(a%5=0 & a%7=0)5、在C语言中10!=9的值是16、在C语言中表达式(a=2)&(b=-2)的值是17、在switch语句中必须使用break语句8、在switch语句中必须使用break语句9、在标准C中,没有逻辑型数据,故不能使用逻辑表达式。10、在标准C中,所有关系运算符的优先级都相同。11、在if语句中,else前一个语句可不加“;”。12、在标准C中,逻辑表达式中只允许出现逻辑型数据。13、在标准C中,所有的ifelse语句都可以用条件语句替换。14、在switch语句中,case后可不加“ ”。15、在C语言中,将语句if(x=5);写成if(x=5);将导致编译错误。16、在所有关系运算符中,其优先级最低的是“=和!=”。 17、若x的当前值为5,执行语句“if(x(=3)x=x+5;”后的值仍为5。18、在C程序中,用整数0表示逻辑“假”。19、表达式!(x0|y0)等价于!(x0)&!(y0) .20、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。21、if语句中条件表达式只能是关系表达式或逻辑表达式22、若有 int k1;while(k=1) k+;则while循环执行的次数是1次23、break语句不能够单独使用,只能用于循环语句和switch语句24、break语句可以用来跳出整个循环语句25、do-while语句构成的循环至少执行一次26、for(i=1; i+4;);语句结束后变量i的值是427、for语句只能用于循环次数已经确定的情况28、while 的循环控制条件比 do-while 的循环控制条件严格29、while语句构成的循环至少执行一次30、选择结构(if语句)和循环结构都可以使用嵌套形式31、循环语句中如果包含若干条语句,则必须用大括号括起来32、在 while 循环中允许使用嵌套循环,但只能是嵌套 while 循环。33、在循环过程中,使用break语句和continue语句的作用是一样的34、在标准C中,while和do_while的功能完全相同。35、在标准C中,while后表达式只能是逻辑或关系表达式。36、在标准C中,for语句后的三个表达式必须都出现。37、在标准C中,for语句后的三个表达式是按其先后次序执行的。38、在标准C中,for语句后的三个表达式可以是任意类型的表达式。39、break的作用可以结束循环多重循环,即有多重循环时,可直接跳到最外层。40、执行“for(I=1;Ib) if(bc) printf(%d,d+ + 1) ; else printf(%d,+d+1) ; printf(%dn,d) ;程序运行后的输出结果是( )A2 B3 C43 D444下列条件语句中,功能与其他语句不同的是( ) Aif(a) printf(%dn,x) ;else printf(%dn,y) ; Bif(a=0) printf(%dn,y) ;else printf(%dn,x) ;Cif(a!=0) printf(%dn,x) ;else printf(%dn,y) ;Dif(a=0) printf(%dn,x) ;else printf(%dn,y) ;5为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。A缩排位置相同的if B在其之前未配对的ifC在其之前未配对的最近的if D同一行上的if6 选择出合法的if语句(设int x,a,b,c;)( )。 Aif(a=b) c+; Bif(a=b) c+; Cif(ab) c+; Dif(a=b) c+;7判断char型变量s是否为小写字母的正确表达式是( )。 Aa = s=a) & (s=a) & (s=z) D(a=s)8若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 Ax%2=1 B!(x%2=0) C!(x%2) Dx%29指出下列程序段所表示的逻辑关系是( )。if(a0) y=1; By=0; Cy=0; Dif (x=0)else if (x=0) y=0; if (x0) y=1; if (x=0) if (x0) y=1; else y= -1; else if (x0) y=1; else y=0; else y= -1; else y= -1;11执行以下语句后,y 的值为( )。int x,y,z;x=y=z=0;+x | +y & +z;A0 B1 C2 D不确定值12已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是( )。if(ab)c=a; a=b; b=c;Aa=1, b=2, c=3 Ba=2, b=3, c=3 Ca=2, b=3, c=1 Da=2, b=3, c=213请阅读以下程序:该程序( )。#include ”stdioh”main() int x=-10, y=5, z=0;if (x=y+z) printf(”*n” );else printf(”$n”);A有语法错不能通过编译 B可以通过编译但不能通过连接C输出* D输出$14以下程序的运行结果是( )。#include ”stdio.h”main() int a=1;if (a+1) printf(”%dn”, a);else printf(”%dn”, a-);A0 B1 C2 D315当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是( )。 if (ab)if (cd) x=1;else if (ac) if (bd) x=2; else x=3;else x=4;else x=5;A1 B2 C3 D416执行以下程序段后,变量x,y,z的值分别为( )。 int a=1,b=0, x, y, z;x=(-a=b+)?-a:+b;y=a+;z=b;Ax=0,y=0,z=0 Bx= -1,y= -1,z= 1 Cx=0,y=1,z=0 Dx= -1,y= 2, z= 117若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。a=1;b=2;c=3;d=4;w=(ab)?a :b;w=(wc)?w :c;w=(wb? ac?a:c :b);A5 B4 C6 D不确定19下列程序段的输出结果为( )。main()int x=3;do printf(%3d,x-=2);while(!(-x);A.1 B.3 0 C.1 -2 D.死循环20有如下程序,写出该执行结果()。#include ”stdio.h”main() float x=2.0, y; if (x0.0) y=0.0;else if (x10.0) y=1.0/x;else y=1.0;printf(”%fn”,y);A0.000000 B0.250000 C0.500000 D1.00000021以下程序的运行结果是()。#include ”stdio.h”main() int a=2,b= -1,c=2;if (ab)if (b8;y=+i)printf(%d%d,x-,y);A.10192 B.9876 C.10990 D.10109129 当执行以下程序段时。 x=-1;do x=x*x;while (!x);A.循环体执行一次 B.循环体执行两次 C.循环体执行无数次D.系统提示有语法错误30 执行以下程序后输出的结果是( )。main() int y=10;doy-;while(-y);printf(%dn,y-);A.-1 B.1 C.8 D.031 下面程序的输出结果是( )。main() int x=3,y=6,a=0;while (x+!=(y-=1)a+=1;if (yx) break;printf(x=%d,y=%d,a=%dn,x,y,a);A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=3 D.x=5,y=4,a=132若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是 ( )。for (i=5;i;i-)for (j=0;j4;j+)A.20 B.24 C.25 D.3033 请读程序:#includemain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y) case 0:a+;break; case 1:b+;break;case 2:a+;b+;break;printf(a=%d,b=%dn,a,b);上面程序的输出结果是( )。A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 34在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为( )。A.0 B.1 C.true D.非035有以下程序 main( ) char k; int i; for(i=1;i3;i+) scanf(%c,&k); switch(k) case 0: printf(anothern);break; case 1: printf(numbern); 程序运行时,从键盘输入:01,程序执行后的输出结果是 。A、

温馨提示

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

最新文档

评论

0/150

提交评论