网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

计算机二级C语言考前30天攻关测试题

栏目: C语言 / 发布于: / 人气:2.47W

下面是应届毕业生考试网小编整理的2017年3月计算机二级C语言考前30天攻关测试题,希望大家好好利用,祝大家考试顺利。

计算机二级C语言考前30天攻关测试题

一、选择题

1). 以下叙述中错误的是( )

A.预处理命令行的最后不能以分号表示结束

B.C程序对预处理命令行的处理是在程序执行的过程中进行的

C.#define MAX 是合法的宏定义命令行

D.在程序中凡是以″#″开始的语句行都是预处理命令行

正确答案:B

答案解析:预处理命令行是以″#″开始的语句,预处理命令行的最后不能以分号表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:# define 标识符 字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。

2). 按照″后进先出″原则组织数据的数据结构是( )

A.队列

B.栈

C.双向链表

D.二叉树

正确答案:B

答案解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后插入的元素,也是最先被删除的元素;栈底元素总是最先插入的元素,也是最后才能被删除的元素。即栈是按照″后进先出″(Last In First Out,简称LIFO)或″先进后出″(First In Last Out,简称FILO)的原则组织数据的。因此,栈也称为″后进先出表″或″先进后出″表。

3). 以下程序段完全正确的是( )

k, *p=&k; scanf(″%d″, p);

*p; scanf(″%d″, p);

*p; scanf(″%d″, &p);

k, *p; *p=&k; scanf(″%d″, p);

正确答案:A

答案解析:选项B没有对指针进行初始化,无效指针。选项C错在没有对指针进行初始化,无效指针,并且在scanf(″%d″,&p)中无需再进行取地址操作。选项D,语句*p=&k;的左端*p是指针所指内存空间的值,&k是地址,应为p=&k。

4). 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )

A.一对一

B.一对多

C.多对一

D.多对多

正确答案:B

答案解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。

5). 软件设计中划分模块的一个准则是( )

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

正确答案:B

答案解析:耦合性与内聚性是模块独立性的两个定性标准。一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

6). 当把4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。

A.k%2

B.k%2==1

C.(k%2) !=0

D.!k%2==1

正确答案:A

答案解析:整数k对2求余数的两个结果只能是0和1,所以选项A表示k除以2的余数,其结果是0或1。在选项B、C和D中包括算术求余运算符″%″,关系等于运算符 ″==″和关系不等于运算符″!=″以及逻辑非运算符″!″。而逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑″非″)、算术运算符、关系运算符、&&(逻辑″与″)、||(逻辑″或″)、赋值运算符。选项B含义是判断表达式k%2的'结果是否等于1、选项C的含义是判断表达式k%2的结果是否不等于0,选项D含义是判断表达式!k%2的结果是否等于1,所以选项B、C和D的含义相同。

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

A.调用printf( )函数时,必须要有输出项

B.使用put )函数时,必须在之前包含头文件stdio.h

C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出

D.调节get )函数读入字符时,可以从键盘上输入字符所对应的ASCII码

正确答案:B

答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。

2). 以下结构体类型说明和变量定义中正确的是( )

def struct { int n; char c; } REC; REC t1,t2;

ct REC ; { int n; char c; }; REC t1,t2;

def struct REC; { int n=0; char c=′A′; } t1,t2;

ct { int n; char c; } REC; REC t1,t2;

正确答案:A

答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。

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

A.一对一

B.一对多

C.多对一

D.多对多

正确答案:B

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

4). 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )

A.一对一

B.一对多

C.多对一

D.多对多

正确答案:B

答案解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。

5). 软件设计中划分模块的一个准则是( )

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

正确答案:B

答案解析:耦合性与内聚性是模块独立性的两个定性标准。一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

6). 当把4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。

A.k%2

B.k%2==1

C.(k%2) !=0

D.!k%2==1

正确答案:A

答案解析:整数k对2求余数的两个结果只能是0和1,所以选项A表示k除以2的余数,其结果是0或1。在选项B、C和D中包括算术求余运算符″%″,关系等于运算符 ″==″和关系不等于运算符″!=″以及逻辑非运算符″!″。而逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑″非″)、算术运算符、关系运算符、&&(逻辑″与″)、||(逻辑″或″)、赋值运算符。选项B含义是判断表达式k%2的结果是否等于1、选项C的含义是判断表达式k%2的结果是否不等于0,选项D含义是判断表达式!k%2的结果是否等于1,所以选项B、C和D的含义相同。

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

A.关系运算符两边的运算对象可以是C语言中任意合法的表达式

B.在C语言中,逻辑真值和假值分别对应1和0

C.对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误

D.分支结构是根据算术表达式的结果来判断流程走向的

正确答案:A

答案解析:C语言中没有逻辑类型,用非零表示逻辑真。0表示逻辑假,选项B错误,无法判断两个浮点变量是否相等,但是x==y不会出现编译错误,选项C错误,分支结构根据表达式的值,不一定为算术表达式,选项D错误。

2). 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。

A.需求分析

B.详细设计

C.软件设计

D.概要设计

正确答案:A

答案解析:软件生命周期的主要活动阶段为:可行性研究和计划制定、需求分析、软件设计、软件实现、软件测试、运行和维护。其中需求分析是对开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能,编写软件规格说明书及初步的用户手册,提交评审。

3). 设文件指针fp已定义,执行语句fp=fopen(″file″,″w″);后,以下针对文本文件file操作叙述的选项中正确的是( )

A.写操作结束后可以从头开始读

B.可以在原有内容后追加写

C.可以随意读和写

D.只能写不能读

正确答案:D

答案解析:在题目中函数fopen以″只写″方式打开文件file。

4). 以下关于C语言的叙述中正确的是( )。

A.预处理命令通常位于函数体外面,但也可以位于函数体中间

B.C语言中的变量定义须在其他语句之前

C.在C语言程序的书写中,一个语句必须单占一行

D.一个C语言源程序可以由一个或多个源文件组成,每个源文件可由自己的main函数

正确答案:A

答案解析:源程序中可以有预处理命令(include命令仅为其中的一种)。C语言中的变量可以在使用之前的任何位置进行定义。C语言程序的书写中,多个语句可以位于一行,但为了增强可读性,一般每行只有一条语句。一个C语言源程序可以由一个或多个源文件组成,但仅可以有一个mam函数.

5). 下列选项中可作为C语言合法常量的是( )。

A.-80

B.-080

C.-8e1.0

正确答案:A

答案解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项B中是以0开头,表示一个八进制数,而八进制数的取值范围是0~7,所以“-080”错误;在C语言巾e后面的指数必须是整数,因此选项C和D也不正确。

6). 设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为( )

A.8

B.7

C.6

D.5

正确答案:B

答案解析:深度为m二叉树其总结点数为2m -1=24-1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15-4-2-1-1=7。