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

下载本文档

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

文档简介

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

2、、一个 C 源程序可以有多个函数C、在 C 源程序中注释说明必须位于语句之后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、

3、字符型、实型、双精度型 D、字符型、整型、实型、双精度型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

4、 D、0 xa34b7fe11、若有以下定义语句 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

5、C、a=10 | a=10 & a=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

6、 2 )&( x 8 )C( x = -2 )&( x 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 floa

7、tdouble34. ( )变量的三要素是:变量名、变量类型、变量的值。 三、多选题三、多选题1.目前程序设计采用的基本方法有:A面向过程的程序设计B面向对象的程序设计C面向问题的程序设计D面向机器的程序设计 第第 4 章章 顺序结构顺序结构一、选择题一、选择题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=i

8、nt(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 类型,要给 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;

9、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 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

10、) 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() int 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

11、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 类型数据的范围是-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=

12、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) 输出 adcb 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

13、); 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%c%c%c%c%c,&x,&y,&a,&a,&b,&b,&c,&c); 17、两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是:() main() int x; scanf(%d

14、,&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) 16 C) 18 D) 20 19、设 i 是 int 型变量,f 是 float 型变量,用下面的语句给这两个变量输入值scanf(i=%d,f=%f,&i,&a

15、mp;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 个字节。 2( )在 C 语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3( )若有定义和语句:int a;char c;scanf(%d

16、,%c,&a,&c);当通过键盘输入:10,A之后,则变量 a 中存放的是 10,变量 c 中存放的是A 。 4( )C 语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5( )在 C 语言中,变量可以不要定义,直接使用 6( )一个 C 语言程序总是从主函数开始执行的 7( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面8( ) “a”和a均是占用 1 个字节的内存空间的数据 三、多选题三、多选题 1. 以下所列语句中,不合法的语句是:()A、a=1,b=2B、+a;C、a=a+1=5;D、y= (int) a;E、a=b=c=10; 2. 下列描述正确

17、的是:()A. putchar 函数的作用是向屏幕输出一个字符B. putchar 函数能在屏幕上输出控制字符C. putchar(c)函数中,c 只能是字符型变量,不能是整型变量D. putchar 函数能在屏幕上输出转义字符Eputchar 函数的使用需要包含“stdio.h”头文件 3. 下列描述正确的是:()A. getchar 函数只能接收一个字符B. getchar 函数得到的字符可以赋给一个字符变量C. getchar 函数得到的字符可以赋给一个整型变量D. getchar 函数得到的字符可以作为表达式的一部分Egetchar 函数是编程者自定义的函数 4. printf 函数中

18、,关于格式字符描述正确的是:()A格式字符 o 表示以八进制无符号形式输出整数B格式字符 u 表示以无符号十进制形式输出整数C格式字符 x 表示以无符号十六进制形式输出整数D格式字符 f 表示以实数形式输出单、双精度数E格式字符 e 表示以浮点数形式输出单、双精度数 5. 假设 intx,y,z;若从键盘给 x、y、z 输入数据,下列不正确的输入语句是:()Ainput x、y、z; Bscanf(%d%d%d,&x,&y,&z);Cscanf(%d%d%d,x,y,z); Dread(%d%d%d,&x,&y,&z);Escanf(%d%d%d

19、,&x,&y,&z); 6. 假设 floatx,y,z;,并通过 scanf(%f%f%f ,&a,&b,&c);对 a 赋于10.0,b 赋予 22.0,c 赋予 33.0 的值,下面正确的输入形式是:()(注:符号代表空格)A、102233B、10.022.033.0C、10.0,22.0,33.0D、10.022.033.0E、102233 7. 若有 int a,c;char b;并通过 scanf(%f%c%f ,&a,&b,&c);对 a 赋于整数 10,b 赋予字符 M,c 赋予整数 33 的值,下面正确的

20、输入形式是:()(注:符号代表空格)A、10M33B、10M33C、 10M33D、10M33E、10M33 8. 若有 char ch;,下面可以对变量 c 正确赋值的语句是:()Ach =A;Bgetchar(ch);Cch = getchar(); Dscanf(“%c”,&ch);Eprintf(“%c”,ch=B); 9. 下面属于转义符的有:( )A t B n C %d D 376 E x20 10.若 a 为整型变量,则下列表达式的值为 0 的是( ),Aa % a Ba != aC3/4 D3 & 0Ea = 0 第第 5、6 章章选择与循环结构选择与循环结构

21、一、选择题一、选择题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 循环的循环

22、次数是:() 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

23、; 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+); 程序运

24、行后,如果从键盘上输人 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

25、.若执行以下程序时从键盘上输入 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);

