C语言程序设计试题及答案解析(共30页)_第1页
C语言程序设计试题及答案解析(共30页)_第2页
C语言程序设计试题及答案解析(共30页)_第3页
C语言程序设计试题及答案解析(共30页)_第4页
C语言程序设计试题及答案解析(共30页)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、C C 语言程序设计试题语言程序设计试题一、选择题一、选择题1、 一个 C 程序由若干个 C 函数组成,各个函数在文件中的位置顺序为:()A、 任意 B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:()A、 C 程序中的所有字母都必须小写B、 C 程序中的关键字必须小写,其他标示符不区分大小写C、 C 程序中的所有字母都不区分大小写D、 C 语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:()A、 一个 C 源程序必须有且只能有一个主函数B、 一个 C 源程序可以有多个函数C、 在 C

2、源程序中注释说明必须位于语句之后D、 C 源程序的基本结构是函数4、 下面不是 C 语言合法标识符的是:()A、abc B、5n C、_4m D、x35、 以下叙述不正确的是:()A.分号是 C 语句的必要组成部分B.C 程序的注释可以写在语句的后面C.函数是 C 程序的基本单位D.主函数的名字不一定非用 main 来表示6、C 语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型 B. 整型、实型、字符型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、C 语言中能用八进制表示的数据类型为:()A、字符型、整型 B、整形、实型C、字符型、实型、双精度型 D、字符型、整型、

3、实型、双精度型8、下列属于 C 语言合法的字符常数是:()A、 97 B、 ”A” C、 t D、 ”0”9、在 C 语言(VC 环境)中,5 种基本数据类型的存储空间长度的排列顺序为:() A、charint=long int =floatdoubleB、char=intlong int =floatdoubleC、charintlong int=float=doubleD、char=int=long int =floatdouble10、 在 C 语言中(VC 环境) ,一定是长整型常数的是:() A、0L B、4962710 C、0412765 D、0 xa34b7fe11、 若有以下定

4、义语句 char c1=b, c2=e; printf(“%d,%cn”,c2-c1,c2-a+A);则输出结果是:() A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:() A、x=y=100 B、d-; C、x + y D、c = int(a+b);13、 设变量 t 为 int 型,下列选项中不正确的赋值语句是:() A、+t; B、n1=(n2=(n3=0); C、k=i=m; D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:() A、=10 or a=0 B、a=0 C、a=10 | a=10 & a=

5、016、 下列只有当整数 x 为奇数时,其值为“真”的表达式是:() A、x%2=0 B、!(x%2=0) C、(x-x/2*2)=0 D、!(x%2)17、 设 a 为整型变量,不能正确表达数学关系 10a15 的 C 语言表达式是:() A、1 0 a 15 B、!(a=15) C、a10 & a15 D、!(a=15)18、 已知 x=43, ch=A ,y=0;则表达式(x=y&ch8)D #include 以下不是 C 语句的是:()Aa=8; Ba+; Cif(a8);Dfor(i=1;i x -2 )|(4 x 8)B!( x 2 )&( x 8 )C( x = -2 )&( x

6、 4 )&( x -2 )&( x 4 )|( x 8 )&( x 10;后,t 的值为0 29.( )若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变30.( )在 C 程序中,%是只能用于整数运算的运算符31.( )在 C 语言中,逻辑“真”等价于不等于 0 的数32.( )C 语言中字符型、整型、实型都能用八进制表示33.( )在 VC 语言中,5 种基本数据类型的存储空间长度的排列顺序为:charintlong int floatdouble34.( )变量的三要素是:变量名、变量类型、变量的值。 第第 4 章章 顺序结构顺序结构一

7、、选择题一、选择题1、下面程序的输出是:() main() int k=11; printf(k=%d,k=%o,k=%xn,k,k,k); A) k=11,k=12,k=13 B) k=11,k=13,k=13C) k=11,k=013,k=oXb D) k=11,k=13,k=b 2、以下合法的 C 语言赋值语句是:() A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)- i; 3、以下程序的输出结果是:() main() int x=10,y=3;printf(“%dn”,y=x/y); A)0 B)1 )3 D)不确定 4、若变量已正确说明为 int 类型,

