国家二级(C语言)机试模拟试卷455
选择题
1.以下4个选项,不能看作一条语句的是( )。
D
解析:if语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。选项D中没有将两个操作语句括起来,不能看作一条语句。
2.有以下程序:
#include
main()
{ char ch=’Z’;
ch=(ch-’A’+1)%26+’A’;putchar(ch);
}
程序的运行结果是( )。(D)
A. Z
B. Y
C. B
D. A
解析:Z的ASCII码是90,A的ASCII码是65,所以ch=(ch-’A’+1)%26+’A’=26%26+65=65,输出65对应的字符A。
3.下面结构体的定义语句中,错误的是( )。
A
解析:A选项struct ord{int x;int y;int z;}struct ord a;错误,不能在定义结构体的同时,又用结构体类型名定义变量。应该写成B选项或者D选项的格式。
4.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 系统软件
C. 一种编译系统
D. 一种通信软件系统
解析:系统软件主要包括:①操作系统软件;②各种语言的解释程序和编译程序;③各种服务性程序;④各种数据库管理系统。
5.以下有关宏替换的叙述不正确的是( )。(D)
A. 使用宏定义可以嵌套
B. 宏定义语句不进行语法检查
C. 双引号中出现的宏名不替换
D. 宏名必须用大写字母表示
解析:本题考查宏替换的规则。宏替换有两类:简单的字符替换和带参数的宏替换。使用宏应注意:①宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标示符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
6.下列各选项中,不属于序言性注释的是( )。(D)
A. 程序标题
B. 程序设计者
C. 主要算法
D. 数据状态
解析:注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。
7.以下( )不属于对象的基本特征。(A)
A. 继承性
B. 封装性
C. 分类性
D. 多态性
解析:对象具有特征:标识惟一性,指对象是可区分的;分类性,指可以将具有相同属性和操作的对象抽象成类:多态性,指同一个操作可以是不同对象的行为;封装性,从外面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法;模块独立性好,对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。
8.软件调试的目的是( )。(C)
A. 发现错误
B. 改善软件的性能
C. 改正错误
D. 验证软件的正确性
解析:在对程序进行了成功的测试之后将进入程序调试,程序调试的任务是诊断和改正程序中的错误。
9.下面程序运行后的输出结果是( )。
#include
main()
{int a[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;
for(i=0;i<5;i++)s=s+b[a[i]];
printf(\\(A)
A. 12
B. 15
C. 11
D. 8
解析:这道题目是计算一维数组b中某些元素的和。这些元素的下标值是一维数组a中元素值。s=0+b[1]+b[0]+b[4]+b[2]+b[0]=2+1+5+3+1=12。
10.下面结构体的定义语句中,错误的是( )。
A
解析:分号代表该结构体定义语句的结束,选项A)的结构体没有定义完全就用该结构体另外定义变量,用法有误,所以答案选A)。
11.在三级模式之间引入两层映像,其主要功能之一是( )。(A)
A. 使数据与程序具有较高的独立性
B. 使系统具有较高的通道能力
C. 保持数据与程序的一致性
D. 提高存储空间的利用率
解析:数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。
12.有以下程序(注:字符a的ASCII码值为97):
#inelude
main()
{ char*s={“abe”};
do
{prinff(“%d”,*s%10);++s;}
while(*s);
}
程序运行后的输出结果是( )。(A)
A. 789
B. abe
C. 7890
D. 979899
解析:因为小写字符a,b,c的Ascll码值分别为97,98,99,而在do while循环语句中,每次对字符的AscH码值取余数并输出,所以分别输出 7,8,9。
13.有以下函数:
int aaa(char*s)
{char*t=s;
while(*t++);
t–;
return(t-s);
}
以下关于aaa函数功能叙述正确的是( )。(C)
A. 将串s复制到串t
B. 比较两个串的大小
C. 求字符串s的长度
D. 求字符串s所占字节数
解析:本题重点考察的知识点while循环语句的应用。aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针t不断递增,直到t指向字符串结束标识处。当t指向结束标识处时,由于后缀++运算符的原因,它还会被再递增1,所以接下来的t–;语句让它回到结束标识处。最后返回t-s,s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。因此C选项正确。
14.某二叉树中度为2的结点有10个,则该二叉树中有( )个叶子结点。(C)
A. 9
B. 10
C. 11
D. 12
解析:根据二叉树的性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
15.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。(B)
A. 软件矛盾
B. 软件危机
C. 软件藕合
D. 软件产生
解析:随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,
本文档预览:3600字符,共13100字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载