河大期末C++精选试题
cout<<count(x)<<'\n';
return 0;
}
执行结果:
2)
#include<iostream>
using namespace std;
class Count{
private:
static int counter;
int obj_id;
public:
Count(); //constructor
public:
B(const char*n)_____(5)_______{}
void PrintName( ) {cout<<”name:”<<name<<endl;};
};
void main( )
{
B b1(“Ling Li”);
b1.PrintName( ) ;
} //执行结果:name: Ling Li
D. 构造函数是一种成员函数
11、下面程序的运行结果为
#include <iostream.h>
int add(int a,int b);
void main()
{
extern int x,y;
cout<<add(x,y)<<endl;
}
int x=20,y=5;
int add(int a,int b)
}
四、写出下面程序的执行结果:(15分)
1)
2)
3)XY
五、程序填空:(10分)
(1)protected:或public(2)const char *n(3)strcpy(name,n);
(4):public A或:protected A(5):A(n)
五、单项选择题(共20题,每题1分,共20分)
2.如果调用带有默认参数的函数时缺少一个参数,则______________参数就作为这一参数。
a.第一个b.最后一个c.中间一个d.以上都不是
3.成员函数可声明为静态的,条件是它不访问__________类成员。
a.静态b.常数c.非静态d.公共
4.内联函数执行起来比标准函数_______________。
1、下列关于C++标识符的命名不合法的是
A. Pad B. name_1 C. A#bc D. _a12
2、若有以下类型标识符定义: ( )
int x=2; char w='a'; float y=23.45f; double z=45.6712;
则表达式w*x+y-z的结果类型是
A. float B. char C. int D. double
应改为:
class border:virtualpublic window
{ };
class menu:virtualpublic window
{ };
4)整个正确的程序段(参考):
#include <iostream.h> //加本句
template<typename T> //加typename
④*ptr=555;
⑤*ntptr=666;
⑥int another=8;
⑦ptr=&another;
⑧ntptr=&another;
2)①int arrp;
②arrp=new int[15];
③delete arrp;
3)下面程序为什么会编译错误,并改正错误(提出解决办法)。
class window
virtual ~BASE(){cout<<c;}
};
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<c;}
};
int main(void)
{ DERIVED('X');
{
counter++;
obj_id = counter;
}
Count::~Count() //destructor
{
counter--;
cout<<"Object number "<<obj_id<<" being destroyed\n";
}
void Count::display_total() //static function
double total;
double rate;
};
double count(A& a)
{
a.total+=a.rate*a.total;
return a.total;
}
int main(void)
{
A x(80,0.5),y(100,0.2);
cout<<count(x)<<','<<count(y)<<'\n';
{
public:
B(const char*n)_____(5)_______{}
void PrintName( ) {cout<<”name:”<<name<<endl;};
};
void main( )
{
B b1(“Ling Li”);
b1.PrintName( ) ;
} //执行结果:name: Ling Li
Count a2, a3,a4;
Count::display_total();
a2.display();
a4.display();
return 0;
}
3)#include <iostream >
using namespace std;
class BASE
{
char c;
public:
BASE(char n):c(n){}
6、对重载函数形参的描述中,错误的是
A. 参数的个数可能不同
B. 参数的类型可能不同
C. 参数的顺序可能不同
D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同
7、以下能正确定义数组并正确赋初值的语句是
A. int N=5,b[N][N];
B. int a[2]={{1},{3},{4},{5}};
C. int c[2][]={{1,2},{3,4}};
D. int d[3][2]={{1,2},{3,4}};
8、下列给字符数组进行的初始化中,不正确的是
A. char s1[]="abcd";
B. char s2[3]={'x','y','\0'};
C. char s3[]={'a','x','y','\0'};
8.在类Time中的析构函数可以声明为:void ~Time(int);
9.const对象必须初始化。
10.在c++中,只能重载已有的运算符。
二、选择题(20分)
1.关键字____________说明对象或变量初始化后不会被修改。
a. static b. public c. const d. inline
⑧ntptr=&another; ntptr是常量指针,不能指向别的的变量
2)①int arrp;应改为:int *arrp;
③delete arrp;应改为:delete [ ]arrp;
3)return basedata;//在border_and_menu中引用basedata时产生二义性,应使用虚基类
杭州电子科技大学学生考试卷(A)答案
一、判断题(15分)
1)√2)╳3)√4)╳5)√6)╳7)√8)╳9)√10)√
二、选择题(20分)
1)c 2)b 3)c 4)b 5)c 6)a 7)c 8)a 9)c 10)b
三、指出下列程序片段中的错误,并解释错在何处。(20分)
1)④*ptr=555; ptr是指向整数常量的指针
a.更慢b.更快c.次数更多d.以上都不是
5.默认参数的值由___________________提供。
a.该函数b.调用程序c.上述二者d.以上都不是
6.在C++中,混合类型表达式_____________。
a.允许存在b.为一错误c.从int到float d.从float到int
7.表达式long(intVar)也可表示为_______________。
一、判断题(15分)(对的打√,错的打╳)
1.友元函数用于允许一个函数访问不相关类的私有部分。
2.构造函数可以被继承。
3.动态绑定的多态性是通过虚函数实现的。
4.在c++中,传引用调用等同于传地址调用。
5.重载函数必须有不同的参数列表。
6.可以用delete释放不是用new运算符分配的内存。
7.类成员的默认访问模式是private。
a.常数成员变量b.私有数据成员
c.静态数据成员d.以上都是
10.设置虚基类的目的是:
a.简化程序b.消除二义性c.提高运行效率d.减少目标代码
三、指出下列程序片段中的错误标号,写出正确语句或解释错在何处。(20分)
1)①int index=675;
②const int *ptr=&index;
③int *const ntptr=&index;