全国计算机等级考试等级考试试题库之选择题〔13〕
1.程序流程图中带有箭头的线段表示的是( )。
A) 图元关系
B) 数据流
C) 操纵流
D) 调用关系
参考答案:C
【解析】在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示操纵流。所以选择C)。
2.结构化程序设计的根本原则不包含( )。
A) 多态性
B) 自顶向下
C) 模块化
D) 逐渐求精
参考答案:A
【解析】结构化程序设计的思想包含:自顶向下、逐渐求精、模块化、限制使用goto语句,所以选择A)。
3.软件设计中模块划分应遵循的准则是( )。
A) 低内聚低耦合
B) 高内聚低耦合
C) 低内聚高耦合
D) 高内聚高耦合
参考答案:B
【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循肯定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4.在软件开发中,需求分析阶段产生的主要文档是( )。
A) 可行性分析汇报
B) 软件需求规格说明书
C) 概要设计说明书
D) 集成测试方案
参考答案:B
【解析】A)错误,可行性分析阶段产生可行性分析汇报。C)错误,概要设计说明书是总体设计阶段产生的文档。D)错误,集成测试方案是在概要设计阶段编写的文档。B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5.算法的有穷性是指( )。
A) 算法程序的运行时间是有限的
B) 算法程序所处理的数据量是有限的
C) 算法程序的长度是有限的
D) 算法只能被有限的用户使用
参考答案:A
【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
6.对长度为n的线性表排序,在最坏情况下,比拟次数不是n(n-1)/2的排序方法是( )。
A) 快速排序
B) 冒泡排序
C) 直接插入排序
D) 堆排序
参考答案:D
【解析】除了堆排序算法的比拟次数是,其他的都是n(n-1)/2。
7.以下关于栈的表达正确的选项是( )。
A) 栈按"先进先出"组织数据
B) 栈按"先进后出"组织数据
C) 只能在栈底插入数据
D) 不能删除数据
参考答案:B
【解析】栈是按"先进后出"的原则组织数据的,数据的插入和删除都在栈顶进行操作。
8.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。
A) 需求分析阶段
B) 概念设计阶段
C) 逻辑设计阶段
D) 物理设计阶段
参考答案:C
【解析】E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
9.有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( )。
A) 并
B) 自然连接
C) 笛卡尔积
D) 交
参考答案:D
【解析】自然连接是一种特别的等值连接,它要求两个关系中进行比拟的重量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B)错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C)错误。依据关系T可以很明显的看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D)。
10.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,你的证件号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。
A) 课号,成绩
B) 学号,成绩
C) 学号,课号
D) 学号,姓名,成绩
参考答案:C
【解析】学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯肯定义的学号和课号,所以选择C)。
11.C言语程序的模块化通过以下哪个选项来完成
A) 变量
B) 函数
C) 程序行
D) 语句
参考答案:B
【解析】C言语程序的模块化通过函数来表达,所以选择B。
12.以下选项中不属于C言语标识符的是
A) 常量
B) 用户标识符
计算机二级c语言选择题库C) 关键字
D) 预定义标识符
参考答案:A
【解析】常量是指在程序运行过程中其值不能被改变的量,如5、1.0、字符'a'等。C言语的标识符分为3类:关键字、预定义标识符和用户标识符。常量不属于标识符,所以选择A。
13.以下选项中不属于C言语程序运算符的是
A) sizeof
B) <>
C) ( )
D) &&
参考答案:B
【解析】C言语中的不等于符号用"!="表示,没有符号"< >"。所以选择B。
14.假设变量已正确定义并赋值,以下不能构成C语句的选项是
A) B++;
B) A=a+b;
C) a=a+b
D) A?a:b;
参考答案:C
【解析】C言语规定,C语句必须以分号";"结束。C选项中没有结束符号,所以错误。
15.假设有以下程序段
double x=5.16894;
printf("%f\n", (int)(x*1000+0.5)/(double)1000 );
则程序段的输出结果是
A) 5.170000
B) 5.175000
C) 5.169000
D) 5.168000
参考答案:C
【解析】%f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94然后+0.5,结果为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,所以输出结果为5.169000。
16.设有定义:
double a,b,c;
假设要求通过输入分别给a、b、c输入1、2、3,输入形式如下〔注:此处□代表一个空格)
□□1.0□□2.0□□3.0<回车>
则能进行正确输入的语句是
A) scanf("%lf%lf%lf",a,b,c);
B) scanf("%lf%lf%lf",&a,&b,&c);
C) scanf("%f%f%f",&a,&b,&c);
D) scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);
参考答案:B
【解析】scanf函数的一般形式为scanf(格式操纵,变量1地址,变量2地址,…),其中,格式字符串要与数据类型保持一致,所以格式字符串中应为%lf,后面应该为变量地址,所以需要加上符号"&",所以选择B。
17.假设有定义语句
char c='\101';
则变量c在内存中占
A) 1个字节
B) 2个字节
C) 3个字节
D) 4个字节
参考答案:A
【解析】此题考察字符变量的存储空间,每个字符变量被分配一个字节的内存空间。因此A选项正确。
18.假设有以下程序
#include <stdio.h>
main()
{ char c1, c2;
c1='C'+'8'-'3'; c2='9'-'0';
printf("%c %d\n", c1, c2);
}
则程序的输出结果是
A) H '9'
B) H 9
C) F '9'
D) 表达式不合法输出无定值
参考答案:B
【解析】此题考察字符变量以及printf〔〕函数相关知识,字符变量c1被赋值为'C'+'8'-'3',即ASSCII码的运算,67+54-49=72,即H;字符变量c2被赋值为'9'-'0',但输出时,需要注意的是c1以字符变量输出,而c2是以十进制整型变量输出。因此B选项正确。
19.表示关系式x≤y≤z的C言语表达式的是
A) (x<=y)&&(y<=x)
B) (x<=y)||(y<=x)
C) (x<=y<=z)
D) x<=y)!(y<=x)
参考答案:A
【解析】此题考察关系表达式和逻辑表达式,y大于等于x同时y小于等于z,因此x<=y和y<=z是逻辑与的关系。因此A选项正确。
20.有以下程序
#include <stdio.h>
main()
{ int x=1, y=0,a=0,b=0;
switch( x )
{ case 1: switch ( y )
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
}
printf("a=%d,b=%d\n",a,b );
}
程序运行后的输出结果是
A) a=1,b=0
B) a=1,b=1
C) a=2,b=1
D) a=2,b=2
参考答案:C
【解析】此题重点考察switch语句,switch语句中case分支后面如果没有break,那么就会顺序执行下面的case,直到遇到break跳出。由于变量a和变量b均赋初值为0,当程序执行完语句case 0: a++; break;后,a的值为1,继续执行语句case 2: a++; b++; break;a的值为2,b的值为1。因此C选项正确。
21.有以下程序
#include <stdio.h>
main()
{ int k, j, s;
for( k=2; k<6; k++,k++ )
{ s=1;
for (j=k; j<6; j++ ) s+=j;
}
printf("%d\n" , s );
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论