8、要给 a,b,c 输入数据,以下正确的输入语句是:() A)read (a,b,c); B)scanf(“%d%d%d”,a,b,c);C)scanf(“%D%D%D”,%a,%b,%c); D)scanf(“%d%d%d”,&a,&b,&b); 5、执行下面程序段后,c3 中的值是:()int c1=1 , c2=2 , c3;c3=c1/c2; A)0 B)1/2 C)0.5 D)1 6、若执行以下程序段,其输出结果是:()int a=0 , b=0 , c=0;c=(a-=a-5) , (a=b,b+3) ;printf(“%d , %d , %dn” , a,b,c); A)0,0,0

9、 B)0,0,5 C)5,0,5 D)-10,0,-10 7、以下程序段的输出是:()float a=57.666;printf(“*%2.2f*n”, a);A)*57* B)*58* C)*57.66* D)*57.67* 8、若有以下定义和语句:() int a=5,b b=a+;此处 b 的值是:()A) 7 B) 6 C) 5 D) 4 9、若有以下定义和语句:() char c1=b,c2=e; printf(%d,%cn,c2-c1,c2-a+A)则输出结果是:()A) 2,M B) 3,E C) 2,e D) 输出结果不确定 10、以下程序的输出结果是:() main() in

10、t x=10,y=10; printf(%d%dn,x-,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 9 11、在 C 语言中,如果下面的变量都是 int 类型,则输出结果是:() sum=pad=5; pad=sum+,pad+,+pad; printf(%dn,pad);A) 7 B) 6 C) 5 D) 4 12、以下程序的输出结果:() #include main() int i=010,j=10; printf(%d,%dn,+i,j-); A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、在 C 语言中,short 类型数据的范围是

11、-3276832767,下面程序段的输出结果是:() short i =65536; printf(%dn,i);A) 65536 B) 0C) 1 D)超出取值范围,无输出结果 14、已知字符 A 的 ASCII 码为十进制的 65,下面程序的输出是:() main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(%d,%cn,ch1,ch2); A) 67,D B) B,CC) C,D D) 不确定的值 15、若有定义和语句: char s; s=abcd; printf(%dn,s);则结果是:()A) 输出 97 B) 输出 aC) 输出 ad

12、cb D) 编译不能通过 16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行,代表空格): 12 ABC 则能给 x 赋整数 1,给 y 赋数 2,给 a 赋字符 A,给 b 赋字符 B,给 c 赋字符 C 的正确程序段是:() A) scanf(x=%d y=%d,&x,&y); a=getchar(); c=getchar(); B) scanf(%d%d,&x,&y); a=getchar(); b=getchar(); c=getchar(); C) scanf(%d%d%c%c%c,&x,&y,&a,&b,&c);D) scanf(%d%d%c%

13、c%c%c%c%c,&x,&y,&a,&a,&b,&b,&c,&c); 17、两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是:() main() int x; scanf(%d,&x); if (x+5) printf(%d,x) else printf(%dn,x-); A) 7 和 5 B) 6 和 3 C) 7 和 4 D) 6 和 4 18、若执行下面的程序从键盘输入 3 和 4,则输出是:() main() int a,b,s; scanf(%d%d,&a,&b); s=a; if (ab) s=b; s=s*s; printf(%dn,s); A) 14 B)

14、16 C) 18 D) 20 19、设 i 是 int 型变量,f 是 float 型变量,用下面的语句给这两个变量输入值scanf(i=%d,f=%f,&i,&f);为了把 100 和 765.12 分别赋给 i 和 f,则正确的输入为:()A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100,y=765.12 20、以下程序的输出结果是:() #include main() int n; printf(%dn,n); A) -1 B) 0 C) 1 D) 不确定 二、判断题二、判断题1( )在 C 语言中,实型数据在内存都中占 4 个字节。

