国家二级C语言机试(选择题)模拟试卷349
选择题
1.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
2.下面叙述中正确的是( )。(A)
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。
3.下列与队列结构有关联的是(D)
A. 函数的递归调用
B. 数组元素的引用
C. 多重循环的执行
D. 先到先服务的作业调度
解析:队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。
4.软件生存周期中,解决软件“做什么”的阶段是( )。(A)
A. 需求分析
B. 软件设计
C. 软件实现
D. 可行性研究
解析:软工生命周期可细化为可行性研究和计划制定、需求分析、软件设计(总体设计和详细设计)、编码、软件测试、运行和维护等阶段。需求分析是对待开发软件提出的需求进行分析并给出详细定义,是解决软件“做什么”的阶段。软件设计是解决软件“怎么做”的阶段。
5.下面不属于软件需求规格说明书内容的是( )。(A)
A. 软件的可验证性
B. 软件的功能需求
C. 软件的性能需求
D. 软件的外部接口
解析:软件需求规格说明应重点描述软件的目的,软件的功能需求、性能需求、外部接口、属性及约束条件等。
6.下面不属于软件需求规格说明书内容的是( )。(A)
A. 软件的可验证性
B. 软件的功能需求
C. 软件的性能需求
D. 软件的外部接口
解析:软件需求规格说明应重点描述软件的目的,软件的功能需求、性能需求、外部接口、属性及约束条件等。
7.若有以下程序,则程序的输出结果是
#include
main(){char c1,c2;
c1=’C’+’8’-’3’;
c2=’9’-0’;
printf(\\(A)
A. H 9
B. H’9’
C. F’9’
D. 表达式不合法输出无定值
解析:字符常量允许进行简单的算术运算,则’C’+5表示H,而’9’-’0’则表示数值9。
8.有以下程序
#include
main() {
int x,y,z;x=y=1;
z=x++,y++,++y;
printf(\\(A)
A. 2,3,1
B. 2,3,2
C. 2,3,3
D. 2,2,1
解析:存程序中,整形变量x、y的初值郜为1,赋值语句z=x++,y++,++y右边的“x++,y++,++y”是一个逗号表达式,所以逗号表达式的值为++y的值。执行逗号表达式“x++,y++,++y”后,x的值为2,y的值为3,z取逗号表达式的值,为1。
9.以下不合法的数值常量是( )。(A)
A. 8.0E0.5
B. 1e1
C. 011
D. 0xabcd
解析:A选项中E后面的指数必须为整型数据,所以错误。C选项中011表示的是八进制常量,0xabcd表示的是十六进制常量。
10.数据库设计的根本目标是要解决(A)
A. 数据共享问题
B. 数据安全问题
C. 大量数据存储问题
D. 简化数据维护
解析:数据库应用系统中的一个核心问题就是设计一个能满足用户要求、性能良好的数据库,这就是数据库设计。数据库设计是在一定平台制约下,根据信息需求与处理需求设计出性能良好的数据模式。数据库设计的根本目标是要解决数据共享的问题。
11.下列叙述中正确的是(C)
A. 在switch语句中必须使用default
B. break语句必须与switch语句中的case配对使用
C. 在switch语句中,不一定使用break语句
D. break语句只能用于switch语句
解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。
12.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。(A)
A. 1
B. 0
C. 2
D. 不知道a的值,不能确定
解析:逻辑或“||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零。
13.有以下程序:
#include<stdio.h>
main()
{int y=10;
while(Y一);
printf(’’y=%d\n’’,y);
}
程序执行后的输出结果是( )。(B)
A. y=0
B. y=-1
C. y=1
D. while构成无限循环
解析:执行y-直到值为0,由于y-是先用再减,所以退出循环时,y的值为-1。
14.若有以下程序
main( ){
inta=-2,b=0;
do{
++b;)while(a++);
printf(’’%d,%d\\
’’,a,b);)
则程序的输出结果是(C)
A. 0,2
B. 1,2
C. 1,3
D. 2,3
解析:由于a的初始值等于.2,所以while循环语言执行三次结束,第一次a=-2,b=1,然后判断循环条件a++非零,执行第二次循环体a=-1,b=2,判断循环条件非零,执行循环体a=0,b=3,判断循环条件为0,此时变量a的值等于1。
15.若有定义语句: char*s1=\\(A)
A. if(strcmp(s1,s2)!=0)puts(s1);
B. if(strcmp(s1,s2)!=0)puts(s2);
C. if(strcmp(s1,s2)==1)puts(s1);
D. if(strcmp(s1,s2)==0)puts(s 1);
解析:字符串比较函数strcmp的功能是对s1和s2所指字符串进行比较。如果s1s2,返回正数,所以对于本题米说,能够输出“OK”的语句是选项A)所指的语句。
1
本文档预览:3600字符,共11572字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载