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

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

1、国家二级( C语言)笔试模拟试卷 251 及答案与解析 1 使用白盒测试法时,确定测试数据应该根据 ( )和指定的覆盖标准。 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)使用说明书 ( D)程序的功能 2 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 ( )。 ( A)并 ( B)交 ( C)投影 ( D)除 3 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 4 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C

2、)队列是先进先出的线性表 ( D)队列是先进后出的线性表 5 数据库技术的根本目标是要解决数据的 ( )。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 6 下面不属于软件设计原则的是 _。 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 7 在 C语言中,以下一组运算符中,优先级最高的运算符是 _。 ( A) = ( B) = ( C) % ( D) 则下列语句: printf(“i %u,j %xn“.i,j); 输出的结果是 ( )。 ( A) i 8,j 9 ( B) 8.9 ( C) 89 ( D) i 8,i 8 12 有下列程序: ma

3、in() int y=20; doy-; while(-y); printf(“%dn“,y-); 当执行程序时,输出的结果是 ( )。 ( A) -1 ( B) 1 ( C) 4 ( D) 0 13 设 a和 b均为 int型变量,且 a: 6、 b=11、 c=3,则能使值为 3的表达式是( )。 ( A) b (c 4) ( B) b (c-a 5) ( C) b a-a 5 ( D) (b a)-(a 4) 14 _是构成 C语言程序的基 本单位。 ( A)函数 ( B)过程 ( C)子程序 ( D)子例程 15 对序线性表 (23, 29, 34, 55, 60, 70, 78)用二

4、分法查找值为 60的元素时,需要比较次数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 16 有以下计算公式: 若程序前面已在命令行中包含 math.h文件,不能够正确计算上述公式的程序段是 ( )。 ( A) if(x =0) y=sqrt(x); else y=sqrt(-x); ( B) y=sqrt(x); if(x 0) y=sqrt(-x); ( C) if(x =0) y=sqrt(x); if(x 0) =sqdrt(-x); ( D) y=sqrt(x =0?x:-x); 17 下列属于 C语言语句的是 _。 ( A) printf(“%dn“a) (

5、B) #include stdio.h ( C) a=b;b=c;c=a; ( D) /*this is a program*/ 18 C语言程序的基本单位是 ( ) ( A)函数 ( B)过程 ( C)字符 ( D)语句 19 以下能正确表示 x在 -5到 -1或 5到 1范围 (含 5和 1)内,值为 “真 ”的表达式是( ) ( A) (x -5)| |(x -1) return m; main() int a=11,4,6,3,8,2,3,5,9,2; printf(“%dn“,fun(a,10); 53 下面的语句要使指针 p指向一个 double类型的动态存储单元,请填空。 p =

