[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc

上传人:deputyduring120 文档编号:503141 上传时间:2018-11-29 格式:DOC 页数:32 大小:103KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc_第1页
第1页 / 共32页
[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc_第2页
第2页 / 共32页
[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc_第3页
第3页 / 共32页
[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc_第4页
第4页 / 共32页
[计算机类试卷]国家二级(C语言)机试模拟试卷37及答案与解析.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、国家二级( C语言)机试模拟试卷 37及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 2 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以是不连 续的 ( D)以上说法均错误 3 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉

2、树的深度为(根结点在第 1层) ( A) 3 ( B) 6 ( C) 8 ( D) 12 4 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1)/2 5 结构化程序设计中,下面对 goto语句使用描述正确的是 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 6 下面不属 于软件测试实施步骤的是 ( A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 7 下面不属于软件需求分析阶段主要工作的是 ( A)需求变更申请

3、( B)需求分析 ( C)需求评审 ( D)需求获取 8 一般情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的 ( A)记录 ( B)行 ( C)属性 ( D)元组 9 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( A)选择 ( B)差 ( C)交 ( D)并 10 有表示公司和职员及工作的三 张表,职员可在多家公司兼职。其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),职员 S(职员号,姓名,性别,年龄,学历),工作 W(公司号,职员号,工资),则表 W的键(码)为 ( A)公司号,职员号 ( B)职员号,工资 (

4、C)职员号 ( D)公司号,职员号,工资 11 关于算法,以下叙述中错误的是 ( A)某个算法可能会没有输入 ( B)同一个算法对于相同的输入必须得出相同的结果 ( C)一个算法对于某个输入的循环次数是可以事先估计出来的 ( D)任何算法都能转换成计算机高级语言的程序,并 在有限时间内运行完毕 12 关于 C语言的变量,以下叙述中错误的是 ( A)变量所占的存储单元地址可以随时改变 ( B)所谓变量是指在程序运行过程中其值可以被改变的量 ( C)程序中用到的所有变量都必须先定义后才能使用 ( D)由三条下划线构成的符号名是合法的变量名 13 关于 do 循环体 while (条件表达式 );

5、以下叙述中正确的是 ( A)条件表达式的执行次数总是比循环体的执行次数多一次 ( B)循环体的执行次数总是比条件表达式的执行次数多一次 ( C)条件表达式的执行次数与循环体的 执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 14 若有以下程序 #include stdio.h main() int a=-11, b=10; a /= b /= -4; printf(“%d %dn“, a, b); 则程序的输出结果是 ( A) 4 -3 ( B) -3 ( C) 2015/5/2 ( D) 2015/5/3 15 若有以下程序 #include stdio.h main()

6、int a=0,b=0,c=0 c= (a+=+b, b+=4); printf(“%d,%d,%dn“,a,b,c); 则程序的输出结果是 ( A) 1,5,1 ( B) 1,5,5 ( C) -1,4,4 ( D) -1,4,-1 16 若有定义 int a; float b; double c; 程序运行时输入: 3 4 5回车 能把值 3输入给变量 a、 4输入给变量 b、 5输入给变量 c的语句是 ( A) scanf(“%d%f%lf“, ( B) scanf(“%d%lf%lf“, ( C) scanf(“%d%f%f“, ( D) scanf(“%lf%lf%lf“, 17 若

7、有以下程序 #include stdio.h main() int a=1,b=2,c=3,d=4; if (a=2) if (c=3) | (d=-1) a=5; printf(“%d,%d,%d,%dn“, a,b,c,d); 则程序的输出结果是 ( A) 2,2,2,4 ( B) 2,1,2,-1 ( C) 5,1,2,-1 ( D) 1,2,3,4 18 若有以下程序 #include stdio.h main() int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b=2) r+=2; if (c!=3); r+=3; if (d=

8、4) r+=4; printf(“%dn“, r); 则程序的输出结果是 ( A) 3 ( B) 7 ( C) 6 ( D) 10 19 若有以下程序 #include stdio.h main() int s=0, n; for (n=0; n 4; n+) switch(n) default: s+=4; case 1: s+=1; break; case 2: s+=2; break; case 3: s+=3; printf(“%dn“, s); 则程序的输出结果是 ( A) 10 ( B) 11 ( C) 13 ( D) 15 20 若有以下程序 #include stdio.h m

9、ain() int a=-2, b=0; do +b ; while(a+); printf(“%d,%dn“, a, b); 则程序的输出结果是 ( A) 1,3 ( B) 0,2 ( C) 1,2 ( D) 2,3 21 若有以下程序 #include stdio.h main() int a=6, b=0, c=0; for ( ;a ) b += a; a -= c+; printf(“%d,%d,%dn“, a,b,c); 则程序的输出结果是 ( A) 5,6,0 ( B) 6,0,0 ( C) 6,6,1 ( D) 5,6,1 22 以下选项中非法的 C语言字符常量是 ( A) x

10、9d ( B) 9 ( C) x09 ( D) 09 23 若有以下程序 #include stdio.h char f(char x) return x*x%10 + 0; main() char a; int b=0; for ( a=0; a 5; a+=1 ) b = f(a); putchar(b); 则程序的输出结果是 ( A) 014916 ( B) 1234 ( C) 1496 ( D) 0 24 若有以下程序 #include stdio.h void sp(int *a) int b=2; *a = *a * 2; printf(“%d,“, *a); a= *a = *a

11、 * 2; printf(“%d,“, *a); main() int k=3; sp( printf(“%dn“, k); 则程序的输出结果是 ( A) 6,12,12 ( B) 6,4,3 ( C) 6,4,6 ( D) 9,4,9 25 若有以下程序 #include stdio.h int k=7,m=5; void f(int *s) int *t= s= *s= printf(“%d,%d,%d,“, k, *t, *s); main() int i=3,*p= f(r); printf(“%d,%d,%dn“, i, *p, *r); 则程序的输出结果是 ( A) 7,5,7,3

12、,5,7, ( B) 7,5,7,3,3,3, ( C) 7,5,5,3,3,3, ( D) 7,7,5,3,3,3, 26 若有以下程序 #include stdio.h int *f(int *s, int *t) int k; if (*s *t) k = *s; *s=*t; *t=k; return s; main() int i=3, j=5, *p= r=f(p,q); printf(“%d,%d,%d,%d,%dn“, i, j, *p, *q, *r); 则程序的输出结果是 ( A) 5,3,3,5,5 ( B) 3,5,5,3,5 ( C) 3,5,3,5,5 ( D) 5

13、,3,5,3,5 27 若有以下程序 #include stdio.h #define N 4 void fun( int aN, int b, int flag ) int i,j; for( i=0; i N; i+ ) bi = a0i; for( j=1; j N; j+ ) if (flag ? (bi aji) : (bi aji) bi = aji; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16, yN,i; fun(x, y, 1); for (i=0;i N; i+) printf(“%d,“, y

14、i); fun(x, y, 0); for (i=0;i N; i+) printf(“%d,“, yi); printf(“n“); 则程序的输出结果是 ( A) 4,8,12,16,1,5,9,13, ( B) 1,2,3,4,13,14,15,16, ( C) 1,5,9,13,4,8,12,16, ( D) 13,14,15,16,1,2,3,4, 28 若有以下程序 #include stdio.h void fun(int a , int n) int t, i, j; for ( i=0; i n; i+=2 ) for ( j=i+2; j n; j+=2 ) if ( ai

15、aj ) t=ai; ai=aj; aj=t; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c, 10); for ( i=0; i 10; i+ ) printf(“%d,“, ci); printf(“n“); 则程序的输出结果是 ( A) 1,10,3,8,5,6,7,4,9,2, ( B) 10,9,8,7,6,5,4,3,2,1, ( C) 10,1,8,3,6,5,4,7,2,9, ( D) 2,9,4,7,6,5,8,3,10,1, 29 若有以下程序 #include stdio.h main() int i, j=0; char a=

16、“How are you!“, b10; for ( i=0; ai; i+ ) if (ai = ) bj+=ai+1; bj=0; printf(“%sn“,b); 则程序的输出结果是 ( A) Howareyou! ( B) Howareyou ( C) Hay! ( D) ay 30 若有以下程序 #include stdio.h char *a=“you“, b =“welcome#you#to#China!“; main() int i,j=0; char *p; for ( i=0; bi!=0; i+ ) if (*a = bi) p= for (j=0; aj!=0; j+)

17、 if (aj != *p) break; p+; if (aj=0) break; printf(“%sn“, p); 则程序的输出结果是 ( A) #to#China! ( B) #you#to#China! ( C) me#you#to#China! ( D) #China! 31 若有以下程序 #include stdio.h main() char a20, b =“The sky is blue.“; int i; for (i=0; i 10; i+) scanf(“%c“, ai=0; gets(b); printf(“%s%sn“, a,b); 执行时若输入: Fig flo

18、wer is red. 回车 则输出结果是 ( A) Fig flower is red.is blue. ( B) Fig flower is red. ( C) Fig floweris red. ( D) Fig floweris 32 若有以下程序 #include stdio.h main() char w20=“dogs“, a510=“abcdef“, “ghijkl“, “mnopq“, “rstuv“, “wxyz .“; int i, j, k; for (i=0; wi; i+) for (j=0; j 5; j+) for (k=0; ajk; k+) if (wi=a

19、jk) break; if (wi=ajk) break; printf(“%d,%d,“, j,k); 则程序的输出结果是 ( A) 0,3,2,2,1,0,3,1, ( B) 1,4,3,3,2,1,4,2, ( C) 5,6,5,6,5,6,5,6, ( D) 6,7,6,7,6,7,6,7, 33 若有以下程序 #include stdio.h int f(int a, int n) if (n 1) int t; t=f(a, n-1); return t an-1 : t : an-1; else return a0; main() int a = 8,2,9,1,3,6,4,7,

20、5; printf(“%dn“, f(a, 9); 则 程序的输出结果是 ( A) 9 ( B) 1 ( C) 8 ( D) 5 34 若有以下程序 #include stdio.h int f(int m) static int n=0; int a=2; n+; a+; return n+m+a; main() int k; for (k=0; k 4; k+) printf(“%d,“, f(k); 则程序的输出结果是 ( A) 3,5,7,9, ( B) 4,7,10,13, ( C) 4,5,6,7, ( D) 4,6,8,10, 35 若有以下程序 #include stdio.h

21、 #define S(x) (x)*(x) #define T(x) S(x)/S(x)+1 main() int k=3, j=2; printf(“%d,%dn“, S(k+j),T(k+j) ); 则程序的 输出结果是 ( A) 11,2 ( B) 25,2 ( C) 11,12 ( D) 25,26 36 若有以下程序 #include stdio.h typedef struct stu char name10, gender; int score; STU; void f(STU a, STUB) b = a; printf( “%s,%c,%d,“, b.name, b.gend

22、er, b.score ); main() STU a=“Zhao“, m, 290, b=“Qian“, f, 350; f(a,b); printf(“%s,%c,%dn“, b.name, b.gender, b.score); 则程序的输出结果是 ( A) Qian,f,350,Qian,f,350 ( B) Zhao,m,290, Zhao,m,290 ( C) Zhao,m,290,Qian,f,350 ( D) Zhao,m,290,Zhao,f,350 37 若有以下程序 #include stdio.h #include string.h typedef struct stu

23、 char name10, gender; int score; STU; void f( char *p ) strcpy( p, “Qian“ ); main() STU a=“Zhao“, m, 290, b; b=a; f(b.name); b.gender = f; b.score = 350; printf(“%s,%c,%d,“, a.name, a.gender, a.score); printf(“%s,%c,%dn“, b.name, b.gender, b.score); 则程序的输出结果是 ( A) Zhao,m,290,Qian,f,350 ( B) Zhao,m,2

24、90, Zhao,m,290 ( C) Qian,f,350,Qian,f,350 ( D) Zhao,m,290,Zhao,f,350 38 若有定义 typedef char T10; T *a; 上述定义中 a的类型与下面选项中完全相同的是 ( A) char a10; ( B) char (*a)10; ( C) char *a; ( D) char *a10; 39 若有以下程序 #include stdio.h main() int c; c = 13|5; printf(“%dn“, c); 则程序的输出结果是 ( A) 13 ( B) 15 ( C) 18 ( D) 5 40

25、若有以下程序 #include stdio.h main() FILE *fp; int i, a6=1,2,3,4,5,6, k; fp = fopen(“data.dat“, “w+b“); for (i=0; i 6; i+) fseek(fp, 0L, 0); fwrite( rewind(fp); fread( fclose(fp); printf(“%d“, k); 则程序的输出结果是 ( A) 6 ( B) 1 ( C) 123456 ( D) 21 二、程序填空题 41 下列给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中,查找含有形参 substr所指子串的所有

26、字符申,并输出,若没找到则输出相应信息。 ss所指字符串数组中共有 N个字符串,且串长小于 M。程序中库甬数 strstr(s1, s2)的功能是在 s1串中查找 s2子串,若没有,函数值为 0;若有,函数值为非 0。 请在程序的下面线处填入正确的内容并将下面线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h #define N 5 #define M 15 void fun(char(*ss)M, char*substr) int i, find=0; /*fo

27、und*/ for(i=0; i 【 1】 ; i+) /*found*/ if(strstr(ssi, 【 2】 )!=NULL) find=1; puts(ssi), printf(“ n”); /*found*/ if(find=【 3】 ) printf(“ nDont found! n”); main() char XNM=“BASIC”, “C lanq wage”, “Java”, “QBASIC”, “Access”), strM; int i; printf(“ nThe original string n n”); for(i=0; i N;i+)puts(xi), pri

28、ntf(”n”); printf(“nEnter a string for search: ”); gets(str); fun(X, str); 三、程序修改题 42 下列给定程序中函数 fun的功能是:把从主函数中输入的 3个数,最大的数放在 a中,中间的数放在 b中,最小的数放在 c中。 例如,若输入的数为: 55 12 34,输出 的结果应当是: a=55 0, b=34 0,c=12 0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h void fun(float*a,

29、 float*b, float*c) /*found*/ float*k; if(*a *b) k=* a; * a=*b: *b=k; /*found*/ if(*a *c) k=*c; *c=*a; * a=k, if(*b *c) k=*b; *b=*c; *c=k; main() float a, b, c; printf(“Input a b c: ”); scanf(“ f f f”, a, b, c); printf(“a= 4 1f, b= 4 1f, c= 4 1f n n”, a, b, C); fun( a, b, c); prIntf(“a= 4.1f, b= 4.1f

30、, c= 4 1f n n”, a, b, C); 四、程序设计题 43 学生的记录由学号和成绩组成, N名学生的数据已放入主函数中的结构体数组s中。请编写函数 fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #define N 16 typedef struct char hum10; int s; STREC; void fun(STREC a) void main() STREC sN=(“GA005

31、”, 85, “GA003”, 76, “GA002”, 69, “GA004”, 85, “GA001”, 91, “GA007”, 72, “GA008”, 64, “GA006”, 87, “GA015”, 85, “GA013”, 91, “GA012”, 64, “GA014”, 91, “GA011”, 66, “GA017”, 64, “GA018”, 64, “GA016”, 72; int i; fun(s); printf(“The data after sorted: n”); for(i=0; i N; i+) if(i 4=0) *每行输出 4个学生记录 * prin

32、tf(“ n”); printf(“ s 4d”, si num, si s); printf(“ n”); 国家二级( C语言)机试模拟试卷 37答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 算法的效率与问题的规模和数据的存储结构都有关, A错误。算法的时间复杂度,是指执行算法所需要的计算工作量, B正确。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的, C错误。算法的时间复杂度和空间复杂度没有直接的联系, D错 误。 2 【正确答案】 C 【试题解析】 线性表的顺序存储结构具备如下两个基本特征:( 1)线性表中的所有元素

33、所占的存储空间是连续的;( 2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此 C正确。 3 【正确答案】 D 【试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即度为 0, n0=1,则 n2=0,总节点数为 12=n0+n1+n2=1+n1+0,则度为 1的节点数 n1=11,故深度为 12,选 D。 4 【正确答案】 D 【试题解析】 快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较 (n-

34、1)+(n-2)+1=n(n -1)/2,选 D。 5 【正确答案】 C 【试题解析】 结构化程序设计中,要注意尽量避免 goto语句的使用,故选 C。 6 【正确答案】 B 【试题解析】 软件测试主要包括单元测试、集成测试、确认测试和系统测试。 7 【正确答案】 A 【试题解析】 需求分 析阶段的工作可概括为个方面: 需求获取。 需求分析。 编写需求规格说明书。 需求审评。 8 【正确答案】 C 【试题解析】 自然连接是一种特殊的等值连接,它满足下面的条件: 两关系间有公共域; 通过公共域的等值进行连接,选 C。 9 【正确答案】 B 【试题解析】 关系 T是关系 R的一部分,并且是关系 R

35、去掉 R和 S相同的元素,符合差操作。 10 【正确答案】 A 【试题解析】 由于职员可以再多加公司兼职,表 W的键(码)应为公司关系和职员关系的主码,即公司号和职员号。 11 【正 确答案】 D 【试题解析】 算法的特征 : 有穷性:一个算法 (对任何合法的输入 )在执行有穷步后能够结束 ,并且在有限的时间内完成。 确定性:算法中的每一步都有确切的含义。 可行性:算法中的操作能够用已经实现的基本运算执行有限次来实现。 输入 :一个算法有零个或者多个输入 ,零个输入就是算法本身确定了初始条件。 输出 :一个算法有一个或者多个输出 ,以反映出数据加工的结果,所以选择 D选项。 12 【正确答案】

36、 A 【试题解析】 一个变量实质上是代表了内存中的某个存储单元 ,必须先定义后使用 ,且在定义时为之分 配存储单元 ,不能随时改变 ,所以选择 A选项。 13 【正确答案】 C 【试题解析】 dowhile 循环的执行过程是先执行一遍循环体后再执行条件表达式判断条件 ,直到条件不成立跳出循环 ,所以循环体和条件表达式的执行次数是一致的 ,所以选择 C。 14 【正确答案】 C 【试题解析】 先执行 b/=-4,即 b=b/-4,结果为 -2,然后执行 a/=-2,即 a=a/-2,结果为5,所以选择 C。 15 【正确答案】 B 【试题解析】 逗号运算符的结合性从左到右 ,因此逗号表达式将从左

37、到右进行计算, 且逗号运算符的优先级最低,先计算 a+=+b,结果 a为 1,b为 1,然后计算b+=4,b的值为 5,逗号表达式的值为其中最后一个表达式的值 ,所以将 5赋给变量 c,即 a为 1,b为 5,c为 5,所以选择 B。 16 【正确答案】 A 【试题解析】 scanf()函数的格式串中 ,必须含有与输入项一一对应的格式转换说明符 ,整型数据、 float型数据、 double型数据对应的格式转换说明符分别为 %d、 %f、 %lf,所以选择 A. 17 【正确答案】 C 【试题解析】 第一个 if语句的判断条件中是逻辑与表达式 ,只有运算对象均非零结果才为真 ,执行第一个 if

38、判断条件 ,均为赋值表达式 ,第一个运算对象 a=2非零 ,判断第二个表达式 b=1也非零 ,所以条件成立执行 c=2的赋值操作,执行第二个 if判断条件中的逻辑或表达式 ,只要有一个对象非零结果就是真 ,本条件中 c=3运算对象为假 ,所以需要判断第二个运算对象 d=-1,结果为 -1非零 ,所以条件成立 ,执行 a=5,的操作 ,所以 a值为 5,b值为 1,c值为 2,d值为 -1。 18 【正确答案】 D 【试题解析】 第一个 if语句 a!=1条件为假 ,所以执行 else后的语句 r=1,第二个if语句 b=2条件成立 ,执行 r+=2,r的值变为 3,第三个 if语句 c!=3条

39、件为假 ,所以不做任何操作,执行下面的 r+=3操作 ,r的值变为 6,判断第四个 if条件 ,d=4条件成立 ,执行 r+=4操作 ,结果为 10。 19 【正确答案】 B 【试题解析】 break语句的作用是终止正在执行的 switch流程 ,跳出 switch结构或者强制终止当前循环 ,从当前执行的循环中跳出,题干中第一次循环 n值为 0,执行 default语句后的 s+=4,s的值变为 4,执行 case1语句后的 s+=1,s的值变为 5,遇到break语句跳出 switch语句 ,进入第二次循环,第二次循环时 n的值为 1,执行 case1后的 s+=1,s的值变为 6,遇到 b

40、reak语句跳出 switch语句 ,进入第三次循环,第三次循环时 n的值为 2,执行 case2后的 s+=2,s的值变为 8,遇到 break语句跳出 switch语句 ,进入第四次循环,第四次循环时 n的值为 3,执行 case3后的 s+=3,s的值变为11,再判断循环条件为假 ,退出循环打印 s的值 11。 20 【正确答案】 A 【试题解析】 本题重点考察 do-while语句及 do-while 的循环语 句保证会执行一次 (表达式的真值在每次循环结束后检查 ),+b即变量 b自增 1后再参与运算 ,而a+则表示 a参与运算后 ,再自增 1,所以第一次循环结束后 ,b=1,a=-

41、1,第二次循环后 ,b=2,a=0。第三次循环后 ,b=3,a=1,因此 A选项正确。 21 【正确答案】 C 【试题解析】 本题重点考察 C语言中 for语句和逻辑表达式, for语句的一般形式为 : for(表达式 1;表达式 2;表达式 3) 语句 其循环中的 “表达式 1(循环变量赋初值) “、 “表达式 2(循环条件 )“和 “表达式3(循环变量 增量 )“都是选择项 , 即可以缺省 ,但 “; “不能缺省。该题目中省略了 “表达式 1(循环变量赋初值) “和 “表达式 3(循环变量增量 )“。 for ( ;a )b+=a;a-=c+;进入循环体 b=b+a=6,a=a-c+=6,

42、c=1。此时 b=6不满足条件 b=0循环退出。因此 C选项正确。 22 【正确答案】 D 【试题解析】 本题考察字符常量,字符常量是用单引号括起来的一个字符。例如: a、 =、 +等。转义字符是一种特殊的字符常量。转义字符以反斜线 “开头,后跟一个或几个字 符。 D选项中 09, 0表示后面的字符是八进制数。又出现9所以是非法的,故 D选项正确。 23 【正确答案】 C 【试题解析】 该题目中 x*x%10即 x和 x相乘后,结果再对 10求余操作。主函数中通过 for语句使变量 a从 0到 4进行取值;当 a=0时,调用函数 f后,返回值为 0赋给 b,并且进行字符输出;当 a=1时,返回

43、值为 1赋给 b,并且进行字符输出;当 a=2时,返回值为 4赋给 b,并且进行字符输出;当 a=3时,返回值为 9赋给 b,并且进行字符输出;当 a=4时,返回值为 6赋给 b,并且进行字符输出。因此 C选项正 确。 24 【正确答案】 C 【试题解析】 首先在主函数中给整型变量 k赋值为 3,调用 sp函数,将变量 k的地址作为实参传递给形参指针变量 a;在 sp函数中, *a = *a * 2;即结果为 6,通过 printf()函数输出。整型变量 b的地址赋给指针变量 a,再执行 *a = *a * 2;,即结果为 4,通过 printf()函数输出。返回主函数,输出 k的值 6。因此

44、 C选项正确。 25 【正确答案】 C 【试题解析】 在主函数中首先初始化整型变量 i,将 i的地址赋给指针变量 p,再将指针变量 p的地址赋给指向 指针的指针变量 r;调用 f函数 ,将变量 r的值传递给变量 s;由于 k和 m分别赋值 7和 5,printf(“%d,%d,%d,“, k, *t, *s);,即结果为 7,5,5;返回主函数 ,printf(“%d,%d,%dn“, i, *p, *r);,即结果为 3,3,3,因此 C选项正确。 26 【正确答案】 D 【试题解析】 在主函数中分别给整型变量 i、 j和指针型变量 p、 q赋初值,并声明指针变量 r;调用 f函数,并将实参

45、变量 p和 q的值传递给形参变量 s和 t,并且 f函数是指针型函数,即函数的返回值将是一个 地址。在 f函数中,如果条件成立,则将指针变量 s和 t的值互换,并且将指针 s的地址返回主函数。最后输出 i, j, *p, *q, *r的值,即 5,3,5,3,5。因此 D选项正确。 27 【正确答案】 B 【试题解析】 该题首先初始化二维数组, if (flag (bi aij) : (bi aij)条件语句的条件表达式使用了条件运算符构成的选择结构,即 flag 为真时,以 (bi aij)作为条件表达式的值,否则以 (bi aij)作为条件表 达式的值, fun函数功能是给一维数组赋值。

46、fun(x, y, 1);该函数调用后,即当 flag为真时,使一维数组获得二维数组第 1行的数值; fun(x, y, 0);该函数调用后,即当 flag为假时,使一维数组获得二维数组第 4行的数值;因此 B选项正确。 28 【正确答案】 D 【试题解析】 该题首先对一维数组进行初始化 ,c0到 c9依次赋值为 10到1;fun(c, 10);语句调用 fun函数 ,fun函数的功能是将一维数组奇数位元素的数值由小到大排序 ;最后将排好序的新的一维数组进行输出,因此 D选 项正确。 29 【正确答案】 D 【试题解析】 程序首先初始化字符数组 a 为 “How are you!“。语句 if (ai = = ) bj+=ai+1;条件是判断字符数组 a 中是否是空格字符,如果是空格的话,将空格后的字符赋给数组 b。并将 b输出。因此 D选项正确。 30 【正确答案】 A 【试题解析】 该程序首先定义 *a和 b ,并进行初始化。主函数中通过外层 for循环语句,遍历字符数组 b ,并且将符合 if条件语句的字符赋给数组 p; for内层循环语句, 遍历字符数组 a 。再将符合 if条件语句的结果输出。因此 A选项正确。 31 【正确答

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

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

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