【计算机类职业资格】二级C语言-267及答案解析.doc

上传人:fuellot230 文档编号:1325101 上传时间:2019-10-17 格式:DOC 页数:23 大小:92.50KB
下载 相关 举报
【计算机类职业资格】二级C语言-267及答案解析.doc_第1页
第1页 / 共23页
【计算机类职业资格】二级C语言-267及答案解析.doc_第2页
第2页 / 共23页
【计算机类职业资格】二级C语言-267及答案解析.doc_第3页
第3页 / 共23页
【计算机类职业资格】二级C语言-267及答案解析.doc_第4页
第4页 / 共23页
【计算机类职业资格】二级C语言-267及答案解析.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、二级 C 语言-267 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:100.00)1.有以下程序 #includestdio.h main() int i, sum; for(i=1; i6; i+)sum+=i; printf(“%d/n“, sum); 程序运行后的输出结果是_。(分数:2.00)A.0B.随机值C.15D.162.以下叙述中正确的是_。(分数:2.00)A.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用 while 语句B.对于“for(表达式 1;表达式 2;表达式 3)循环体”首先要计算表达式 2 的值,以

2、便决定是否开始循环C.对于“for(表达式 1;表达式 2;表达式 3)循环体”,只在个别情况下才能转换成 while 语句D.只要适当地修改代码,就可以将 do-while 与 while 相互转换3.若变量已正确定义 for(x=0, y=0; (y!=99 x+) 则以上 for 循环_。(分数:2.00)A.执行无限次B.执行 3 次C.执行 4 次D.执行次数不定4.若有以下程序 #includestdio.h main() int a=6, b=0, c=0; for(;a;) b+=a; a-=+c; printf(“%d, %d, %d/n“, a, b, c); 则程序的输出

3、结果是_。(分数:2.00)A.0, 18, 3B.1, 14, 3C.0, 14, 3D.0, 14, 65.有以下程序 #includestdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(“*%d“, i); break; i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.*7B.*3*5C.*5D.*2*66.若变量已正确定义,有以下程序段 i=0; do printf(“%d,“ ,i); while(i+); printf(“%d/n“, i); 其输出结果是_。(分数:2.

4、00)A.0, 1B.0, 0C.1, 1D.程序进入无限循环7.若有以下程序 #includestdio.h main() int a=-2, b=0; do+b; while(a+); printf(“%d, %d/n“, a, b); 则程序的输出结果是_。(分数:2.00)A.2, 3B.0, 2C.1, 2D.1, 38.以下程序段中的变量已正确定义 for(i=0; i4; i+, i+) for(k=1; k3; k+); printf(“*“); 该程序段的输出结果是_。(分数:2.00)A.*B.*C.*D.*9.有以下程序 #includestdio.h main() in

5、t i, j; for(i=3; i=1; i-) for(j=1; j=2; j+)printf(“%d“, i+j); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.2 33 44 5B.4 32 54 3C.4 53 42 3D.2 33 42 310.有以下程序 #includestdio.h main() int i, j, m=55; for(i=1; i=3; i+) for(j=3; j=i; j+)m=m%j; printf(“%d/n“, m); 程序的运行结果是_。(分数:2.00)A.1B.0C.2D.311.以下叙述中正确的是_。(分数:2.0

6、0)A.break 语句只能用于 switch 语句体中B.continue 语句的作用是:使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break 语句和 continue 语句的作用相同D.break 语句只能用在循环体内和 switch 语句体内12.以下叙述中正确的是_。(分数:2.00)A.break 语句不能用于提前结束 for 语句的本层循环B.使用 break 语句可以使流程跳出 switch 语句体C.continue 语句使得整个循环终止D.在 for 语句中,continue 与 break 的效果是一样的,可以互换13.有以下程序 #includestdio.

