国家二级C语言机试(选择题)模拟试卷347
选择题
1.算法的空间复杂度是指(A)
A. 算法在执行过程中所需要的计算机存储空间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的临时工作单元数
解析:算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间,输入的初始数据所占的仃储空间以及算法执行过程中所需要的额外空间。
2.有以下程序:
#include<stdio.h>
main()
{ int i=0,a=0;
while(i<20)
{for(;;)
{ if((i%5)==0)break;
else i–;
}
i+=13,a+=i;
}
printf(’’%d\n’’,a);}
程序的输出结果是( )。(D)
A. 62
B. 63
C. 23
D. 36
解析:本题考查while循环。当i<20时,进入while循环体,循环体内的for循环实现的功能是,当i值是0或5的倍数时,执行“i+=13;a+-i;”这两条语句;若i值不是5的倍数则一直执行for循环。①当i=0时,执行“i+=13;a+=i;i=13,a=13”;②判断“i=13<20”,进入while循环体,i=10时,跳出for循环,执行“i+=13;a+i;i=23,a=36”;③判断“i=23>20”,循环结束。
3.下列叙述中正确的是(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。
4.下列叙述中正确的是( )。(B)
A. 算法的效率只与问题的规模有关,而与数据的存储结构无关
B. 算法的时间复杂度是指执行算法所需要的计算工作量
C. 数据的逻辑结构与存储结构是一一对应的
D. 算法的时间复杂度与空间复杂度一定相关
解析:算法的时间复杂度是指执行算法所需要的计算工作量,与数据的存储结构有关,与算法的空间复杂度没有关系。数据的逻辑结构与存储位置无关,即与存储结构无关,所以选择B。
5.以下选项中不能用作C程序合法常量的是(B)
A. ’\123’
B. 1.234
C. 123
D. \x7D
解析:选项B中的1,234在两侧加双引号才是C程序的合法字符串常量。
6.下列链表中,其逻辑结构属于非线性结构的是(A)
A. 二叉链表
B. 循环链表
C. 双向链表
D. 带链的栈
解析:二叉链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。
7.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。
8.下面对对象概念描述正确的是( )。(A)
A. 对象间的通信靠消息传递
B. 对象是名字和方法的封装体
C. 任何对象必须有继承性
D. 对象的多态性是指一个对象有多个操作
解析:对象是面向对象方法中最基本的概念。操作描述了对象执行的功能,通过消息传递,还可以为其他对象使用。操作过程是被封装在对象中,用户看不到,称之为对象的封装性。对象的多态性是指同一个操作可以是不同对象的行为。不是所有的对象都必须有继承性。
9.下面不属于软件测试实施步骤的是( )。(B)
A. 集成测试
B. 回归测试
C. 确认测试
D. 单元测试
解析:软件测试实施的步骤有单元测试、集成测试和确认测试。
10.两个或两个以上的模块之间关联的紧密程度称为( )。(A)
A. 耦合度
B. 内聚度
C. 复杂度
D. 连接度
解析:耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。
11.有以下程序
#include
void main()
{int n=2,k=-1;
while(!(k>0‖n++));
printf(\\(D)
A. 0 2
B. 1 3
C. 5 7
D. 1 2
解析:在程序中整型变量n的初始值等于2,整型变量k的初始值等于1,在执行while语句时,由于表达式k的值大于0为真,所以不再需要判断“n++”是否为真,“(k>0∥n++)”表达式的值为真。“!(k>0∥n++)”表达式的值为假,所以while语句中的条件不满足,循环语句不会执行,变量n的值也不会加1,所在输出变量k和n的值是1和2。
12.有以下程序#include main(){int x;scanf(\\(D)
A. 不等于10的整数
B. 大于3或等于10的整数
C. 小于3的整数
D. 大于3且不等10的整数
解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大于3且不等于10时打印出来。
13.若有定义语句:doublex,y,*px,*PY;执行px=&x;py=&y;正确的输入语句是(C)
A. scanf(’’%f%f’&x,&y);
B. scanf(’’%f%f’,x,y);
C. scanf(’’%1f%1e’’,px,py);
D. scanf(’’%1f%1f’’,x,y);
解析:本题考查scanf语句。scanf( )函数的一般格式为:scanf(“格式字符串”,输入项首地址表),对于double类型数据,输入时候要加上l修饰,否则会产生错误的输入信息,同时输入项必须是地址,可以使保存变量地址的指针变量。
14.设文件指针fp已定义,执行语句fp=fopen(″file″,″w″);后,以下针对文本文件file操作叙述的选项中正确的是( )。(A)
A. 只能写不能读
B. 写操作结束后可以从头开始读
C. 可以在原有内容后追加写
D. 可以随意读和写
解析:文件打开方式为“w”表示只写不读,选项A正确。
15.数据字典(DD)所定义的对象都包含于( )。(C)
A. 软件结构图
B. 方框图
C. 数据流图(DFD图)
D. 程序流程图
解析:数据字典(DD)
本文档预览:3600字符,共12134字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载