国家二级C语言机试(选择题)模拟试卷226附答案解析

国家二级C语言机试(选择题)模拟试卷226

选择题

1.下列叙述中正确的是(A)

A. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化

B. 循环队列中的元素个数随队头指针的变化而动态变化

C. 循环队列中的元素个数随队尾指针的变化而动态变化

D. 循环队列中的元素个数不会变化

解析:所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针front指向的后一个位置与队尾指针rear指向位置之间的元素数量。

2.下列各项中,对对象概念描述正确的是( )。(A)

A. 对象间的通信靠消息传递

B. 对象是名字和方法的封装体

C. 任何对象必须有继承性

D. 对象的多态性是指一个对象有多个操作

解析:对象之间进行通信的构造叫作消息,选项A正确。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,选项B错误。对象不一定必须有继承性,选项C错误。多态性是指同一个操作可以是不同对象的行为,选项D错误。

3.对软件设计中应遵循的准则描述正确的是( )。(B)

A. 高耦合低内聚

B. 高内聚低耦合

C. 模块独立性仅与内聚度相关

D. 内聚与耦合无关

解析:软件设计应遵循的准则有抽象、逐步求精和模块化、信息隐蔽和局部化、模块独立性。

模块的独立性程度是评价设计好坏的重要程度标准,有两个定性标准度量,即模块间的耦合性和模块内的内聚性。

耦合性是模块间互相连接的紧密程度的度量。一个模块的耦合性越高则该模块的独立性越弱。内聚性是指一个模块内部各个元素间彼此结合的紧密程度。一个模块的内聚性越高则该模块的独立性越强。好的软件设计,应尽量做到高内聚、低耦合。

4.C语言中double类型数据占字节数为(C)

A. 4

B. 12

C. 8

D. 16

解析:double类型所占字节为8。

5.有以下程序:

#include<stdio.h>

main()

{ int a=6,b=7,m=1;

switch(a%2)

{ case 0:m++;break;

case 1:m++:

switch(b%2)

{defaut:m++;

case0:m++;break;

}

}

printf(’’%d\n’’,m);

}

程序运行后的输出结果是( )。(B)

A. 1

B. 2

C. 3

D. 4

解析:本题考查switch语句。因为“a=6”,所以“a%2=0”,因此第一个switch语句,执行“case0”,将m加1,遇到break语句跳出switch语句,输出m值为2。

6.有以下定义:

int a;

long b;

double x,y;

则以下选项中正确的表达式是(A)

A. a%(int)(x-y)

B. a=xy

C. (a*y)%b

D. y=x+y=x

解析:选项B中运算符不存在,选项C中double类型不能进行取余(%)操作,要求两个运算数必须是整数,选项D中x+y=x错误。

7.软件是指(D)

A. 程序

B. 程序和文档

C. 算法加数据结构

D. 程序、数据与相关文档的完整集合

解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据与相关文档的完整集合。软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。

8.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )。(B)

A. 一对一

B. 一对多

C. 多对一

D. 多对多

解析:由于B和C有一一对应的联系,而A和B之间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。

9.下列叙述中正确的是(A)

A. 对象具有封装性

B. 对象标识可以不唯一

C. 对象间的通信是靠方法调用

D. 对象是属性名和属性的封装体

解析:对象的特征有:唯一性、分类性、继承性和多态性(多形性)。对象的要素有:抽象、封装性(信息隐藏)和共享性。对象标识是唯一的。

10.若有定义语句:char s[10]=“1234567\0\0”;,则strlen(s)的值是( )。(A)

A. 7

B. 8

C. 9

D. 10

解析:strlen()函数是计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中的字符串从第一个字符开始,遇到第一个结束标识’\0’为止,注意’\0’不占字符串长度,所以字符串长度为7,因此A选项正确。

11.下面不属于软件测试实施步骤的是(B)

A. 集成测试

B. 回归测试

C. 确认测试

D. 单元测试

解析:软件测试实施的步骤有单元测试、集成测试和确认测试。

12.某系统结构图如下图所示,则该结构图的深度是

(C)

A. 1

B. 2

C. 3

D. 4

解析:树中结点的层次从根开始定义起,根为第一层,根的孩子为第二层,依次累计。树中结点的最大层次称为树的深度。所以由题目中系统结构图,得到该树的深度为3,因此应选C选项。

13.有三个关系R、S和T如下:

(D)

A. 笛卡尔积

B. 交

C. 并

D. 自然连接

解析:在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察三个关系R,S,T的结果可知关系T是由关系R和S进行自然连接得到的。

14.在数据库中,产生数据不一致的根本原因是(A)

A. 数据冗余

B. 没有严格保护数据

C. 未对数据进行完整性控制

D. 数据存储量太大

解析:在一个数据集合中重复的数据称为数据冗余。数据冗余是指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。

15.有以下程序:

