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

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

1、国家二级( C语言)机试模拟试卷 77及答案与解析 一、选择题 1 下列叙述中错误的是 ( )。 ( A)数据结构中的数据元素不能是另一数据结构 ( B)数据结构中的数据元素可以是另一数据结构 ( C)空数据结构可以是线性结构也可以是非线性结构 ( D)非空数据结构可以没有根结点 2 为了降低算法的空间复杂度,要求算法尽量采用原地工作 (in place)。所谓原地工作是指 ( )。 ( A)执行算法时所使用的额外空间固定 (即不随算法所处理的数据空间大小的变化而变化 ) ( B)执行算法时所使用的 额外空间随算法所处理的数据空间大小的变化而变化 ( C)执行算法时不使用额外空间 ( D)执行

2、算法时不使用任何存储空间 3 某循环队列的存储空间为 Q(1: m),初始状态为 front=rear=m。现经过一系列的入队操作和退队操作后, front=m, rear=m-1,则该循环队列中的元素个数为 ( )。 ( A) m-1 ( B) m ( C) 1 ( D) 0 4 某棵树只有度为 3的结点和叶子结点,其中度为 3的结点有 8个,则该树中的叶子结点数为 ( )。 ( A) 15 ( B) 16 ( C) 17 ( D)不存在这样的树 5 某二叉树共有 530个结点,其中度为 2的结点有 250个,则度为 1的结点数为( )。 ( A) 29 ( B) 30 ( C) 249 (

3、 D) 251 6 若某二叉树中的所有结点值均大于其左子树上的所有结点值,且小于右子树上的所有结点值,则该二叉树遍历序列中有序的是 ( )。 ( A)前序序列 ( B)中序序列 ( C)后序序列 ( D)以上说法均可以 7 将 C语言的整数设为整数类 I,则下面属于类 I实例的是 ( )。 ( A) -103 ( B) 10E3 ( C) 10 3 ( D) “0103” 8 下列叙述中正确的是 ( )。 ( A)软件是程序、数据和文档 ( B)软件是程序和数据 ( C)软件是算法和数据结构 ( D)软件是算法和程序 9 软件生命周期是指 ( )。 ( A)软件的定义和开发阶段 ( B)软件的

4、需求分析、设计与实现阶段 ( C)软件的开发阶段 ( D)软件产品从提出、实现、使用维护到停止使用退役的过程 10 下列叙述中正确的是 ( )。 ( A)数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能 ( B)数据库系统能够 管理各种类型的文件,而文件系统只能管理程序文件 ( C)数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少 ( D)数据库系统独立性较差,而文件系统独立性较好 11 关于程序模块化,以下叙述错误的是 ( )。 ( A)程序模块化可以提高程序运行的效率 ( B)程序模块化可以提高程序编制的效率 ( C)程序模块化可以提高程序代码复用率 ( D)程序模块化

5、可以提高调试程序的效率 12 以下是正确 C语言标识符的是 ( )。 ( A) &3 ( B) #3 ( C) -3 ( D) -3 13 若有定义: int a, b, c;以下程序段的输出结果是 ( )。 a=11; b=3; c=0: printf(“ d n“, c=(a b, a b); ( A) 2 ( B) 0 ( C) 3 ( D) 1 14 以下选项中合法的 C语言常量是 ( )。 ( A) C-STR ( B) 2014 1 ( C) 1 0 ( D) 2EK 15 设有定义: intx, y, z;,且各变量已赋正整数值,则以下能正确表示代数式“ ”的 C语言表达式是 (

6、 )。 ( A) 1 0 x y z ( B) 1 x*y*z ( C) 1 (x*y*z) ( D) 1 x y (dlouble)z 16 有以下程序: #include stdio h main() char a, b, c, d; scanf(“ c c“, &a, &b); c=getchar(); d=getehar(); printf(“ c c c c n“, a, b, c, d); 当执行程序时,按下列方式输入数据 (从第 1列开始, CR代表回车,注意:回车也是一个字符 ) 12 CR 34 CR 则输出结果是 ( )。 ( A) 12 3 ( B) 12 ( C) 12

7、34 ( D) 12 34 17 有以下程序: #include stdio h main() int a, b; for(a=0; a 3; a+) seartf(“ d“, &b); switch(b) default: prntf(“ d, “, b+1); continue; case1: printf(“ d, “, b+1); case2: printf(“ d, “, b+1); continue; 执行时输入: 123回车,则输出结果是 ( )。 ( A) 2, 2, 3, 4, 4, 4, ( B) 2, 3, 4, ( C) 2, 2, 3, 4, ( D) 2, 3, 3

