计算机二级c++上机考试题库.docx
《计算机二级c++上机考试题库.docx》由会员分享,可在线阅读,更多相关《计算机二级c++上机考试题库.docx(57页珍藏版)》请在冰豆网上搜索。
计算机二级c++上机考试题库
试卷总分:
200分
共有题型:
5种
一、填空共20题(共计20分)
第1题(分)
假设变量a,b均为整型,表达式
(a=5,b=2,a>b?
a++:
b++,a+b)
的值是【1】.
答案:
=======(答案1)=======
8
第2题(分)
若有以下数组a,数组元素:
a[0]~a[9],其值为
941282107513
该数组的元素中,数值最大的元素的下标值是【1】.
答案:
=======(答案1)=======
2
第3题(分)
下面程序段的输出结果是【1】.
inta=12;a=a&0377;pritnf("%o\n",a);
答案:
=======(答案1)=======
14
第4题(分)
若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次.
While((ch=getchar())=='e')printf("*");
答案:
=======(答案1)=======
0
第5题(分)
将数组a的首地址赋给指针变量p的语句是【1】.
答案:
=======(答案1)=======
p=a;
第6题(分)
C语言把文件看作是一个【1】的序列.
答案:
=======(答案1)=======
字符
=========或=========
字节
第7题(分)
静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是
在【2】时进行的.
答案:
=======(答案1)=======
编译
=======(答案2)=======
函数调用
第8题(分)
若有定义:
inta[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是【1】.
答案:
=======(答案1)=======
8
第9题(分)
C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算.
答案:
======(答案1)=======
地址
第10题(分)
intx=2;z=x++-1;则x的值为【1】.
答案:
=======(答案1)=======
3
第11题(分)
若所用变量都已正确定义,请填写以下程序段的输出结果【1】.
for(i=1;i<=5;i++);
printf("OK\n");
答案:
=======(答案1)=======
OK
第12题(分)
feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为【1】,
否则为【2】.
答案:
=======(答案1)=======
非0值
======(答案2)=======
0
第13题(分)
如果函数不要求带回值,可用【1】来定义函数返回值为空.
答案:
=======(答案1)=======
void
第14题(分)
调用fopen函数打开一文本文件,在"使用方式"这一项中,
为输出而打开需填入【1】.
答案:
=======(答案1)=======
w
=========或=========
w+
第15题(分)
顺序结构存储方法是把逻辑上相邻的结点存储在物理位置【1】
的存储单元中。
答案:
=======(答案1)=======
相邻
第16题(分)
一个类可以从直接或间接的祖先中继承所有属性和方法。
采用
这个方法提高了软件的【1】。
答案:
=======(答案1)=======
可重用性
第17题(分)
C++中封装性、继承性和【1】是面向对象程序设计的三个主要性质。
答案:
=======(答案1)=======
多态性
第18题(分)
C++语言的参数传递机制包括传值和传地址两种,如果调用函数
时,需要改变实参或者返回多个值,应该采取【1】方式。
答案:
=======(答案1)=======
传地址
第19题(分)
设i,j,k均为int型变量,则执行完for(i=0,j=10;j<=j;i++,j--)k=i+j;
语句后,K的值为【1】。
答案:
=======(答案1)=======
10
第20题(分)
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。
答案:
=======(答案1)=======
45
二、判断共20题(共计20分)
第1题(分)
用fopen("file","r+");打开的文件"file"可以进行修改。
答案:
Y
第2题(分)
inti=20;switch(i/10){case2:
printf("A");
case1:
printf("B");}的输出结果为A。
答案:
N
第3题(分)
若有定义和语句:
inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:
10,A,,则a=10,c='A',f=.
答案:
Y
第4题(分)
char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
答案:
N
第5题(分)
x*=y+8等价于x=x*(y+8)。
答案:
Y
第6题(分)
如果有一个字符串,其中第十个字符为'\n',则此字符串的
有效字符为9个。
答案:
N
第7题(分)
通过return语句,函数可以带回一个或一个以上的返回值。
答案:
N
第8题(分)
如果想使一个数组中全部元素的值为0,可以写成
inta[10]={0*10};
答案:
N
第9题(分)
一个include命令可以指定多个被包含的文件。
答案:
N
第10题(分)
C程序中有调用关系的所有函数必须放在同一个源程序文件中。
答案:
N
第11题(分)
进行宏定义时,宏名必须使用大写字母表示。
答案:
N
第12题(分)
共同体变量所占的内存长度等于最长的成员的长度。
答案:
Y
第13题(分)
在C语言中,此定义和语句是合法的:
enumaa{a=5,b,c}bb;bb=(enumaa)5;
答案:
Y
第14题(分)
7&3+12的值是15。
答案:
N
第15题(分)
类有两个特殊的成员函数构造函数和虚函数
答案:
N
第16题(分)
抽象类不仅可用做派生其他类的基类,也可以用于直接创建对象
实例。
答案:
N
第17题(分)
静态函数可声明为虚函数。
答案:
N
第18题(分)
如果一个函数在其函数体内直接或间接的调用了自己,该函数
称为递归函数。
答案:
Y
第19题(分)
类中提供了三种访问控制权:
公有、私有、保护三种类型。
答案:
Y
第20题(分)
所谓继承就是利用已有的数据类型定义出新的数据类型。
答案:
Y
三、单选共60题(共计60分)
第1题(分)
fscanf函数的正确调用形式是()。
A:
fscanf(fp,格式字符串,输出表列);
B:
fscanf(格式字符串,输出表列,fp);
C:
fscanf(格式字符串,文件指针,输出表列);
D:
fscanf(文件指针,格式字符串,输入表列);
答案:
D
第2题(分)
C语言的if语句嵌套时,if与else的配对关系是()。
A:
每个else总是与它上面的最近的if配对
B:
每个else总是与最外层的if配对
C:
每个else与if的配对是任意的
D:
每个else总是与它上面的if配对
答案:
A
第3题(分)
C语言中,文件由()。
A:
记录组成
B:
由数据行组成
C:
由数据块组成
D:
由字符(字节)序列组成
答案:
D
第4题(分)
设C语言中,int类型数据占2个字节,则short类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
B
第5题(分)
以下不符合C语言语法的赋值语句是()。
A:
j++;
B:
j=j=5;
C:
k=2*4,k*4;
D:
y=float(j);
答案:
D
第6题(分)
C语言允许函数类型缺省定义,此时函数值隐含的类型是()。
A:
float
B:
int
C:
long
D:
double
答案:
B
第7题(分)
int(*p)[6];它的含义为()。
A:
具有6个元素的一维数组
B:
定义了一个指向具有6个元素的一维数组的指针变量
C:
指向整型指针变量
D:
指向6个整数中的一个的地址
答案:
B
第8题(分)
经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在
微机上的值分别为()。
charx=65;
floaty=;
inta=100;
doubleb=;
A:
2,2,2,4
B:
1,2,2,4
C:
1,4,2,8
D:
2,4,2,8
答案:
C
第9题(分)
char*match(charc)是()。
A:
函数定义的头部
B:
函数预说明
C:
函数调用
D:
指针变量说明
答案:
A
第10题(分)
若有说明:
inta[3][4]={0};则下面正确的叙述是()。
A:
只有元素a[0][0]可得到初值0
B:
此说明语句不正确
C:
数组a中各元素都可得到初值,但其值不一定为0
D:
数组a中每个元素均可得到初值0
答案:
D
第11题(分)
当说明一个结构体变量时系统分配给它的内存是()。
A:
各成员所需内存量的总和
B:
结构中第一个成员所需内存量
C:
成员中占内存量最大者所需的容量
D:
结构中最后一个成员所需内存量
答案:
A
第12题(分)
以下不是无限循环的语句为()。
A:
for(y=0,x=1;x>++y;x=i++)i=x;
B:
for(;;x++=i);
C:
while
(1){x++;}
D:
for(i=10;;i--)sum+=i;
答案:
A
第13题(分)
利用fseek函数可以实现的操作是()。
A:
改变文件的位置指针
B:
文件的顺序读写
C:
文件的随机读写
D:
以上答案均正确
答案:
D
第14题(分)
C语言中while和do-while循环的主要区别是()。
A:
do-while的循环体至少无条件执行一次
B:
while的循环控制条件比do-while的循环控制条件更严格
C:
do-while允许从外部转到循环体内
D:
do-while的循环体不能是复合语句
答案:
A
第15题(分)
sizeof(float)是()。
A:
一种函数调用
B:
一个不合法的表达式
C:
一个整型表达式
D:
一个浮点表达式
答案:
C
第16题(分)
以下程序的运行结果是()。
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A:
B:
369
C:
12
D:
90
答案:
A
第17题(分)
以下不正确的叙述是()。
A:
在C程序中所用的变量必须先定义后使用
B:
程序中,APH和aph是两个不同的变量
C:
若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D:
当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
答案:
D
第18题(分)
下列程序的输出结果为()。
main()
{intm=7,n=4;
floata=,b=,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A:
B:
C:
D:
答案:
A
第19题(分)
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A:
自动(auto)
B:
静态(static)
C:
外部(extern)
D:
寄存器(register)
答案:
A
第20题(分)
下列定义数组的语句中正确的是()。
A:
#definesize10charstr1[size],str2[size+2];
B:
charstr[];
C:
intnum['10'];
D:
intn=5;inta[n][n+2];
答案:
A
第21题(分)
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:
C
第22题(分)
位字段数据的单位是()位。
A:
十六进制
B:
八进制
C:
二进制
D:
十进制
答案:
C
第23题(分)
以下的选择中,正确的赋值语句是()。
A:
a=1,b=2
B:
j++
C:
a=b=5;
D:
y=int(x)
答案:
C
第24题(分)
若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存
空间存入整数123的语句为()。
A:
scanf("%d",p);
B:
scanf("%d",&p);
C:
scanf("%d",*p);
D:
scanf("%d",**p);
答案:
A
第25题(分)
已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用
八进制表示的字符常量'\101'是()。
A:
字符A
B:
字符a
C:
字符e
D:
非法的常量
答案:
A
第26题(分)
以下叙述中正确的是()。
A:
C程序中注释部分可以出现在程序中任意合适的地方
B:
花括号“{“和”}”只能作为函数体的定界符
C:
构成C程序的基本单位是函数,所有函数名都可以由用户命名
D:
分号是C语句之间的分隔符,不是语句的一部分
答案:
A
第27题(分)
假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,
则数组x在内存中所占字节数是()。
A:
3
B:
6
C:
10
D:
20
答案:
D
第28题(分)
在C语言中,形参的缺省存储类是()。
A:
auto
B:
register
C:
static
D:
extern
答案:
A
第29题(分)
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:
b,c
B:
a--运算不合法,故有语法错
C:
98,c
D:
格式描述和输出项不匹配,输出无定值
答案:
C
第30题(分)
不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的
形式存在磁盘上()。
A:
内存
B:
缓冲区
C:
文件
D:
寄存器
答案:
C
第31题(分)
表达式18/4*sqrt/8值的数据类型为()。
A:
int
B:
float
C:
double
D:
不确定
答案:
C
第32题(分)
以下能对二维数组a进行正确初始化的语句是()。
A:
inta[2][]={{1,0,1},{5,2,3}};
B:
inta[][3]={{1,2,3},{4,5,6}};
C:
inta[2][4]={{1,2,3},{4,5},{6}};
D:
inta[][3]={{1,0,1}{},{1,1}};
答案:
B
第33题(分)
函数rewind的作用是()。
A:
使位置指针重新返回文件的开头
B:
将位置指针指向文件中所要求的特定位置
C:
使位置指针指向文件的末尾
D:
使位置指针自动移至下一个字符位置
答案:
A
第34题(分)
在C语言中,要求运算数必须是整型或字符型的运算符是()。
A:
&&
B:
&
C:
!
D:
||
答案:
B
第35题(分)
inta=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为()。
A:
1
B:
2
C:
3
D:
不一定
答案:
B
第36题(分)
对for(表达式1;;表达式3)可理解为()。
A:
for(表达式1;0;表达式3)
B:
for(表达式1;1;表达式3)
C:
for(表达式1;表达式1;表达式3)
D:
for(表达式1;表达式3;表达式3)
答案:
B
第37题(分)
a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。
A:
a*b/a*b==1
B:
a/b*b/a==1
C:
a/b*b+a%b==a
D:
a/b*b==a
答案:
C
第38题(分)
chara1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是()。
A:
strcat(a2,a1);
B:
strcpy(a2,a1);
C:
strcat(a1,a2);
D:
strcpy(a1,a2);
答案:
A
第39题(分)
设char*s="\ta\017bc";则指针变量s指向的字符串所占的字节数
是()。
A:
9
B:
5
C:
6
D:
7
答案:
C
第40题(分)
以下描述中正确的是()。
A:
由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B:
do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C:
在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D:
do-while循环中,根据情况可以省略while
答案:
C
第41题(分)
对于void类型函数,调用时不可作为()。
A:
自定义函数体中的语句
B:
循环体里的语句
C:
if语句的成分语句
D:
表达式
答案:
D
第42题(分)
下列语句中,不正确的是()。
A:
staticchara[2]={1,2};
B:
staticinta[2]={'1','2'};
C:
staticchara[2]={'1','2','3'};
D:
staticchara[2]={'1'};
答案:
C
第43题(分)
设有定义intx;floaty;,则10+x+y值的数据类型是
A:
int
B:
double
C:
float
D:
不确定
答案:
C
第44题(分)
在类的定义中,用于为对象分配内存空间,对类的数据成员进行
初始化并执行其他内部管理操作的函数是
A:
友元函数
B:
虚函数
C:
构造函数
D:
析构函数
答案:
C
第45题(分)
下面对静态数据成员的描述中,正确的是
A:
静态数据成员可以在类体内进行初始化
B:
静态数据成员不可以被类的对象调用
C:
静态数据成员不能受private控制符的作用
D:
静态数据成员可以直接用类名调用
答案:
D
第46题(分)
下面对友元函数描述正确的是
A:
友元函数的实现必须在类的内部定义
B:
友元函数是类的成员函数
C:
友元函数破坏了类的封装性和隐藏性
D:
友元函数不能访问类的私有成员
答案:
C
第47题(分)
下面叙述不正确的是
A:
基类的保护成员在派生类中仍然是保护成员
B:
基类的保护成员在公有派生类中仍然是保护成员
C:
基类的保护成员在私有派生类中是私有成员
D:
对基类成员的访问必须是无二义性
答案:
A
第48题(分)
在C++语言程序中,对象之间的相互通信通过
A:
继承实现
B:
调用成员函数实现
C:
封装实现
D:
函数重载实现
答案:
B
第49题(分)
下列关于虚基类的描述中,错误的是
A:
设置虚基类的目的是为了消除二义性
B:
虚基类的构造函数在非虚基类之后调用
C:
若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用
D:
若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数
答案:
B
第50题(分)
下列运算符中,在C++语言中不能重载的是
A:
*
B:
>=
C:
:
:
D:
/
答案:
C
第51题(分)
继承机制的作用是
A:
信息隐藏
B:
数据封装
C:
定义新类
D:
数据抽象
答案:
C
第52题(分)
C++语言对C语言进行了很多改进,C++语言相对于C语言的最根
本的变化是
A:
增加了一些新的运算符
B:
允许函数重载,并允许设置缺省参数
C:
规定函数说明符必须用原型
D:
引进了类和对象的概念
答案:
D
第53题(分)
若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为().
A:
4
B:
16
C:
32
D:
52
答案:
C
第54题(分)
下列关于开关语句的描述中,错误的是().
A:
开关语句中,case子句的个数是不受限制的
B:
开关语句中,case子句的语句序列中一定要有break语句
C:
开关语句中,default子句可以省略
D:
开关语句中,右花括号具有退出开关语句的功能
答案:
B
第55题(分)
下列while循环语句的循环次数是().
while(inti=0)i--;
A:
0
B:
1
C:
2
D:
无限
答案:
A
第56题(分)
下列运算符中优先级最高的是().
A:
?
:
B:
%
C:
-=
D:
&&
答案:
B
第57题(分)
采用函数重载的目的在于().
A:
实现共享
B:
减少空间
C:
使用方便,提高可靠性
D:
提高速度
答案:
C
第58题(分)
使用磁盘文件,要包含_____头文件
A:
iostream
B:
fstream
C:
iomanip
D:
complex
答案:
B
第59题(分)
()是析构函数的特征.
A:
一个类中只能定义一个析构函数
B:
析构函数与类名不同
C:
析构函数的定义只能在类体内
D:
析构函数可以有一个或多个参数
答案:
A
第60题(分)
下列关于字符数组的描述中,错误的是().
A:
字符数组中的每一个元素都是字符
B:
字符数组可以使用初始值表进行初始化
C:
字符数组可以存放字符串
D:
字符数组就是字符串
答案:
D
四、程序填空共6题(共计40分)
第1题(分)/*-------------------------------------------------------
【程序填空】
------------------------------------------