计算机二级C语言备考试题库(浓缩300题)_第1页
计算机二级C语言备考试题库(浓缩300题)_第2页
计算机二级C语言备考试题库(浓缩300题)_第3页
计算机二级C语言备考试题库(浓缩300题)_第4页
计算机二级C语言备考试题库(浓缩300题)_第5页
已阅读5页,还剩137页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机二级C语言备考试题库(浓缩300题)

一、单选题

1.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属

于应用软件的是()。

A、学生成绩管理系统

B、C语言编译程序

C、UNIX操作系统

D、数据库管理系统

答案:A

解析:应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程

与科学计算软件,学生成绩管理系统,教务管理系统、浏览器、编辑软件等应用

性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并

服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。

支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包

括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具

软件,编码工具软件,测试工具软件,维护工具软件等。答案选择A选项。

2,有如下程序:#incIudemain0{charch=lM';whiIe(ch!='K'){ch--;putchar(c

h);}printf("\n");}程序运行后的输出结果是()。

A、MN

B、LK

C、OP

D、MM

答案:B

解析:程序执行过程为:定义字符变量ch=,M,,判断ch!=K成立,ch--后值为

’「,输出L;判断ch!=,K,成立,ch—后值为*,,输出K;判断ch!=,K,不成立,

退出循环。程序运行后的输出结果为LK。答案选择B选项。

3,有如下程序#incIudemain0{inti=1;for(printf("%d",i);i<4;i++)printf("%

d",i);printf("\n");}程序运行后的输出结果是()。

A、1123

B、123

C、0123

D、001

答案:A

解析:for语句的一般形式为“for(表达式1;表达式2;表达式3){循环体语句}”,

其执行流程是先计算表达式1,之后计算表达式2,根据表达式2的值来判定是

否进行循环,若为真,则执行循环体,循环体执行完毕之后再计算表达式3的值。

整个循环过程中,表达式1只会执行一次,而表达式2、3以及循环体每次循环

都会执行,答案选择A选项。

4.有以下程序段:inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%

db=%dc=%d",a,b,c);程序的输出结果是()o

A、a=10b=50c=30

B、a=10b=50c=10

C\a=10b=30c=10

D\a=50b=30c=50

答案:B

解析:因为a=10,b=50,所以a〈b,if语句判断条件不成立,于是执行c=a,

得到c=10,a和b的值不变。答案选择B选项。

5.面向对象方法中,继承是指()。

A、一组对象所具有的相似性质

B、一个对象具有另一个对象的性质

C、各对象之间的共同性质

D、类之间共享属性和操作的机制

答案:D

解析:继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可

以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用,

即实现了类之间共享属性和操作。答案选择D选项。

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

A、栈是一种先进先出的线性表

B、队列是一种后进先出的线性表

C、栈和队列都是非线性结构

D、以上三种说法都不对

答案:D

解析:A项错误,栈是一种“先进后出”的特殊线性表;B项错误,队列则是一

种“先进先出”的特殊线性表;C项错误,栈和队列都是线性结构。答案选择D

选项。

7设有函数定义:voidsub(intk,charch){…}则以下对函数sub的调用语句中,

正确的是()。

A、sub(1,97);

B、sub(2,197');

Gh=sub(3,'a');

D\sub(4,"a");

答案:A

解析:函数的参数有两个,第一个是整型,第二个是字符类型,在调用函数时,

实参必须一个是整型,另一个是字符型相容的类型(整型)。A项中,97为字符

丁,的ASCII码,可以作为字符传入函数,A项正确。B项中,,a,不是合法字符,

字符单引号里面只能有一个字符,B项错误。函数sub返回类型为空,即不返回

任何值,故C项中将函数返回值赋给h是不正确的调用方法,C项错误。D项,"

a”为字符串,也不是合法的字符,D项错误。答案选择A选项。

8.在C语言程序中,下列说法中正确的是()。

A、函数的定义可以嵌套,但函数的调用不可以嵌套

B、函数的定义不可以嵌套,但函数的调用可以嵌套

C、函数的定义和调用均不可以嵌套

D、函数的定义和调用均可以嵌套

答案:B

解析:C语言规定,不能在函数的内部定义函数,但函数的调用可以嵌套。答案

选择B选项。

9.下面关于算法的叙述中,正确的是()。

A、算法的执行效率与数据的存储结构无关

B、算法的有穷性是指算法必须能在执行有限个步骤之后终止

C、算法的空间复杂度是指算法程序中指令(或语句)的条数

D、算法所执行的基本运算次数与问题的规模无关

答案:B

解析:A项错误,不同的数据存储结构有不同的数据读取效率,会影响到算法的

执行;C项错误,算法的空间复杂度是对这个算法所需要的内存空间的量度,包

括:①算法程序所占的空间;②输入的初始数据所占的存储空间;③算法执行中

所需要的额外空间;D项错误,算法所执行的基本运算次数与问题的规模有关。

答案选择B选项。

10.下列叙述中错误的是()。

A、在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构

B、在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线

性结构

C、在链表中,如果每个结点有两个指针域,则该链表不一定是线性结构

D、在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定不是线

性结构

答案:A

解析:非空的线性结构是一个满足:①有且只有一个根结点;②每一个结点最多

有一个前件,也最多有一个后件,A项错误,双向链表中结点的两个指针域分别

指向其前后结点,它是线性结构。答案选择A选项。

11.关于地址和指针,以下说法正确的是()。

A、通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量

B、可以取一个常数的地址赋值给同类型的指针变量

C、可以取一个表达式的地址赋值给同类型的指针变量

D、可以取一个指针变量的地址赋值给基类型相同的指针变量

答案:A

解析:常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修

改的,所以直接取常量的地址赋给指针变量没有任何意义,C语言也不允许这样

做,编译会出错,B项错误;表达式的值存储在临时变量中,内存中存在专门用

来存储临时变量的区域,对这块地址进行操作也是没有意义的,C语言不允许这

样做,编译会出错,C项错误;可以取一个指针变量的地址,但是指针变量的地

址属于指针,只能赋值给指针类型的指针变量,D项错误。答案选择A选项。

12.有以下程序#incIudemain(){intc[6]={10,20,30,40,50,60],*p,*s;p=c;s=&

c[5];printf("%d\n",s-p);}程序运行后的输出结果是O。

