[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc

上传人:twoload295 文档编号:502867 上传时间:2018-11-29 格式:DOC 页数:29 大小:75.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc_第1页
第1页 / 共29页
[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc_第2页
第2页 / 共29页
[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc_第3页
第3页 / 共29页
[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc_第4页
第4页 / 共29页
[计算机类试卷]国家二级(C语言)机试模拟试卷130及答案与解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、国家二级( C语言)机试模拟试卷 130及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 2 下列叙述中正确的是 ( )。 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都 是非线性结构 ( D)以上三种说法都不对 3 软件测试的目的是 ( )。 ( A)评估软件可靠性 (

2、 B)发现并改正程序中的错误 ( C)改正程序中的错误 ( D)发现程序中的错误 4 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)软件集成测试计划 ( B)软件详细设计说明书 ( C)用户手册 ( D)软件需求规格说明书 5 软件生命周期是指 ( )。 ( A)软件产品从提出、实现、使用维护到停止使用退役的过程 ( B)软件从需求分析、设计、实现到测试完成的过程 ( C)软件的开发过程 ( D)软件的运行维护过程 6 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对象之间的共同性质 ( D)类之间共享属性

3、和操作的机制 7 层次型、网状型和关系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 8 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对多 ( D)多对一 9 数据库设计中反映用户对数据要求的模式是 ( )。 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)差 ( C)交 ( D)并

4、 11 计算机能直接执行的程序是 ( )。 ( A)源程序 ( B)目标程序 ( C)汇编程序 ( D)可执行程序 12 以下叙述中正确的是 ( )。 ( A) C语言规定必须用 main作为主函数名,程序将从此开始执行 ( B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 ( C) C语言程序将从源程序中第一个函数开始执行 ( D) main的各种大小写拼写形式都可以作为主函数名,如 MAIN, Main等 13 以下选项中可用做 C程序合法实数的是 ( )。 ( A) 3 0e0 2 ( B) 1e0 ( C) E9 ( D) 9 12E 14 下列定义变量的语句中错误

5、的是 ( )。 ( A) int_int; ( B) double int_; ( C) char For; ( D) noat US$: 15 表达式: int)(double)9 2)一 9 2的值是 ( )。 ( A) 0 ( B) 3 ( C) 4 ( D) 5 16 设变量均已正确定义,若要通过 scanf(“ d c d c”, &a1, &c1, &a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是 ( )。 (注:口代表空格字符 ) ( A) 10口 X 20口 Y ( B) 10口 X20口 Y (

6、 C) 10X 20Y ( D) 10口 X口 20口 Y 17 以下选项中不能作为 C语言合法常量的是 ( )。 ( A) 0 1e+6 ( B) cd ( C) “ a” ( D) 011 18 if语句的基本形式是: if(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是( )。 ( A)必须是逻辑值 ( B)必须是整数值 ( C)必须是正数 ( D)可以是任意合法的数值 19 有如下嵌套的 if语句: if(ac)?b: c); ( B) k=(a main() int k=5; while(一一 k)prinff(“ d”, k一 =3); prinff(“ n”); 程序执

7、行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 4 ( D)死循环 21 有以下程序: #include main() int i, j; for(i=3; i=1; i一一 ) for(j=1; j main() int k=5, n=0; do switch(k) ease 1: case 3: n+=1; k一一; break; default: n=0; k一一; case 2: ease 4: n+=2; k一一; break; printf(“ d”, n); while(k0&n void f(int*q) int i=0; for(; i int fun(in

8、t(*s)4, int n, int k) int m, i; m=s0k; for(i=1; im) m=sik; return m; main() int a44=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 29 以下选项中正确的语句组 是 ( )。 ( A) char*s; s=“BOOK!”; ( B) char*s; s=“BOOK!”; ( C) ehar s1

9、0; s=“BOOK!”; ( D) char s; s=“BOOK!”; 30 若有定义语句: char*s1=“OK”, *s2=“ok”;以下选项中,能够输出 “OK”的语句是 ( )。 ( A) if(strcmp(s1, s2)!=0)puts(s2); ( B) if(strcmp(s1, s2)!=0)puts(s1); ( C) if(stremp(s1, s2)=1)puts(s1); ( D) if(stremp(s1, s2)=0)puts(s1); 31 有以下程序: #include void fun(char*P) +P: printf(“ s n”, *P); m

10、ain() char*a=“Morning”, “Afternoon”, “Evening”, “Night”; fun(a); 程序运行后的输出结果是 ( )。 ( A) Afternoon ( B) ftemoon ( C) Morning ( D) oming 32 有以下程序,程序中库函数 islower(ch)用以判断 ch中的字母是否为小写字母: #include #include void fun(char*P) int i=0: while(Pi) if(Pi=“&islower(Pi1) Pi一 1=Pi1一 a+A; i+: main() char s1100=“ab cd

11、 EFG!”; fun(s1); printf(“ s n”, s1); 程序运行后的输出结果是 ( )。 ( A) ab cd EFg! ( B) Ab Cd EFg! ( C) ab cd EFG! ( D) aB cD EFG! 33 有以下程序: #include int f(int x) int y; if(x=0x=1)return(3); y=x*xf(x一 2); return y; main() int z; z=f(3); prinff(“ d n”, z); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 9 ( C) 6 ( D) 8 34 有以下程序: #i

12、nclude int fun(int X, int n) static int sum=0, i; for(i=0; isex); ( D) scanf(“ d”, ps一 age); 36 若有以下语句: typedef struet S int g; char h; T; 以下叙述中正确的是 ( )。 ( A)可用 S定义结构体变量 ( B)可用 T定义结构体变量 ( C) S是 struet类型的变量 ( D) T是 struet S类型的变量 37 有以下程序: #include #include struet A int a; char b10; double c; ; struct

13、 A f(struet A t); main() struet A a=1001, “ZhangDa”, 1098 0; a=f(a); printf(“ d, s, 6 1f n”, a a, a b, a c); struet A f(struet A t) t a=1002; strcpy(t b, “ChangRong”); t e=1202 0: return t; 程序运行后的输出结果是 ( )。 ( A) 1002, ZhangDa, 1202 0 ( B) 1002, ChangRong, 1202 0 ( C) 1001, ChangRong, 1098 0 ( D) 100

14、1, ZhangDa, 1098 0 38 设有宏定义: #define IsDIV(k, n)(k n=1)?1: 0) 且变量 m已正确定义并赋值,则宏调用: IsDIV(m, 5)&IsDIV(m, 7) 为真时所要表达的是 ( )。 ( A)判断 m是否能被 5和 7整除 ( B)判断 m被 5和 7整除是否都余 1 ( C)判断 m被 5或者 7整 除是否余 1 ( D)判断 m是否能被 5或者 7整除 39 有以下程序: #include main() int a=1, b=2, e=3, x; x=(ab)&c; prinff(“ d n”, X); 程序运行后的输出结果是 (

15、)。 ( A) 3 ( B) 1 ( C) 2 0)0 40 有以下程序: #include main() FILE*fp; int k, 13, a6=1, 2, 3, 4, 5, 6; fp: fopen(“d2 dat”, “W”); fprintf(fp, “ d d d n”, a0, a1, a2); fprinff(fp, “ d d d n”, a3, a4, a5); fclose(fp); fp=fopen(“d2 dat”, “r”); fscanf(fp, “ d d”, &k, &n); prinff(“ d d n”, k, n); fclose(fp); 程序运行

