[计算机类试卷]国家二级(C语言)机试模拟试卷23及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷23及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷23及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 23及答案与解析 一、选择题 1 下列链表中,其逻辑结构属于非线性结构的是 ( A)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 2 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 3 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶元素 一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上说法均错误
2、 4 在关系数据库中,用来表示实体间联系的是 ( A)属性 ( B)二维表 ( C)网状结构 ( D)树状结构 5 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是 ( A) 1: 1联系 ( B) m: 1联系 ( C) 1: m联系 ( D) m: n联系 6 有两个关系 R和 S如下: 则由关系 R得到关系 S的操作是 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 7 数据字典( DD) 所定义的对象都包含于 ( A)数据流图( DFD图 ) ( B)程序流程图 ( C)软件结构图 ( D)方框图 8 软件需求规格说明书
3、的作用不包括 ( A)软件验收的依据 ( B)用户与开发人员对软件要做什么的共同理解 ( C)软件设计的依据 ( D)软件可行性研究的依据 9 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 10 下面不属于软件设计阶段任务的是 ( A)软件总体设计 ( B)算法设计 ( C)制定软件确认测试计 划 ( D)数据库设计 11 下列叙述中错误的是 ( A) C程序可以由多个程序文件组成 ( B)一个 C语言程序只能实现一种算法 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 12 C语言源程序名的
4、后缀是 ( A) .C ( B) .exe ( C) .obj ( D) .cp 13 以下选项中不能用作 C程序合法常量的是 ( A) 123 ( B) 123 ( C) 1,234 ( D) x7D 14 表达式 a+=a -= a=9 的值是 ( A) 18 ( B) -9 ( C) 0 ( D) 9 15 若有定义语句: int x=12, y=8, z; 在其后执行语句 z= 0.9+x/y; 则 z的值为 ( A) 1 ( B) 1.9 ( C) 2 ( D) 2.4 16 阅读以下程序 #include stdio.h main() int case ; float printF
5、; printf(“请输入 2个数: “); scanf(“%d %f“, printf(“%d %fn“,case,printF ); 该程序在编译时产生错误,其出错原因是 ( A)定义语句出错, case是关键字,不能用作用户自定义标识符 ( B)定义语句出错, printF不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 case的值 17 有以下程序 #include stdio.h main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar();
6、c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn“,c5,c6); 程序运行后,若从键盘输入(从第 1列开始 ) 123回车 45678回车 则输出结果是 ( A) 1245 ( B) 1256 ( C) 1278 ( D) 1267 18 以下选项中,当 x为大于 1的奇数时,值为 0的表达式是 ( A) x/2 ( B) x%2=0 ( C) x%2!=0 ( D) x%2=1 19 以下选项中与 if(a=1)a=b; else a+; 语句功能不同的 switch语句是 ( A) switch(a=1) case 0:a=b;b
7、reak; case 1:a+; ( B) switch(a) case 1:a=b;break; default : a+; ( C) switch(a) default:a+;break; case 1:a=b; ( D) switch(a=1) case 1:a=b;break; case 0:a+; 20 若变量已正确定义,有以下程序段 i=0; do printf(“%d,“,i); while( i+ ); printf(“%dn“,i); 其输出结果是 ( A) 0,1 ( B) 0,0 ( C) 1,1 ( D)程序进入无限循环 21 有以下程序 #include stdio.
8、h main() int a=1,b=2,c=3,d=0; if (a=1 else printf(“%d,%d,%dn“,a,b,c); else printf(“%d,%d,%dn“,a,b,c); 程序运行后的输出结果是 ( A) 1,3,2 ( B) 1,3,3 ( C) 1,2,3 ( D) 3,2,1 22 有以下程序段 int i, n; for( i=0; i 8; i+ ) n = rand( ) % 5; switch (n) case 1: case 3: printf(“%d n“, n); break; case 2: case 4: printf(“%d n“, n
9、); continue; case 0: exit(0); printf(“%d n“,n); 以下关于程序段执行情况的叙述,正确的是 ( A) for循环语句固定执行 8次 ( B)当产生的随机数 n为 4时结束循环操作 ( C)当产生的随机数 n为 1和 2时不做任何操作 ( D)当产生的随机数 n为 0时结束程序运行 23 有以下程序 #include stdio.h int fun1( double a ) return (int)(a*=a); int fun2(double x, double y) double a=0,b=0; a=fun1( x ); b=fun1( y );
10、 return (int)(a+b); main() double w; w=fun2(1.1,2.0); printf(“%4.2f“, w); 程序执行后输出 结果是 ( A) 0.0 ( B) 5 ( C) 5.21 ( D) 5 24 设有定义语句 int (*f)(int); 则以下叙述正确的是 ( A) f是基类型为 int的指针变量 ( B) f是指向函数的指针变量,该函数具有一个 int类型的形参 ( C) f是指向 int类型一维数组的指针变量 ( D) f是函数名,该函数的返回值是基类型为 int类型的地址 25 有以下程序 #include stdio.h void fu
11、n( int *a,int *b) int *c; c=a;a=b;b=c; main() int x=3, y=5, *p= fun(p,q); printf(“%d,%d,“,*p,*q); fun( printf(“%d,%dn“,*p,*q); 程序运行后的输出结果是 ( A) 3,5,3,5 ( B) 3,5,5,3 ( C) 5,3,3,5 ( D) 5,3,5,3 26 若有定义: int w35; 则以下不能正确表示该数组元素的表达式是 ( A) *( for (i=2; i 6; i+) bi *= 2; main() int a10=1,2,3,4,5,6,7,8,9,10
12、, i; f(a); for (i=0; i 10; i+) printf(“%d,“, ai); 程序运行后的输出结果是 ( A) 1,2,3,4,5,6,7,8,9,10, ( B) 1,2,6,8,10,12,7,8,9,10, ( C) 1,2,3,4,10,12,14,16,9,10, ( D) 1,2,6,8,10,12,14,16,9,10, 28 有以下程序 #include stdio.h int fun( char s) int n=0; while(*s = 9 s+; return (n); main() char s10= 6, 1, *, 4, *, 9, *, 0
13、, *; printf(“%dn“,fun(s); 程序的运行结果是 ( A) 5 ( B) 9 ( C) 61 ( D) 61490 29 若要求从键盘读入含有空格字符的字符串,应使用函数 ( A) getchar() ( B) getc() ( C) gets() ( D) scanf() 30 设有如下程序段 #include stdio.h char s20=“Beijing“, *p; p=s; 则执行 p=s;语句后,以下叙述正确的是 ( A) s和 p都是指针变量 ( B) s数组中元素的个数和 p所指字符串长度相等 ( C)可以用 *p表示 s0 ( D)数组 s中的内容和指针
14、变量 p中的内容相同 31 有以下程序 #include stdio.h main() char s=“abcde“; s+=2; printf(“%dn“,s0); 执行后的结果是 ( A)输出字符 c的 ASCII码 ( B)程序出错 ( C)输出字符 c ( D)输出字符 a的 ASCII码 32 有以下程序 #include stdio.h #include string.h void fun(char *s, int n) char *t; int i, j; for (i=0; i n-1; i+) for (j=i+1; j n; j+) if (strlen(si) strle
15、n(sj) t = si; si = sj; sj = t; main() char *ss=“bcc“,“bbcc“,“xy“, “aaaacc“, “aabcc“; fun(ss, 5); printf(“%s,%sn“, ss0,ss4); 程序的运行结果是 ( A) aaaacc,xy ( B) xy,aaaacc ( C) bcc,aabcc ( D) aabcc,bcc 33 有以下程序 #include stdio.h int a=4; int f(int n) int t = 0; static int a=5; if (n%2) int a=6; t += a+; else
16、int a=7; t += a+; return t + a+; main() int s=a, i=0; for (; i 2;i+) s += f(i); printf(“%dn“, s); 程序运行后的输出结果是 ( A) 36 ( B) 24 ( C) 32 ( D) 28 34 有以下程序 #include stdio.h int f(int n) int t = 0, a=5; if (n/2) int a=6; t += a+; else int a=7; t += a+; return t + a+; main() int s=0, i=0; for (; i 2;i+) s
17、+= f(i); printf(“%dn“, s); 程序运行后的输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36 35 有以下定义和语句 struct workers int num; char name20; char c; struct int day; int month; int year; s; ; struct workers w,*pw; pw= 能给 w中 year成员赋 1980的语句是 ( A) pw- year=1980; ( B) w.year=1980; ( C) w.s.year=1980; ( D) *pw.year=1980; 36
18、以下叙述中错误的是 ( A)可以用 typedef将已存在的类型用一个新的名字来代表 ( B)可以通过 typedef增加新的类型 ( C)用 typedef定义新的类型名后,原有类型名仍有效 ( D)用 typedef可以为各种类型起别名,但不能为变量起别名 37 有以下程序 #include stdio.h struct tt int x; struct tt *y; *p; struct tt a4=20,a+1,15,a+2,30,a+3,17,a; main() int i; p=a; for(i=1; i =2; i+) printf(“%d,“, p- x ); p=p- y;
19、程序的运行结果是 ( A) 20,30, ( B) 30,17 ( C) 15,30, ( D) 20,15, 38 有以下程序 #include stdio.h main() struct STU char name9; char sex; double score2; ; struct STU a=“Zhao“, m, 85.0, 90.0, b=“Qian“, f, 95.0, 92.0; b=a; printf(“%s,%c,%2.0f,%2.0fn“, b.name, b.sex, b.score0, b.score1); 程序的运行结果是 ( A) Qian,m,85,90 ( B
20、) Zhao,m,85,90 ( C) Zhao,f,95,92 ( D) Qian,f,95,92 39 以下叙述中错误的是 ( A) C程序对预处理命令行的处理是在程序执行的过程中进行的 ( B)预处理命令行的最后不能以分号表示结束 ( C) #define MAX 是合法的 宏定义命令行 ( D)在程序中凡是以 “#“开始的语句行都是预处理命令行 40 有以下程序 #include stdio.h main() FILE *f; f=fopen(“filea.txt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件 filea.txt中原有内容为: he
21、llo,则运行以上程序后,文件 filea.txt中的内容为 ( A) abclo ( B) abc ( C) helloabc ( D) abchello 二、程序填空题 41 给定程序中,函数 fun的功能是:统汁形参 s所指的字符串中数字符出现的次数,并存放在形参 t所指的变量中,最后在主函数中输出。 例如,若形参 s所指的字符串为 “abcdef35adgh3kjsdt7”,则输出结果为 4。 请在程序的下画线处填入正确内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include Stdio h void
22、 fun(char*S, int*t) int i, n; n=0; /*found*/ for(i=0; 【 1】 ! =0, i+) /*found*/ if(si =0i =n; i+) y=f(1 0*i); s+=y;)/*found*/ return Svoid main() system(“CLS”); printf(“ f n”, fun(5); 四、程序设计题 43 请编写函数 fun,其功能是:将 M行 N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,若 二维数组中的数据为 W W W W S S S S H H H H 则字符串中的内容应是: WSHW
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 23 答案 解析 DOC