15、 2( )在 C 语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3( )若有定义和语句:int a;char c;scanf(%d,%c,&a,&c);当通过键盘输入:10,A之后,则变量 a 中存放的是 10,变量 c 中存放的是A 。 4( )C 语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5( )在 C 语言中,变量可以不要定义,直接使用 6( )一个 C 语言程序总是从主函数开始执行的 7( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面8( ) “a”和a均是占用 1 个字节的内存空间 的数据 第第 5、6 章章选择与循环结构选择与

16、循环结构一、选择题一、选择题1.有以下程序 main( ) int i; for ( i=0; ibc) printf(%dn, d); else if ( (c-1 = d) =1) printf(%dn, d+1); else printf(%dn, d+2); 执行后输出结果是:() A)2 B)3 C)4 D)编译时有错,无结果 4.有以下程序 main() int i=0,s=0; do if (i%2) i+; continue; i+; s += i; while( ib?(ac?a:c):(b); A) 5 B) 4 C) 6 D) 不确定 6.以下程序中,while 循环的循

17、环次数是:() main() int i=0; while(i10) if(i1) continue; if(i=5) break; i+; A) 1 B) 10 C) 6 D) 死循环,不能确定次数 7.以下程序的输出结果是:() main( ) int a=0,i; for(i=1;i5;i+) switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; printf(%dn,a); A) 31 B) 13 C) 10 D) 20 8.以下程序的输出结果是:() main() int a=4,b=5,c=0,d;

18、 d=!a & !b | !c; printf(%dn,d); A) 1 B) 0 C) 非 0 的数 D) -1 9.以下程序的输出结果是:() #include main() int i=0,a=0; while(i20) for( ; ; ) if(i%10)=0) break; else i-; i+=11; a+=i; printh(%dn,a); A) 21 B) 32 C) 33 D) 11 10. 阅读以下程序:( ) main() int x; scanf(%d,&x); if(x-5) printf(%dx); else printf(%dx+); 程序运行后,如果从键盘上

19、输人 5,则输出结果是:()A)3 B) 4 C) 5 D) 6 11. 假定 w、x、y、z、m 均为 int 型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w : x; m=(my)?m : y; m=(mz)?m: z;则该程序运行后,m 的值是:()A) 4 B) 3 C) 2 D) 1 12. 以下程序的输出结果是:() main() int a, b; for(a=1, b=1; a=10) break; if (b%3=1) b+=3; continue; printf(%dn,a); A) 101 B) 6 C) 5 D) 4 13. 若执行以下

20、程序时从键盘上输入 9,则输出结果是:() main() int n; scanf (%d,&n); if(n+10) printf (%dn,n); elseprintf(%dn,n-); A) 11 B) 10 C) 9 D) 8 14. 有以下程序段 int k=0while(k=1)k+; 则 while 循环执行的次数是:() A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行 1 次 15. 以下程序执行后 sum 的值是:() main() int i , sum; for(i=1;i6;i+) sum+=i; printf(%dn,sum); A)15 B)

21、14 C) 不确定 D)0 16. 有以下程序段 int x=3 do printf (%d,x -=2);while (!(-x); 其输出结果是:() A) 1 B) 3 0 C) 1 -2 D) 死循环 17. 若变量 c 为 char 类型,能正确判断出 c 为小写字母的表达式是:() A) a=c= a)|(c= z) C) (a=c) D) (c= a)&(c1) & (z8;y=i ) printf(“%d %d ” ,x-,y); A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 0 20. 以下程序的输出结果是:() main() int i