16、 后的输出结果是 ( )。 ( A) 1 2 ( B) 1 4 ( C) 123 4 ( D) 123 456 二、程序填空题 41 函数 fun的功能是:将一副扑克牌编号为 1, 2, 3, , 53, 54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为: 1, 28, 2, 29, , 53, 27,54。两次洗牌后的结果为: 1, 41, 28, 15, 2, 42 , 53, 40, 27, 14, 54。 程序的功能是:输出经过 n次这样洗牌后的结果。 请在程序的下 画线处填入正确的内容,并把下画线删除,

17、使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。不得增行或删行,也不得更改程序的结构 ! 试题程序: #include void fun(int a55, int lrl) int i, k; *found* int m55; for(i=0; i *found* void fun(10ng s, long t) long s1=10; ,it t=s 10: while(s0) s=s 100; *t=s 10*s1+*t: *found* s1=s1*100: main() long s, t; prinff(“ nPlease enter s: ”); sc

18、anf(“ ld”, s); fun(s, &t); prinff(“The result is: 1d n”, t); 四、程序设计题 43 规定输入的字符串中只包含字母和 *号。请编写函数 fun,其功能是:除了字符串前导的 *号之外,将串中其他 *号全部删除。在编写函数时,不得使用 C语言提供的字符串函数。 例如,字符串中的内容为: “*A*BC*DEF*G*”,删除后,字符串中的内容应当是: “*ABCDEFG”。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void f