#include<stdio.h>

main()

{

FILE*fp;char]]str[10];

fp=fopen(\(C)

A. abc

B. 28c

C. abc28

D. 因类型不一致而出错

解析:本题考查文件操作函数:fprintf()函数。fprintf()函数向文件输出,将输出的内容输出到硬盘上的文件,或是相当于在文件的设备上执行两次fprintf后,文件中有abe28,所以C选项正确。

16.以下选项中非法的字符常量是(A)

A. ’\019’

B. ’\65’

C. ’\Xff’

D. ’\101’

解析:本题考查字符型常量。选项A)错误,使用了转义字符“\”,019以0开始表示8进制,8进制数字的范围是0-7,没有9;选项B)、C)和D)正确。

17.有以下程序

char fun(char*c){if(*c=’A’)

*c-=’A’-’a’;

return*c;}

main(){char s[81],*p=s;

gets(s);

while(*p){

*p=fun(p);

putchar(*p);

p++;}

printf(\(B)

A. oPEN tHE dOOR

B. open the door

C. OPEN THE DOOR

D. Open The Door

解析:函数fun的主要功能是判断字符是否为大写字符,如果是则转换为小写字符,主函数读入大写字符串,转换成小写。

18.下面不能作为结构化方法软件需求分析工具的是(A)

A. 系统结构图

B. 数据字典(DD)

C. 数据流程图(DFD图)

D. 判定表

解析:结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。

19.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(D)

A. extern和register

B. auto和static

C. static和register

D. auto和register

解析:在C语言中,动态变量(auto)存储在内存中的动态存储区,在程序运行中,只有当调用变量所在的函数时,系统才临时给变量分配内存单元;全局变量(extem)一经定义,系统为其分配固定的内存单元;静态变量(static),编译系统为其分配固定的存储空间;寄存器变量(register)不保存在内存上,而是直接存储在CPU的寄存器中。

20.有以下程序

#include

main()

{ char c[2][5]={\(D)

A. 9284

B. 9824

C. 6982

D. 6385

解析:本题中首先是将二维字符数组c赋值指针数组p,然后遍历p找到两个字符串中的偶数位置的字符并组成一个数值输出,根据代码执行即可得到结果为6385。

21.有以下程序

#include

void main()

{char s[]={\(D)

A. 0

B. 3

C. 5

D. 2

解析:这段程序的功能求出字符串s中字符在小写字符a到z之间字符的个数。在程序中字符串s的值为“012xy”,所以在字符串s中符合要求的字符的个数等于2。

22.若有定义语句:double a,*p=&a;以下叙述中错误的是(D)

A. 定义语句中的木号是一个说明符

B. 定义语句中的p只能存放double类型变量的地址

C. 定义语句中*p=&a把变量a的地址作为初值赋给指针变量p

D. 定义语句中的*号是一个间址运算符

解析:在指针定义语句“double a,*p=&a”中,指针变量p前面的*号,只是一个说明符,说明变量p是指针类型的变量。

23.下面选项中的程序段,没有编译错误的是( )。(A)

A. char* sp, s[10]; sp = \

B. char* sp, s[10]; s = \

C. char str1[10] = \

D. char mark[]; mark = \

解析:字符数组名为一个指针常量,在非定义状态下,不能进行任何赋值性操作,所以不能通过赋值操作将一个字符串的地址指给它,也不能一个字符数组的地址指给另一个字符数组名,选项B)、C)、D)错误;但是可以通过赋值的方式把一个字符串地址指给一个字符指针,选项A)正确;答案选A)。

24.有三个关系R、S和T如下:

(D)

A. 并

B. 自然连接

C. 笛卡尔积

D. 交

解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B)错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C)错误。根据关系T可以很明显的看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D)。

25.若有定义语句: int a[2][3],*p[3]; 则以下语句中正确的是(A)

A. p[0]=&a[1][2];

B. p[0]=a;

C. p=a;

D. p[1]=&a;

解析:定义语句int a[2][3],*p[3];定义了整型二维数组a[2][3]和指针数组p[3]。在C语言中,二维数组名也是一个存放地址常量的指针,其值为二维数组中第一行的地址。所以选项A中,把整型数组a[0]的指针赋给p[0]。

资源下载《国家二级C语言机试(选择题)模拟试卷226附答案解析.doc》 文档下载价格为90下载币,请先
将本套试题Word文档或文章下载到电脑,方便收藏和打印
资源下载
《国家二级C语言机试(选择题)模拟试卷226附答案解析.doc》
试题含答案和解析word文档下载价格:90 下载币
《国家二级C语言机试(选择题)模拟试卷226附答案解析.doc》
试题含答案和解析word文档VIP优惠:免费
将本套试题Word文档或文章下载到电脑,方便收藏和打印
0

评论0

没有账号? 注册  忘记密码?