[计算机类试卷]国家二级(C语言)机试模拟试卷101及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷101及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷101及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 101及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 2 支持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法 中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序
2、 ( C)直接插入排序 ( D)堆排序 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计 划,排除测试的随意性 7 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低
3、耦合性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块问互相连接的紧密程度 8 数据库应用系统中的核心问题是 ( )。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 有两个关系 R、 S如下: 由关系R通过运算得到关系 S,则所 使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 10 将 ER图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 11 以下叙述中错误的是 ( )。 ( A)使用三种基
4、本结构构成的程序只能解决简单问题 ( B)结构化程序由顺序、分支、循环三种基本结构组成 ( C) C语言是一种结构化程序设计语言 ( D)结构化程序设计提倡模块化的设计方法 12 以下四个程序中,完全正确的是 ( )。 ( A) #include stdio h main(); * programming, * printf(“programming! n“); ( B) #include stdio h main() *programming* printf(“programming! n“); ( C) #include stdio h main() * *programming* * p
5、rintf(“programming! n“); ( D) include stdio h main() *programming* printf(“programming! n“); 13 C源程序中不能表示的数制是 ( )。 ( A)十六进制 ( B)八进制 ( C)十进制 ( D)二进制 14 以下选项中,能用作用户标识符的是 ( )。 ( A) _0_ ( B) 8_8 ( C) void ( D) unsigned 15 若有定义语句: int x=10;,则表达式 x-=x+x的值为 ( )。 ( A) 0 ( B) -20 ( C) -10 ( D) 10 16 有以下程序: #
6、include stdio h main() int a=1, b=0: printf(“ d, “, b=a+b); printf(“ d n“, a=2*b); 程序运行后的输出结果是 ( )。 ( A) 1, 2 ( B) 1, 0 ( C) 3, 2 ( D) 0, 0 17 有以下程序: #include stdio h main()int a1, a2; char c1, c2; scanf(“ dc d c“, &a1, &c1, &a2, &c2); printf(“ (1, c, d, c“, a1, c1, a2,c2); 若想通过键盘输入,使得 a1的值为 12, a2的
7、 值为 34, c1的值为字符 a, c2的值为字符 b,程序运行后的输出结果是: 12, a, 34, b。则正确的输人格式是(以下 代表空格, CR代表回车 )( )。 ( A) 12 b CR ( B) 12 b CR ( C) 12, a, 34, h CR ( D) 12a34h CR 18 若变量已正确定义,在 if(W)printf(“ d n“, k);中,以下不可替代 W的是( )。 ( A) a b+c ( B) ch=getchar() ( C) a=b+c ( D) a+ 19 有以下程序段: #include stdio h int a, h, c; a=10; b=
8、50; c=30; if(a h)a=b, b=c; c=a; printf(“a= db= dc= d n“, a, b, c); 程序运行后的输出结果是 ( )。 ( A) a=10 h=50 c=30 ( B) a=10 h=50 c=10 ( C) a=10 b=30 c=10 ( D) a=50 b=30 c=50 20 下列叙述中正确的是 ( )。 ( A)在 switch语句中,不一定使用 break语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D) break语句只能用于 switch语
9、句 21 以下不构成无限循环的语句或语句组是 ( )。 ( A) n=0; do+n; while(n =0); ( B) n=0; while(1)n+; ; ( C) n=10; while(n); n-; ; ( D) for(11=0, i=1; i+)n+=i; 22 有以下程序: #include stdio h main() int c=0, k; for(k=1; k 3; k+) switch(k) default: c+=k; case2: c+; break; ease4: c+=2; break; printf(“ d n“, c); 程序运行后的输出结果是 ( )。
10、( A) 7 ( B) 5 ( C) 3 ( D) 9 23 有以下程序: #include stdio h int f(int x, int y) return(y-x)*x); main() int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c); printf(“ d n“, d); 程序运行后的输出结果是 ( )。 ( A) 7 ( B) 10 ( C) 8 ( D) 9 24 若有定义语句: double a, *p=&a;以下叙述中错误的是 ( )。 ( A)定义语句中的 *号是一个间址运算符 ( B)定义语句中的 *号是一个说明符 ( C)定义语句中
11、的 p只能存放 double类型变量的地址 ( D)定义语句中, *p=&a把变量 a的地址作为初值赋给指针变量 P 25 若有定义语句: double x, y, *px, *py;执行了 px=&x; py=&y;之后,正确的输入语句是 ( )。 ( A) seanf(“ If Ie“, px, py); ( B) seanf(“ f f“&x, &y); ( C) seanf(“ f f“, x, y); ( D) scanf(“ If If“, x, y); 26 以下定义数组的语句中错误的是 ( )。 ( A) int num3=1, 2, 3, 4, 5, 6; ( B) int
12、num24: 1, 2, 3, 4, 5, 6; ( C) int num=1, 2, 3, 4, 5, 6; ( D) int num4=1, 2, 3, 4, 5, 6; 27 有以下程序: #include stdio h 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“); 程序运行
13、后的输出结果是 ( )。 ( 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, 2, 1, ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 28 有以下程序: #include stdio h main() int x32=0, i; for(i=0; i 3; i+)scanf(“ d“, xi); printf(“ 3d 3d 3d n“, x00, x01, x10); 若运行时输入: 2 4 6回车,则输出结果为 ( )。 ( A
14、) 2 0 4 ( B) 2 0 0 ( C) 2 4 0 ( D) 2 4 6 29 有以下程序段: #include stdio h int j; float y; char name50; scanf(“ 2d f s“, &j, &y, name); 当执行上述程序段,从键盘上输入 55566 7777abc后, y的值为 ( )。 ( A) 566 0 ( B) 55566 0 ( C) 7777 0 ( D) 566777 0 30 下列语句组中,正确的是 ( )。 ( A) char*s; s=“Olympic“; ( B) char s7; s=“Olympic“; ( C)
15、char*s; s=“Olympic“; ( D) char s7; s=“Olympic“; 31 有以下函数: int fun(ehar*s) char*t=s; while(*t+); return(t-s); 该函数的功能是 ( )。 ( A)计算 s所指字符串的长度 ( B)比较两个字符串的大小 ( C)计算 s所指字符串占用内存字节的个数 ( D)将 s所指字符串复制到字符串 t中 32 有以下程序 (注:字符 a的 ASCII码值为 97): #include stdio h main() char*s=“abc“; do printf(“ d“, *s 10); +s; whi
16、le(*s); 程序运行后的输出结果是 ( )。 ( A) 789 ( B) abc ( C) 7890 ( D) 979899 33 设有如下函数定义: #include stdio h int fun(int k) if(k 1)returm0; else if(k=1)retum1: else return fun(k-1)+1: 若执行调用语句 “n=fun(3); ”,则函数 fun总共被调用的次数是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 34 有以下程序: #include stdio h int f(int n); main() int a=3, s;
17、 s=f(a); s=s+f(a); printf(“ d n“, s); int f(int n) static int a=1: 1n+=a+; return n; 程序运行后的输出结果是 ( )。 ( A) 9 ( B) 8 ( C) 7 ( D) 10 35 设有定义 : struct complex int real, unreal; datal=1, 8, data2; 则以下赋值语句中错误的是 ( )。 ( A) data2=(2, 6); ( B) data2=datal; ( C) data2=real=datal real; ( D) data2 real=datal un
18、real; 36 有以下程序: #incdude stdio h struct Sint n; int a20; ; wild f(struct S*p) int i, j, t; fori=0; i p- n-1; i+) for(j=i+1; j p- n; j+) if(p- ai p- aj) t=p- ai; p- ai: p- aj; p- aj=t; main() int i: street S s=10, 2, 3, 1, 6, 8, 7, 5, 4, 10, 9; f(&s); for(i=0; i s n; i+)printf(“ d, “, s ai); 程序运行后的输出
19、结果是 ( )。 ( A) 2, 3, 1, 6, 8, 7, 5, 4, 10, 9, ( B) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( C) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( D) 10, 9, 8, 7, 6, 1, 2, 3, 4, 5, 37 有以下程序: #include stdio h #include string h typedef structchat nanle9; char sex; int sore2; STU; STU f(STU a) STU b=“Zhao“, m, 85, 90; int i; sirc
20、opy(a name, b name); a sex=b sex: for(i=0; i 2; i+)a scorei=b scorei; return a; main() STU c=“Qian“, f, 95, 92, d; d=f(c); printf(“ s, c, d, d, “, d name, d sex, d score0, d score1); printf(“ s, c, d, d n“, c name, c sex, C score0, c score1); 程序运行后的输出结果是 ( )。 ( A) Zhao, m, 85, 90, Qian, f, 95, 92 (
21、B) Zhao, m, 85, 90, Zhao, m, 85, 90 ( C) Qian, f, 95, 92, Qian, f, 95, 92 ( D) Qian, f, 95, 92, Zhao, m, 85, 90 38 以下关于宏的叙述中正确的是 ( )。 ( A)宏替换没有数据类型限制 ( B)宏定义必须位于源程序中所有语句之前 ( C)宏名必须用大写字母表示 ( D)宏调用比函数渊用耗费时间 39 设有以下语句: int a=1, b=2, c: c=a (b 2); 执行后, c的值为 ( )。 ( A) 7 ( B) 9 ( C) 8 ( D) 6 40 有以下程序: #in
22、clude stdio h main() FILE*fp; int a10=1, 2, 3, i, n; tp=fopen(“d1 dat“, “w“); for(i=0; i 3; i+)fprintf(fp, “ d“, ai); fprintf(fp, “ n“); fclose(fp); tp=fopen(“d1 dat“, “r“); fscanf(fp, “ d“, &n); Mose(fp); printf(“ d n“, n); 程序运行后的输出 结果是 ( )。 ( A) 321 ( B) 12300 ( C) 1 ( D) 123 二、程序填空题 41 函数 fun的功能是
23、:将一副扑克牌编号为 1, 2, 3, , 53, 54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为l的牌在最上方,如第一次这样洗牌后的结果为: 1, 28, 2, 29, , 53, 27,54。两次洗牌后的结果为: 1, 41, 28, 15 2, 42 , 53, 40, 27, 14, 54。 程序的功能是:输出经过 n次这样洗牌后的结果。 请在程序的下画线处填入正确的内容,并 把下画线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。不得增行或删行,也不得更改程序的结构 ! 试题程序: #include std
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 101 答案 解析 DOC
