南 昌 大 学 考 试 试 卷A
【适用时间:20 11 ~20 12学年第学期 试卷类型[A]卷】
一、 单项选择题:(每小题2分,共 30 分)
1、以下叙述中正确的是( )。
A.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误
B.在C++程序中,main函数必须位于程序的最前面
C. C++本身没有输入输出语句
D. C++程序的每一行只能写一条语句
2、以下叙述中不正确的是( )。
A.在C++程序中,逗号运算符的优先级最低
B.在定义变量时,必须给变量赋初值
C.在C++程序中,count和Count是两个不同的变量
D.表达式1/3+1/3+1/3的结果为0
1 / 16
3、用C++语言编写的代码程序( )。
A.可以执行 B.经过编译解释才能执行
C.经过编译可执行 D.是一个源程序
4、以下关于函数参数的叙述不正确的是( )。
A.实参只能是常数
B.函数的形参命名可以任意,只要符合标识符规则
C.形参的值与实参的值不一定时刻保持一致
D.函数参数的值可以是内存单元地址
5、设”int a=12;”,则执行完语句”a+=a-=a*a;”后,a的值是( A.-132 B.144 C.-2 D.288
6、以下函数的功能是( )。
int function(char *x)
{ char *p=x; while(*p++); return(p-x-1); }
2 / 16
)。
A. 求字符串的长度 B. 将字符串x连接到字符串p后面
C. 将字符串x复制到字符串p中 D. 将字符串x反向存放
7、已知教师记录的描述为:
struct teacher
{int id;
char name[20];
struct{int y:int m:int d:}birth;
}t;
将变量t中的d成员赋值为12的语句为( )。
A.d=12 B.birth.d=12 C.t.d=12 8、在以下选项中,与k=n++完全等价的表达式是( )。
A. k=n,n=n+1 B. n=n+1,k=n C. k=++n 9、已定义int a,b;下列switch语句中格式正确的是( )。
3 / 16
D. k+=n+1
D.t.birth.d=12
A. switch(a) B. switch(a==b)
{ case b+1:a--;break; {default:a-b}
case b+2:a++;break;}
C. switch(a/10+b) D. switch(a*a)
{case 5:a-b; {case 1,2:++a;
default:a+b; } case 3,4:++b; }
10、以下正确的函数原型声明语句是( )。
A. double fun(int x,int y) B. double fun(int x;int y)
C. double fun(int,int); D. double fun(int x,y);
11、已知 char c; char * const pc=“How are you !”,正确的是( A. pc="Nanchang" B. *pc=‘A’
C. *pc++=‘B’ D. pc=&c
12、在下面的二维数组定义中,正确的是( )。
4 / 16
)。
A. int a[5][]; B. int a[][5];
C. int a[][3]={{1,3,5},{2}}; D. int a[](10);
13、以下有关类和对象的叙述,不正确的是( )。
A.任何一个对象都归属于一个具体的类
B.类的数据成员不允许是另一个类的对象
C.类与对象的关系和数据类型与变量的关系相似
D.一个类可被实例化成多个对象
14、复制构造函数的形参是( )。
A.某个对象名 B.某个对象的成员名
C.某个对象的引用名 D.某个对象的指针名
15、下列关于构造函数的叙述,错误的是( )。
A.构造函数可以设置默认参数
B.构造函数在创建对象时由系统自动调用
5 / 16
C.构造函数可以重载
D.构造函数可以对静态数据成员进行初始化
二、填空题:(每空1分,共 20 分)
1、C++程序test.cpp中只有一个函数,则这个函数的名称是 【1】 。
2、设有定义:int x,y;则执行y=(x=2, x++,x+3);语句后,y的值是 【2】 。
3、设有定义:int n=2;则n++的值是【3】 ,n的值是【4】 。
4、表达式18/4*sqrt(9.0)/5的值的数据类型是 【5】 ,其值是 【6】 。
5、与m%n等价的C++表达式为 【7】 。
6、写出定义结构体类型时所用的C++关键字 【8】 。
7、已知以下枚举类型定义,枚举量Fortran的值是【9】 。
enum language{Basic=3,Assembly,Ada=10,Cobol,Fortran};
8、在c++中,除具有【10】 、【11】 语句的函数不能说明为内联函数外,其它函数都可
以说明为内联函数。
6 / 16
9、在定义类的对象时,C++程序将自动调用该对象的【12】 _函数初始化对象;
在撤销类的对象时,C++程序将自动调用该对象的【13】 __函数。
10、外部函数应声明为类的【14】 才能访问这个类的private成员。
11、在C++类中,利用 【15】 描述对象的特征,利用 【16】 描述对象的行为。
12、语句段char c[20]=\"Nanchang \"; c[3]=’\\0’; cout<13、在用class定义一个类时,数据成员和成员函数的默认访问权限为 【18】 。14、下列fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在
一维数组y中返回。二进制的最低位放在下标为0的元素中,请填空。(说明:将十进制数
转化为二进制数的方法是“除2取余法”)
void fun(int x, int y[ ])
7 / 16
{
int a=0,b;
do
{
b= 【19】 ;
y[a++]=b;
x= 【20】 ;
} while(x);
}
三、程序阅读题:(每小题5分,共 30 分)
请写出下列程序的运行结果。
程序1:
#include8 / 16
void main()
{ for(int i=1,s=0;i<=15;i++)
{if(i%2==0 || i%3==0) continue;
cout<s+=i;}
cout<<”\\ns=”<}
运行结果:
1 5 7 11 13
S=37
程序2:
#include \"iostream.h\"
class Myclass
9 / 16
{int A;
static int B;
public:
Myclass(int k)
{int i;
A=k;
for(i=0;i<5;i++) B+=k;}
static void Display(Myclass obj)
{cout<<\"A=\"<};int Myclass::B=10;
void main()
{Myclass objA(2);
10 / 16
Myclass::Display(objA);
Myclass objB(3);
Myclass::Display(objB);
}
运行结果:
A=2,B=20
A=3,B=35
程序3:
#includeusing namespace std;
#define M (x+y)
#define N x-y
void main()
11 / 16
{int s,x=4,y=6;
s=3*M+4*N;
cout<<\"s=\"<}
运行结果:
s=40
程序4:
#includeusing namespace std;
int count=0;
class Point
{int x,y;
public:
/ 16
12 Point()
{x=1;y=1;count++;}
~Point(){count--;}
friend void display();
};
void display()
{cout<<”There are ”void main()
{Point a,b;
display();
{Point b[5];display();}
display();
}
” Points.”13 / 16
<运行结果:There are 2 Points.
There are 7 Points.
There are 2 Points.
程序5:
#includevoid main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,6,9,12},{5,4,3,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][2];
cout<<\"s=\"<}
运行结果:
14 / 16
S=22
程序6:
#includeusing namespace std;
long fun(int n)
{long f;
if(n<0)cout<<\"input error!\";
else if(n==0)f=1;
else f=n+(n-1)*fun(n-1);
return f;
}
void main()
{cout</ 1615
cout<}运行结果:
31
129
四、程序设计:(每小题10分,共 20 分)
1、编写一个程序,完成以下要求:
1)定义一个数组,用循环实现从键盘上输入10个正整数并放入数组;
2)输出该数组中元素的最大值及数组元素的平均值。
2、定义一个矩形类Rect,该类有两个数据成员:长(Length,float 类型)、宽(Width,float类型),定义一个构造函数,用于初始化矩形对象,设置矩形的长和宽,另外定义一个成员函数用于计算矩形的面积,该函数原型为:double GetS( )。要求在主程序中定义并初始化一个矩形对象,并输出该矩形的面积。
友情提示:部分文档来自网络整理,供您参考!文档可复制、编辑,期待您的好评与关注!
16 / 16