[计算机类试卷]国家二级(C语言)机试模拟试卷77及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷77及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷77及答案与解析.doc(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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 77 答案 解析 DOC