8、, 4, 5, 6, 18 有以下程序: #include stdio h #include math h main() doublex, y, z; scanf(“ lf lf“, &x, &y); z=x y; while(1) if(fabs(z) 1 0) x=y; y=x; z=x y; else break; printf(“y= f n“, y); 执行时输入: 3 6 2 4回车,则输出结果是 ( )。 ( A) 2 400000 ( B) 1 500000 ( C) 1 600000 ( D) 2 000000 19 有以下程序: #include stdio h main(

9、) int i; char c; scanf(“ c“, &c); for(i=0; i 5; i+) if(i c)continue; printf(“ d, “, i); 执行时输入: 0回车后,则输出结果是 ( )。 ( A) 5, ( B) 0, 0, 0, 0, 0, ( C) 0, 1, 2, 3, 4, ( D) 0, 1, 20 以下程序拟实现计算 sum=1+1 2+1 3+1 50。 #include stdio h main() int i; double sum; sum=1 0; i=1; do i+; sum+=1 i; while(i 50); printf(“s

10、um= lf n“, sum); 程序运行后,不能得到正确结果,出现问题的语句是 ( )。 ( A) sum+=1 i; ( B) while(i 50); ( C) sum=1 0; ( D) i+; 21 若有定义语句: double a, *p=&a; 以下叙述中错误的是 ( )。 ( A)定义语句中的 *号是一个间址运算符 ( B)定义语句中的 *号是一个说明符 ( C)定义语句中的 p只能存放 double类型变量的地址 ( D)定义语句中 *p=&a把变量 a的地址作为初值赋给指针变量 p 22 关于函数返回值,以下叙述正确的是 ( )。 ( A)函数可以返回整个结构体,即使结构体

11、中有数组 ( B)函数只能返回基本数据类型的数值或指针 ( C)函数不可以返回一个数组 ( D)函数不能没有返回值 23 有以下程序: #include stdio h int fun(int*b, int n) int i, r=1; for(i=0; i =n; i+)r=r*bi; return r; main() int x, a=2, 3, 4, 5, 6, 7, 8, 9; x=fun(a, 3); printf(“ d n“, x); 程序运行后的输出结果是 ( )。 ( A) 24 ( B) 720 ( C) 120 ( D) 6 24 若有语句: int a34, (*p)4

12、; p=a;,则以下选项中叙述错误的是 ( )。 ( A)系统将开辟一个名为 p的二维数组, p00中的值即为 a00中的值 ( B) p+1代表 a10的地址 ( C) p中将存放 a数组的首地址 ( D) p+2代表 a数组最后一行的首地址 25 有以下程序: #include stdio h void change(char*array, int len) for(len-; len =0; len-) arraylen+=1; main() int i; char array5=“ABCD“; change(array, 4); for(i=0; i 4; i+) printf(“ C

13、, “, arrayi); 程序运行后的输出结果是 ( )。 ( A) B, C, D, E, ( B) A, B, C, D, ( C) C, D, E, F, ( D) B, D, F, H, 26 设有以下程序段: float a8=1 0, 2 0; int b1=0; char c=“A“, “B“; char d=“1“; 以下叙述正确的是 ( )。 ( A)只有变量 c的定义是合法的 ( B)只有变量 a, b, C的定义是完全合法的 ( C)所有变量的定义都是完全合法的 ( D)只有变量 a, b的定义是完全合法的 27 有以下程序: #include stdio h main

14、() int a4, p, x, i; for(i=3; i 0; i-)ai-1=i*2-1; scanf(“ d“, &x); i=0; while(ai x)i+; p=i; for(i=3; i p; i-)ai=ai-1; ap=x; for(i=0; i 4; i+)printf(“ 3d“, ai); printf(“ n“); 执行时输入: 2回车,则输出结果是 ( )。 ( A) 1 2 3 4 ( B) 5 4 3 1 ( C) 1 2 3 5 ( D) 3 2 1 4 28 有以下程序: #inelude stdio h int fun(inta, int n, int