A、5

B、50

C、6

D、60

答案:A

解析:指针P指向c,指针s指向c[5],s-p就是c的地址与c[5]的地址之差(以

int的存储空间为单位),s和p都是int型变量,s=p+5,所以sp=5。答案选

择A选项。

13.设有关系表学生表S(学号,姓名,性别,年龄,身份证号),每个学生学

号唯一。除属性学号外,也可以作为键的是()。

A、姓名

B、身份证号

C、姓名,性别,年龄

D、学号,姓名

答案:B

解析:候选键是二维表中能惟一标识元组的最小属性集。一个二维表有多个候选

键,则选定其中一个作为主键供用户使用。学生学号与身份证号均可惟一标识一

位学生,都可以作为主键。答案选择B选项。

14.有以下程序:#incIudemain(){inta[10]={1,3,5,7,11,13,17],*p=a;printf

("%d,",*(p++));printf("%d\n",*(++p));}程序运行后的输出结果是()。

A、3,7

B、3,5

C、1,5

D、1,3

答案:C

解析:程序执行过程:指针P指向数组第一个元素;*(p++)先取P,输出P指向

的元素1,之后P移动1个存储空间,指向数组第二个元素;*(++p),指针P移

动1个存储空间指向数组第三个元素,之后输出所指元素5。答案选择C选项。

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

A、C语言规定必须用main作为主函数名,程序将从此开始执行

B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C、C语言程序将从源程序中第一个函数开始执行

D、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等

答案:A

解析:用户不能指定某函数为主函数,C语言规定,程序从main函数开始执行,

从main函数退出,C语言函数名区别大小写。答案选择A选项。

16.若函数中有定义语句:intk;则()o

A、系统将自动给k赋初值0

B、这时k中的值无定义

C、系统将自动给k赋初值7

D、这时k中无任何值

答案:B

解析:intk;这条语句是定义一个整型变量k,这是动态定义,编译程序仅为k

开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值时无意义的。

若是静态定义,则会自动初始化,其默认值为0。答案选择B选项。

17.有以下程序:#incIudemain(){intx=0x13;if(x=0x12)printf("True");prin

tf("False\n");}程序运行后的输出结果是O。

A、True

B、TrueFaIse

C、FaIse

D、TrueFaIseTrue

答案:B

解析:if(x=0x12)条件语句为赋值语句,注意赋值操作符“=”与相等操作符“=

=”的区别,此处是赋值语句“="0x12即十进制的18,给x赋值18,因此if

的判断条件为真,执行输出语句,输出True;之后再执行下一个输出语句,输

出False,答案选择B选项。

18.下面不能作为软件需求分析工具的是()。

A、PAD图

B、数据字典(DD)

C、数据流程图(DFD图)

D、判定树

答案:A

解析:软件需求分析方法包括结构化分析和面向对象分析。结构化分析工具有:

①数据流图(DFD);②数据字典(DD);③判定表;④判定树等。A项,PAD

图是过程设计工具。答案选择A选项。

19.算法应当具有的特性不包括()。

A、可行性

B、有穷性

C、确定性

D、美观性

答案:D

解析:一个算法应该具有以下五个重要的特征:有穷性,确定性,输入(零个或

多个),输出(至少一个)以及可行性,不包括美观性。答案选择D选项。

20.以下叙述正确的是()。

A、C程序总是以main。作为程序执行的起始行

B、main。函数若不带参数,其后面的一对圆括号可省略

C、函数体内的定义语句和可执行语句允许任意穿插出现

D、C语言中的语句之间必须用分号作为分隔符

答案:A

解析:main函数后面的括号告诉编译器这是一个函数,不可以省略,排除B选

项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出

现在执行语句的前面,故排除C选项;C语言中的某些语句可以不用分号,例如

if语句,宏定义,故D选项错误。答案选择A选项。

21.下列关系表达式中,结果为“假”的是()o

A、(3+4)>6

B、(3!=4)>2

C、3<=4||3

D、(3<4)==1

答案:B

解析:A项,先执行3+4=7,7>6,结果为真;B项,先执行3!=4为真,即为1,

1>2结果为假;C项,先执行3<=4结果为真,即1,再逻辑或运算只要左边值为

1,就不在执行右边运算,结果为真;D项,先执行3<4结果为真,即为1,再执

行1==1,结果为真。答案选择B选项。

22.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所

有元组,这样的集合运算称为()。

A、并巨算

B、交运算

C\差运算

D、积运算

答案:A

解析:关系的运算包含传统集合运算和专门关系运算,其中传统集合运算中的并