7、h main() int i, j, x=0; for(i=0; i2; i+1 x+; for(j=0; j=3; j+) if(j%2) continue; x+; x+; printf(“x=%d/n“, x); 程序执行后的输出结果是_。(分数:2.00)A.x=8B.x=4C.x=6D.x=1214.有以下程序 #includestdio.h main() int x=8; for(; x0; x-) if(x%3) printf(“%d,“, x-); continue; printf(“%d,“, -x); 程序的运行结果是_。(分数:2.00)A.8, 5, 4, 2,B.8,

8、 7, 5, 2,C.9, 7, 6, 4,D.7, 4, 2,15.下列定义数组的语句中,正确的是_。(分数:2.00)A.int x;B.int N=10;int xN;C.int x010;D.#define N 10int xN;16.下列选项中,能正确定义数组的语句是_。(分数:2.00)A.int N=2008;int numN;B.int num;int numN;C.#define N 2008int numN;D.int num02008;17.以下叙述中正确的是_。(分数:2.00)A.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式B.一条语句只能定义一个数组C

9、.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元D.在引用数组元素时,下标表达式可以使用浮点数18.以下叙述中正确的是_。(分数:2.00)A.语句 int a8=0;是合法的B.语句 int a=0;是不合法的,遗漏了数组的大小C.语句 char a2=“A“, “B“;是合法的,定义了一个包含两个字符的数组D.语句 char a3; a=“AB“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符19.有以下程序 #includestdio.h main() int x32=0, i; for(i=0; i3; i+)scanf(“%d“, xi); prin

10、tf(“%3d%3d%3d/n“, x00, x01, x10); 若运行时输入:2 4 6回车,则输出结果为_。(分数:2.00)A.2 0 4B.2 0 0C.2 4 0D.2 4 620.以下数组定义中错误的是_。(分数:2.00)A.int x23=1, 2, 3, 4, 5, 6);B.int x3=0;C.int x3=1, 2, 3, 4, 5, 6;D.int x23=1, 2, 3, 4, 5, 6;21.以下定义数组的语句中错误的是_。(分数:2.00)A.int num=1, 2, 3, 4, 5, 6;B.int num3=1, 2, 3, 4, 5, 6;C.int

11、num24=1, 2, 3, 4, 5, 6;D.int num4=1, 2, 3, 4, 5, 6;22.以下错误的定义语句是_。(分数:2.00)A.int x3=1, 2, 3, 4;B.int x43=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3;C.int x3=0, 1, 1, 2, 3;D.int x4=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3;23.有以下程序 #includestdio.h main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1; for(i=0; i; i+)

12、 for(j=i; j=i; j=+)t+=bibji; printf(“%d/n“, t); 程序运行后的输出结果是_。(分数:2.00)A.4B.3C.1D.924.有以下程序 #includestdio.h main() int a44=1, 4, 3, 2, 8, 6, 5, 7, 3, 7, 2, 5, 4, 8, 6, 1; int i, j, k, t; for(i=0; i4; i+) for(j=0; j3; j+) for(k=j+1; k4; k+) if(ajiaki t=aji; aji=aki; aki=t; /*按列排序*/ for(i=0; i4; i+) pr

13、intf(“%d,“, aii); 程序运行后的输出结果是_。(分数:2.00)A.8, 7, 3, 1,B.1, 6, 5, 7,C.4, 7, 5, 2,D.1, 6, 2, 1,25.有以下程序 #includestdio.h main() int i, t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i3; i+) printf(“%d“, t2-ii); 程序执行后的输出结果是_。(分数:2.00)A.3 5 7B.7 5 3C.3 6 9D.7 5 126.下列叙述中正确的是_。(分数:2.00)A.两个连续的双引号(“)是合法的字符串常量B.两个连续

14、的单引号(“)是合法的字符常量C.可以对字符串进行关系运算D.空字符串不占用内存,其内存空间大小是 027.以下叙述中正确的是_。(分数:2.00)A.语句 char str10=“string!“;和 char str10=“string!“;并不等价B.对于字符串常量“string!“,系统已自动在最后加入了“/0“字符,表示串结尾C.对于一维字符数组,不能使用字符串常量来赋初值D.在语句 char str=“string!“;中,数组 str 的大小等于字符串的长度28.设有定义: char s81; int i=0; 以下不能将一行(不超过 80 个字符)带有空格的字符串正确读入的语句