6、【 】 malloc(sizeof(double); 54 以下程序的输出结果是【 】。 #include stdio h #define MAX(x, y)(x), (y)?(x): (y) main() int a=5, b=2, c=3, d=3, t; t=MAX(a+b, c+d)*10; printf(“%dn“, t); 55 以下程序的输出结果是【 】。 #include stdio h #deftne JFT(x)x*x main() int a, k=3; a=+JFT(k+1); printf(“%d“, a); 56 以下程序运行的结果是【 】。 #include co

7、nio.h #include stdio.h #define M 100 void fun(int m, int*a, int*n) int i, j=0; for(i=1; i =m; i+) if(i%7=0i%11=0) a j+=i; *n=j; main() int aaM, n, k; clrscr(); fun(10, aa, int k; p1=a; p2=b; for(k=0; k 7; k+) if(*(p1+k)=*(p2+k) printf(“%c“,*(p1+k); 国家二级( C语言)笔试模拟试卷 251 答案与解析 1 【正确答案】 A 【试题解析】 白盒测试是把

8、测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准测试数据。 2 【正确答案】 B 【试题解析】 关系 R与 S 经交运算后 所得到的关系是由那些既在 R内又在 s内的有序组所组成,记为 RS,交运算不改变关系表中的属性个数但能减少元组个数。 3 【正确答案】 C 【试题解析】 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾 (rear),允许删除的一端称为队首 (front)。队列具有

9、先进先出的特点,它是按 “先进先出 ”的原则组织数据的。 4 【正确答案】 C 【试题解析】 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作 ,另一端进行删除操 作。其中 ,允许插入的一端称为队尾 (rear),允许删除的一端称为队首 (front)。队列具有先进先出的特点 ,它是按 “先进先出 “的原则组织数据的。 5 【正确答案】 B 【试题解析】 数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。数据库技术的根本目标就是解决数据的共享问题。 6 【正确答案】 C 【试题解析】 在软件设计过程中,必须遵循软件工程的基本原则:这些原则包

10、括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。 7 【正确 答案】 C 8 【正确答案】 C 9 【正确答案】 A 【试题解析】 本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点 (即叶子结点 )数为 n0,而其度数为 2的结点数为 n2,则 n0=n2+1。根据这条性质可知,若二叉树中有 70 个叶子结点,则其度为 2的结点数为 70-1,即 69个。二叉树的总结点数是度为 2、度为 1和叶子结点的总和,因此,题目中的二叉树总结点数为 69+80+70,即 219。因此,本题的正确答案是选项 A。 10 【正确答案】 C 【试题 解

11、析】 数据库管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。 人工管理阶段的特点:数据不保存、数据不独立、数据不能共享、数据无结构,没有专门的数据管理软件。 文件系统阶段的特点:数据可以长期保存,有专门的数据管理软件 文件系统。但是数据独立性低,共享性差、冗余度大,数据记录内有结构,整体无结构。 数据库系统阶段的特点:数据结构化,数据独立性高,数据共享性高,冗余度小,易于扩充,数据库管理系统提供统一的数控制功能,包括数据安全性、完整性、并发控制和数据恢复功能。 11 【正确 答案】 A 【试题解析】 本题考查函数 printf()的格式。 “%x”表示以十六进制输出整

12、型数据; “%u”表示以十进制无符号型输出整型数据。 printf 函数中格式说明符之前插入的任何字符都原样输出。 12 【正确答案】 D 【试题解析】 本题考查 dowhile 循环。当 -y是 0(即 y是 0)时结束循环,输出y-是先输出 y的值再将 y的值减 1。 13 【正确答案】 D 【试题解析】 本题首先判断 ab,当 ab时结果等于 a,否则等于 “dc?d: b”,因为 ab,所以直接输出 a的 值,注:这里 “a: dc?d: b”是用来干扰考生的。 14 【正确答案】 A 【试题解析】 C程序是由函数构成的。 个 C源程序至少包含 个 main 函数,也可以包含 个 ma

13、in 函数和若干个其他函数,因此,函数是 C程序的基本单位。 15 【正确答案】 C 【试题解析】 根据二分法查找法需要两次: 首先将 60与表中间的元素 55进行比较,由于 60大于 55,所以在线性表的后半部分查找。 第二次比较的元素是后半部分的中间元素,将 60与表中间的元素 70进行比较,由于 60小于 70,所以在线性表的前半部 分查找。 第三次比较的元素是前半部分的中间元素,即 60,这时两者相等。即查找成功。 16 【正确答案】 B 【试题解析】 选项 B一开始就调用了 sqrt(x)而没有判断 x的正负,所以是错误的。故应该选 B。 17 【正确答案】 C 【试题解析】 在 C

14、语言中, 个完整的 C语句必须在语句末尾出现分号,分号是 C语句的必要组成部分。本题答案为 C。 18 【正确答案】 A 19 【正确答案】 A 20 【正确答案】 D 【试题解析】 C语言中的 +和 运算符,这两种运算符是单目运算 符,其运算对象可以是整型、字符型、 float型和 double型等基本数据类型。 21 【正确答案】 A 【试题解析】 引用一个数组元素,可以用: (1)下标法,如 ai形式; (2)指针法,如 *(a+i)或 *(p+i)。数组的下标从 0开始,值为 3的数组元素是 a2。 B、 C的内容为 a3, D将 a2前自加,结果为 4。 22 【正确答案】 C 【试

15、题解析】 函数 fun(int *s, int n1, int n2)的功能是对数组 s中的元素进行首尾互相调换。所以在主函数中,当 fun(a, 0, 3)执行完后,数组 a12 4, 3,2, 1, 5.6, 7, 8, 9, 01;再执行 fun(a, 4, 9),数组 a12 4, 3, 2, 1, 0,9, 8, 7, 6, 5;再执行 fun(a, 0, 9)后,数组 a12 5, 6, 7, 8, 9, 0, 1,2, 3, 4。 23 【正确答案】 D 【试题解析】 题干中, *(p+)就是数组元素 a0,输出 a0,之后指针 p的值加1, *q 即是数组元素 a1。 24 【

16、正确答案】 D 【试题解析】 本题考查 for循环的使用。根据条件考虑 x的取值变化, x从 1取到 5,可以循环 5次,但并不知道 y是如何变化的,有可能出现 y=19提前跳出循环的情况,所以是最多执行 5次。 25 【正确答案】 D 【试题解析】 fwrite的形式是 fwrite(buffer,size,count,fp),buffer 表示准备输出的数据块的起始地址 ,size表示每个数据块的字节数 ,count用来指定每写一次或输出的数据块 ,fp 为文件指针。 26 【正确答案】 B 【试题解析】 scanf函数的调用形式是: scanf(格式字符串,输入项地址表 )。其中, “格

17、式字符串 ”是要输入的变量的格式符; “输入项地址表 ”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。 27 【正确答案】 B 28 【正确答案】 B 【试题解析】 可以用 typedef 定义新的类型名来代替已有的类型名。 T 是所定义的新的类型名,它代表题中定义的一个结构体类型,这样就可以用 T定义结构体变量了。 29 【正确答案】 B 【试题解析】 本题中,表达式将 5个初值分别赋给 a0至 a4,系统自动给后面的元素 a5至 a9赋 0。 30 【正确答案】 A 【试题解析】 本题考核的知识点是宏与自增运算符的综

18、合运用在程序中先用表达式将宏替换掉,则输出语句中的表达式为 (a+)*(b+),而 a+的值为 3, b+的值为 4。因此最后的值为 3*4=12。所以, 4个选项中选项 A符合题意。 31 【正确答案】 C 32 【正确答案】 D 33 【正确答案】 C 34 【正确答案】 B 【试题解析】 本题的 for循环省略了第一个表达式,即 for没有任何初始化动作;第二个表达式 x的意思是只要 x非 0, 则循环继续;第三个表达式让 x在每次循环结束时减 1。 x初始为 10,然后进入循环体,判断 x是否能被 3整除,不能整除则执行 continue;语句进入下一次循环,能整除则输出 x。故最终输

19、出的结果为从 10递减到 1之中能被 3整除的数 9、 6和 3。所以正确答案是 B。 35 【正确答案】 D 【试题解析】 根据优先级顺序,先计算内层括号的值。 j自加 1等于 3,所以+j= =3成立,表达式为 1,由于 1“|”任何数都为 1,所以不用计算 “|”后面的表达式,所以 k =3,最后计算 “关闭文件的函数为: fclose(),调用形式为: fclose(fp),其中 fp为文件指针。 48 【正确答案】 12 【试题解析】 本题的第 个 for循环用于始数组 arr赋初值,第二个 for循环用于求和运算。由于第二个 for循环初始值为 1,而循环条件为 i 4,所以求的是

20、arr1到 arr3及 i的和,所以输出结果为 12。 49 【正确答案】 4 【试题解析】 本题考查宏定义。 K=M+1*M/2=N+1+1*N+1/2=2+1+1*2+1/2=5,故 for循环体执行的次数是 4。 50 【正确答案】 黑盒 【试题解析】 软件测试的方法和技术是多种多样的,对于软件测试方法和技术,可以从不同角度加以分类。若从是否需要执行被测试软件的角度划分,可分为静态测试和动态测试,若从功能划分,可以分为白盒测试和黑盒测试。 51 【正确答案】 struct aa *lhead,*rchild; 【试题解析】 结构体对链表的定义。 52 【正确答案】 11 【试题解析】 此

21、题涉及函数的调用和 if 语句。程序先执行第二个 if语句 ,然后再执行第一个 if语句 ,最后用 return返回数值 。 53 【正确答案】 (double *) 【试题解析】 本题考查强制类型转换。函数 malloc的默认返回是 void *,若要使指针指向 double 类型,必须进行类型转换,类型转换格式为: (数据类型 *)。 54 【正确答案】 7 【试题解析】 本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:表达式 1 ?表达式 2:表达式 3。 “?: ”运算符的含义是:先求表达式 1的值,如果为真,则求表达式 2的值,并把它作为整个表达式的值;如果表

22、达式 1的值为假,则求表达式 3的值,并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为 7 6? 7:6*10,即 t=7 6? 7:60,其值为 t=7。 55 【正确答案】 9 【试题解析】 宏替换的原则是按原样替换,本题中遇到形参 x则以实参 k+1替换,其他字符不变,所以 JFT(k+1)经替换后为 k+1, k+1,则 a=+k+1 *k+1。若k 的值为 3,则经过运算为 a=4+1 *4+1=9。 56 【正确答案】 7 【试题解析】 解答本题的关键是要读懂程序,要找出能被 7或 11整除的所有整数,注意 数学中的 “或 ”和 C语言中的 “或 ”的区别,但

23、在此处, if 条件语句中用了“”运算符,若要找能同时被 7和 11整除的所有整数则在 if的条件中应使用 “&”运算符。 当然,如果 m的值输入 50,即表达式 fun(10, aa, &n);为 fun(50, aa,&n);时输入结果为: 7 11 14 21 22 28 33 35 42 44 49。 57 【正确答案】 gae 【试题解析】 主函数中定义了字符数组 a和 b,其初值分别为 Language和Programe,然后定义了两个指针变量 p1和 p2,并让它们指 向 a和 b。通过分析可知下面的 for循环中,每循环一次就将 p1+k和 p2+k所指向的字符进行比较,如果相等,输出该字符,循环共执行 8次,显然 Language和 Programe中只有字符gae相等,所以最后辖出为 gae。

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

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

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