15、x) int*p=a; while(p a+n&*p!=x)p+; if(p a+n)return p-a; else return-1; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10; printf(“ d n“, fun(a, 10, 10); 程序运行后的输出结果是 ( )。 ( A) 9 ( B) -1 ( C) 10 ( D) 0 29 有以下程序: #include stdio h main() char w20, a510=“abcde“, “fghij“, “klmno“, “pqrst“, “uvwxy“; int i; for(i

16、=0; i 5; i+) Wi=aii; w5= ; printf(“ s n“, w); 程序运行后的输出结果是 ( )。 ( A) ejoty ( B) afkpu ( C) agrasy ( D) eimqu 30 语句 printf(“ d n“, strlen(“ t “ n“ 065 08AB“);的输出结果是( )。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 31 有以下程序: #include stdio h #include string h void fun(char*s, int m1, int m2) char t, *p; p=s+m1; s=s+m2;

17、 while(s p) t=*s; *s=*p; *p=t; s+; p-; main() char ss10=“012345678“; int n=6; fun(ss, 0, n-1); fun(ss, 9, n); fun(ss, 0, 9); printf(“ s n“, ss); 程序运行后的输出结果是 ( )。 ( A) 012345 ( B) 876543210 ( C) 876543 ( D) 012345678 32 有以下程序: #include stdio h int m=1, n=2; void sub1(int m, int n) m+=2; n+; void sub2

18、() m+; n+=2; main() printf(“ d, d, “, m, n); sub1(4, 5); printf(“ d, d, “, m, n); sub2(); printf(“ d, d n“, m, n); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 1, 2, 2, 4 ( B) 1, 2, 6, 6, 7, 8 ( C) 1, 2, 2, 4, 2, 4 ( D) l, 2, 6, 6, 2, 4 33 有以下程序: #include etype h #include stdio h long fun(char s) long n; int sign; f

19、or(; isspace(*s); s+); sign=(*s=-)?-1: 1; if(*s=+|*8=-)s+; for(n=0; isdigit(*s); s+) n=10*n+(*s-0); return sign*n: main() char s=“-26a3“; printf(“ d n“, fun(s); 程序运行后的输出结果是 ( )。 ( A) -263 ( B) 2 ( C) 0 ( D) -26 34 设有定义: struet complex int real, unreal; data1=1, 8, data2; 则以下赋值语句中错误的是 ( )。 ( A) data2

20、=(2, 6); unreal; ( B) data2=data1; ( C) data2 real=data1 real; ( D) data2 real=data1 35 有以下程序: #include stdio h #define S(x)x*x x main() int k=6, j=3; printf(“ d, d n“, S(k+j+2), S(j+k+2); 程序运行后的输出结果是 ( )。 ( A) 11, 11 ( B) 29, 29 ( C) 26, 29 ( D) 121, 121 36 若有定义: typedef int*T10; T a; 则以下选项与上述定义中 a

21、的类型完全相同的是 ( )。 ( A) int*a10; ( B) int(*a)10; ( C) int a10; ( D) int(*a10)(); 37 有以下程序: #include stdio h main() FILE*fp; int i, a6=1, 2, 3, 4, 5, 6, k; fp=fopen(“data dat“, “w+“); for(i=0; i 6; i+) fprintf(fp, “ d n“, a5-i); rewind(fp); for(i=0; i 6; i+) fscanf(fp, “ d“, &k); printf(“ d, “, k); felos

22、e(fp); 程序运行后的输出结果是 ( )。 ( A) 6, 5, 4, 3, 2, 1, ( B) 1, 2, 3, 4, 5, 6, ( C) 1, 1, 1, 1, 1, 1 ( D) 6, 6, 6, 6, 6, 6, 38 有以下程序: #include stdio h #include stdlib h void fun(double*p1, double*p2, double*s) s=(double*)eaUoe(1, sizeof(double); *s=*p1+*p2; main() double a2=1 1, 2 2, b2=10 0, 20 0, *q=NULL;

23、fun(a, b, q); printf(“ 5 2f n“, *q); 程序运 行后的结果是 ( )。 ( A)有运行错误 ( B)输出 11 10 ( C)输出 12 10 ( D)输出 21 10 39 若文件指针 fp已正确指向文件, ch为字符型变量,以下不能把字符输出到文件中的语句是 ( )。 ( A) fget(fp, ch); ( B) fputc(ch, fp); ( C) fprintf(fp, “ c“, ch); ( D) fwrite(&ch, sizeof(eh), 1, fp); 40 有以下程序: #include stdio h struct ball cha

24、r color10; int dim; ; main() struet ball list2=“white“, 2, “yellow“, 3; printf(“ s: d n“, (list+1)- color, list- dim); 程序运行后的输出结果是 ( )。 ( A) yellow: 3 ( B) yellow: 2 ( C) white: 2 ( D) white: 3 二、程序填空题 41 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的最小值放在元素a0中,接着把 a所 指数组中的最大值放在 a1元素中;再把 a所指数组元素中的次小值放在 a2中,把 a所指数组元

25、素中的次大值放在 a3,以此类推。 例如,若 a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7;则按规则移动后,数据排列为: 1、 9、 2,8、 3、 7、 4、 6、 5。形参 n中存放 a所指数组中数据的个数。 规定 fun函数中的 max存放当前所找的最大值, px存放当前所找最大值的下标。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或 删行,也不得更改程序的结构 ! #include stdio h #deftne N9 void fun(int a, int n)

26、int i, j, max, min, px, pn, t; for(i=0; i n-1; i+=2) *found* max=min=1; px=pn=i; for(j=i+1; j n; j+) *found* if(max 2) max=aj; px=j; *found* if(min 3) min=aj; pn=j; if(pn!=i) t=ai; ai=min; apn=t; 、 if(px!=i+1) t=ai+1; ai+1=max; apx=t; main() int bN=9, 1, 4, 2, 3, 6, 5, 8, 7, i; printf(“ nThe origina

27、l data: n“); for(i=0; i N; i+)printf(“ 4d“, bi); printf(“ n“); fun(b, N); printf(“ nThe data after moving: n“); for(i=0; i N; i+)printf(“ 4d“, bi); printf(“ n“); 三、程序修改题 42 下列给定程序中函数 fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。 例如,当 s中的数为 87653142时, t中的数为 7531。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程

28、序在文件 MODl1 C中,不得增行 或删行,也不得更改程序的结构 ! #include stdio h void fun(long s, long*t) int d; long s1=1; *found* t=0; while(s 0) d=s 10; *found* if(d 2=0) *t=d*s1+*t; sl*=10: s =10; main() long s, t; printf(“ nPlease enter s: “); scanf(“ ld“, &s); fun(s, &t); printf(“The result is: ld n“, t); 四、程序设计题 43 编写函数

29、 fun,其功能是:求 ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串 123412132,输入字符为 1,则输出 3。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include stdio h #include string h #define M81 int fun(char*ss, char c) main() char aM, ch; void NONO(); printf(“ nPlease enter a string: “); gets(a); printf(“

30、 nPlease enter a char: “); ch=getchar(); printf(“ nThe number of the char is: d n“, fun(a, ch); NONO(); void NONO() *本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。* int i; FILE*rf, *wf; char aM, bM, ch; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i 10; i+) fscanf(rf, “ s“, a); fscanf(rf, “ s“,

31、 b); ch=*b: fprintf(wf, “ c= d n“, ch, fun(a, ch); felose(if); fclose(wf); 国家二级( C语言)机试模拟试卷 77答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 数据元素是一个含义很广泛的概念,它是数据的 “基本单位 ”,在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。空数据结构可以

32、是线性结构也可以是非线性结构。非空 数据结构可以没有根结点,如非性线结构 “图 ”就没有根结点。故选 A选项。 2 【正确答案】 A 【试题解析】 算法的空间复杂度是指执行这个算法所需要的内存空间,包括输入数据所占的存储空间、程序本身所占的存储空间、算法执行过程中所需要的额外空间。如果额外空间量相对于问题规模 (即输入数据所占的存储空间 )来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。故选 A选项。 3 【正确答案】 A 【试题解析】 循环队列长度为 m,由初始状态为 front=rear=m,可知此时循环队列 为空。入队运算时,首先队尾指针进 1(即 lear+1

33、),然后在 lear指针指向的位置插入新元素。特别的,当队尾指针 rear=m+1时,置 rear=1。退队运算时,排头指针进 1(即 front+1),然后删除 front指针指向的位置上的元素,当排头指针front=m+1时,置 front=1。从排头指针 front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。如果 rear-front 0,则队列中的元素个数为 rear-front个;如果 rear-front 0,则队列中的元素个数为 rear-front+m。该题中 m-1 m,即 rear-front 0,则该循环队列中的元素个数为 (m-1)-m

34、+m=m-1。故选 A选项。 4 【正确答案】 C 【试题解析】 树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。由于只有度为 3的结点和叶子结点,可知最后一层都为叶子结点,倒数第二层一部分结点度为 3,一部分为叶子结点,其余的结点的度均为 3,计算度为 3的结点总数 (33-1-1) 2 8 (34-1-1) 2可知,树共有 4层,前两层有度为 3的结点 (33-1-1) 2=4个,第三层有 33=9个结点,其中 4个是度为 3的结点, 5个是叶子结点,所以该树中的叶子结点数为 43+5=1

35、7。故选 C选项。 5 【正确答案】 A 【试题解析】 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为 0的结点总是比度为 2的结点多一个。二叉树结点总数为 530,度为 2的结点有 250个,则度为 0的结点有251个,那么度为 1的结点个数为 530-250-251=29。故选 A选项。 6 【正确答案】 B 【试题解析】 二叉树遍历可以分为 3种:前序遍历 (访问根结点在访问左子树和访问右子树之前 )、中序遍历 (访问根结点在访问左子树和访问右子树两者之间 )、后序遍历 (访问根结点在访问左子树和访问右子树之后 )。由于结点值均大

36、于其左子树上的所有结点值,且小于右子树上的所有结点值,那么只要遍历时访问根结点在访问左子树和右子树之间,遍历序列有序,即中序序列有序。故选 B选项。 7 【正确答案】 A 【试题解析】 整数类实例包括:十进制常量用 0 9表示,不能以 0开头;八进制常量 用 0 7表示,必须用 0开头;十六进制常量用 0 9和 A F(a f)表示,必须以 0x或 0X开头。本题中 B选项是科学计数法表示的浮点数实例, C选项是浮点数实例, D选项是字符串实例。故选 A选项。 8 【正确答案】 A 【试题解析】 计算机软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使

37、用等有关的文档。故选 A选项。 9 【正确答案】 D 【试题解析】 通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。选项 A、 B、 C选项均为生 命周期的一部分。故选 D选项。 10 【正确答案】 A 【试题解析】 数据管理技术的发展经历了 3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。三者各自的特点如下表所示。数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能。数据库系统和文件系统的区别不仅在于管理的文件类型与数据量的多少。数据库系统具有高度的物理独立性和一定的逻辑独立性,而文件系统独立性较好。故本题答案为 A选项。 11 【正确答案】 A 【

38、试题解析】 模块化程序的优点: (1)易于维护和复用,可以提高程序编制的效率。 (2)易于分工合作。 (3)易于模块化调试测试。模块化程序的副作用: (1)可能会降低程序运行效率。 (2)设计的前期工作需要多花费时间。可知选项 B, C, D正确。答案为 A选项。 12 【正确答案】 C 【试题解析】 C语言合法标识名的命名规则是: (1)标识符由字母、数字和下划线组成。 (2)第一个字符不能是数字只能是字母或下划线。选项 A的第一个字符为,非法,选项 B,第一个字符为 #,非法,选项 D,第一个字符为一,非法。答案为选项 C。 13 【正确答案】 A 【试题解析】 C语言中,逗号运算符可以把

39、 两个以上 (包含两个 )的表达式连接成一个表达式。逗号运算符的优先级是所有运算符中级别最低的,逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算,并以最右边表达式值作为整个逗号表达式的值。因此变量 c的值为 a b即11 3=2。故答案为 A选项。 14 【正确答案】 B 【试题解析】 所谓常量是指在程序运行的过程中,其值不能被改变的量。在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项 A是字符串,但使用单引号,错误,选项 C, D,为实型常量中指数形式,但指数形式 e

40、(E)之前必须是数字,之后必须为整数,错误。故答案为 B选项。 15 【正确答案】 A 【试题解析】 代数表达式 1 (x y z)是小数,转为 C语言的表达式必须是小数。 A选项由于 1 0为浮点数,计算结果自动转换为浮点数,故 A选项正确。选项 B, C, D的表达式均为 0。答案为 A选项。 16 【正确答案】 A 【试题解析】 scanf()函数从标准输入输出中读入两个字符 1、 2分别赋给变量a、 b,遇到回车自动结束,但 回车符已经存人缓冲区,函数 getchar()将从中接受了回车符,故 c赋值为回车符,第二个 getchar()读入字符 3,因此 a=1, b=2,c= CR,

41、 d=3。故答案为 A选项。 17 【正确答案】 C 【试题解析】 continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。在 switchca8e 语句中,如果没有 break会导致多个分支重叠。因此,输入 1, 2, 3,则 1执行 case1: pfinff(“ d, “, b+1); case2: pfinff(“ d, “,b+1); continue;后结束。 2则执行 case2: pfinff(“ d, “, b+1); continue; 3则执行 default: pnnff(“ d, “, b+1); continue;得到的结果是 2, 2, 3, 4。

42、故答案为 C选项。 18 【正确答案】 A 【试题解析】 题目中程序执行过程中关键语句 z=x y的结果为: z=1 5, if条件成立, x=2 4, y=2 4, z=1 0,下一次循环 if条件不成立跳出循环,按照格式打印 y值为 2 400000。故答案为 A选项。 19 【正确答案】 C 【试题解析】 scanf(“ c“, &c),输入的字符,题目中输入了 0,字符 0,对应于 ASCII码为 48,因此 for循环中, i的范围从 0 5,均小于 48, if条件不成立,直接执行下一条语句,执行语句 pfinff,因此得到的结果是 0, 1, 2, 3, 4。故答案为 C选项。

43、20 【正确答案】 A 【试题解析】 选项 A中, sum+=1 i; i为整型,因此 1 i是整型类型,当 1 i有小数时,小数部分会被截断。因此 1 i结果始终为 0,导致结果出错,应改为sum+=1 0 i。因此答案为 A选项。 21 【正确答案】 A 【试题解析】 指针运算符 (通常称为间接引用运算符: indirection operator或复引用运算符: dereferencing operator)返回其操作数 (即一个指针 )所指向的对象的值。定义语句中的 *号不是一个间址运算符,而是定义指针变量的说明符,因此,A项错误, B选项正确,原则上说变量 p可以放 double兼容

44、性的变量地址, C选项正确,根据指针的赋值运算,可知 D选项正确。故答案为 A选项。 22 【正确答案】 A 【试题解析】 函数返回值可以整型、实型、字符型、指针和结构类型,也可以 没有返回值。因此选项 A正确,可以返回数组指针,因此可知选项 B, C, D错误。故答案为 A选项。 23 【正确答案】 C 【试题解析】 函数 fun()求数组指定返回的元素的积。函数 fun(a, 3)求的是数组a0 a3的积。因此结果为 2*3*4*5=120,故答案为 C选项。 24 【正确答案】 A 【试题解析】 (*p)4定义了一个数组指针。 p可以指向类似于 arry4的数组,题设中, p不是一个二维

45、数组,只是可以指向这类二维数组,因此选项 A错误。p+1代表了第一行第一个元素的地 址, p=a指向数组 a的首地址,则 B、 C选项正确,同理可知选项 D也正确。故答案为 A选项。 25 【正确答案】 A 【试题解析】 函数 change()的作用将从数组尾部将数组内的元素值加 1。数组的初始值为 ABCD,因此经 change()后,得到的值为 BCDE。故答案为 A选项。 26 【正确答案】 D 【试题解析】 noat a8=1 0, 2 0;定义了一个包含 8个 float型元素的数组,并初始化了数组的前 2项,其他项是随机数。 int b1=0,定义了只有一个int型元素的数组 ,并

46、初始化为 0。 char*c=“A“, “B“;定义一个 char型数组,大小有初始化元素决定,但初始化值是字符串,类型不兼容,编译出错。chard=“1“;定义一个 char型变量,但是初始化赋值字符串,类型不兼容,编译出错。因此只有 a, b定义和初始化正确。故答案为 D选项。 27 【正确答案】 C 【试题解析】 第一个 for循环初始化数组 a,分别为 1, 3, 5,随机数,形成了基本有序的序列,再将输入的数字插入到数组 a,使他们形成有序序列。因此可以分析出,打印的结果为 1, 2, 3, 5。故答案为 C选项 。 28 【正确答案】 A 【试题解析】 while(p a+n&*p

47、!=x)p+;当 p=a; n=10, x=10;时 while循环条件成立,直到 p=a+9,结束循环,执行下一条语句, if条件成立,返回 p-a,此时执行 p-a=a+9-a=9;因此,输出 9。故答案为 A选项。 29 【正确答案】 C 【试题解析】 数组 a是二维数组,数组 w存放二维数组 a行列值相同位置的元素,由 a510可得 w0 w4的元素分别是 agmsy,因此打印结果为 agmsy。故答案为 C选项。 30 【正确答案】 A 【试题解析】 字符串 “ t “ n“ 065 08AB“中共有 13个字符,而strlen()函数从字符串第一个字符开始扫描,直到碰到第一个结束符 0为止,

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

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

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