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

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

1、国家二级( C语言)机试模拟试卷 59及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 2 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 3 对下列二叉树 进行前序遍历的结果为 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 4 一个栈的初始状态为空。现将元素 1,2,3,A,B,

2、C依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A) 1,2,3,A,B,C ( B) C,B,A,1,2,3 ( C) C,B,A,3,2,1 ( D) 1,2,3,C,B,A 5 下面属于白盒测试方法的是 ( A)等价类划分法 ( B)逻辑覆盖 ( C)边界值分析法 ( D)错误推测法 6 下面对对象概念描述正确的是 ( A)对象间的通信靠消息传递 ( B)对象是名字和方法的封装体 ( C)任何对象必须有继承性 ( D)对象的多态性是指一个对象有多个操作 7 软件设计中模块划分应遵循的准则是 ( A)低内聚低耦合 ( B)高耦合高内聚 ( C)高内聚低耦合 ( D)以上说法均错误 8

3、下面描述中不属于数据库系统特点的是 ( A)数据共享 ( B)数据完整性 ( C)数据冗余度高 ( D)数据独立性高 9 数据库设计过程不包括 ( A)概念设计 ( B)逻辑设计 ( C)物理设计 ( D)算法设计 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( A)自然连接 ( B)交 ( C)投影 ( D)并 11 以下叙述中正确的是 ( A)程序必须包含所有三种基本结构才能成为一种算法 ( B)我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令 ( C)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 ( D)只有简单算

4、法才能在有限的操作步骤之后结束 12 以下叙述中正确的是 ( A)在算法设计时,可以把复杂任务分解成一些简单的子任务 ( B)在 C语言程序设计中,所有函数必须保存在一个源文件中 ( C)只要包含了三种基本结构的算法就是结构化程序 ( D) 结构化程序必须包含所有的三种基本结构,缺一不可 13 以下叙述中正确的是 ( A)只能在函数体内定义变量,其他地方不允许定义变量 ( B)常量的类型不能从字面形式上区分,需要根据类型名来决定 ( C)预定义的标识符是 C语言关键字的一种,不能另作它用 ( D)整型常量和实型常量都是数值型常量 14 以下叙述中正确的是 ( A)在 C程序中的八进制和十六进制

5、,可以是浮点数 ( B)整型变量可以分为 int型、 short型、 long型和 unsigned型四种 ( C)八进制数的开头要使用英文字母 o,否则不能与 十进制区分开 ( D)英文大写字母 X和英文小写字母 x都可以作为二进制数字的开头字符 15 以下叙述中正确的是 ( A)在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 % 16 以下叙述中正确的是 ( A)在 scanf函数的格式串

6、中,必须有与输入项一一对应的格式转换说明符 ( B)只能在 printf函数中指定输 入数据的宽度,而不能在 scanf函数中指定输入数据占的宽度 ( C) scanf函数中的字符串,是提示程序员的,输入数据时不必管它 ( D)复合语句也被称为语句块,它至少要包含两条语句 17 以下叙述中正确的是 ( A)逻辑 “或 “(即运算符 |)的运算级别比算术运算要高 ( B) C语言的关系表达式: 0 x 10完全等价于 : (0 x) 则以下叙述中正确的是 ( A)语句 a = 是非法的 ( B)表达式 a+1 是非法的 ( C)三个表达式 a1、 *(a+1)、 * for( i=0; i 4;

7、 i+ ) ai=*p+; printf( “%dn“ ,a2 ); 程序的输出结果是 ( A) 2 ( B) 8 ( C) 4 ( D) 6 28 以下叙述中正确的是 ( A)语句 int a43 = 1,2, 4,5; 是错误的初始化形式 ( B)语句 int a43 = 1,2,4,5; 是错误的初始化形式 ( C)语句 int a3 = 1,2,4,5; 是错误的初始化形式 ( D)在逻辑上,可 以把二维数组看成是一个具有行和列的表格或矩阵 29 以下叙述中正确的是 ( A)字符串常量 “Hello“会被隐含处理成一个无名字符型数组,它有 5个元素 ( B)不能用字符串常量对字符数组名