22、; for(i=1;i=6;i+) if(i%2) printf(“#”);continue; printf(“*”); printf(“n”); A)#*#*# B)# C)* D)*#*#* 21. 以下程序的输出结果是:() main() int i; for(i=A;i5) printf (“%dn” ,m); else printf (“%dn” ,m-); A )7 B )6 C)5 D)4 23. 运行以下程序后,如果从键盘上输入 china#回车 ,则输出结果为:() #include main() int v1=0,v2=0; char ch ; while (ch=getc

23、har()!=#) switch (ch ) case a: case h: default:v1+; case 0:v2+; printf(“%d,%dn” ,v1,v2); A) 2,0 B)5,0 C) 5,5 D)2,5 24. 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=ab)&(n=cd)后,n 的值为:()A)1 B)2 C)3 D)0 25. 以下程序的输出结果是:() main() int i,j,x=0; for (i=0;i2;i+) x+; for(j=0;j3;j+) if (j%2) continue; x+; x+

24、; printf(“x=%dn” ,x); A)x=4 B)x=8 C)x=6 D)x=12 26. 设 x 和 y 均为 int 型变量,则执行以下的循环后,y 值为:() for(y=1,x=1;y=50;y+) if(x=10)break; if (x%2=1) x+=5;continue; x-=3; A)2 B)4 C)6 D)8 27. 假定 a 和 b 为 int 型变量,则执行以下语句后 b 的值为:() a=1;b=10; do b-=a; a+;while (b-3;j-) if(j%3) j-; -j;-j; printf(“%d ” ,j); A)6 3 B)7 4 C

25、)6 2 D)7 3 29. 有以下程序 main() int x, i; for(i=1;i12 ? 15 :65 ? 8 :9 )后,变量 k 的值为:()A. 9 B. 8 C. 15 D. 1 32. 以下程序运行后,如果从键盘上输人 5,则输出结果是:()main( ) int x;scanf(%d,&x);if(x-5)printf(%d,x);elseprintf(%d,x+);A、3 B、4C、5 D、6 33. 以下程序段的输出结果是:()int k, j , s ;for(k=2;k6;k+,k+) s=1;for (j=k;j6;j+)s+=j; printf(“%dn”

26、,s); A)9 B)1 C)11 D)10 34. 以下程序段的输出是:() int i,j,m=0;for (i=1;i=15;i+=4)for (j=3;j=19;j+=4) m+;printf(“%dn”,m);A)12 B)15 C)20 D)25 35. 以下程序段的输出结果是:() int i, sum;for(i=1;i6;i+) sum+=sum;printf(“%dn”,sum);A)15 B)14 C)不确定 D)0 36. 下面程序的输出是:(D) main() int x=3,y=6,a=0; while (x+!=(y-=1) a+; if (y7) n-; pri

27、ntf(%3d,n); A) 10 9 8 B) 9 8 7C) 10 9 8 7 D) 9 8 7 6 38. 以下程序段的输出结果是:() int x=3; do printf(%3d,x-=2; while (!(-x);A) 1 B) 3 0 C) 1 -2 D) 死循环 39. 执行下面的程序后,a 的值为:() 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) 9 D) 10 40. 读程序: main() int num=0; while (num=2)

28、num+; printf(%3d,num); 上面程序的输出结果是:()A) 1B) 22C) 1 2 3D) 1234 41. 以下循环体的执行次数是:() main() int i,j; for(i=0,j=1;i=j+1;i+=2,j-)printf(%d n,i); A) 3 B) 2 C) 1 D) 0 42. 在 C 语言的循环语句 for,while,do-while 语句中,用于直接中断最内层循环的语句是:()A) switch B) continue C) break D) if 二、判断题:二、判断题:1.( )用 1 作 while 循环的判断条件,则循环一次也不执行。

29、2.( )for 循环表达式的括号内的 3 个表达式均不可以省略。 3.( )语句 while(!E);中的条件!E 等价于 E=0。 4.( )语句 while(E);中的条件 E 等价于 E!=0。 5.( )若有 for(;),是指循环体执行 0 次。 6.( )程序有死循环的时候,上机编译不能通过。 7.( )强制终止死循环可以使用 CTRL+BREAK 组合键。 8.( )执行 for(I=0;I3;I+);后 I 的值为 2。 9.( )执行 for(I=0,j=0;I2;I+);j=j+1;后 j 的值为 1。 10.( )所有类型的循环都可以进行嵌套使用。 11.( )利用 b