26、 A)15 B)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.以下程序的输出结果是:()

27、 main() int i; 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 ; whi

28、le (ch=getchar()!=#) 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) con

29、tinue; x+; x+; 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)

30、6 3 B)7 4 C)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;

31、printf(“%dn”,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

32、) n-; printf(%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 (n

33、um=2) 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 循环的判断条件,则循环一次也

34、不执行。 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;Ib) m =a; Bif (a);Cif (a=b)=0) m=a; Dif (a=b;

35、)=0) m=a; 3、 如果不加花括号表示 else 与 if 的配对关系,则 else 与 if 的匹配方法,不正确的是 Aelse 与它上面最远的 if 配对 Belse 与它上面最近的 if 配对 Celse 与离它最近的 if 配对 D.else 与它上面最近的且没有和其他 else 配对的 if 配对 4、 关于条件运算符的叙述正确的是A条件运算符的优先级别比关系运算符和算术运算符都低B条件运算符是 C 语言中惟一的一个三目运算符C条件运算符的结合方向是“自右至左”D条件运算符可以替代任何 if 语句的功能 5、 关于 switch 语句叙述正确的是A语句中,case 的冒号后面允

36、许没有语句。Bswitch 语句中,每一个 case 的冒号后面都允许跟有多条语句。C在与 switch 语句配套的 case 语句中所使用的表达式可以是变量或常量 Dswitch 语句中,可以没有 default 语句。 6、 在计数循环 for(表达式 1;表达式 2;表达式 3)中,可以省略的表达式是:()A表达式 1B表达式 2C表达式 3D三个表达式都可以 E一个都不能少 7、 下列语句段是死循环的是( ) An=100; Bs=33; while(n) n=n%100+1; while(s+%2+s%2) s+; Cfor(;); Dfor(i=1;) if(-i)break; E

37、x=0; do x+; while(x=0); 第第 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、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=

38、”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 的长度 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、下列程序运行后的

39、输出结果是:() 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 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,bN

40、N; 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)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、下列选项中正确的语句组是:()

41、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 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、有以下程序的输出结果是:

42、()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 %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

43、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+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

44、,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;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,

45、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,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,

46、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 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