15、或语句组是_。(分数:2.00)A.gets(s);B.while(si+=getehar()!=“/n“); si=“/0“;C.scanf(“%s“, s);D.do(scanf(“%c“, while(si+!=“/n“); si=“/0“;29.有以下程序 #includestdio.h main() char s=“012xy/08s34f4w2“; int i, n=0; for(i=0; si!=0; i+) if(si=“0“ printf(“%d/n“, n); 程序运行后的输出结果是_。(分数:2.00)A.8B.0C.7D.330.下列语句组中,正确的是_。(分数:2.0

16、0)A.char*s; s=“Olympic“;B.char s7; s=“Olympic“;C.char*s; s=“Olympic“;D.char s7; s=“Olympic“;31.以下选项中正确的语句组是_。(分数:2.00)A.char*s; s=“BOOK!“;B.char*s; s=“BOOK!“;C.char s10; s=“BOOK!“;D.char s; s=“BOOK!“;32.有以下程序 #includestdio.h main() char c25=“6938“, “8254“, *p2; int i, j, s=0; for(i=0; i2; i+) pi=ci;

17、 for(i=0; i2; i+) for(j=0; pij0; j+=2) s=10*s+pij-“0“; printf(“%d/n“, s); 程序运行后的输出结果是_。(分数:2.00)A.9284B.9824C.6982D.638533.下面选项中的程序段,没有编译错误的是_。(分数:2.00)A.char*sp, s10; sp=“Hello“;B.char*sp, s10; s=“Hello“;C.char str110=“computer“, str210; str2=str1;D.char mark; mark=“PROGRAM“;34.以下叙述中正确的是_。(分数:2.00)

18、A.不能用字符串常量对字符数组名进行整体赋值操作B.字符串常量“Hello“会被隐含处理成一个无名字符型数组,它有 5 个元素C.char str7=“string!“;在语法上是合法的,运行也是安全的D.char*str; str=“Hello“;与 char str; str=“Hello“;效果是一样的35.若要求从键盘读入含有空格字符的字符串,应使用函数_。(分数:2.00)A.gets()B.getc()C.getchar()D.scanf()36.有以下程序 #includestdio.h char fun(char *c) if (*c=“Z“ return *c; main()

19、 char s81, *p=s; gets(s); while(*p) *p=fun(p); putchar(*p); p+; printf(“/n“); 若运行时从键盘上输入 OPEN THE DOOR回车,程序的输出结果是_。(分数:2.00)A.OPEN THE DOORB.oPEN tHE dOORC.open the doorD.Open The Door37.有以下程序 #includestdio.h #includestring.h main() char str20=“One*World“, “One*Dream!“), *p=str1; printf(“%d,“, strle

20、n(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:2.00)A.10, One*Dream!B.9, One*Dream!C.9, One*WorldD.10, One*World38.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的值是_。(分数:2.00)A.7B.8C.9D.1039.若有定义语句: char *s1=“OK“, s2=“ok“; 以下选项中,能够输出“OK“的语句是_。(分数:2.00)A.if(strcmp(s1, s2)!=0)puts(s2);B.if(strcmp(s1, s2)!=0)p

21、uts(s1);C.if(strcmp(s1, s2)=1)puts(s1);D.if(strcmp(s1, s2)=0)puts(s1);40.若有以下定义和语句 #includestdio.h char s110=“abcd!“, *s2=“/n123/“; printf(“%d%d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:2.00)A.5 8B.10 5C.10 7D.5 541.若有代数式 (分数:2.00)A.sqrt(fabs(pow(n, x)+exp(x)B.sqrt(fabs(pow(n, x)+pow(x, e)C.sqrt(abs(

22、nx+ex)D.sqrt(fabs(pow(x, n)+exp(x)42.C 语言主要是借助以下哪种手段来实现程序模块化?_(分数:2.00)A.定义函数B.定义常量和外部变量C.使用丰富的数据类型D.使用三种基本结构语句43.若有以下函数首部 int fun(double x10, int*n) 则下面针对此函数的函数声明语句中正确的是_。(分数:2.00)A.int fun(double *, int*);B.int fun(double, int);C.int fun(double *x, int n);D.int fun(double x, int*n);44.若函数调用时的实参为变量

23、时,以下关于函数形参和实参的叙述中正确的是_。(分数:2.00)A.函数的形参和实参分别占用不同的存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的实参和其对应的形参共占同一存储单元45.以下叙述中错误的是_。(分数:2.00)A.C 程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.函数形参的值也可以传回给对应的实参46.以下叙述中正确的是_。(分数:2.00)A.不同函数的形式参数不能使用相同名称的标识符B.用户自己定义的函数只能调用库函数C.实用的 C 语言源程序总

24、是由一个或多个函数组成D.在 C 语言的函数内部,可以定义局部嵌套函数47.有以下程序 #includestdio.h int fun(int x, int y) if(x!=y)return(x+y)/2); else return(x); main() int a=4, b=5, c=6; printf(“%d/n“, fun(2*a, fun(b, c); 程序运行后的输出结果是_。(分数:2.00)A.6B.3C.8D.1248.有以下程序 #includestdio.h double f(double x); main() double a=0; int i; for(i=0; i3

25、0; i+=10)a+=f(double)i); printf(“%3.0f/n“, a); double f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:2.00)A.503B.401C.500D.140449.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.float fun(int a, int b)main()x=fun(i, j);B.main()x=fun(2, 10);float fun(int a, int b)C.float fun(int, int);