30、reak 语句可以提前终止循环的执行。 12.( )利用 continue 语句可以提前终止循环的执行。 13.( )break 语句和 continue 语句不可以同时出现在同一个循环体内。 14.( )switch 语句中,每一个 case 的冒号后面都必须至少跟有一条语句15.( ) 关于 if 语句中,条件表达式只能是关系表达式或逻辑表达式 第第 7 7 章章数组数组一、选择题一、选择题1、若有以下说明语句: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g; 则数值为 4 的表达式是:() 。 A、ag-c B、a4 C、ad-c D、

31、ad-c 2、假设 int 型变量占两个字节的存储单元,若有定义: int x10=0,2,4; 则数组 x 在内存中所占字节数为:() A、3 B、6 C、10 D、20 3、下列合法的数组定义是:() A、int a=”string”; B、int a5=0,1,2,3,4,5; C、char a=”string”; D、char a=0,1,2,3,4,5; 4、若给出以下定义: char x=”abcdefg”; char y=a,b,c,d,e,f,g; 则正确的叙述为:() A、数组 x 和数组 y 等价 B、数组 x 和数组 y 的长度相同 C、数组 x 的长度大于数组 y 的长

32、度 D、数组 y 的长度大于数组 x 的长度 5、下面程序段的输出结果是:() int j; int x33=1,2,3,4,5,6,7,8,9; for (j=0;j3;j+) printf(“%d”,xj2-j); A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 9 6、下列程序运行后的输出结果是:() main() int n3,t,j,k; for(t=0;t3;t+) nt=0; k=2; for(t=0;tk;t+) for(j=0;j3;j+) nj=nt+1; printf(“%dn”,n1);A、 2 B、 1 C、 0 D、3 7、有以下程序main() int

33、 p7=11,13,14,15,16,17,18, i=0,k=0;while(i7 & pi%2) k =k+ pi; i+; printf(%dn, k); 执行后输出结果是:()A、58 B、56 C、45 D、24 8、以下能正确定义数组并正确赋初值的语句是:()A、int N=5,bNN; B、int a12=1,3;C、int c2= 1,2,3,4; D、int d32=1,2,3,4; 9、有以下程序main() int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0; i3; i+) printf(%d ,mki); 执行后输出结果是:(C)

34、A、4 5 6 B、2 5 8 C、3 6 9 D、7 8 9 10、以下能正确定义一维数组的选项是:()A、int num; B、int num0.100; C) #define N 100 D) int N=100;int numN; int numN; 11、下列选项中正确的语句组是:()A、char s8; s=Beijing; B、char *s; s=Beijing;C、char s8; s=Beijing; D、char *s; s=Beijing; 12、有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b 中的值是:()A、5

35、B、6 C、8 D、9 13、有以下程序main( ) char a=abcdefg,b10=abcdefg; printf(%d %dn,sizeof(a),sizeof(b); 执行后输出结果是:()A、7 7 B、8 8 C、8 10 D、10 10 14、有以下程序的输出结果是:()void swap1(int c) int t; t=c0;c0=c1;c1=t;void swap2(int c0,int c1) int t; t=c0;c0=c1;c1=t;main( ) int a2=3,5,b2=3,5; swap(a); swap2(b0,b1); printf(%d %d %

36、d %dn,a0,a1,b0,b1); A、5 3 5 3 B、 5 3 3 5 C、3 5 3 5 D、3 5 5 3 15、有以下程序int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a); 执行后的输出结果是:()A、12 B、11 C、18 D、16 16、有以下程序void sort(int a,int n) in t i,j,t; for(i=0;in-1;i+=2)for(j=i+

37、2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i10;i+) printf(%d,aai); printf(n); 其输出结果是:()A、1,2,3,4,5,6,7,8,9,10, B、10,9,8,7,6,5,4,3,2,1,C、9,2,7,4,5,6,3,8,1,10, D、1,10,3,8,5,6,7,4,9,2, 17、有以下程序void f(int a,int i,int j) int t; if(ij) t=ai; ai=aj;aj=t

