国家二级C语言机试(选择题)模拟试卷278
选择题
1.以下选项中关于程序模块化的叙述错误的是(B)
A. 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
B. 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
C. 把程序分成若干相对独立的模块,可便于编码和调试
D. 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。
2.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是(B)
A. 一条C语句可能会被转换成多条机器指令
B. 一条C语句对应转换成一条机器指令
C. 一条C语句可能会被转换成零条机器指令
D. 某种类型和格式的C语句被转换成机器指令的条数是崮定的
解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语言条数和机器指令的条数不是一对一的关系。
3.面向对象方法中,实现对象的数据和操作结合于统一体中的是( )。(B)
A. 结合
B. 封装
C. 隐藏
D. 抽象
解析:对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。封装是指隐藏对象的属性和实现细节,将数据和操作结合于统一体中,仅对外提供访问方式。B选项正确。
4.以下叙述中正确的是(D)
A. 程序必须包含所有三种基本结构才能成为一种算法
B. 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
C. 只有简单算法才能在有限的操作步骤之后结束
D. 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。
5.数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(B)
A. 加工
B. 控制流
C. 数据存储
D. 数据流
解析:数据流图从数据传递和加工的角度来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)等。本题答案为B选项。
6.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为(C)
A. 30
B. 20
C. m-19
D. m-20
解析:根据题意,栈空间如下图所示。
7.下列叙述中正确的是( )。(B)
A. 在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构
B. 在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构
C. 在链表中,如果每个结点有两个指针域,则该链表一定是线性结构
D. 在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是线性结构
解析:判断一个非空的数据结构是否为线性结构必须满足以下两个条件:① 有且只有一个根结点;② 每一个结点最多有一个前件,也最多有一个后件。选项B)中,如果有两个结点的同一个指针域的值相等,则说明至少有一个结点有两个前件,不符合线性结构的定义,所以答案选B)。
8.软件(程序)调试的任务是( )。(A)
A. 诊断和改正程序中的错误
B. 尽可能多地发现程序中的错误
C. 发现并改正程序中的所有错误
D. 确定程序中错误的性质
解析:在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行并找出错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。
9.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(D)
A. 冒泡排序为n/2
B. 冒泡排序为n
C. 快速排序为n
D. 快速排序为n(n-1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。
10.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(C)
A. 编译程序
B. 操作系统
C. 教务管理系统
D. 汇编程序
解析:编译程序和汇编程序属于支撑软件,操作系统属于系统软件,而教务管理系统属于应用软件。
11.设有定义:double a,b,c;若要求通过输入分别给a、b、C输入1、2、3,输入形式如下(注:此处□代表一个空格)□□1.0□□2.0□□3.0则能进行正确输入的语句是(C)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:输入格式scanf(格式控制,输入项1,输入项2,…),其中在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以用实数指定小数位的宽度。输入double型数据,格式控制必须用%lf(或%le)。否则,数据不能止确输入。由于输入是一个字符流,scanf函数从这个字符流中按照格式控制指定的格式解析出相应数据,送到指定地址的变量中。
12.有以下程序
#include
main(){
int a1,a2;
char c1,c2;
scanf(\\(C)
A. 12□a□34□b
B. 12,a,34,b
C. 12a34b
D. 12□a34□b
解析:本题考查scanf语句。scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。
其调用格式为:scanf(\\
13.有以下程序
int fun(int n)
{ if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{ int x;
scanf(\\(D)
A. 54
B. 65
C. 45
D. 55
解析:在C语言中函数可以递归调用,即直接或间接地自己调用自己。本题在函数int fun(int n)的定义中又出现了对
本文档预览:3600字符,共8109字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载