计算机2级C++精彩试题附问题详解.docx

上传人:b****6 文档编号:8328655 上传时间:2023-01-30 格式:DOCX 页数:14 大小:24.19KB
下载 相关 举报
计算机2级C++精彩试题附问题详解.docx_第1页
第1页 / 共14页
计算机2级C++精彩试题附问题详解.docx_第2页
第2页 / 共14页
计算机2级C++精彩试题附问题详解.docx_第3页
第3页 / 共14页
计算机2级C++精彩试题附问题详解.docx_第4页
第4页 / 共14页
计算机2级C++精彩试题附问题详解.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

计算机2级C++精彩试题附问题详解.docx

《计算机2级C++精彩试题附问题详解.docx》由会员分享,可在线阅读,更多相关《计算机2级C++精彩试题附问题详解.docx(14页珍藏版)》请在冰豆网上搜索。

计算机2级C++精彩试题附问题详解.docx

计算机2级C++精彩试题附问题详解

试卷一

一、理论题(20分,每小题1分)

(1)【单选题】下面程序的输出结果是_________。

#include

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

voidmain()

{cout<

A)7

B)9

C)3

D)1

参考答案:

A

(2)【单选题】下面程序运行时,若从键盘上输入2.0并回车,则输出结果是_________。

#include

voidmain()

{floatx,y;

cin>>x;

if(x<0.0)y=0.0;

elseif((x<10.0)&&(x!

=2.0))

y=1.0/(x+2.0);

elseif(x<5.0)y=1.0/x;

elsey=5.0;

cout<

}

A)0.5

B)1.0

C)0.0

D)0.25

参考答案:

A

(3)【单选题】C++源程序文件的默认扩展名为_________。

A)c++

B)cpp

C)cc

D)c

参考答案:

B

(4)【单选题】下面程序的输出结果是_________。

#include

voidmain()

{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

参考答案:

A

(5)【单选题】下面定义的共用体类型的长度是_________字节。

unionMyData

{longx;

charch;

boolflag;

floaty;

};

A)8

B)4

C)2

D)6

参考答案:

B

(6)【单选题】以下程序段中的循环体被执行的次数是_________。

for(i=4;i;i-=2)

for(j=1;j<4;j++)

{……};

A)无限多次

B)8

C)6

D)2

参考答案:

C

(7)【单选题】下面程序的输出结果是_________。

#include

voidmain()

{intx[]={2,4,6,8},i;

int*p=x;

for(i=0;i<4;i++)x[i]=*p++;

cout<

}

A)6

B)4

C)8

D)2

参考答案:

A

(8)【单选题】C++的字符串"\t\1026\\'"中包含_________个可见的字符。

A)10

B)5

C)4

D)6

参考答案:

C

(9)【单选题】以下程序段运行时,若从键盘上输入Openthedoor并回车,则输出结果是_________。

charfun(char*c)

{if(*c<='z'&&*c>='a')*c-='a'-'A';

return*c;

}

voidmain()

{chars[81],*p=s;

gets(s);

while(*p)

{*p=fun(p);putchar(*p);p++;}

putchar('\n');

}

A)openthedoor

B)OPENTHEDOOR

C)Openthedoor

D)oPENTHEDOOR

参考答案:

B

(10)【单选题】若有以下程序段,则变量v的值是_________。

intm=1,n=2,v;

v=m/n;

A)0

B)1/2

C)0.5

D)1

参考答案:

A

(11)【单选题】若m和n都是整型变量,且m=3,n=5,则以下语句输出的结果是_________。

cout<<(m+=n,n)<

A)5

B)语句格式有错,无输出结果

C)3

D)8,5

参考答案:

A

(12)【单选题】下面程序的输出结果是_________。

#include

#definesub(x,y)(x)*x+y

voidmain()

{inta=3,b=4;

cout<

}

A)6

B)13

C)21

D)20

参考答案:

B

(13)【单选题】下面程序的输出结果是_________。

#include

voidmain()

{intnum=1;

while(num<=2)

{num++;cout<

}

A)123

B)23

C)12

D)1

参考答案:

B

(14)【单选题】下面程序的输出结果是_________。

#include

voidmain()

{intx=0,y=1,a=0,b=0;

switch(x)

{case0:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case1:

a++;b++;break;

}

cout<

}

A)2,1

B)a,1

C)1,2

D)1,0

参考答案:

C

(15)【单选题】若有下面的程序片段:

inta[12]={0},*p[3],i;

for(i=0;i<3;i++)p[i]=&a[i*4];

则对数组元素的错误引用是_________。

A)*p[0]

B)p[0]

C)*(*p+0)

D)a[0]

参考答案:

B

(16)【单选题】下面程序的输出结果是_________。