38、;f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(%d,aai); printf(n); 执行后输出结果是:()A、5,4,3,2,1, B、5,2,3,4,1, C、1,2,3,4,5, D、1,2,3,4,5, 18、 以下程序的输出结果是:()main() char cf35=AAAA,BBB,CC; printf(%sn,ch1); A、AAAA B、 BBB C、 BBBCC D、 CC19、 以下程序的输出结果是:()main() int b33=0,1,2,0,1,2,0,1,

39、2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+) t=t+bibjj; printf(%dn,t); A、 3 B、 4 C、 1 D、 9 20、有以下程序 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0; for(i=0;i=0&chj=9;j+=2)s=10*s+chj-0;printf(“%dn”,s); A、12ba56 B、66521 C、6 D、62 26、设已定义 char s=”NameAddress”n”;,则字符串 s 所占的字节数是:()A、19 B、18 C、15

40、 D、14 27、设已定义 char c8=”Tianjin”和 int j,则下面的输出函数调用中错误的是:()A、printf(“%s”,c); B、for(j=0;j8;j+) printf(“%c”,cj);C、puts(c); D、for(j=0;j8;j+) puts(cj); 28、设已定义 char a10和 int j,则下面输入函数调用中错误的是:()A、scanf(“%s”,a); B、for(j=0;j9;j+) scanf(“%c”,aj);C、gets(a); D、for(j=0;j9;j+) scanf(“%c”,&aj); 29、设已定义 char x8和 in