26、main()x=fun(2, 10);float fun(int a, int b)D.main()float fun(int i, int j);x=fun(i, j);float fun(int a, int b)50.有以下程序 #includestdio.h int fun(int a, int b) return a+b; main() int x=6, y=7, z=8, r; r=fun(fun(x, y), z-); printf(“%d/n“, r); 程序运行后的输出结果是_。(分数:2.00)A.15B.21C.20D.31二级 C 语言-267 答案解析(总分:100.

27、00,做题时间:90 分钟)一、选择题(总题数:50,分数:100.00)1.有以下程序 #includestdio.h main() int i, sum; for(i=1; i6; i+)sum+=i; printf(“%d/n“, sum); 程序运行后的输出结果是_。(分数:2.00)A.0B.随机值 C.15D.16解析:解析 sum 没有初始化,为随机值,再加上若干值,仍为随机值。答案选择 B。2.以下叙述中正确的是_。(分数:2.00)A.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用 while 语句B.对于“for(表达式 1;表达式 2;表达式 3)循环

28、体”首先要计算表达式 2 的值,以便决定是否开始循环C.对于“for(表达式 1;表达式 2;表达式 3)循环体”,只在个别情况下才能转换成 while 语句D.只要适当地修改代码,就可以将 do-while 与 while 相互转换 解析:解析 do-while 与 whlile 可以相互转换,所以选择 D。3.若变量已正确定义 for(x=0, y=0; (y!=99 x+) 则以上 for 循环_。(分数:2.00)A.执行无限次B.执行 3 次C.执行 4 次 D.执行次数不定解析:解析 该循环分别在 x 取值为 0、1、2、3 时各执行一次,所以本题答案为 C。4.若有以下程序 #i

29、ncludestdio.h main() int a=6, b=0, c=0; for(;a;) b+=a; a-=+c; printf(“%d, %d, %d/n“, a, b, c); 则程序的输出结果是_。(分数:2.00)A.0, 18, 3B.1, 14, 3C.0, 14, 3 D.0, 14, 6解析:解析 循环执行 3 次,使 a 为 0,循环结束,最终 a b c 分别为 0 14 3,所以选择 C。5.有以下程序 #includestdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(“*%d“, i); break; i

30、+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.*7 B.*3*5C.*5D.*2*6解析:解析 本题考查的是 break 语句。dowhile 循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量 i 为 5,然后进入 do.while 循环体,首先判断(i%3=1),因为 5%3=2,所以 if 条件不满足,跳过下面的 if 语句,执行 i+,i 变为 6。第 1 遍循环结束,判断(i!=0)为真,继续循环。现在 i%3=6%3=0,所以 if 语句还是不被执行,继续 i+,i 变为 7,仍然满足(i!=0

31、),继续循环。第 3 遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2 成立,即输出*7,然后执行 break 语句跳出循环。6.若变量已正确定义,有以下程序段 i=0; do printf(“%d,“ ,i); while(i+); printf(“%d/n“, i); 其输出结果是_。(分数:2.00)A.0, 1 B.0, 0C.1, 1D.程序进入无限循环解析:解析 循环语句中输出 0,i 为 0 循环结束,执行循环条件后 i 为 1,输出 1,所以选择为 A。7.若有以下程序 #includestdio.h main() int a=-2, b=0; do

32、+b; while(a+); printf(“%d, %d/n“, a, b); 则程序的输出结果是_。(分数:2.00)A.2, 3B.0, 2C.1, 2D.1, 3 解析:解析 当 a 为 0 时循环条件不成立,执行完循环条件后 a 为 1,循环共执行 3 次,所以 b 值为 3。8.以下程序段中的变量已正确定义 for(i=0; i4; i+, i+) for(k=1; k3; k+); printf(“*“); 该程序段的输出结果是_。(分数:2.00)A.* B.*C.*D.*解析:解析 由于内层循环 for=(k=1; k3; k+)后面直接跟了空语句“;”因此在循环内部什么操作

33、也不做,执行完内层循环后执行输出语句,所以输出了一个“*”,故本题答案 A。9.有以下程序 #includestdio.h main() int i, j; for(i=3; i=1; i-) for(j=1; j=2; j+)printf(“%d“, i+j); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.2 33 44 5B.4 32 54 3C.4 53 42 3 D.2 33 42 3解析:解析 第一次循环 i 为 3,j 值分别为 1 2,所以输出为 4 5;第二次循环 i 值为 2,i 值分别为 1 2,所以输出为 34;第三次循环 i 值为 1,i 值分

34、别为 1 2 所以输出为 2 3,答案选择 C。10.有以下程序 #includestdio.h main() int i, j, m=55; for(i=1; i=3; i+) for(j=3; j=i; j+)m=m%j; printf(“%d/n“, m); 程序的运行结果是_。(分数:2.00)A.1 B.0C.2D.3解析:解析 虽为 for 循环嵌套,但是 m=m%j 语句只执行一次,即当 i=3 时,内层循环条件成立,m=55%3=1,故本题答案选 A。11.以下叙述中正确的是_。(分数:2.00)A.break 语句只能用于 switch 语句体中B.continue 语句的作

35、用是:使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break 语句和 continue 语句的作用相同D.break 语句只能用在循环体内和 switch 语句体内 解析:解析 本题主要考查的知识点是:break 和 continue 语句。break 语句可以用于 switch 或循环体内,作用是跳出 switch 或循环体。continue 语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项 D 是正确的。12.以下叙述中正确的是_。(分数:2.00)A.break 语句不能用于提前结束 for 语句的本层循环B.使用 break 语句可以使流程跳出 sw

36、itch 语句体 C.continue 语句使得整个循环终止D.在 for 语句中,continue 与 break 的效果是一样的,可以互换解析:解析 break 跳出 switch 语句或循环语句,contiune 结束本次循环,继续进行剩余的循环。所以答案选择 B。13.有以下程序 #includestdio.h main() int i, j, x=0; for(i=0; i2; i+1 x+; for(j=0; j=3; j+) if(j%2) continue; x+; x+; printf(“x=%d/n“, x); 程序执行后的输出结果是_。(分数:2.00)A.x=8 B.x

37、=4C.x=6D.x=12解析:解析 本题考查的是 for 循环的嵌套。外循环的循环变量 i 从 0 递增到 1 会循环 2 次,内循环的循环变量 i 从 0 递增到 3 会循环 4 次。但是内循环中有一条 if 语句,每当 j%2 为真,即 j 为奇数时会跳过下面的 x+;语句,所以 4 次内循环只有 2 次执行到 x+:语句,再加上外循环中包含的 2 条 x+:语句,所以每次外循环会使 x 自增 4 次,2 次外循环下来 x 的值为 8。故应该选择 A。14.有以下程序 #includestdio.h main() int x=8; for(; x0; x-) if(x%3) printf

38、(“%d,“, x-); continue; printf(“%d,“, -x); 程序的运行结果是_。(分数:2.00)A.8, 5, 4, 2, B.8, 7, 5, 2,C.9, 7, 6, 4,D.7, 4, 2,解析:解析 第一次 x 为 8,输出 8,第二次 x 为 6,输出 5,第三次 x 为 4,输出 4,第四次 x 为 2,输出 2,循环结束,所以答案选择 A。15.下列定义数组的语句中,正确的是_。(分数:2.00)A.int x;B.int N=10;int xN;C.int x010;D.#define N 10int xN; 解析:解析 定义数组长度必须为常数,所以

39、D 正确。16.下列选项中,能正确定义数组的语句是_。(分数:2.00)A.int N=2008;int numN;B.int num;int numN;C.#define N 2008int numN; D.int num02008;解析:解析 数组定义的长度必须为常量,所以 C 选项正确。17.以下叙述中正确的是_。(分数:2.00)A.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式B.一条语句只能定义一个数组C.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 D.在引用数组元素时,下标表达式可以使用浮点数解析:解析 数组的元素是同一类型,占用连续空间,

40、所以选择 C。18.以下叙述中正确的是_。(分数:2.00)A.语句 int a8=0;是合法的 B.语句 int a=0;是不合法的,遗漏了数组的大小C.语句 char a2=“A“, “B“;是合法的,定义了一个包含两个字符的数组D.语句 char a3; a=“AB“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符解析:解析 int a8=0;表示将数组第一个元素赋值为 0,其余元素默认清 0,是合法的。所以选择A。19.有以下程序 #includestdio.h main() int x32=0, i; for(i=0; i3; i+)scanf(“%d“, xi); pri

41、ntf(“%3d%3d%3d/n“, x00, x01, x10); 若运行时输入:2 4 6回车,则输出结果为_。(分数:2.00)A.2 0 4 B.2 0 0C.2 4 0D.2 4 6解析:解析 本题中输入的 3 个数据 2, 4, 6 分别赋给了 x00,x10,x020。x01】仍为初始时的 0,因此输出时的结果为 A 选项。20.以下数组定义中错误的是_。(分数:2.00)A.int x23=1, 2, 3, 4, 5, 6); B.int x3=0;C.int x3=1, 2, 3, 4, 5, 6;D.int x23=1, 2, 3, 4, 5, 6;解析:解析 本题考核的知