运算是指结构相同的一个关系追加到另一个关系中形成一个新关系,新关系中包

含两个关系中的所有元组。答案选择A选项。

23.有两个关系R,S如下,由关系R和S得到关系T,则所使用的操作为O。

A、并

B、自然连接

C、差

D、交

答案:A

解析:本题中T为RUS所得,并运算是将S中的记录追加到R后面。B项,自

然连接指去掉重复属性的等值连接;C项,差又写为R-S,结果是属于R但不属

于S的记录组成的集合;D项,RHS即交,结果是既属于R又属于S的记录组成

的集合。答案选择A选项。

24.有以下程序#incIudemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%

d,%d\n",x,y,z);}程序运行后的输出结果是()。

A、2,3,1

B、2,3,2

G2,3,3

D、2,2,1

答案:A

解析:考查逗号表达式。注意区分,z=x++是先将x的值赋给z,在令x自增;z

=++x是先将x自增,再将自增后的值赋给z;而无论是++x还是x++,都会完成

x自增的运算。对于表达式“z=x++,y++,++y;",因为赋值运算符的优先级高于

逗号运算符的优先级,所以可以将上式改成“(z=x++),(y++),(++y)。然后从

左向右先计算表达式z=x++,后缀自增运算先进行其他运算,再执行自增运算,

所以z的值为1,x的值为2,再计算逗号表达式第二个表达式y++,此时v的值

为1,y++的值为2,最后计算第三个表达式++y,y的值为3。答案选择A选项。

25.在数据库管理技术的发展中,数据独立性最高的是()。

A、人工管理

B、文件系统

C、数据库系统

D、数据模型

答案:C

解析:数据管理技术的发展阶段包括:①人工管理阶段;②文件系统阶段;③数

据库系统阶段。不同阶段的特点见下表:答案选择C选项。

26.对于一个正常运行的C程序,以下叙述中正确的是()。

A、程序的执行总是从程序的第一个函数开始,在main函数结束

B、程序的执行总是从main函数开始

C、程序的执行总是从main函数开始,在程序的最后一个函数中结束

D、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

答案:B

解析:一个正常运行的C程序总是从main函数开始执行,最后返回到main函数

结束。答案选择B选项。

27.表达式3.6-5/2+1.2+5%2的值是()。

A、4.8

B、3.8

C、3.3

D、4.3

答案:B

解析:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8O需要注意的是,两个整数相除仍然

得到整数,小数部分被省略,5/2=2o答案选择B选项。

28.结构化程序设计的3种结构是()。

A、顺序结构,分支结构,跳转结构

B、顺序结构,选择结构,循环结构

C、分支结构,选择结构,循环结构

D、分支结构,跳转结构,循环结构

答案:B

解析:结构化程序以模块化设计为中心,认为程序设计语言仅仅使用顺序、选择

和循环三种基本控制结构就可以实现任何算法功能。答案选择B选项。

29,有以下程序:#incIudemain(){inti=0,sum=1;do{sum+=i++;}whiIe(i<6);pr

intf("%d\n",sum);}程序的输出结果是()。

A、22

B、18

C、20

D、16

答案:D

解析:语句sum+=i++;相当于sum+=i;i++;程序执行过程为:sum=1,i=1;s

um=2,i=2;sum=4,i=3;sum=7,i=4;sum=11,i=5;sum=16,i=6;退出循环。

答案选择D选项。

30.以下关于指针的叙述正确是()。

A、所有类型的指针变量所占内存的大小是一样的

B、指针变量所占内存的大小与其类型有关,char型指针变量只占1个字节,do

ubIe型指针变量占8个字节

C、指针变量可直接指向任何类型的变量,而不会出现编译或运行错误

D、指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会

出现编译或运行错误

答案:A

解析:所有变量地址值所占字节都相同,故指针变量所占内存大小相同,A项正

确,B项错误。只能把具有相同类型的变量地址,存放到指针变量中,结构体变

量与某个成员类型不同,不能用同样的指针指向它们,C、D两项错误。答案选

择A选项。

31.数据结构主要研究的是数据的逻辑结构、数据的运算和()。

A、数据的方法

B、数据的存储结构

C、数据的对象

D、数据的逻辑存储

答案:B

解析:数据结构是相互之间存在一种或多种特定关系的数据元素的集合,主要研

究数据元素及其之间的相互关系和数据运算,包括:①数据的逻辑结构;②数据

的存储结构;③数据的运算。其中逻辑结构反映的是数据元素之间的逻辑关系,

与使用的计算机无关。答案选择B选项。

32.以下叙述错误的是()。

A、在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考

虑主程序中的算法

B、同一程序各模块可由不同人员同时进行编写调试,可提高编写程序的效率

C、模块化的程序设计是采用自顶向下、逐步细化的原则

D、程序的每个模块都可通过三种基本结构实现

答案:A

解析:进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入

输出关系,完成各个模块的编写调试后再集中编译,A项错误;各个模块可以由

不同人员同时进行编写调试,提高编写程序的效率,B项正确;模块化的程序设

计采用自顶向下、逐步细化的原则,C项正确;结构化程序使用三种基本结构可

以解决任何复杂的问题,D项叙述正确。答案选择A选项。

33.下列叙述中正确的是()o

A、每一个结点有两个指针域的链表一定是非线性结构

B、所有结点的指针域都为非空的链表一定是非线性结构

C、循环链表是循环队列的链式存储结构

D、线性结构的存储结点也可以有多个指针