41、t j,为了给该数组赋值,下面语句中正确的是:()A、x8=”Turbo C”; B、x=” Turbo C”;C、x=”Turbo C”; D、for(j=0;j7;j+) xi=getchar(); 30、有如下程序,main() int n5=0,0,0,j,k=2; for(j=0;js2)Bif(strcmp(s1,s2)Cif(strcmp(s2,s1)0)Dif(strcmp(s1,s2)0) 44.若有说明:int a4=0,0;,则下面不正确的叙述是:() 。A数组 a 的每个元素都可得到初值 0B二维数组 a 的第一维大小为 1C因为二维数组 a 中初值的个数不能被第二维大

42、小的值整除,则第一维的大小等于所得商数再加 1,故数组 a 的行数为 1D只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 45.下列语句中,不正确的是:() 。Achar str5=hello;Bchar str=h,e,l,l,o,0;Cchar str5=hi;Dchar str100=; 46.下面错误的初始化语句是:() 。Achar str=hello;Bchar str100=hello;Cchar str=h,e,l,l,o;Dchar str=hello; 47.定义了一维 int 型数组 a10后,下面错误的引用是:() 。Aa0=1;Ba10=2;Ca0=5

43、*2;Da1=a2*a0; 48.下面的二维数组初始化语句中,错误的是:() 。Afloat b22=0.1,0.2,0.3,0.4;Bint a2=1,2,3,4;Cint a2= 1,2,3,4;Dfloat a22=0; 49.引用数组元素时,数组下标可以是:() 。A整型常量B整型变量C整型表达式D以上均可 50.定义了 int 型二维数组 a67后,数组元素 a34前的数组元素个数为:() 。A24B25C18D17 51.strlen(A0B0C)的结果为:() 。A0 B1 C2 D3 52.下面程序的运行结果是:() 。main()int a3=1,2,3,4,5,6;prin

44、tf(%d,a11);A3 B4 C5 D6 53.下面程序的运行结果是:() 。main()char s120=Good!;char s215=AB;printf(%d,strlen(strcpy(s1,s2);A20B15C5 D2 54.下面程序的运行结果是:() 。main()char s120=ABCDEF;int i=0;while(s1i+!=0)printf(%c, s1i+);AABCDEFBBDFCABCDE DBCDE 55.下面程序的运行结果是:() 。main()int n2=0,i,j,k=2;for(i=0;ik;i+)for(j=0;jk;j+)nj=ni+1;

45、printf(%dn,nk);A不确定的值B3C2D1 56.下面程序的运行结果是:() 。main()int x=22,33,44,55,66,77,88;int k,y=0;for (k=1;k=4;k+)if (xk%2=1)y+;printf(%d,y);A0B1C2D3 57.下面程序的运行结果是:() 。main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=0&chi=a&si=z)printf(%c,si);i+;AabBab1c2d4eCabcdeDa 60.下面程序的运行结果是:() 。main()int i=0,

46、n=0;char s10=298h01;for(i=0;si!=0;i+)if(si=0)n=n*10+(si-0);elsebreak;printf(%dn,n); A298h01B29801C01D298 二、判断题:二、判断题:1.( )在程序中可以对数值数组中的数据进行整体使用。2.( )如果 strcmp(s1,s2)的返回值为一个负数,则表明字符串 s1 一定小于字符串s2。3.( )字符数组的输出不能一次性的整体输出。4.( )用 scanf 函数输入的字符串不可以带空格。5.( )用 gets 函数输入的字符串可以带空格。6.( )实现两个字符串的复制可以使用 str1=str

47、2;语句。7.( )使用 strcpy 函数可以实现两个字符串的复制。8.( )使用 strcat 函数可以实现两个字符串的连接。9.( )使用 strlen 函数可以求出一个字符串的实际长度(包含0字符) 。10.( )如有定义 char a=”student”;则数组 a 的长度为 7。11.( )如有定义 char a20;则可以通过 a=“I am a boy”;给 a 赋值。12.( )如有定义 int a23;则数组 a 的最后一个元素为 a12。13.( )如有定义 int a340; 则数组 a 的所有元素初值均为 0。14.( )C 语言中数组名实质上是数组的首地址,是一个变

48、量地址,可对其进行赋值。15.( )构成数组的各个元素可以有不同的数据类型。16.( )若有说明:int a10;,则可以 a10引用数组 a 的第 10 个元素。17.( )引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。18.( )若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4。19.( )一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组。20.( )在 C 语言中,允许用字符串来直接初始化字符数组。21.( )字符数组的输出不能一次性的整体输出。22. ( )使用 strcat 函数可以实现两个字符串的复制。

49、第第 8 8 章章函函数数一、选择题一、选择题1.若调用一个函数,且此函数中没有 RERUrn 语句,则关于该函数正确的说法是:()A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值 2. 在 c 语言中以下不正确的说法是:()A.实参可以是常量、变量、或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致 3.以下程序有语法性错误,有关错误原因的正确说法是:() main() int G=5,k;void prt_char(); k=prt_char(G); A.语句 void prt_char();有错,它是

50、函数调用语句,不能用 void 说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线 4.以下正确的说法是:()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套 5.若使用一个数组名作函数实参,则以下正确的说法是:()A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调用函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致 6.在一个函数内部定义的变量是:()A、 简单变量 B、 局部变量 C、 全局变量

51、D、 标准变量 7.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参 8.已定义以下函数fun(int*p) return *p; 该函数的返回值是:()A)不确定的值 B)形参 p 中存放的值C)形参 p 所指存储单元中的值 D)形参 p 的地址值 9.以下所列的各函数首部中,正确的是:() A、 void play(var :Integer,var b:Integer) B、 void play(int a,b) C、 void play(i

52、nt a,int b) D、 Sub play(a as integer,b as integer) 10.当调用函数时,实参是一个数组名,则向函数传送的是:()A、 数组的长度 B、 数组的首地址C、 数组每一个元素的地址 D、 数组每个元素中的值 11.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:() A、 地址传递 B、 单向值传递 C、 由实参传给形参,再由形参传回实参 D、 传递方式由用户指定 12.以下函数值的类型是:()fun ( float x ) float y; y= 3*x-4; return y; A、 int B、 不确定 C、 void D、

53、 float 13.下列函数的功能是:()int fun1(chat* x) char*y=x; while(*y+); return(y-x-1);A)求字符串的长度 B、比较两个字符串的大小 C、将字符串 X 复制到字符串 Y D、将字符串 X 连接到字符串 Y 后面 14.下面程序的输出结果是:() void prty(int * x) printf(%dn,+*x); main() int a=25; prtv(&a);A、23 B、24 C、25 D、26 15.以下对 C 语言函数的有关描述中,正确的是:() A、只能把实参的值传送给形参,形参的值不能传送给实参 B、C 函数既可以