42、识点是二维数组的定义及初始化。在定义一个二维数组同时初始化时,其第一维的长度可以省略。二维数组的初始化列表可以只使用一重花括号,其中的每个值依次代表从第 1 行的第 1 个元素起,直到第 1 行满,接着代表第 2 行、第 3 行的每一个元素,若第 1 维长度没有省略,则这些值总个数不得超过两个维度的乘积。故选项 D 是正确的。二维数组的初始化列表还可以使用二重花括号括起来,其中每一个内花括号代表一行的值,在内花括号中值的个数不得超过数组第二维的长度,若不足第 2 维长度,则该行多出部分值被初始化为 0,若第一维省略,花括号的个数代表行数。A 选项第一维为 2,故只有两行,但有三个花括号超出了行

43、的要求,所以本题答案选 A。21.以下定义数组的语句中错误的是_。(分数:2.00)A.int num=1, 2, 3, 4, 5, 6;B.int num3=1, 2, 3, 4, 5, 6;C.int num24=1, 2, 3, 4, 5, 6; D.int num4=1, 2, 3, 4, 5, 6;解析:解析 int num24定义 2 行 4 列数组,赋值给 num 数组 3 行错误。所以选择 C。22.以下错误的定义语句是_。(分数:2.00)A.int x3=1, 2, 3, 4;B.int x43=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3;C.in

44、t x3=0, 1, 1, 2, 3;D.int x4=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3; 解析:解析 二维数组定义行数可以省略,列数不能省略,所以答案选择 D。23.有以下程序 #includestdio.h main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1; for(i=0; i; i+) for(j=i; j=i; j=+)t+=bibji; printf(“%d/n“, t); 程序运行后的输出结果是_。(分数:2.00)A.4 B.3C.1D.9解析:解析 每次内循环只循环一次就结束,第一次外循

45、环时 t=t+b0b00=1+b00=1+0=1;第二次外循环时 t=t+b1b11=1+b11=1+1=2;第三次外循环时 t=t+b2b22=2+b22=2+2=4。故本题答案为 A。24.有以下程序 #includestdio.h main() int a44=1, 4, 3, 2, 8, 6, 5, 7, 3, 7, 2, 5, 4, 8, 6, 1; int i, j, k, t; for(i=0; i4; i+) for(j=0; j3; j+) for(k=j+1; k4; k+) if(ajiaki t=aji; aji=aki; aki=t; /*按列排序*/ for(i=0; i4; i+) printf(“%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1