答案:D

解析:D项正确,双向链表结点具有多个指针域。A项错误,双向链表结点具有

两个指针域,属于线性结构;B项错误,循环链表所有结点的指针域都为非空,

属于线性结构;C项错误,循环链表是链表,循环队列属于队列,队列只能在队

尾入队,在队头出队,链表可以在任何位置插入、删除。答案选择D选项。

34.C语言源程序名的后缀是()。

A、c

B、exe

C、obj

D、cp

答案:A

解析:由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源

程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然

后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连

接起来,生成后缀为“.exe”的可执行文件。答案选择A选项。

35.下面能作为软件需求分析工具的是()。

A、PAD图

B、程序流程图

C、甘特图

D、数据流程图(DFD图)

答案:D

解析:软件需求分析方法包括结构化分析方法和面向对象的分析方法两大类,前

者常用工具为数据流图(DFD)、数据字典(DD)、判定表、判定树等。故D项

正确。A项是过程设计工具。B项是软件功能实现时设计图。C项是项目管理中

的一种项目进度规划工具。答案选择D选项。

36.以下选项中能表示合法常量的是()。

A、整数:1,200

B、实数:1.5E2.0

G字符斜杠:'\'

D、字符串:"\007"

答案:D

解析:A项错误,表达错误;B项错误,E后面应为整数,不能是小数;C项错误;

字符斜杠的表示方法为因为第一个'表示是转义字符;D项正确,表示空

字符串,第一个字符为"\0",正确。答案选择D选项。

37.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为()。

(假设根结点在第1层)

A、3

B、4

C、6

D、7

答案:D

解析:在任意一个二叉树中,度为0的叶子结点总比度为2的结点多一个,所以

本题中度为2的结点为17=0个,即二叉树的每一个结点都只有一个孩子,7个

结点共7层。答案选择D选项。

38.下面不属于软件设计阶段任务的是()。

A、软件的功能确定

B、软件的总体结构设计

C、软件的数据设计

D、软件的过程设计

答案:A

解析:软件设计阶段的任务包括:①结构设计;②数据设计;③接口设计;④过

程设计。软件的功能确定是在需求分析阶段完成的。答案选择A选项。

39.有如下程序:#incIudemain0{charch=,A';whiIe(ch<'D'){printf("%d",ch

-1A1);ch++;}printf("\n");}程序运行后的输出结果是()。

A、ABC

B、012

C、abc

D、123

答案:B

解析:while循环语句执行时,首先判断表达式,成立(非0)则执行循环体,

不成立(0)则退出循环。字符之间做加减法,是用其ASCII码进行加减,所以

程序执行过程为:定义字符变量ch=,AL判断成立,,A,-A,=O,输出0,

ch++后,值为后判断后‘<'D'成立,判输出1,ch++后,值为‘C';

判断,C'C'A成立,,C'-'A,=2,输出2,ch++后,值为‘>;判断'DY,A不成立,

退出循环。程序运行后的输出结果是012,答案选择B选项。

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

A、不同函数的形式参数不能使用相同名称的标识符

B、用户自己定义的函数只能调用库函数

C、实用的C语言源程序总是由一个或多个函数组成

D、在C语言的函数内部,可以定义局部嵌套函数

答案:C

解析:一个C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,

选项C正确;除了main函数不能被其他函数调用之外,用户自定义函数可以调

用其他任意函数,包括库函数和用户自定义函数,选项B错误;函数是一个独立

的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项A错误;

函数体内部只可以调用但是不可以定义其他函数,选项D错误;答案选择C选项。

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

A、循环队列是顺序存储结构

B、循环队列是链式存储结构

C、循环队列是非线性结构

D、循环队列的插入运算不会发生溢出现象

答案:A

解析:B项错误,循环队列是一种顺序存储结构的队列;C项错误,线性结构是

一个非空序列:除第一个元素外,每个元素,有且只有一个前件;除最后一个元

素外,每个元素有且只有一个后件,所以循环队列是线性结构;D项错误,当循

环队列的元素个数等于存储长度后,入队会发生溢出现象,覆盖前面的数据。答

案选择A选项。

42.若想给已定义为int型的变量a、b、c、d赋整数1,以下选项中错误的语句

是()。

A\a=b,b~c,c~d,d~1;

B\d-c-b—3—1;

C\a~1,b=a,c~b,d~cj

D\d—1,c—d,b—'C,a=b;

答案:A

解析:由于C语言逗号表达式的的执行顺序是从左向右,赋值运算符是自右向左,

A选项先执行a=b时,b为空值,故不正确;所以在连续赋值时一定要保证赋值

运算符的右项有确定的值。答案选择A选项。

43.以下程序段中,与其他三个功能不同的程序段是()。

A、s=0;i=1;for(;;){s+=i;i++;if(i<=10)break;}

Bvs=0,i=1;for(;i<=10;){s+=i;i++;}

C、s=0;for(i=1;i<=10;i++){s+=i;}

D、for(s=0,i=1;i<=10;s+=i,i++);

答案:A

解析:BCD项都表示对1到10进行累加后赋给s,而A项中含break语句,循环

体只执行一次,结束整个循环过程。答案选择A选项。

44.以下选项中,能用作数据常量的是()。

A、o115

B、0118

C、1-5e1.5

D、115L

答案:D

解析:C语言中实型常量有两种表示:小数形式和指数形式。在指数形式中,字

母e(或E)之前必须要有数字,且e或E后面的指数必须为整数,故C项错误;