47、(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和 int 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

48、; 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 中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加 1,故数组 a 的行数为 1D只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 45. 下列语句中,不正确的是:() 。Achar str5=hello;Bchar str=h,e,l,l,o,0;Cchar s

49、tr5=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*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. 引用数组元素时,数组下标可

50、以是:() 。A整型常量B整型变量C整型表达式D以上均可 50. 定义了 int 型二维数组 a67后,数组元素 a34前的数组元素个数为:() 。A24B25C18D17 51. strlen(A0B0C)的结果为:() 。A0B1C2D3 52. 下面程序的运行结果是:() 。main()int a3=1,2,3,4,5,6;printf(%d,a11);A3B4C5D6 53. 下面程序的运行结果是:() 。main()char s120=Good!;char s215=AB;printf(%d,strlen(strcpy(s1,s2);A20B15C5D2 54. 下面程序的运行结果是

51、:() 。main()char s120=ABCDEF;int i=0;while(s1i+!=0)printf(%c, s1i+);AABCDEF BBDF CABCDEDBCDE 55. 下面程序的运行结果是:() 。main()int n2=0,i,j,k=2;for(i=0;ik;i+)for(j=0;jk;j+)nj=ni+1;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,

52、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,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.

53、 ( )在程序中可以对数值数组中的数据进行整体使用。2. ( )如果 strcmp(s1,s2)的返回值为一个负数,则表明字符串 s1 一定小于字符串 s2。3. ( )字符数组的输出不能一次性的整体输出。4. ( )用 scanf 函数输入的字符串不可以带空格。5. ( )用 gets 函数输入的字符串可以带空格。6. ( )实现两个字符串的复制可以使用 str1=str2;语句。7. ( )使用 strcpy 函数可以实现两个字符串的复制。8. ( )使用 strcat 函数可以实现两个字符串的连接。9. ( )使用 strlen 函数可以求出一个字符串的实际长度(包含0字符) 。10.

54、( )如有定义 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 语言中数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值。15. ( )构成数组的各个元素可以有不同的数据类型。16. ( )若有说明:int a10;,则可以 a10引用数组 a 的第 10 个元素。17. ( )引用数组元素时,其数组下标

55、的数据类型允许的是:整型常量或整型表达式。18. ( )若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4。19. ( )一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组。20. ( )在 C 语言中,允许用字符串来直接初始化字符数组。21. ( )字符数组的输出不能一次性的整体输出。22. ( )使用 strcat 函数可以实现两个字符串的复制。三、多选题三、多选题1、 以下关于数组的描述中,正确的有:() 。在定义数组时,有时可以将该数组的维数省略数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值构成数组的各个元素可以有不同的

56、数据类型有定义:int a3; 则定义了 a0、a1、a2三个数组元素在程序中可以对数值数组中的数据进行整体使用 2、 以下关于数组的描述中,错误的有:() 。引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式可以通过数组名来整体引用一个数组在程序中可以对数值数组中的数据进行整体使用若有说明:int a10;,则可以 a10引用数组 a 的第 9 个元素若有说明:int a10;,则可以 a10引用数组 a 的第 10 个元素 3、 以下关于数组的描述中,错误的有:() 。可以通过如下语句来完成对一个数组的输入:int a10; scanf(%d,a);可以通过如下语句来完成对

57、一个数组的输入:int a10; scanf(%d,&a);若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4数组元素可以像普通变量一样使用int a9; 则数组 a 的下标范围是 1-9 4、 以下关于数组的描述中,正确的有:() 。数组名实质上是数组的首地址,是一个常量,不能对其赋值在定义数组时,有时可以将该数组的维数省略一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组如有定义 int a340; 则数组 a 的所有元素初值均为 0可以通过数组名来整体引用一个数组 5、 以下关于数组的描述中,错误的有:() 。如有定义 int

58、 a23;则数组 a 的最后一个元素为 a12一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组若有说明:static int a33; 那么数组 a 中每个元素初值为 0在定义二维数组时,可以将该数组的两个维数全部省略如有定义 char a20; 则可以通过 a=I am a boy; 给 a 赋值 6、 若有说明:int a4=0,0;,则下面正确的叙述有:() 。数组 a 的每个元素都可得到初值 0二维数组 a 的第一维大小为 1因为二维数组 a 中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加 1,故数组 a 的行数为 1只有元素 a00和 a01

59、可得到初值 0,其余元素均得不到初值只有元素 a11和 a12可得到初值 0,其余元素均得不到初值 7、 以下关于数组的描述中,正确的有:() 。若有定义 char a=hello;,则数组 a 的长度为 6有定义 char a3; 则定义了 a1、a2、a3三个数组元素构成字符数组的各个元素必须是字符类型的数据可以通过数组名来整体引用一个数组设有数组定义 char array =China; 则数组 array 所占的空间为 5 个字节 8、 以下关于数组的描述中,正确的有:() 。在 C 语言中,允许用字符串来直接初始化字符数组若有定义 char a20;,则可以通过 a=I am a b

60、oy;给 a 赋值若有 char a10=1,2,3;,则是将 3 个初值依次赋给 a1至 a3构成字符数组的各个元素必须是字符类型的数据数组名实质上是数组的首地址,是一个常量,不能对其赋值 9、 以下关于数组的描述中,错误的有:() 。字符数组的输出不能一次性的整体输出若有 char a10=1,2,3;,则是将 3 个初值依次赋给 a0至 a2构成字符数组的各个元素可以是不同数据类型的元素构成字符数组的各个元素必须是字符类型的数据若有定义 char b=hello;,则数组 b 的长度为 6 10、下列语句中,正确的有:() 。char str5=hello;char str=h,e,l,l,o,0;char str5=hi;char str100=;char str3=this; 11、函数调用 strcat(strcpy(str1,str2),str3)的功能,以下说法错误的有:() 。将串 str1 复制到串 str2 中后在连接到串 str3 之后将串 str1 连接到串 str2 之后再复制到串 str3 之后将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后将串 str2 连接到串 str1 中后再将串 str1 复制到

温馨提示

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

评论

0/150

提交评论