#include

#include

voidmain()

{char*x1="abcdef",*x2="ab";

x1++;x2++;

cout<

}

A)-1

B)不确定的值

C)1

D)0

参考答案:

C

(17)【单选题】下面程序运行时,若从键盘上输入3.62.4并回车,则输出结果是_________。

#include

#include

voidmain()

{floatx,y,z;

cin>>x>>y;

z=x/y;

while

(1)

{if(fabs(z)>1.0){x=y;y=z;z=x/y;}

elsebreak;

}

cout<

}

A)2.0

B)1.5

C)1.6

D)2.4

参考答案:

C

(18)【单选题】下面程序的输出结果是_________。

#include

f(inta[],intn)

{inti,x;

x=1;

for(i=0;i<=n;i++)x=x*a[i];

returnx;

}

voidmain()

{inty,x[]={1,2,3,4,5};

y=f(x,3);

cout<

}

A)120

B)6

C)24

D)12

参考答案:

C

(19)【单选题】以下关于函数的说法中,正确的是_________。

A)如果形参与实参类型不一致,以实参类型为准

B)如果函数值的类型与返回值类型不一致,以函数值类型为准

C)形参的类型说明可以放在函数体,以实参类型为准

D)return后边的值不能为表达式

参考答案:

B

(20)【单选题】有关类和对象的说法不正确的是_________。

A)任何一个对象只能属于一个具体的类

B)对象是类的一个实例

C)一个类只能有一个对象

D)类与对象的关系与数据类型和变量的关系相似

参考答案:

C

二、操作题(80分)

1、【简单操作题】(注:

以下文件均保存在试题盘shiti\pro\4000247文件夹中)打开proj1.cpp,将一维数组按升序排列,请在提示处填上正确的代码,要求:

补充语句处只写一条语句。

(题分:

15分)

参考答案:

//程序功能:

将一维数组按升序排列后输出

//注意:

请在提示处填上正确的代码,要求:

补充语句处只写一条语句

#include

voidsort(int*p,intn)

{inti,j,temp;

for(i=0;i

实现比较的趟数

//请在两条星线之间填入相应的代码,层循环:

实现每趟两两比较的次数

/**************************************************/

for(j=1;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);

for(i=0;i<6;i++)cout<

cout<

}

2、【简单应用题】(注:

以下文件均保存在试题盘shiti\pro\4000248文件夹中)打开proj2.cpp,编写Count函数,计算个人所得税,月收入的5000元以上部分需缴纳20%的税,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。

在两条星线之间填入相应的代码,使程序完成该功能。

(题分:

20分)

参考答案:

//编写代码完成Count函数功能:

计算个人所得税,并使用return语句把结果返回主函数。

//例如,小月收入为6000元,则她需缴税(6000-5000)×20%+(5000-800)×3%=326元。

//注意:

除在指定位置添加语句之外,请不要改动程序中的其他容。

补充语句不限一句,可多句。

#include

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;

/************************************************/

}

voidmain()

{

floattax,income;

cout<<"请输入你的收入:

";

cin>>income;

tax=Count(income);

cout<<"应缴税:

"<

}

3、【简单操作题】(注:

以下文件均保存在试题盘shiti\pro\4000249文件夹中)打开proj3.cpp,输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。

(提示:

读一行字符用cin.getline()。

)(题分:

20分)

参考答案:

//程序功能:

输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)

//注意:

补充语句不限一句,可多句。

//提示:

读一行字符用cin.getline()

#include

#include

voidmain()

{

charstr[100],*p=str;

intk=0;

//k为新单词标识,若为新单词k为0,否则k为1

//请在两条星线之间填入相应的代码(必须使用while循环语句)

/******************************************/

cin.getline(p,100,'\n');

while(*p!

='\n')

{

if(*p=='')k=0;

elseif(k==0)

{

if(*p>='a'&&*p<='z')*p=*p-32;

k=1;

}

p++;

}

cout<<"结果:

"<

/******************************************/

}

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分)

参考答案:

//注意:

除在指定位置添加语句之外,请不要改动程序中的其他容,补充语句不限一句,可多句

#include

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<<"总分:

"<

/***********************************************************************/

}

voidaverage();

private:

//请在两条星线之间填入相应的代码

//定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据

/***********************************************************************/

floatchinese,math,english;

/***********************************************************************/

};

//请在两条星线之间填入相应的代码

//完成成员函数average的类外定义,求Student对象的平均分并输出到屏幕上

/***********************************************************************/

voidStudent:

:

average()

{

floatavg;

avg=(chinese+math+english)/3;

cout<<"平均分:

"<

}

/***********************************************************************/

intmain()

{

Studentstud(65.3,78,90);

stud.sum();

stud.average();

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1