八进制整数常量以数字0开始,而不是。,故A项错误。在八进制数中的有效数

字为0〜7,故B项错误;L是长整型数据标识,115L为长整型常数即longint,

D项正确。答案选择D选项。

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

A、如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用

while语句

B、对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,

以便决定是否开始循环

C、对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转

换成while语句

D、只要适当地修改代码,就可以将do-while与while相互转换

答案:D

解析:D项正确,C语言中do-whiIe语句和whiIe语句作用是等价的,二者可以

经过适当的修改互换。A项错误,do-whiIe和for循环也能写成死循环;B项错

误,千。「循环首先执行表达式1;C项错误,for循环体经过适当的修改都可以转

换成whiIe语句。答案选择D选项。

46.下列队列的描述中,正确的是()。

A、队列属于非线性表

B、队列在队尾删除数据

C、队列按“先进后出”进行数据操作

D、队列按“先进先出”进行数据操作

答案:D

解析:队列是操作受限的线性表:队列只能在队头删除元素,在队尾插入元素,

按照“先进先出”的原则组织数据。答案选择D选项。

47.有以下程序:#incIudemain(){…whiIe(getchar0!='\n');■,,}以下叙述中正

确的是()。

A、此whiIe语句将无限循环

B、getchar()不可以出现在whiIe语句的条件表达式中

C、当执行此while语句时,只有按回车键程序才能继续执行

D、当执行此while语句时,按任意键程序就能继续执行

答案:C

解析:本题中whiIe循环条件为getchar()!='\n',表示只要不输入回车键,ge

tchar()!=,\n,语句一直为真,则whiIe循环会出现空循环,当按下回车键才跳

出whiIe循环执行下一条语句。答案选择C选项。

48.在数据库管理系统提供的数据语言中,负责数据的查询、增加'删除和修改

等操作的是()。

A、数据定义语言

B、数据管理语言

C、数据操纵语言

D、数据控制语言

答案:C

解析:数据库管理系统提供的数据语言包括:①数据定义语言(DDL),该语言

负责数据的模式定义与数据的物理存取构建;②数据操纵语言(DML),该语言

负责数据的操纵,包括查询及增、册h改等操作;③数据控制语言(DCL),该

语言负责数据完整性,安全性的定义与检查以及并发控制、故障恢复等功能。答

案选择C选项。

49.二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为()。

A、DCBA

B、BDCA

C、ABCD

D、BADC

答案:C

解析:本题中中序序列为BDCA,后序序列为DCBA,可知A为根节点,BDC为左

侧节点,C是B右子节点,D是C左子节点,故前序序列为ABCD,答案选择C选

项。

50.设有以下语句:charchi,ch2;scanf("%c%c",&ch1,&ch2);若要为变量ch1

和ch2分别输入字符A和B,正确的输入形式应该是()。

A、A和B之间用逗号间隔

B、A和B之间不能有任何间隔符

C、A和B之间可以用回车间隔

D、A和B之间用空格间隔

答案:B

解析:在scanf输入整数或实数这类数值型数据时,输入的数据之间必须用空格、

回车符、制表符(Tab键)等间隔符隔开,间隔符个数不限。但在输入字符型时,

要求输入数据时按照一一对应的位置原样输入这些字符,即不能加逗号、回车和

空格,因为这些也算是字符。%c比较特殊,它是输入单个字符,此处输入格式

为,所以输入字符A和B时,不能间隔。答案选择B选项。

51.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。

A、1

B、0

C、2

D、不知道a的值,不能确定

答案:A

解析:运算符“II”为逻辑或运算符,即只要两边的条件表达式中有一个为“真”,

则“逻辑或”的运算结果就为“真"。当a==1时,运算符左边的表达式为“真”;

当a!=1时,运算符右边的表达式为“真”。因此,逻辑表达式(a==1)||(a!=1)

的值恒为1。答案选择A选项。

52.有以下定义inta;longb;doublex,y;则以下选项中正确的表达式是()。

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

B、a==x!=y

C\(a*y)%b

D、y=x+y=a

答案:A

解析:%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A项正

确,x-y结果为doubIe型,但是通过强制类型转换将其转换为int型;B项错误,

a==x!=y中==和!=是同一个优先级的,先运行a==x,而因为double是占8位的,

不能自动转换,必须要强制类型转换,a==(double)x!=y才是正确的;C项错误,

心*丫)加中的5*丫)为北此2型;D项错误,x+y不能作为左值。答案选择A选

项。

53.有以下程序:#incIudemain0{inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)

printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是()。

A、1*1=11*2=21*3=32*2=42*3=63*3=9

B、1*1=11*2=21*3=32*1=22*2=43*1=3

C、1*1=11*2=22*2=41*3=32*3=63*3=9

D、1*1=12*1=22*2=43*1=33*2=63*3=9

答案:A

解析:当i=1时,j可以取1、2、3,i*j分别为1、2、3;当i=2时,j可以取

2、3,i*j分别为4、6;当i=3时,j可以取3,i*j为9。答案选择A选项。

54.若变量已正确定义for(x=0,y=0;(y!=99&&x<4);x++)则以上for循环O。

A、执行无限次

B、执行3次

C、执行4次

D、执行次数不定

答案:C

解析:y!=99始终是true,没有起到作用;x经过4次循环后变成4,不满足x<

4的条件,跳出循环。答案选择C选项。

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

A、用户定义的函数中可以没有return语句