19、un(char*a) main() char s81; void NONO(); printf(“Enter a string: n”); gets(s); fun(s); prinff(“The string after deleted: n”); puts(s); NONO(); void NONO() *本函数用于打开文件,输人数据,调用函数,输出数据,关闭文件。 * FILE, *in, *out; int i; char s81; in=fopen(“in dat”, “r”); out=fopen(“out dat”, “W”); for(i=0; i0&n0&nage为一个变量,

20、不是指针,所以错误。 36 【正确答案】 B 【试题解析】 本题考查 typedef重新声明一种结构体类型,那么 T为结构体类型,而不是结构体变量,所以 B选项正确。 37 【正确答案】 B 【试题解析】 本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易, f函数的参数是结构体 变量,然后对参数重新赋值并返回,所以该题目的答案为 B选项。 38 【正确答案】 B 【试题解析】 本题考查逻辑运算符的相关概念,逻辑与若要为真,那么两边都要为真,即 m都能被 5和 7整除都余 1,所以选项 B正确。 39 【正确答案】 A 【试题解析】 本题考查位运算符以及相关运算, 为按位

21、或, &为按位与,那么ab为 3,再与 c按位与仍然为 3,所以答案为 A选项。 40 【正确答案】 D 【试题解析】 fprinff()函数向文本文件输出数据,将输出的内容按格式输出到硬盘的文本文件中。执 行两次 fprinff后,文件中的内容为 “123 456”,所以 D选项正确。 二、程序填空题 41 【正确答案】 (1)b (2)2 (3)bk 【试题解析】 填空 1: for循环中使用了一个数组 b,用来临时存放交换位置后的扑克牌, C语言中变量需要先声明后使用,所以填空 (1)处需要声明一个数组 b。答案为 b。 填空 2:第二个 for循环是将数组 a中前一半元素 (即 1 2

22、7编号的扑克牌 )放入数组 b的奇数位置,将数组 a中的后一半元素 (即 28 54编号的扑克牌 )放人数组 b的偶数位置,实现扑克牌的交叉洗 牌。所以填空 (2)处是数组 b的起始值为 2的偶数下标 2k,答案为 2。 填空 3:由于数组 b属于函数中的临时变量,所以将数组 a的元素交叉存储到数组b后,还需要将数组 b的元素依次赋值给数组 a,第三个 for循环实现的功能是将数组 b赋值给数组 a,所以填空 (3)处需要填入对应下标为 k的数组 b的元素,答案为 bk。 三、程序修改题 42 【正确答案】 (1)void fun(long s, long*t) (2)s1=s1*10; 【试

23、题解析】 函数定义,指针型变量;数值 n和其各个位如何表示。 (1)主函数中 调用函数的参数为地址,因此函数 fun的形式参数应为指针类型。 (2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加一位数,原数值需乘以 10,即 s1=s1*10;。 四、程序设计题 43 【正确答案】 void fun(char*a) int i=0: char*p=a; while(*p&*p=*) ai=*p; i+: p+; while(*p) if(*p!=*) ai=*p; i+; p+; ai= 0; 【试题解析】 本题考查:指针型变量定义; while循环语句; if语句条件表达式;字符串结束标识 0。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1