国家二级C语言机试(选择题)模拟试卷402
选择题
1.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 数据字典
B. 详细设计说明书
C. 数据流图说明书
D. 软件需求规格说明书
解析:需求分析的最终结果是生成软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便。
2.支持子程序调用的数据结构是(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。
3.下列关于栈叙述正确的是(A)
A. 栈顶元素能最先被删除
B. 栈顶元素最后才能被删除
C. 栈底元素永远不能被删除
D. 以上三种说法都不对
解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
4.以下叙述中正确的是(B)
A. 程序的主函数名除main外,也可以使用Main或main
B. 在C程序中,模块化主要是通过函数来实现的
C. 程序可以包含多个主函数,但总是从第一个主函数处开始执行
D. 书写源程序时,必须注意缩进格式,否则程序会有编译错误
解析:C语言中任何一个有效的程序都有且只能有一个main( )函数,不能写成其他形式,一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。
5.有以下程序#include
main(){
int a=0,b=0;
/*给a赋值a=10;b=20:给b赋值*/
printf(\\(D)
A. a+b=30
B. a+b=10
C. 出错
D. a+b=0
解析:C语言规定,在字符“/*”和其后紧跟的第一个字符“*/”中间的部分是注释内容,且注释部分的内容不参与程序的编译和运行,因此,本题中程序语句“a=10;b=20;”没有执行。
6.有以下程序:
#include<stdio.h>
int f(int x,int y)
{return((y—x) * x);}
void main( )
{
int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(″%d\n″,d);
}
程序运行后的输出结果是( )。(A)
A. 9
B. 10
C. 8
D. 7
解析:考查函数的返回值。d=f(f(a,b),f(a,c))=f((b—a)*a,(c—a)*a)=f(3,6)=(6—3)*3=9,所以答案选A。
7.有三个关系R、S和R如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B)错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C)错误。根据关系T可以很明显的看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D)。
8.以下选项中能表示合法常量的是( )。(D)
A. 1,200
B. 1.5E2.0
C. ‘\’
D. “\007”
解析:A选项中整型常量应表示为1200,不能包含“,”。B选项中E后面的指数必须为整数。C选项中转义字符以“\,,开始,若要表示字符“\”,应写为“\\”。
9.有以下程序
#define F(X,Y)(X)*(Y)
main()
{ int a=3,b=4;
printf(\\(A)
A. 12
B. 15
C. 16
D. 20
解析:此题考查的是编译预处理命令以及自加运算符。“F(a++,b++)”先取a和b的值,参加运算,再把a和b的值分别加1,所以“F(a++,b++)=F(3,4)=3*4=12”。
10.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。(C)
A. 需求分析阶段
B. 概念设计阶段
C. 逻辑设计阶段
D. 物理设计阶段
解析:E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于辑设计阶段。
11.有以下程序段
char name[20];
int num;
scanf(\\(D)
A. name=Lili
B. Lili num=
C. name=Lili num=1001
D. Lili
解析:在题目中以字符串的形式给字符数组赋值,所以字符数组name的值为Lili。
12.数据字典(DD)所定义的对象都包含于(C)
A. 数据流图(DFD图)
B. 程序流程图
C. 软件结构图
D. 方框图
解析:本题考查数据流程图DFD的概念。对于面向数据流的结构化分析方法,按照DeMarco的定义,“结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档”。结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。数据流图(DFI)——Data Flow Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。由此可得数据流程图是结构化方法的需求分析工具。
13.设循环队列的存储空间为Q(1:m),初始状态为front=rear=m。经过一系列正常的操作后,front=1,rear=m。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为(C)
A. m
B. m-1
C. m-2
D. 1
解析:经过一系列正常的操作后,front=1,rear=m,那么最坏情况下需要的比较次数为rear- front-1=m-1-1=m-2。
14.有以下程序#include main(){int x;scanf(\\(D)
A. 不等于10的整数
B. 大于3或等于10的整数
C. 小于3的整数
D. 大于3且不等10的整数
解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大于3且不等于10时打印出来。
本文档预览:3600字符,共11114字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载