[计算机类试卷]国家二级(C语言)机试模拟试卷153及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷153及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷153及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 153及答案与解析 一、选择题 1 算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 2 对于循环队列,下列叙述中正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 3 下列数据结构中,能够按照 “先 进后出 ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 4
2、下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 5 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对象之间的共同性质 ( D)类之间共享属性和操作的机制 6 以下叙述中正确的是 ( )。 ( A)程序设计的任务就是编写程序代码并上机调试 ( B)程序设计的任务就是确定所用数据结构 ( C)程序设计的任务就是确定所用算法 ( D)以上三种说法都不完整 7 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)可行性分析报告 ( B)软件需求规格说明
3、书 ( C)概要设计说明书 ( D)集成测试计划 8 软件详细设计产生的图如下: 该图是 ( )。 ( A) N-S图 ( B) PAD图 ( C)程序流程图 ( D) E-R图 9 在黑盒测试方法中,设计测试用例的主要依据是 ( )。 ( A)程序内部逻辑 ( B)程序外部功能 ( C)程 序数据结构 ( D)程序程序流程 10 有三个关系 R, S和 T如下: 其中关系 T由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 11 下面是有关 C语言字符数组的描述,其中错误的是 ( )。 ( A)不可以用赋值语句给字符数组名赋字符串 (
4、B)可以用输入语句把字符串整体输入给字符数组 ( C)字符数组中的内容不一定是字符串 ( D)字符数组只能存放字符串 12 计算机能直接执行的程序是 ( )。 ( A)源程序 ( B)目标程序 ( C)汇编 程序 ( D)可执行程序 13 以下选项中,能用作用户标识符的是 ( )。 ( A) void ( B) 8_8 ( C) _0_ ( D) unsigned 14 若有以下程序段: int r=8; printf(“ d n“, r 1); 输出结果是 ( )。 ( A) 16 ( B) 8 ( C) 4 ( D) 2 15 有以下定义语句,编译时会出现编译错误的是 ( )。 ( A)
5、char a=a ( B) char a= n; ( C) char a=aa; ( D) char a= x2d 16 有以下程序: #include stdio h main() char c1, c2; c1=A+8一 4; c2=A+8一 5; printf(“ c d n“, c1, c2); 已知字母 A的 ASCII码为 65,程序运行后的输出结果是 ( )。 ( A) E 68 ( B) D 69 ( C) E D ( D)输出无定值 17 有如下语句: k=a b?(b c?1: 0): 0;, 以下程序段中,与上述语句功能相同的是 ( )。 ( A) if(a b)&(b
6、c)k=1; else k=0; ( B) if(a b) (b c), k=1; else k=0; ( C) if(a =b)k=0; else if(b =c)k=1; ( D) if(a b)k=1; else if(b c)k=1; else k=0; 18 设有定义: int a=1, b=2, c=3;,以下语句中执行效果与其他三个不同的是( )。 ( A) if(a b)c=a, a=b, b=c; ( B) if(a b)c=a, a=b, b=c ( C) if(a b)c=a; a=b; b=c; ( D) if(a b)c=a; a=b; b=c 19 有以下程序: #
7、include stdio h main() int n=2, k=0; while(k+&n+ 2); printf(“ d d n“, k, n); 程序运行后的输出结果是 ( )。 ( A) 0 2 ( B) 1 3 ( C) 5 7 ( D) 1 2 20 以下函数中, findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN一 2147483647 int findmax(int x, int n) int i, max; for(i=0; i n; i+) max=MIN; if(max xi)max=xi; return
8、max; 造成错误的原因是 ( )。 ( A)定义语句 int i, max;中 max未赋初值 ( B)赋值语句 max=MIN;中,不应给 max赋 MIN值 ( C)语句 if(max xi)max=xi;中判断条件设置错误 ( D)赋值语句 max=MIN;放错了位置 21 有以下程序: #include stdio h main() int a=2, 3, 5, 4), i; for(i=0; i 4; i+) switch(i 2) case 0: switch(ai 2) case 0: ai+; break; case 1: ai一一; break; case 1: ai=0;
9、 for(i=0; i 4; i+) printf(“ d“, ai); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 3344 ( B) 2050 ( C) 3040 ( D) 0304 22 下列函数的功能是 ( )。 fun(char *a, char *b) while(*b= *a)!= 0 a+; b+; ( A)将 a所指字符串赋给 b所指空间 ( B)使指针 b指向 a所指字符串 ( C)将 a所指字符串和 b所指字符串进行比较 ( D)检查 a和 b所指字符串中是否有 0 23 有以下程序: #include stdio h main() int c
10、ase; float printF; printf(“请输入 2个数: “); scanf(“ d f“, &case, &printF); printf(“ d f n“, case, printF); 该程序编译时产生错误,其出错原因是 ( )。 ( A)定义语句出错, case是关键字,不能用作用户自定义标识符 ( B)定义语句出错, printF不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 case的值 24 有以下程序: #include stdio h main() int c=0, k; for(k
11、=1; k 3; k+) switch(k) default: c+=k; case 2: c+; break; case 4: c+=2; break; printf(“ d n“, c); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 5 ( C) 7 ( D) 9 25 设有定义: char *c;,以下选项中能够使字符型指针 c正确指向一个字符串的是 ( )。 ( A) char str=“string“; c=str; ( B) scanf(“ s“, c); ( C) c=getchar(): ( D) *c=“string“; 26 有以下程序: #include s
12、tdio h #include string h main() char a10=“abcd“; printf(“ d, d n“, strlen(a), sizeof(a); 程序运行后的输出结果是 ( )。 ( A) 7, 4 ( B) 4, 10 ( C) 8, 8 ( D) 10, 10 27 有以下程序: #include stdio h main() char s=“012xy“; int i, n=0; for(i=0; si!=0; i+) if(si =a&si =z) n+; printf(“ d n“, n); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 2
13、 ( C) 3 ( D) 5 28 若有定义语句: int a410, *p, *q4;且 0i 4,则错误的赋值是 ( )。 ( A) p=a ( B) qi=ai ( C) p=ai ( D) p= a21 29 有以下程序: #include stdio h #include string h main() char str20=“One *World“, “One*Dream!“), *p=str1; printf(“ d, “, strlen(p); printf(“ s n“, p); 程序运行后的输出结果是 ( )。 ( A) 9, One*World ( B) 9, One*D
14、ream! ( C) 10, One*Dream! ( D) 10, One*World 30 有以下程序: #include stdio h void fun(int p) int d=2; p=d+; printf(“ d“, p); main() int a=1: fun(a); printf(“ d n“, a); 程序运行后的输出结果是 ( )。 ( A) 32 ( B) 12 ( C) 21 ( D) 22 31 有以下程序: #include stdio h int f(int n) static int a=1: n+=a+; return n; main() int a=3,
15、 s; s=f(a); s=s+f(a); printf(“ d n“, s); 程序运行以后的输出结果是 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 32 设有定义: double a10, *s=a;,以下能够代表数组元素 a3的是 ( )。 ( A) (*s)3 ( B) *(s+3) ( C) *s3 ( D) *s+3 33 下列关于 return语句的叙述中,正确的是 ( )。 ( A)一个自定义函数中必须有一条 return语句 ( B)一个自定义函数中可以根据不同情况设置多条 return语句 ( C)定义成 void类型的函数中可以有带返回值的 ret
16、urn语句 ( D)没有 return语句的自定义函数在执行结束时不能返回到调用处 34 在源程序的开始处加上 “#include stdio h ”进行文件引用的原因,以下叙述正确的是 ( )。 ( A) stdio文件中包含标准输入 输出函数的函数说明,通过引用此文件以便能正确使用 printf、 scanf等函数 ( B)将 stdio h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行 ( C)将 stdio h中标准输入输出函数的源程序插入到引用处,以便进行编译链接 ( D)将 stdio h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接 35 设有以下函
17、数: void fun(int n, char*s) 则下面对函数指针的定义和赋值均是正确的是 ( )。 ( A) void(*pf)(); pf=fun; ( B) void *pf(); pf=fun; ( C) void *pf(); *pf=fun; ( D) void(*pf)(int char); pf=&fun; 36 有以下程序: #include stdio h main() int m=1, n=2, *p=&m, *q=&n, *r; r=p; p=q; q=r; printf(“ d, d, d, d n“, m, n, *p, *q); 程序运行后的输出结果是 ( )
18、。 ( A) 1, 2, 1, 2 ( B) 1, 2, 2, 1 ( C) 2, 1, 2, 1 ( D) 2, 1, 1, 2 37 有以下程序: #include stdio h #define f(x)x*x*x main() int a=3, s, t; s=f(a+1); t=f(a+1); printf(“ d, d n“, s, t); 程序运行后的输出结果是 ( )。 ( A) 10, 64 ( B) 10, 10 ( C) 64, 10 ( D) 64, 64 38 下面结 构体的定义语句中,错误的是 ( )。 ( A) struct ordint x; int y; in
19、t z; ; structord a; ( B) struct ordint x; int y; int z; structord a; ( C) struct ordint x; int y; int z; a; ( D) structint x; int y; int z; a; 39 有以下程序: #include stdio h #include string h struct A int a; char b10; double c; ; struct A f(struct A t); main() struct A a=1001, “ZhangDa“, 1098 0; a=f(a);
20、 printf(“ d, s, 6 1f n“, a a, a b, a c); struct A f(struct A t) t a=1002; strcpy(t b, “ChangRong“); t c=1202 0; return t; 程序运行后的输出结果是 ( )。 ( A) 1001, ZhangDa, 1098 0 ( B) 1002, ZhangDa, 1202 0 ( C) 1001, ChangRong, 1098 0 ( D) 1002, ChangRong, 1202 0 40 以下叙述中正确的是 ( )。 ( A)当对文件的读 (写 )操作完成之后,必须将它关闭,否则
21、可能导致数据丢失 ( B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( C)在一个程序中当对文件进 行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( D) C语言中的文件是流式文件,因此只能顺序存取数据 二、程序填空题 41 下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数 fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include
22、 stdlib h #define N 8 typedef struct list int data; struct list*next; SLIST; void fun(SLIST *h) SLIST *p, *q; p=h一 next; if(p!=NULL) q=p一 next; while(q!=NULL) if(p一 data=q一 data) p一 next=q一 next; *found* free(【 1】 ); *found* q=p一【 2】; else p=q; *found* q=q一【 3】; SLIST *creatlist(int *a) SLIST *h, *p
23、, *q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; i N; i+) q=(SLIST *)malloc(sizeof(SLIST); q一 data=ai; p一 next=q; p=q; p一 next=0; return h; void outlist(SLIST *h) SLIST *p; p=h一 next; if(p=NULL) printf(“The list is NULL! n“); else printf(“ nHead“); do printf(“一 d“, p一 data); p=p一 next; while
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 153 答案 解析 DOC