B、用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数

C、用户定义的函数中若没有return语句,则应当定义函数为v。id类型

D、函数的return语句中可以没有表达式

答案:B

解析:用户定义的函数有两种:①void函数,可以没有return语句,如果有r

eturn语句,也不可以返回任何表达式;②指定返回类型函数,至少有一个返回

语句。在一个函数内,可以根据需要在多处出现return语句,但无论有多少个

return语句,return语句只会被执行一次然后退出函数,并且只能返回一个函

数值。AC两项,在没有返回值的函数中可以没有return语句,函数类型定义为

void即可;D项,在没有返回值的函数中如果有return语句,该语句必须不带

任何表达式;B项,用户定义的函数可以有多个return语句,但是只能返回一

个函数值。答案选择B选项。

56,有以下程序:#incIudemain(){inta;scanf("%d",&a);if(a++<9)printf("%d

\n".a);elseprintf("%d\n",a—);}程序运行时键盘输入9〈回车》,则输出的结

果是()。

A、10

B、11

C\9

D、8

答案:A

解析:“++”和“一”运算,当以前缀形式出现时,则先进行加一或减一操作,

再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中

if(a++<9)是先用后加,即a的值为9,所以条件不成立,但是a已经进行了自

增1操作,a的值此时为10。执行else语句时,因为打印a一,是先用后减,

所以先输出10,然后a的值变为9。答案选择A选项。

57.以下程序段中的变量已定义为int类型,则sum=pAd=5;pAd=sum++,++pAd,pA

d++;printf("%d\n",pAd);程序段的输出结果是()□

A、6

B、4

C、5

D、7

答案:D

解析:自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是

先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,

运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)

1o执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6o++pAd和pA

d++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd=7。

答案选择D选项。

58.设已有定义:floatx;则以下对指针变量p进行定义且赋初值的语句中正确的

是()。

A、fIoat*p=&x;

B\int*p二(fIoat)x;

C、fIoatp=&x;

D、fIoat*p=1024;

答案:A

解析:考查指针变量的初始化。A项正确,p是千loat类型的指针,指向x的存

储单元;B项错误,p是int类型的指针,只能指向int变量的存储单元;C项

错误,P的千loat类型的变量,&x是取变量x的地址,不能把地址赋值给千Ioat

类型变量;D项错误,p是指向float类型的指针,不能使用常整型赋值。答案

选择A选项。

59.有两个关系R和T如下:则由关系R得到关系T的操作是()。

A、选择

B、交

C、投影

D、并

答案:C

解析:关系T是由关系R的第1、3列的元组组成,这是对关系R进行投影运算

的结果。可以简单理解为:选择运算是对行(元组)的操作,投影运算是对列的

操作。投影运算是对列的操作。投影是从表中选出指定的属性值组成新表,是单

目运算,答案选择C选项。

60.冒泡排序在最坏情况下的比较次数是()。

A、n(n+1)/2

B\nIog2n

C、n(n-1)/2

D\n/2

答案:C

解析:对n个节点的线性表采用冒泡排序,冒泡排序的外循环最多执行n-1遍。

第一遍最多执行n-1次比较,第二遍最多执行n-2次比较,以此类推,第n-1

遍最多执行1次比较。因此,整个排序过程最多执行n(n7)/2次比较。答案选

择C选项。

61.以下选项中,合法的C语言实数是()。

A、3.1e0,4

B、2e0

C、E13

D、7.12E

答案:B

解析:实型常量指数形式由十进制数加阶码标志%”或“E”以及阶码(只能为

整数,可以带符号)组成。.2e0为指数形式实数,B项正确。3.1e0.4,阶数不

是整数,A项错误。E13阶码标志前缺少十进制数,C项错误。7.12E缺少阶码,

D项错误。答案选择B选项。

62.在数据库中,数据模型包括数据结构、数据操作和()。

A、数据约束

B、数据类型

C、关系运算

D、查询

答案:A

解析:在数据库系统中的数据模型有三个要素:数据结构、数据操作和数据的约

束条件。答案选择A选项。

63.某二叉树的前序遍历为ABCDEFG,中序遍历为DCBAEFG,则该二叉树的深度(根

结点在第1层)为()。

A、2

B、3

C、4

D、5

答案:C

解析:一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所

在的层次加1,树的最大层次称为树的深度。本题中二叉树的前序遍历序列为A

BCDEFG,所以A为根结点;中序遍历序列为DCBAEFG,所以DCB为左子树结点,

EFG为右子树结点。同理,在左子树DCB中,依据前序遍历序列可知B为根结点,

由中序遍历序列可知B结点只有左子树,没有右子树,由前序遍历序列和中序遍

历序列可知C是B的左子树,D是C的右子树。同理E为F根结点,F为G根结

点,二叉树深度为4层。答案选择C选项。

64.如有表达式(w)?(-x):(++y),则其中与w等价的表达式是()o

A\w——1

B、w==0

C、w!=1

D、w!=0

答案:D

解析:条件表达式形式为〈表达式1〉?〈表达式2〉:〈表达式3>。表达式1的值为

真,结果为表达式2的值;表达式1的值为假,结果为表达式3的值。可见表达

式w等价于w!=0。答案选择D选项。

65.设a、b、c是整型变量且均已赋值,则以下选项中错误的赋值语句是()。

A、a=(b=3)=1;

B\a=(b=2)+c;

C\a=b=c+10;

D、a=1+(b=c=2);

