计算机2级C试题附答案Word格式.docx
《计算机2级C试题附答案Word格式.docx》由会员分享,可在线阅读,更多相关《计算机2级C试题附答案Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
elsey=5.0;
cout<
y;
A)0.5
B)1.0
C)0.0
D)0.25
(3)
【单选题】C++源程序文件的默认扩展名为_________。
A)c++
B)cpp
C)cc
D)c
B
(4)
{char*p[]={"
mop"
"
book"
w"
sp"
};
inti;
for(i=3;
i>
=0;
i--,i--)cout<
*p[i];
cout<
A)sb
B)spbook
C)sp
D)swb
(5)
【单选题】下面定义的共用体类型的长度是_________字节。
unionMyData
{longx;
charch;
boolflag;
floaty;
A)8
B)4
C)2
D)6
(6)
【单选题】以下程序段中的循环体被执行的次数是_________。
for(i=4;
i;
i-=2)
for(j=1;
j<
4;
j++)
{……};
A)无限多次
B)8
C)6
D)2
C
(7)
{intx[]={2,4,6,8},i;
int*p=x;
for(i=0;
i<
i++)x[i]=*p++;
x[2]<
A)6
C)8
(8)
【单选题】C++的字符串"
\t\1026\\'
"
中包含_________个可见的字符。
A)10
B)5
C)4
(9)
【单选题】以下程序段运行时,若从键盘上输入Openthedoor并回车,则输出结果是_________。
charfun(char*c)
{if(*c<
='
z'
&
*c>
a'
)*c-='
-'
A'
;
return*c;
{chars[81],*p=s;
gets(s);
while(*p)
{*p=fun(p);
putchar(*p);
p++;
putchar('
\n'
);
A)openthedoor
B)OPENTHEDOOR
C)Openthedoor
D)oPENTHEDOOR
(10)
【单选题】若有以下程序段,则变量v的值是_________。
intm=1,n=2,v;
v=m/n;
A)0
B)1/2
C)0.5
(11)
【单选题】若m和n都是整型变量,且m=3,n=5,则以下语句输出的结果是_________。
(m+=n,n)<
A)5
B)语句格式有错,无输出结果
D)8,5
(12)
#definesub(x,y)(x)*x+y
{inta=3,b=4;
sub(a++,b++)<
B)13
C)21
D)20
(13)
{intnum=1;
while(num<
=2)
{num++;
num;
A)123
B)23
C)12
(14)
{intx=0,y=1,a=0,b=0;
switch(x)
{case0:
switch(y)
a++;
break;
case1:
b++;
a++;
a<
b<
A)2,1
B)a,1
C)1,2
D)1,0
(15)
【单选题】若有下面的程序片段:
inta[12]={0},*p[3],i;
for(i=0;
3;
i++)p[i]=&
a[i*4];
则对数组元素的错误引用是_________。
A)*p[0]
B)p[0]
C)*(*p+0)
D)a[0]
(16)
string.h>
{char*x1="
abcdef"
*x2="
ab"
x1++;
x2++;
strcmp(x1,x2)<
A)-1
B)不确定的值
C)1
D)0
(17)
【单选题】下面程序运行时,若从键盘上输入3.62.4并回车,则输出结果是_________。
math.h>
{floatx,y,z;
cin>
x>
z=x/y;
while
(1)
{if(fabs(z)>
1.0){x=y;
y=z;
z=x/y;
elsebreak;
A)2.0
B)1.5
C)1.6
D)2.4
(18)
f(inta[],intn)
{inti,x;
x=1;
=n;
i++)x=x*a[i];
returnx;
{inty,x[]={1,2,3,4,5};
y=f(x,3);
y<
A)120
B)6
C)24
D)12
(19)
【单选题】以下关于函数的说法中,正确的是_________。
A)如果形参与实参类型不一致,以实参类型为准
B)如果函数值的类型与返回值类型不一致,以函数值类型为准
C)形参的类型说明可以放在函数体内,以实参类型为准
D)return后边的值不能为表达式
(20)
【单选题】有关类和对象的说法不正确的是_________。
A)任何一个对象只能属于一个具体的类
B)对象是类的一个实例
C)一个类只能有一个对象
D)类与对象的关系与数据类型和变量的关系相似
二、操作题(80分)
1、【简单操作题】
(注:
以下文件均保存在试题盘shiti\pro\4000247文件夹中)打开proj1.cpp,将一维数组按升序排列,请在提示处填上正确的代码,要求:
补充语句处只写一条语句。
(题分:
15分)
//程序功能:
将一维数组按升序排列后输出
//注意:
请在提示处填上正确的代码,要求:
补充语句处只写一条语句
voidsort(int*p,intn)
{inti,j,temp;
for(i=0;
n-1;
i++)//外层循环:
实现比较的趟数
//请在两条星线之间填入相应的代码,内层循环:
实现每趟两两比较的次数
/**************************************************/
n-i;
j++)
/***************************************************/
if(p[j-1]>
p[j])
{
temp=p[j-1];
//请在两条星线之间填入相应的代码,实现两个数的交换
/**************************************************/
p[j-1]=p[j];
/***************************************************/
p[j]=temp;
}
voidmain(void)
{
inta1[6]={34,13,22,53,4,46},*pi,i;
//请在两条星线之间填入相应的代码,实现指针指向数组
pi=a1;
sort(pi,6);
6;
i++)cout<
a1[i]<
'
\t'
2、【简单应用题】
以下文件均保存在试题盘shiti\pro\4000248文件夹中)打开proj2.cpp,编写Count函数,计算个人所得税,月收入的5000元以上部分需缴纳20%的税,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。
在两条星线之间填入相应的代码,使程序完成该功能。
20分)
//编写代码完成Count函数功能:
计算个人所得税,并使用return语句把结果返回主函数。
//例如,小张月收入为6000元,则她需缴税(6000-5000)×
20%+(5000-800)×
3%=326元。
除在指定位置添加语句之外,请不要改动程序中的其他内容。
补充语句不限一句,可多句。
doubleCount(floattemf)
{
//请在两条星线之间填入相应的代码,完成应缴税款的计算
/***********************************************/
inttax;
if(temf>
5000)tax=(temf-5000)*0.2+(5000-800)*0.03;
elseif(temf>
800)tax=(temf-800)*0.03;
elsetax=0;
returntax;
/************************************************/
floattax,income;
请输入你的收入:
income;
tax=Count(income);
应缴税:
tax<
3、【简单操作题】
以下文件均保存在试题盘shiti\pro\4000249文件夹中)打开proj3.cpp,输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。
(提示:
读一行字符用cin.getline()。
)(题分:
输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)
//提示:
读一行字符用cin.getline()
ctype.h>
charstr[100],*p=str;
intk=0;
//k为新单词标识,若为新单词k为0,否则k为1
//请在两条星线之间填入相应的代码(必须使用while循环语句)
/******************************************/
cin.getline(p,100,'
while(*p!
)
{
if(*p=='
'
)k=0;
elseif(k==0)
{
if(*p>
*p<
)*p=*p-32;
k=1;
}
p++;
结果:
str<
4、【简单操作题】
以下文件均保存在试题盘shiti\pro\4000250文件夹中)已知一个源程序文件proj4.cpp,其中定义了学生类Student,但类Student的定义并不完整,请按要求完成下列操作,将类Student的定义补充完整:
(1)定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据。
(2)完成学生类Student的构造函数的定义,把数据成员chinese、math和english分别初始化为参数c,m,e的值。
(3)完成成员函数sum的类定义,求Student对象的总分并输出到屏幕上。
(4)完成成员函数average的类定义,求Student对象的平均分并输出到屏幕上。
程序运行结果如下图所示。
25分)
除在指定位置添加语句之外,请不要改动程序中的其他内容,补充语句不限一句,可多句
classStudent
public:
Student(intc,intm,inte)
//请在两条星线之间填入相应的代码
//补充完成学生类Student的构造函数的定义,把数据成员chinese、math和english分别初始化为参数c,m,e的值
/***********************************************************************/
chinese=(float)c;
math=(float)m;
english=(float)e;
voidsum()
//请在两条星线之间填入相应的代码
//补充完成成员函数sum的定义,求Student对象的总分并输出到屏幕上
/***********************************************************************/
floatsum;
sum=chinese+math+english;
cout<
总分:
sum<
voidaverage();
private:
//定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据
floatchinese,math,english;
//请在两条星线之间填入相应的代码
//完成成员函数average的类外定义,求Student对象的平均分并输出到屏幕上
/***********************************************************************/
voidStudent:
:
average()
floatavg;
avg=(chinese+math+english)/3;
平均分:
avg<
}
intmain()
Studentstud(65.3,78,90);
stud.sum();
stud.average();
return0;