[计算机类试卷]国家二级(C语言)机试模拟试卷115及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷115及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷115及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 115及答案与解析 一、选择题 1 有以下程序: #include #define N 4 void fun(int aN, int b) int i; for(i=0; i N; i+)bi=aii; main() int xN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, yN, i; fun(x, y); for(i=0; i N; i+)pfintf(“ d, , yi); pfintf(“ n“); 程序运行的结果是 ( )。 ( A) 1, 2, 3, 4, ( B) 1, 0, 7, 0, ( C) 1, 4, 5, 9, ( D
2、) 3, 4, 8, 0, 2 有以下程序: #include main() char a=4; printf(“ d n“, a=a 1); 程序运行的结果是 ( )。 ( A) 40 ( B) 16 ( C) 8 ( D) 4 3 一个栈的初始状态为空。现 将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDE12345 ( D) 54321EDCBA 4 有以下程序: #include struct st int x, y; data2=1
3、, 10, 2, 20; main() struct st*p=data; printf(“ d, “, P- Y); printf(“ d n“, (+P)- x); 程序运行的结果是 ( )。 ( A) 10, 1 ( B) 20, 1 ( C) 10, 2 ( D) 20, 2 5 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 ( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 6 假定已建立以下数据链表结构,且指针 p和 q已指向如下图所示的结点:则以下选项中可将 q所指结点从链表中删除并释放该结点的语句是
4、 ( )。 ( A) (*)p next=(*q) next; free(p) ( B) b=q- next; free(q) ( C) p=q; free(q) ( D) P- next=q- next; free(q) 7 有以下程序段: int a, b, C; a=10; b=50; C=30; if(a b)a=b, b=c; c=a; printf(“a= d b= d c= d“, a, b, c); 程序的输出结果是 ( )。 ( A) a=10 b=50 C=10 ( B) a=10 b=50 C=30 ( C) a=10 b=30 C=10 ( D) a=10 b=30 C
5、=50 8 有以下程序: #include int fun(int(*s)4, int n, int k) int m, i; m=s0k; for(i=1; i n; i+)if(sik m)m=sik; return m; main() int a 44=1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24, 31,32, 33, 34; printf(“ d n“, fun(a, 4, 0); 程序运行的结果是 ( )。 ( A) 4 ( B) 34 ( C) 31 ( D) 32 9 有以下程序: #include main() int i=5; do
6、if(i 3=1) if(i 5=2) printf(“* d“, i); break; i+: while(i! =0); printf(“ n“); 程序运行的结果是 ( )。 ( A) *7 ( B) *3*5 ( C) *5 ( D) *2*6 10 有以下程序: #include #include int fun(int n) int*p; p=(int*)malloc(sizeof(int); *p=n; return*p; main() int a; a=fun(10); printf(“ d n“, a+fun(10); 程序运行的结果是 ( )。 ( A) 0 ( B) 10
7、 ( C) 20 ( D)出错 11 有以下程序: #include main() int x=1, y=2, z=3; if(x y) if(y z)printf(“ d“, +z); else printf(“ d“, +y); printf(“ d n“, x+); 程序运行的结果是 ( )。 ( A) 3 3 1 ( B) 4 1 ( C) 2 ( D) 1 12 若有定义语句: double x5=1 0, 2 0, 3 0, 4 0, 5 0, *p=x,则错误引用 x数组元素的是 ( )。 ( A) *p ( B) x5 ( C) *(p+1) ( D) *x 13 有以下程序:
8、 #include void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; for(i=0; i 10; i+=2)fun(ci, ci+1); for(i=0; i 10; i+)printf(“ d, “, ci); printf(“ n“); 程序运行的结果是 ( )。 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ( B) 2, 1, 4, 3, 6, 5, 8, 7, 0, 9 ( C) 0, 9, 8, 7, 6, 5, 4, 3
9、, 2, 1 ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 14 以下关于宏的叙述中正确的是 ( )。 ( A)宏名必须用大写字母表示 ( B)宏定义必须位于源程序中所有语句之前 ( C)宏替换没有数据类型限制 ( D)宏调用比函数调用耗费时间 15 在面向对象方法中,不属于 “对象 ”基本特点的是 ( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识惟一性 16 有以下程序: #include void fun(int a, int n) int i, t; for(i=0; i n 2; i+)t=ai; ai=an 1 i; an 1 i=t; m
10、ain() int k10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; fun(k, 5); for(i=2; i 8; i+)printf(“ d“, ki); printf(“ n“); 程序运行的结果是 ( )。 ( A) 3456787 ( B) 876543 ( C) 1098765 ( D) 321678 17 C源程序中不能表示的数制是 ( )。 ( A)二进制 ( B)八进制 ( C)十进制 ( D)十六进制 18 有以下程序: #include int fun(int a, int b) if(b=0)return a; else return(fun
11、(-a, -b); main() printf(“ d n“, fun(4, 2); 程序运行的结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 19 计算机能直接执行的程序是 ( )。 ( A)源程序 ( B)目标程序 ( C)汇编程序 ( D)可执行程序 20 以下叙述中错误的是 ( )。 ( A)用户定义的函数中可以没有 return语句 ( B)用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值 ( C)用户定义的函数中若没有 return语句,则应当定义函数为 void类型 ( D)函数的 return语句中可以没有表达式 21 若有
12、定义语句: char s10=“1234567 0 0“;,则 strlen(s)的值是 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 22 执行以下程序段后, w的值为 ( )。 int w=A, x=14, y=15; w=(x y)&(w a); ( A) 1 ( B) NULL ( C) 1 ( D) 0 23 有以下程序: #include main() int i, j; for(i=3; i =1; i-) for(j=1; j =2; j+)printf(“ d“, i+j); prinTf(“ n“); 程序运行的结果是 ( )。 ( A) 2 3 4
13、3 4 5 ( B) 4 3 2 5 4 3 4 5 ( C) 2 3 3 4 2 3 ( D) 4 5 3 4 2 3 24 以下选项中正确的定义语句是 ( )。 ( A) double a; b; ( B) double a=b=7; ( C) double a=7, b=7; ( D) double, a, b; 25 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 26 以下选项中不能作为 C语言合法常量的是 ( )。 ( A) cd ( B) 0 1e+6 ( C) a ( D) 011 27 数据流图中带
14、有箭头的线段表示的是 ( )。 ( A)控制流 ( B)事件驱动 ( C)模块调用 ( D)数据流 28 若变量已正确定义为 int型,要通过语句 scanf(“ d, d, d“, &a, &b,&c);给 a赋值 1、给 b赋值 2、给 c赋值 3,以下输入形式中错误的是 (u代表一个空格 )( ). ( A) uuu1, 2, 3 ( B) lu2u3 ( C) 1, uuu2, uuu3 ( D) 1, 2, 3 29 如有表达式 (w)?( x): (+y),则其中与 w等价的表达式是 ( )。 ( A) w=1 ( B) w=0 ( C) w! =1 ( D) w! =0 30 软
15、件开发中,需求分析阶段可以使用的工具是 ( )。 ( A) N-S图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 31 在数据管理技术发展的三个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 32 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化 ( C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化 ( D)循环队列中元素的个数由队头指针和队映尾指针共同决定 33 有三个关系 R
16、、 S和 T如下 : 由关系 R和 S通过进行运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 34 下面的函数调用语句中 func函数的实参个数是 ( )。 func(f=! (v1, v2), (v3, v4, v5), (v6, max(v7, v8) ( A) 3 ( B) 4 ( C) 5 ( D) 8 35 以下不能正确表示代数式 的 C语言表达式是 ( )。 ( A) 2*a*b c d ( B) a*b c d*2 ( C) a c d*b*2 ( D) 2*a*b c*d 36 以下叙述中正确的是 ( )。 ( A) C
17、程序的基本组成单位是语句 ( B) C程序中的每一行只能写一条语句 ( C)简单 C语句必须以分号结束 ( D) C语言必须在一行内写完 37 若有定义语句: int m=5, 4, 3, 2, 1, i=4;,则下面对 m数组元素的引用中错误的是 ( )。 ( A) m-i ( B) m2*2 ( C) mm0 ( D) mmi 38 有以下程序: #include main() struct STU char name9; char sex; double score2; ; struct STU a=“Zhao“, m, 85 0, 90 0, b=“Qian“, f, 95 0, 92
18、 0; b=a; printf(“ s, c, 2 Of, 2 Of n“, b name, b sex, b score0,b score1); 程序运行的结果是 ( )。 ( A) Qian, f, 95, 92 ( B) Qian, f, 85, 90 ( C) Zhao, f, 95, 92 ( D) Zhao, m, 85, 90 39 有以下程序: #include main() FILE*pf; char*s1=“China“, s2=“Beijing“; pf=fopen(“abc dat, “wb+“); fwrite(s2, 7, 1, pf); rewind(pf); *
19、文件位置指针回到文件开头 * fwrite(s1, 5, 1, pf); fclose(pf); 以上程序执行后 abc dat文件的内容是 ( )。 ( A) China ( B) Chinang ( C) ChinaBeijing ( D) BeijingChina 40 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 二、程序填空题 41 下列给定的程
20、序中,函数 fun()的功能是:求出以下分数序列的前 n项和。 21, 3 2, 5 3, 8 5, 13 8, 21 13, 和值通过函数值返回 main()函数。例如,若输入 n=5,则应输出 8 391667。 注意: 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。 【试题源程序】 #include #include double fun(int n、 ) int a=2, b=1, c, k; double 【 1】 ; for(k=1; k =n; k+) s=s+1 0*a b: c=a; a+= 【 2】 ; b=c; re
21、turn(s); main() int n=5; printf(“ nThe value of function is: If n“, 【 3】 ); 三、程序修改题 42 下列给定程序中,函数 fun()的功能是:将 n个无序整数从小到大排序。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动函数 main(),不得增行或删行,也不得更改程序的结构。 【试题源程序】 #include #include void fun(int n, int*a) int i, j, P, t; for(j=0; j n 1; j+) P=j; *found* for(i=j+1; i n 1;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 115 答案 解析 DOC
