资源描述
.
试卷一
一、理论题(20分,每小题1分)
(1)【单选题】下面程序的输出结果是_________。
#include <iostream.h>
fun(int x)
{ int p;
if(x==0||x==1) return(3);
p=x-fun(x-2);
return p;
}
void main()
{cout<<fun(9)<<endl;}
A) 7
B) 9
C) 3
D) 1
参考答案:A
(2)【单选题】下面程序运行时,若从键盘上输入2.0并回车,则输出结果是_________。
#include <iostream.h>
void main()
{ float x,y;
cin>>x;
if(x<0.0) y=0.0;
else if((x<10.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x<5.0) y=1.0/x;
else y=5.0;
cout<<y;
}
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)【单选题】下面程序的输出结果是_________。
精选word
.
#include <iostream.h>
void main()
{ char *p[ ]={"mop","book","w","sp"};
int i;
for(i=3;i>=0;i--,i--) cout<<*p[i];
cout<<endl;
}
A) sb
B) spbook
C) sp
D) swb
参考答案:A
(5)【单选题】下面定义的共用体类型的长度是_________字节。
union MyData
{ long x;
char ch;
bool flag;
float y;
};
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 <iostream.h>
void main()
{ int x[ ]={2,4,6,8},i;
int *p=x;
for(i=0;i<4;i++) x[i]=*p++;
cout<<x[2]<<endl;
}
A) 6
B) 4
C) 8
精选word
.
D) 2
参考答案:A
(8)【单选题】C++的字符串"\t\1026\\'"中包含_________个可见的字符。
A) 10
B) 5
C) 4
D) 6
参考答案:C
(9)【单选题】以下程序段运行时,若从键盘上输入Open the door并回车,则输出结果是_________。
char fun(char *c)
{ if(*c<='z' && *c>='a') *c-='a'-'A';
return *c;
}
void main()
{ char s[81],*p=s;
gets(s);
while(*p)
{*p=fun(p);putchar(*p);p++;}
putchar('\n');
}
A) open the door
B) OPEN THE DOOR
C) Open the door
D) oPEN THE DOOR
参考答案:B
(10)【单选题】若有以下程序段,则变量v的值是_________。
int m=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)<<endl;
A) 5
B) 语句格式有错,无输出结果
C) 3
D) 8,5
参考答案:A
(12)【单选题】下面程序的输出结果是_________。
#include <iostream.h>
精选word
.
#define sub(x,y) (x)*x+y
void main()
{ int a=3,b=4;
cout<<sub(a++,b++)<<endl;
}
A) 6
B) 13
C) 21
D) 20
参考答案:B
(13)【单选题】下面程序的输出结果是_________。
#include <iostream.h>
void main()
{ int num=1;
while(num<=2)
{num++;cout<<num;}
}
A) 123
B) 23
C) 12
D) 1
参考答案:B
(14)【单选题】下面程序的输出结果是_________。
#include <iostream.h>
void main()
{ int x=0,y=1,a=0,b=0;
switch(x)
{ case 0:
switch(y)
{ case 0:a++;break;
case 1:b++;break;
}
case 1:
a++;b++;break;
}
cout<<a<<","<<b<<endl;
}
A) 2,1
B) a,1
C) 1,2
D) 1,0
参考答案:C
(15)【单选题】若有下面的程序片段:
int a[12]={0},*p[3],i;
精选word
.
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 <iostream.h>
#include <string.h>
void main()
{ char *x1="abcdef",*x2="ab";
x1++;x2++;
cout<<strcmp(x1,x2)<<endl;
}
A) -1
B) 不确定的值
C) 1
D) 0
参考答案:C
(17)【单选题】下面程序运行时,若从键盘上输入3.6 2.4并回车,则输出结果是_________。
#include <iostream.h>
#include <math.h>
void main()
{ float x,y,z;
cin>>x>>y;
z=x/y;
while(1)
{ if(fabs(z)>1.0){x=y;y=z;z=x/y;}
else break;
}
cout<<y;
}
A) 2.0
B) 1.5
C) 1.6
D) 2.4
参考答案:C
(18)【单选题】下面程序的输出结果是_________。
#include <iostream.h>
f(int a[ ],int n)
{ int i,x;
x=1;
精选word
.
for(i=0;i<=n;i++) x=x*a[i];
return x;
}
void main()
{ int y,x[ ]={1,2,3,4,5};
y=f(x,3);
cout<<y<<endl;
}
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 <iostream.h>
void sort ( int *p,int n)
{ int i,j,temp;
for (i=0;i<n-1;i++)//外层循环:实现比较的趟数
//请在两条星线之间填入相应的代码,内层循环:实现每趟两两比较的次数
/**************************************************/
for(j=1;j<n-i;j++)
/***************************************************/
if(p[j-1]>p[j])
{
temp=p[j-1];
精选word
.
//请在两条星线之间填入相应的代码,实现两个数的交换
/**************************************************/
p[j-1]=p[j];
/***************************************************/
p[j]=temp;
}
}
void main( void)
{
int a1[6]={34,13,22,53,4,46},*pi,i;
//请在两条星线之间填入相应的代码,实现指针指向数组
/**************************************************/
pi=a1;
/***************************************************/
sort (pi,6) ;
for (i=0;i<6;i++) cout<<a1[i]<<'\t';
cout<<endl;
}
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 <iostream.h>
double Count(float temf)
{
//请在两条星线之间填入相应的代码,完成应缴税款的计算
/***********************************************/
int tax;
if(temf>5000)tax=(temf-5000)*0.2+(5000-800)*0.03;
else if(temf>800)tax=(temf-800)*0.03;
else tax=0;
return tax;
/************************************************/
}
void main()
{
float tax,income;
cout<<"请输入你的收入:";
精选word
.
cin>>income;
tax=Count(income);
cout<<"应缴税:"<<tax<<endl;
}
3、【简单操作题】(注:以下文件均保存在试题盘shiti\pro\4000249文件夹中)打开proj3.cpp,输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。(提示:读一行字符用cin.getline()。)(题分:20分)
参考答案:
//程序功能:输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)
//注意:补充语句不限一句,可多句。
//提示:读一行字符用cin.getline( )
#include <iostream.h>
#include <ctype.h>
void main()
{
char str[100],*p=str;
int k=0;
//k为新单词标识,若为新单词k为0,否则k为1
//请在两条星线之间填入相应的代码(必须使用while循环语句)
/******************************************/
cin.getline(p,100,'\n');
while(*p!='\n')
{
if(*p==' ')k=0;
else if(k==0)
{
if(*p>='a' && *p<='z')*p=*p-32;
k=1;
}
p++;
}
cout<<"结果:"<<str<<'\n';
/******************************************/
}
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对象的平均分并输出到屏幕上。
精选word
.
程序运行结果如下图所示。(题分:25分)
参考答案:
//注意:除在指定位置添加语句之外,请不要改动程序中的其他内容,补充语句不限一句,可多句
#include <iostream.h>
class Student
{
public:
Student(int c,int m,int e)
{
//请在两条星线之间填入相应的代码
//补充完成学生类Student的构造函数的定义, 把数据成员chinese、math和english分别初始化为参数c,m,e的值
/***********************************************************************/
chinese=(float)c;
math=(float)m;
english=(float)e;
/***********************************************************************/
}
void sum()
{
//请在两条星线之间填入相应的代码
//补充完成成员函数sum的定义,求Student对象的总分并输出到屏幕上
/***********************************************************************/
float sum;
sum=chinese+math+english;
cout<<"总分:"<<sum<<endl;
/***********************************************************************/
}
void average();
private:
//请在两条星线之间填入相应的代码
//定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据
/***********************************************************************/
float chinese,math,english;
/***********************************************************************/
};
//请在两条星线之间填入相应的代码
//完成成员函数average的类外定义,求Student对象的平均分并输出到屏幕上
精选word
.
/***********************************************************************/
void Student::average()
{
float avg;
avg=(chinese+math+english)/3;
cout<<"平均分:"<<avg<<endl;
}
/***********************************************************************/
int main()
{
Student stud(65.3,78,90);
stud.sum();
stud.average();
return 0;
}
感谢您的支持与配合,我们会努力把内容做得更好!
精选word
展开阅读全文