8、进行整体赋值操作 ( C) char str7 = “string!“; 在语法上是合法的,运行也是安全的 ( D) char *str; str = “Hello“;与 char str; str = “Hello“;效果是一样的 30 以下叙述中正确的是 ( A)在语句 char str = “string!“;中,数组 str的大小等于字符串的长度 ( B)语句 char str10 = “string!“; 和 char str10 = “string!“; 并不等价 ( C)对于一维字符数组,不能使用字符串常量来赋初值 ( D)对于字符串常量 “string!“,系统已自动在最后加入

9、了 0字符,表示串结尾 31 设有定义 char str = “Hello“; 则语句 printf(“%d %d“, sizeof(str), strlen(str); 的输出结果 是 ( A) 5 5 ( B) 6 6 ( C) 6 5 ( D) 5 6 32 在 32位编译器上,设有定义 char *str1 = “Hello“, str2 = “Hello“; , 则以下语句 printf(“%d %d“, sizeof(str1), sizeof(str2); 的输出结果是 ( A) 5 6 ( B) 5 5 ( C) 6 6 ( D) 4 6 33 以下叙述中正确的是 ( A)任何

10、情况下都不能用函数名作为实参 ( B)函数既可以直接调用自己,也可以间接调用自己 ( C)函数的递归调用不需要额外开销,所以效率很高 ( D)简单递归不需要明确的结束递归的条件 34 以下叙述中正确的是 ( A)函数的形式参数不属于局部变量 ( B)对于变量而言, “定义 “和 “说明 “这两个词实际上是同一个意思 ( C)在复合语句中不能定义变量 ( D)全局变量的存储类别可以是静态类 35 以下叙述中正确的是 ( A)在一个程序中,允许使用任意数量的 #include命令行 ( B)在包含文件中,不得再包含其他文件 ( C) #include命令行不能出现在程序文件的中间 ( D)虽然 包

11、含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接 36 以下叙述中正确的是 ( A)函数的返回值不能是结构体类型 ( B)在调用函数时,可以将结构体变量作为实参传给函数 ( C)函数的返回值不能是结构体指针类型 ( D)结构体数组不能作为参数传给函数 37 以下叙述中正确的是 ( A)结构体数组名不能作为实参传给函数 ( B)结构体变量的地址不能作为实参传给函数 ( C)结构体中可以含有指向本结构体的指针成员 ( D)即使是同类型的结构体变量,也不能进行整体赋值 38 设有如下的说 明和定义 struct int a; char *s; x, *p = x.a = 4; x.s =

12、 “hello“; 则以下叙述中正确的是 ( A) (p+)- a与 p+- a都是合语法的表达式,但二者不等价 ( B)语句 +p- a; 的效果是使 p增 1 ( C)语句 +p- a; 的效果是使成员 a增 1 ( D)语句 *p- s+; 等价于 (*p)- s+; 39 下面关于位运算符的叙述,正确的是 ( A) |表示 “按位或 “的运算 ( B) #表示 “按位异或 “的运算 ( C) i 【 1】 ; i+) /*found*/ if(strcmp(SSi, t)=0) return 【 2】 ; return(一 1); main() char chNM=“if”, “whi

13、le”, “switch”, “int”, “for”, tM; int n, i; printf(“ nThe original string n n”); for(i=0; i N; i+)puts(chi); printf(“ n”); printf(“ nEnter a string for search: ”), gets(t); n=fun(ch, t); /*found*/ if(n=【 3】 ) printf(“ nDont found!n”); else printf(“ nThe position is d n”, n); 三、程序修改题 42 下列给定程序中,函数 fun

14、的功能是:从低位开始依次取出长整型变量 s中奇数位上的数,构成一个新数存放在 t中。高位仍在高位,低位仍在低位。 例如,当 s中的数为 7654321时, t中的数为 7531。 请改正程序中的错误,使它能得山正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h /*found*/ void fun(long s, long t) long s1=10, *t=s 10 ; while(s 0) s=s 100; *t=s 10* sl+*t; /*found*/ s1=s1* 100; main() long s,

15、 t, printf(“ nPlease enter s: ”); scanf(“ ld”, s); fun(s, t), printf(“The result is: ld n”, t); 四、程序设计题 43 编写函数 fun,其功能是:将 s所指字符串中除了下标为奇数同时 ASCH码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在 t所指的数组中。 例如,若 s所指字符串的内容为 “ABCDEFG12345”,其中字符 A的 ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符 1的 ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删

16、除,其他依此类推。最后 t所指数组中的 内容应为 “135”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include conio h #include stdio h #include string h void fun(char*s, char t) main() char S100, t100; printf (“ nPlease enter string s: ”); scanf(“ S”, S); fun(s, t); printf(“nThe result is: S n”, t);

17、 国家二级( C语言)机试模拟试卷 59答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。 2 【正确答案】 D 【试题解析】 队列的修改是依先进先出的原则进行的, D正确。 3 【正确答案】 C 【试题解析】 前序遍历是指在访问根结点、遍历左子树与遍历右子树 这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作。否则: 访问根结点; 前序遍历左子树; 前序遍历右子树, C正确。

18、 4 【正确答案】 C 【试题解析】 栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选 C。 5 【正确答案】 B 【试题解析】 白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断 -条件 覆盖,选择 B。其余为黑盒测试法。 6 【正确答案】 A 【试题解析】 对象之间进行通信的构造叫做消息, A正确。多态性是指同一个操作可以是不同对象的行为, D错误。对象不一定必须有继承性, C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作, B错误。 7 【正确答案】 C 【试题解析】 根据软

19、件设计原理提出如下优化准则: 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。 一个模块的作用范围应在其控制范围之内, 且判定所在的模块应与受其影响的模块在层次上尽量靠近。 软件结构的深度、宽度、扇入、扇出应适当。 模块的大小要适中。 C正确。 8 【正确答案】 C 【试题解析】 数据库系统的特点为高共享、低冗余、独立性高、具有完整性等,C错误。 9 【正确答案】 D 【试题解析】 数据库设计过程主要包括需求分析、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。答案为 D选项。 10 【正确答案】 A 【试题解析】 关系 R和

20、关系 S有公共域,关系 T是通过公共域的等值 进行连接的结果,符合自然连接,选 A。 11 【正确答案】 B 【试题解析】 C语言程序可以不包含三种基本结构 ,也可以包含其中的一种或多种 ,所以 A错误,三种基本结构可以表示任何复杂的算法 ,所以 C错误,正确的算法 ,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束 ,这是算法的有穷性 ,所以 D错误。 12 【正确答案】 A 【试题解析】 C语言的程序中 ,函数不一定都放在同一个源文件中 ,可以分别放在不同源文件中 ,通过 #include命令来引用 ,所以 B错误,结构化程序可以包含三种基本结构中的一 种或几种 ,所以 C,D错误

21、。 13 【正确答案】 D 【试题解析】 变量可以定义在函数体外也可以定义在函数体内 ,所以 A错误,常量的类型可以从字面形式上区分 ,比如 1为整型常量 ,1.0为实型常量 ,a为字符型常量 ,所以 B错误,预定义的标识符不是 C语言的关键字 ,所以 C错误。 14 【正确答案】 B 【试题解析】 C程序中的实型常量只有十进制一种数制 ,所以 A错误,八进制数以 0打头 ,所以 C错误, C语言中整数只有十进制,八进制,十六进制三种没有二进制数制 ,所以 D错误。 15 【正确答案】 A 【试题解析】 scanf函数中的格式控制字符串是为了输入数据用的 ,无论其中有什么字符 ,也不会输出到屏

22、幕上 ,所以 A正确, scanf()的格式控制串可以使用其他非空白字符 ,如逗号 ,但在输入时必须输入这些字符 ,以保证匹配就可以 ,所以 B错误,Printf函数可以输出常量也可以输出变量 ,所以 C错误, Prinf函数可以用 “%“来输出百分号 %,所以 D错误。 16 【正确答案】 A 【试题解析】 在 printf和 scanf函数中都可以指定数据的宽度 ,所以 B错误,scanf()的格式控制串可以使用其他非空白字符 ,如逗号 ,但在输入时必须输入这些字符 ,以保证匹配 ,所以 C错误,复合语句可以由任意多条语句构成 ,可以使一条也可以没有 ,所以 D错误。 17 【正确答案】 D 【试题解析】 B选项中,条件是 x 0 并且 x 10,表达式 (x 0) for(i=0; i n; i+) if(i 2!=0 si 2!=0) tj=si; *将下标为奇敖同时 ASCII码值为奇数的字符放入数组 t中 * j+; tj= 0; *最后加上结束标识符 * 【试题解析】 本题要求除了下标为奇数同时 ASCII码值也为奇数的字符,其余的所有字符都删除,即要留下下标为奇数同时 ASCII码值也为奇数的字符 。所以if的条件语句应为: if(i 2!=0&si 2!=0)。

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

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

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