答案:A

解析:赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或

常量或表达式,且左右两边数据类型相同才能实现赋值。A项中,赋值运算(b=3)

=1,左值为表达式,不是变量不能被赋值,A项错误。B项运算过程为,先赋值

b=2,再计算b+c,将结果赋给a,是正确的赋值语句。C项运算过程为,先计算

c+10将结果赋给b,再将b赋给a,是正确的赋值语句。D项运算过程为,先将

2赋给c,再将c赋给b,然后计算1+b,将结果赋给a,是正确的赋值语句。答

案选择A选项。

66.设有:chars[5],c;,则调用函数scanf能正确给s和c读入数据的是()。

A、scanf("%s%c",s,c);

B\scanf("%d%c",&s,&c);

Gscanf("%d%c",s,&c);

D、scanf("%s%c",s,&c);

答案:D

解析:s[5]是一个字符数组,也可以理解为字符串,格式控制为%s,c为字符,

格式控制为%c。scanf输入时参数是地址,数组名就是地址,所以给s读入数据

参数就是s首地址,而字符c的参数需要取c的地址,即&c。答案选择D选项。

67.下列各选项中,不属于序言性注释的是()。

A、程序标题

B、程序设计者

C、主要算法

D、数据状态

答案:D

解析:注释一般可分为:①序言性注释,常位于程序开头部分,用于描述程序标

题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、

复审者、复审日期及修改日期等;②功能性注释,一般嵌在源程序体之中,用于

描述其后的语句或程序的主要功能。答案选择D选项。

68.设变量已正确定义并赋值,以下正确的表达式是()。

A、x=y*5=x+z

B、int(15.8%5)

C、x=y+z+5,++y

D、x=25%5,0

答案:c

解析:赋值运算左边必须是单一变量名。A项错误,"y*5=x+z”部分是非法赋

值。BD两项错误,求余运算中的操作对象只能是整型。C项,为逗号表达式。答

案选择C选项。

69.己知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序

列是()。

A、ABCDE

B、ECABD

C、EACDB

D、CDEAB

答案:C

解析:后序遍历最后遍历到根结点,所以E为根结点。中序遍历根结点在左右子

树之间,所以B为二叉树的右子树,CAD为左子树。同理,在CAD分支中,A为

CD的父结点,C为A的左孩子,D为A的右孩子。根据所得树的形状,可得前序

遍历为EACDB。答案选择C选项。

70.在软件开发中,需求分析阶段产生的主要文档是()。

A、可行性分析报告

B、软件需求规格说明书

C、概要设计说明书

D、集成测试计划

答案:B

解析:B项,软件需求规格说明书是后续工作如设计、编码等需要的重要参考文

档,是需求分析阶段产生的主要文档。其作用是:①便于开发人员进行理解和交

流;②反映用户问题的结构,可作为软件开发工作的基础和依据;③可作为确认

测试和验收的依据。A项,可行性分析报告产生于可行性分析阶段;C项,概要

设计说明书产生于总体设计阶段;D项,集成测试计划产生于概要设计阶段。答

案选择B选项。

71.C语言程序中,运算对象必须是整型数的运算符是()。

A、&&

B、/

C、%

D、*

答案:C

解析:模运算中不能出现浮点数,运算对象只能是整数。答案选择C选项。

72.有以下程序#incIudemain(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)

{printfi+j);}printf("\n");}}程序的运行结果是()。

A、234〈换行>345〈换行〉

B、432〈换行>543〈换行>45〈换行》

C、23〈换行>34〈换行>23〈换行〉

D、45〈换行>34〈换行>23〈换行〉

答案:D

解析:外层主循环i从3减到1执行了3次,嵌套的循环j从1增至U2,每轮执

行2次。每次输出i+j的值,就可以得到3+1,3+2,2+1,2+2,1+1,1+2。但

注意每次内循环结束要换行。答案选择D选项。

73.设有定义:doublex=2.12;,以下不能完整输出变量x值的语句是()。

A、printf("x=%5,Of\n",x);

B、printf("x=%f\n",x);

C、printf("x=%If\n",x);

D、printf("x=%0.5f\n",x);

答案:A

解析:printf函数控制字符%千输出float类型,%If输出doubIe类型。格式控

制%m.nf,表示数据输出总的宽度为m位,其中小数部分占n位。当数据的小数

位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍五入

处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小于有效

位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n指定位数输

出。A项按照float格式输出数据,宽度为5位,保留小数0位,输出为2,不

能完整输出xoB项按照float格式输出数据,输出为2.120000oC项按照doub

Ie格式输出数据,输出为2.120000。D项按照float格式输出数据,保留小数

位数为5,输出为2.12000。答案选择A选项。

74.下列关于栈的叙述中正确的是()。

A、栈顶元素最先能被删除

B、栈顶元素最后才能被删除

C、栈底元素永远不能被删除

D、以上三种说法都不对

答案:A

解析:栈是一种“先进后出”的线性表,最先入栈的元素最后出栈,最后入栈的

元素最先出栈,所以栈底元素一定是最先入栈最后出栈的元素,而栈顶元素一定

是最后入栈最先出栈的元素。答案选择A选项。

75.有以下定义inta;longb;doublex,y;则以下选项中正确的表达式是()。

A、(a*y)%b

B、a==x<>y

Ga%(int)(x-y)

D、y=x+y=x

答案:C

解析:%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A项错

误,(a*y)%b中的(a*y)为double型;B项错误,C语言中没有◊运算符;C项正

