国家二级C语言机试(选择题)模拟试卷362
选择题
1.下列描述中不属于软件特点的是( )。(D)
A. 软件是一种逻辑实体,具有抽象性
B. 软件在使用中不存在磨损、老化问题
C. 软件复杂性高
D. 软件使用不涉及知识产权
解析:软件不像硬件一样具有实物的特性,而是一种逻辑实体,具有抽象性;开发复杂性高,成本昂贵;在运行、使用期间不存在磨损、老化问题。故A、B和C选项正确。由于软件是一种知识产品,受知识产权法的保护,所以D选项不正确。
2.磁盘处于写保护状态时其中的数据(B)
A. 不能读出,不能删改
B. 可以读出,不能删改
C. 不能读出,可以删改
D. 可以读出,可以删改
解析:磁盘处于写保护状态时其中的数据可以读出来,但是不能修改和删除。
3.下列链表中,其逻辑结构属于非线性结构的是( )。(A)
A. 二叉链表
B. 循环链表
C. 双向链表
D. 带链的栈
解析:二叉链表是二叉树的链式存储结构,属于非线性结构,其余选项均属于线性结构,所以选择A。
4.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(D)
A. 15
B. 16
C. 20
D. 0或35
解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0:第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。
5.有以下定义:
int a;
long b;
double x,Y;
则以下选项中正确的表达式是(A)
A. a%(int)(x-Y)
B. a=xy
C. (a*y)%b
D. y=x+y=x
解析:选项B)中运算符不存在,选项C)中double类型不能进行取余(%)操作,要求两个运算数必须是整数,选项D)中x+y=x错误。
6.以下叙述中正确的是( )。(A)
A. 计算机只接收由0和1代码组成的二进制指令或数据
B. 计算机只接收由0和1代码组成的十进制指令或数据
C. 计算机可直接接收并运行C源程序
D. 计算机可直接接收并运行任意高级语言编写的源程序
解析:二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高低,晶体管的导通和截止等。二进制数运算简单,大大简化了计算中运算部件的结构,故选项A正确。
7.以下叙述中正确的是(C)
A. a表示一一个字符常量
B. ’\0’表示字符0
C. 表达式:’a’>’b’的结果是“假”
D. ’\’\\
解析:字符常量可以参加关系运算,按照其存储的ASCII码值进行比较,’a’>’b’不成立,值为假。而’\0’表示NULL,ASCII码值为0。
8.若有定义: int a,b;通过语句scanf(\\(C)
A. 3,5
B. 3 5
C. 3;5
D. 35
解析:在采用scanf这个函数输入数据时,要严格遵守其输入的规则定义。本题此函数定义的规则是,在两个整数之间加分号输入。
9.以下叙述中不正确的是( )。(D)
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
解析:此题考查的是变量的作用范围。选项D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。
10.下列叙述中正确的是(C)
A. 在switch语句中必须使用default
B. break语句必须与switch语句中的case配对使用
C. 在switch语句中,不一定使用break语句
D. break语句只能用于switch语句
解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。
11.数据流图(DFD)中的有向箭头(→)表示(A)
A. 数据流
B. 控制流
C. 输入流
D. 输出流
解析:数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流程图中有以下几种主要元素:
→:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成;□:数据源或宿(“宿”表示数据的终点)。代表系统之外的实体;○:对数据的加工(处理)。加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出:〓:数据存储。表示信息的静态存储。
12.下列叙述中正确的是( )。(B)
A. continue语句的作用是使程序的执行流程跳出包含它的所有循环
B. break语句只能用在循环体内和switch语句体内
C. 在循环体内使用break语句和continue语句的作用相同
D. break语句只能用于switch语句体中
解析:continue语句的作用是跳过循环体中剩余的语句而进行下一次循环,所以A选项错误。break语句的作用是终止正在执行的switch流程,跳出switch结构或者强制终止当前循环,从当前执行的循环中跳出,所以C、D选项错误。
13.有以下程序:
#include
int fun(int x,int y)
{ if(x!=y)
return((x+y)/2);
else return(x);
}
main()
{ int a=4,b=5,c=6;
plintfi“%d\n”,fun(2*a,fun(b,c)));
}
程序的运行结果是( )。(A)
A. 6
B. 3
C. 8
D. 12
解析:本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)的返回值为5,所以第二次调用为fun(8,5)=6,所以选择A选项。
14.下列定义数组的语句中错误的是( )。
B
解析:B选项中定义的数组为2行4列,而赋值时赋成了3行,所以出错。
15.以下选项中不合法的标识符是(B)
A. FOR
本文档预览:3600字符,共11068字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载