[计算机类试卷]国家二级(C语言)机试模拟试卷78及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷78及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷78及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 78及答案与解析 一、选择题 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 c、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDE12345 ( D) 54321EDCBA 2 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队 列中,只需要队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中
2、元素的个数是由队头指针和队尾指针共同决定的 3 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 ( )。 ( A) D(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 4 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序 表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 5 数据流图中带有箭头的线段表示的是 ( )。 ( A)控制流 ( B)事件驱动 (
3、 C)模块调用 ( D)数据流 6 在软件开发中,需求分析阶段可以使用的工具是 ( )。 ( A) NS图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 7 在面向对象方法中,不属于 “对象 ”基本特点的是 ( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 8 一间宿舍可住多个学生,则 实体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 9 在数据管理技术发展的三个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 10 有三个关
4、系 R、 S和 T如下: 由关系R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 11 下列叙述中错误的是 ( )。 ( A) C程序可以由多个程序文件组成 ( B) 一个 C语言程序只能实现一种算法 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 12 以下选项中,能用作数据常量的是 ( )。 ( A) 115L ( B) 0118 ( C) 1 5e1 5 ( D) 0115 13 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( )。 ( A)大写字母 (
5、B)下划线 ( C)数字字符 ( D)连接符 14 设变量已正确定义并赋值,以下正确的表达式是 ( )。 ( A) x=y+z+5, +y ( B) int(15 8 5) ( C) x=y*5=x+z ( D) x=25 5 0 15 设有定义: intx=2;,以下表达式中,值不为 6的是 ( )。 ( A) 2*x, x+=2 ( B) x+, 2,x ( C) x*=(1+x) ( D) x*=x+1 16 有以下程序: #include stdio h main() int x, y, z; x=y=1; z=x+, y+, +y; printf(“ d, d, d n“, x, y
6、, z); 程序运行后的输出结果是 ( )。 ( A) 2, 3, 3 ( B) 2, 3, 2 ( C) 2, 3, 1 ( D) 2, 2, 1 17 有以下程序: #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)输出无定值 18 若有定义 int x, y;并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x+):(y+)
7、中的条件表达式 (x-y)等价的是 ( )。 ( A) (x-y 0|(x-y 0) ( B) (x-y 0) ( C) (x-y 0) ( D) (x-y=0) 19 有以下程序: #include stdio h main() int x=1, y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“ d n“, y); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 2 ( C) 1 ( D) 0 20 若有定义: float x=1 5; int a=1, b=3, c=2;则正确的 switch语句是 ( )。 (
8、 A) switch(a+b) case1: printf(“* n“); case2+1: printf(“* n“); ( B) switch(int)x); case1: printf(“* n“); case2: printf(“* n“); ( C) switch(x) case1 0: printf(“* n“); case2 0: printf(“, * n“); ( D) switch(a+b) case1: printf(“* n“); easec: printf(“* n“); 21 有以下程序: #include stdio h main() int y=9; for(;
9、 y 0; y-) if(y 3=0)printf(“ d“, -y); 程序运行后的输出结果是 ( )。 ( A) 852 ( B) 963 ( C) 741 ( D) 875421 22 有以下程序: #include stdio h main() int i, j, m=1; for(i=1; i 3; i+) for(j=3; j 0; j-) if(i*j 3)break; m*=i*j; printf(“m= d n“, m); 程序运行后的输出结果是 ( )。 ( A) m=4 ( B) m=2 ( C) m=6 ( D) m=5 23 有以下程序: #include stdio
10、 h int fun(int x, int y) if(x!=y)return(x+y) 2); else return(x); main() int a=4, b=5, c=6; pfinff(“ d n“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( )。 ( A) 6 ( B) 3 ( C) 8 ( D) 12 24 有以下程序: #include stdio h int add(int a, int b)return(a+b); main() int k, (*f)(), a=5, b=10; f=add; 则以下函数调用语句错误的是 ( )。 ( A) k=f
11、(a, b); ( B) k=add(a, b); ( C) k=(*f)(a, b); ( D) k=*f(a, b); 25 有以下程序: #include stdio h main() int n, *p=NULL; *p=&n; printf(“Input n: “); scanf(“ d“, &p); printf(“output n: “); printf(“ d n“, p); 该程序试图通过指针 p为变量 n读入数据并输出,但程序有多处错误,以下语句正确的是 ( )。 ( A) int n, *p=NULL; ( B) *p=&n; ( C) scanf(“ d“, p) (
12、D) printf(“ d n“, p); 26 下列定义数组的语句中,正确的是 ( )。 ( A) #define N10 int xN; ( B) int N=10; int xN; ( C) int x010 ; ( D) int x; 27 有以下程序: #include stdio h main() int a=2, 3, 5, 4, i; for(i=0; i 4; i+) switch(i 2) case0: switch(ai 2) case0: ai+; break; case1: ai-; break; case1: ai=0; for(i=0; i 4; i+)print
13、f(“ d“, ai); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 0 3 0 4 ( B) 2 0 5 0 ( C) 3 3 4 4 ( D) 3 0 4 0 28 有以下程序: #include stdio h main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1; for(i=0; i 3; i+) for(j=i; j =i; j+)t+=bibji; printf(“ d n“, t); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 4 ( C) 1 ( D) 9 29 以下语句中存在语法错误
14、的是 ( )。 ( A) char ss620; ss1=“right?“; ( B) char ss()20=“right?“; ( C) char*ss6; ss1=“right?“; ( D) char*ss()=“right?“; 30 以下不能将 s所指字符串正确复制到 t所指存储空 间的是 ( )。 ( A) do*t+=*s+; while(*s); ( B) for(i=0; ti=si; i+); ( C) while(*t=*s)t+; s+; ( D) for(i=0, j=0; ti+=sj+; ); 31 有以下程序: #include stdio h void sw
15、ap(char*x, char*y) char t; t=*x; *x=*y; *y=t; main() char*s1=“abc“, *s2=“123“; swap(s1, s2); printf(“ s, s n“, s1, s2); 程序执行后的输出结果是 ( )。 ( A) 321, cba ( B) abc, 123 ( C) 123, abc ( D) 1bc, a23 32 有以下函数: int fun(char*x, char*y) int n=0; while(*x=*y)&*x!= 0)x+; y+; n+; return n; 函数的功能是 ( )。 ( A)将 y所指字
16、符串赋给 x所指存储空间 ( B)查找 x和 y所指字符串中是否有 0 ( C)统计 x和 y所指字符串中最前面连续相同的字符个数 ( D)统计 x和 y所指字符串中相同的字符个数 33 有以下程序: #include stdio h int furl() static int x=1; x*=2; return x; main() int i, s=1; for(i=1; i =3; i+)s*=fun(); printf(“ d n“, s); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 30 ( C) 0 ( D) 64 34 在一个 C源程序文件中所定义的全局变量, 其
17、作用域为 ( )。 ( A)由具体定义位置和 extem说明来决定范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)所在文件的全部范围 35 以下叙述中错误的是 ( )。 ( A)可以通过 typedef增加新的类型 ( B)可以用 typedef将已存在的类型用一个新的名字来代表 ( C)用 typedef定义新的类型名后,原有类型名仍有效 ( D)用 typedef可以为各种类型起别名,但不能为变量起别名 36 有以下程序: #include stdio h struet S int a, b; data2=10, 100, 20, 200; main() struer
18、 S p=data1; printf(“ d n“, +(p a); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 11 ( C) 20 ( D) 21 37 有以下程序: #inelude stdio h #define PT3 5; #define S(x)PT*x*x; mai () int a=1, b=2; printf(“ 4 1f n“, S(a+b); 程序运行后的 输出结果是 ( )。 ( A) 7 5 ( B) 31 5 ( C)程序有错无输出结果 ( D) 14 0 38 有以下程序: #include stdio h main() unsigned cha
19、r a=2, b=4, c=5, d; d=a|b; d&=c; printf(“ d n“, d); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 39 有以下程序: #include stdio h #include stdlib h main() int*a, *b, *c; a=b=c=(int*)malloc(sizeof(int); *a=1; *b=2, *c=3; a=b; printf(“ d, d, d n“, *a, *b, *c); 程序运行后的输出结果是 ( )。 ( A) 1, 1, 3 ( B) 2, 2, 3 ( C)
20、 1, 2, 3 ( D) 3, 3, 3 40 以下叙述中正确的是 ( )。 ( A)当对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 ( B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( C) 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( D) C语言中的文件是流式文件,因此只能顺序存取数据 二、程序填空题 41 下列给定程序中,函数 fun的功能是:将形参 n中个位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。 例如,输入一个整数 27638496,函数返回值为
21、64862。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include stdio h unsigned long fun(unsigned long n) unsigned long x=0; int t; while(n) t=n 10; *found* if(t 21) *found* x=2+t; *found* n=3; return x; main() unsigned long n=-1; while(n 99999999|n 0) printf(“Please
22、 input(0 n 100000000): “); scanf(“ ld“, &n); printf(“ nThe result is: ld n“, fun(n); 三、程序修改题 42 下列给定程序中函数 fun的功能是:用冒泡法对 6个字符串进行升序排列。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不得增行或删行,也不得更改程序的结构 ! #include stdio h #include string h #define MAXLINE20 fun(char*pstr6) int i, j; char*p; for(i=0; i 5; i+
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 78 答案 解析 DOC