54、嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数D、C 程序中所有函数都可以嵌套调用 16.以下叙述中不正确的是:()A)在 C 中,函数体中定义的动态变量可以赋初值,每调用一次,赋一次初值. B、 在 C 中,函数体中定义的静态变量可以赋初值,每调用一次,赋一次初值. C、 在 C 中,局部变量的隐含类别是自动存储类别. D)在 C 中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容. 17.以下叙述中不正确的是:()A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变

55、量在本函数范围内有效 18.有以下程序 void fun (int a,int b,int c) a=456; b=567; c=678; main() int x=10, y=20,z=30; fun (x,y,z); printf(%d,/%d,%dn,x,y,z); 输出结果是:()A、30,20,10 B、10,20,30 C、456,567,678 D、678,567,456 19.有以下程序 ( )int fun(int x,int y,int *cp,int *dp) *cp=x+y; *dp=x-y; main() int a, b, c, d; a=30; b=50; fun

56、(a,b,&c,&d); printf(%d,%dn, c, d); 输出结果是:()A、50,30 B、30,J50 C、80,-20 D、80,20 20.下列程序执行后的输出结果是 ( ) 。void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(“%d n”,b0); A、 6 B、 7 C、 8 D、 9 21.一个完整的可运行的 C 源程序中, ( ) 。A、 可以有一个或多个函数 B、 必须有且仅有一个主函数 C、 可以没有主函数 D、 必须有主函数和其他函数 22.下述函数定

57、义形式正确的是( ) 。A、 int f(int x; int y)B、 int f(int x,y)C、 int f(int x, int y)D、 int f(x,y: int) 23.关于函数参数,说法正确的是( ) 。A、 实参与其对应的形参各自占用独立的内存单元B、 实参与其对应的形参共同占用一个内存单元C、 只有当实参和形参同名时才占用同一个内存单元D、 形参是虚拟的,不占用内存单元 24.一个函数的返回值由( )确定。A、 return 语句中的表达式B、 调用函数的类型C、 系统默认的类型D、 被调用函数的类型 25.以下叙述中正确的是( ) 。A、 C 语言程序总是从第一个定

58、义的函数开始执行B、 在 C 语言程序中,要调用的函数必须在 main()函数中定义C、 C 语言程序总是从 main()函数开始执行D、 C 语言程序中的 main()函数必须放在程序的开始部分 26.以下函数fff(float x)printf(“%dn”,x*x);的类型是( ) 。A、 与参数 x 的类型相同B、 void 类型C、 int 类型D、 无法确定 27.以下对 C 语言函数的描述中,正确的是( ) 。A、 C 程序由一个或一个以上的函数组成B、 C 函数既可以嵌套定义又可以递归调用C、 函数必须有返回值,否则不能使用函数D、 C 程序中调用关系的所有函数必须放在同一个程序

59、文件中 28.以下叙述中不正确的是( ) 。A、 在 C 语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、 在 C 的函数中,最好使用全局变量C、 在 C 语言中,形式参数只是局限于所在函数D、 在 C 语言中,函数名的存储类别为外部 29.在一个源文件中定义的外部变量的作用域为( ) 。A、 本文件的全部范围B、 本程序的全部范围C、 本函数的全部范围D、 定义该变量的位置开始至本文件结束 30.有以下函数调用语句:func(exp1,exp2),(exp3,exp4,exp5);其中含有的实参个数和是( ) 。A、 1B、 2C、 4D、 5 31.C 语言中形参的

60、默认存储类别是( ) 。A、 自动(auto)B、 静态(static)C、 寄存器(register)D、 外部(extern) 32.以下正确的函数形式是( ) 。A、 double fun(int x,int y) z=x+y; return z; B、 fun(int x,y) int z; return z; C、 fun(x,y) int x,y; double z; z=x+y; return z; D、 double fun(int x,int y) double z; z=x+y; return z; 33.在一个源程序文件中定义的全局变量的有效范围为( ) 。A、 一个 C

温馨提示

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

评论

0/150

提交评论