确,x-y结果为doubIe型,但是通过强制类型转换将其转换为int型;D项错误,

x+y不能作为左值。答案选择C选项。

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

A、所谓有序表是指在顺序存储空间内连续存放的元素序列

B、有序表只能顺序存储在连续的存储空间内

C、有序表可以用链接存储方式存储在不连续的存储空间内

D、任何存储方式的有序表均能采用二分法进行查找

答案:C

解析:“有序”是指线性表中的元素按照升序或降序(允许相邻元素相同)的方

式排列。有序是一个逻辑概念,与物理存储无关。二分法查找时涉及下标运算,

要求有序表必须顺序存储。答案选择C选项。

77.设序列长度为n,在最坏情况下,时间复杂度为0(1og2n)的算法是()。

A、二分法查找

B、顺序查找

C、分块查找

D、哈希查找

答案:A

解析:对长度为n的线性表排序,最坏情况下时间复杂度,二分法查找为0(1。

g2n);顺序查找法为0(n);分块查找时间复杂度与分块规则有关;哈希查找

时间复杂度为0(1),因其通过计算哈希函数来定位元素位置,所以只需一次

即可。答案选择A选项。

78.下面关于数据库三级模式结构的叙述中,正确的是()。

A、内模式可以有多个,外模式和模式只有一个

B、外模式可以有多个,内模式和模式只有一个

C、内模式只有一个,模式和外模式可以有多个

D、模式只有一个,外模式和内模式可以有多个

答案:B

解析:数据库管理系统标准结构为三级模式,包括:①外模式,也称子模式、用

户模式,是指数据库用户所看到的数据结构,用户看到的用户视图;②模式,也

称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见

到的数据视图的总和;③内模式,也称存储模式'物理模式,是指数据在数据库

系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。一个数据

库可以有多个外模式,但只有一个模式和一个内模式。答案选择B选项。

79.程序流程图中带有箭头的线段表示的是()。

A、图兀关系

B、数据流

C、控制流

D、调用关系

答案:C

解析:在程序流程图中:①标有名字的带箭头线段表示控制流;②矩形表示加工

步骤;③菱形表示逻辑条件。答案选择C选项。

80.以下选项中不能作为C语言合法常量的是()。

A、'cd'

B、0.1e+6

Cx"a"

D、'\011'

答案:A

解析:常量包括整型常量、实型常量、字符常量和字符串常量等。单引号表示字

符常量,但不能包含字符串。表达字符串常量时需用双引号。A项不合法,在C

语言中,字符常量是用单引号括起来的一个字符,‘cd,包含了2个字符;B项合

法,0.1e+6是实型常量的指数形式,代表0.1X106;C项合法,"\a"是合法的

字符串常量,\a是一个非打印的转义字符表示响铃;D项合法,,\01「是一个字

符常量,\011是一个用3位八进制表示的转移字符。答案选择A选项。

81.有以下程序段#incIudemain(){intj;fIoaty;charname[50];scanf("%2d%f%s

",&j,&y,name);}当执行上述程序段,从键盘上输入555667777123后,y的值为

。。

A、566.0

B、55566.0

C、7777.0

D、566777.0

答案:A

解析:本题考查的是格式输入函数,即按用户指定的格式从键盘上把数据输入到

指定的变量之中,其中的格式命令可以说明最大域宽。在百分号%与格式码之间

的整数用于限制从对应域读入的最大字符数。因此j的值为55,y的值为566.0,

字符数组name的值为7777123o答案选择A选项。

82.若有定义和语句inta,b;scanf("%d,%d",&a,&b);以下选项中的输入数据,不

能把值3赋给变量a5赋给变量b的是()(说明:符号u表示空格)。

A、3,5,

B、3,5,4

C、3,u5

D、3,5

答案:C

解析:输入数据时,必须与格式控制中的格式一样,需要在数据后面紧跟一个逗

号,否则不能正确读入数据,C项,3后面有一个多余的空格,不符合给定的格

式。答案选择C选项。

83.下列有关数据库的描述,正确的是()。

A、数据库设计是指设计数据库管理系统

B、数据库技术的根本目标是要解决数据共享的问题

C、数据库是一个独立的系统,不需要操作系统的支持

D、数据库系统中,数据的物理结构必须与逻辑结构一致

答案:B

解析:数据库设计是指设计“按照数据结构来组织、存储和管理数据的仓库”,

数据库管理系统设计是指设计一种操纵和管理数据库的软件,故A项错误;数据

库系统的根本目标是对数据进行集中、统一的管理,以达到数据被多个应用程序

共享,故B项正确;数据库在访问数据时,需要数据库管理系统向操作系统发出

从指定地址读取记录的命令,操作系统执行读命令,按照指定地址从数据库中把

记录读入系统缓冲区,需要操作系统的支持,C项错误;物理结构是指计算机对

数据的理解,逻辑结构是人对数据的理解,二者可以不一致,D项错误。答案选

择B选项。

84.对下二叉树进行中序遍历的结果是()。

A、ABCDEFGH

B、ABDGEHCF

GGDBEHACF

D、GDHEBFCA

答案:c

解析:二叉树的中序遍历过程:先中序遍历左子树,再访问根结点,最后中序遍

历右子树。答案选择C选项。

85.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。

A、逻辑设计

B、需求分析

C、详细设计

D、物理设计

答案:B

解析:软件开发阶段包括:①需求分析;②总体设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论