国家二级C语言机试(选择题)模拟试卷332
选择题
1.对于循环队列,下列叙述中正确的是( )。(D)
A. 队头指针是固定不变的
B. 队头指针一定大于队尾指针
C. 队头指针一定小于队尾指针
D. 队头指针可以大于队尾指针,也可以小于队尾指针
解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加1时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。
2.有以下程序:
#include<stdio.h>
main()
int x;
scanf(’’%d’’,&x);
if(x<=0); else
if(x!=5)printf(’’%d\n’’,x);
}
程序运行时,输入的值在哪个范围才会有输出结果( )。(B)
A. 不等于5的整数
B. 大于0且不等5的整数
C. 大于0或等于5的整数
D. 小于5的整数
解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大于0且不等于5时将其打印出来。
3.设顺序表的长度为16,对该表进行简单插入排序。在最坏情况下需要的比较次数为( )。(A)
A. 120
B. 60
C. 30
D. 15
解析:简单插入排序在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数为n(n-1)/2。本题中n=16,16×(16-1)÷2=8÷15=120。
4.以下叙述中错误的是(D)
A. 常量可以用一个符号名来代表
B. 数值型常量有正值和负值的区分
C. 常量是在程序运行过程中值不能被改变的量
D. 定义符号常量必须用类型名来设定常量的类型
解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:
#define(常量)
其中,<符号常量名)用标识符,习惯上用人写字母,可以是数字常量,也可以是字符。
5.若变量已正确定义并赋值,则错误的赋值语句是( )。(D)
A. a+a+1:
B. a=sizeof(double);
C. a=d ‖ c;
D. a+1=a:
解析:赋值号“=”的左边必须是一个变量名。
6.以下选项中关于程序模块化的叙述错误的是( )。(A)
A. 可采用自底向上、逐步细化的设计方法把若于独立模块组装成所要求的程序
B. 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C. 把程序分成若干相对独立的模块,可便于编码和调试
D. 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
解析:程序模块化思想中,可以采用自顶向下、逐步细化的方法,所以A选项中“自底向上”的说法是错误的。
7.软件需求规格说明书在软件开发中的作用不包括( )。(B)
A. 软件设计的依据
B. 软件可行性分析的依据
C. 软件验收的依据
D. 用户和开发人员对软件要做什么的共同理解
解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。软件需求规格说明书是需求分析阶段的最后成果。需求规格说明书是使开发人员获得设计和实现这些功能所需的所有必要信息,是软件设计的依据,A选项正确;软件需求规格说明书是软件测试和验收的依据,通过检查每项需求是否能通过设计测试用例或其他的验证方法,来确定产品是否确实按需求实现了,C选项正确;软件需求规格说明书对所有需求说明的用户和开发人员都只能有一个明确统一的解释,是用户和开发人员对软件要做什么的共同理解,D选项正确。可行性分析是项目立项阶段要做的工作,虽然也需要对用户需求进行调研,但此阶段不会形成软件需求规格说明书。故正确答案为B。
8.下列叙述错误的是( )。(C)
A. 函数名是属于用户标识符,需符合C语言对标识符的规定
B. 形参只能是变量
C. 为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
D. 函数中定义的变量可以与其他函数中的变量同名
解析:本题主要考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域在函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。
9.以下正确的字符串常量是( )。(D)
A. \\\
B. ’abc’
C. Olympic Games
D.
解析:本题考查的知识点是字符串常量。在C语言中,字符串常量是以双引号括起来的字符序列,因此B选项和C选项不正确。字符序列中可包含一些转义字符,转义字符都是以“\”开头的。A选项中包含了3个“\”,前两个(\\)代表了一个“\”字符,后面一个和“\\
10.下列数据结构中,不能采用顺序存储结构的是(D)
A. 栈
B. 堆
C. 队列
D. 非完全二叉树
解析:堆中某个结点的值总是不大于或不小于其父结点的值、堆总是一棵完全二叉树,可以以顺序存储结构存储;队列的存储结构分为链式存储、顺序存储两种;栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,可以以顺序存储结构存储。
11.在结构化程序设计中,模块划分的原则是(D)
A. 各模块应包括尽量多的功能
B. 各模块的规模应尽量大
C. 各模块之间的联系应尽量紧密
D. 模块内具有高内聚度、模块间具有低耦合度
解析:内聚性是对一个模块内部名个元素间彼此结合的紧密程度的度量。耦合性是对模块间瓦相连接的紧密程度的度量。在结构化程序设计中,模块划分应遵循高内聚、低耦合的原则,即减弱模块之间的耦合性和提高模块内聚性,有利于提高软件模块的独立性。
12.有以下程序
#include
main(){char c1.c2,c3,c4,c5,c6;
scanf(\\(C)
A. 1256
B. 1278
C. 1245
D. 1 267
解析:当用scanf函数从键盘输入数据时,每行数据的未尾按下回车键(Enter键)之前,可以任意修改。但按下回车键putchar(c1)(Enter键)之后,scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入123时,变量c1、c2、c3的值分别为1、2、3,当输入45678耐,变量c5、c6的值4和5。所以用输出函数putchar(c1)输出1,putchar(c2)输出2,printf(\\
13.有以下程序段:
#include<stdio.h>
int i;
float y;char name[50];
scanf(\\(A)
A. 566.0
本文档预览:3600字符,共11557字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载