1、浙江大学远程教育学院 《面向对象程序设计》课程作业 姓名: 学 号: 年级: 2013(春)计算机科学与技术(专本(业余)) 学习中心: 南京学习中心 ————————————————————————————— 第2章 【2.3】 测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。 //this is a strange /*way to do a comment*/ 答:此注释有效,单行注释中可以嵌套 / * „„ * /方式的注释。 【2.4】 以下这个简短的C++程序不可能编译通过,为什么? #
2、include 3、 回答问题。
(1) 以下两个函数原型是否等价:
float fun(int a,float b,char *c);
float fun(int,float,char * );
(2) 以下两个函数的第一行是否等价:
float fun(int a,float b,char * c);
float fun(int,float,char * );
答:(1)这两个函数原型是等价的,函数原型中的参数名可以缺省。 (2)这两个函数的第1行是不等价的,因为这个函数的第1行中必须包含参数名。
【2.6】 下列语句中错误的是( D )。
A.int *p=new int(10); 4、 B.int *p=new int[10];
C.int *p=new int; D.int *p=new int[40](0);
【2.7】 假设已经有定义“const char * const name="chen";”下面的语句中正确的是( D )。
A. name[3]='a'; B. name="lin";
C. name=new char[5]; D. cout< 5、
A. name[3]='q'; B. name="lin";
C. name=new char[5]; D. name=new char('q');
【2.9】 假设已经有定义“const char * name="chen";”下面的语句中错误的是( A )。
A. name[3]='q'; B. name="lin";
C. name=new char[5]; D. name=new char('q');
【2.10】重载函数在调用时选择的依据中,( B )是错误的。
A. 6、函数名字 B.函数的返回类型
C.参数个数 D.参数的类型
【2.11】 在( A )情况下适宜采用内联函数。
A.函数代码小,频繁调用 B.函数代码多,频繁调用
C.函数体含有递归语句 D. 函数体含有循环语句
【2.12】 下列描述中,( C )是错误的。
A. 内联函数主要解决程序的运行效率问题
B. 内联函数的定义必须出现在内联函数第一次被调用之前
C. 内联函数中可以包括各种语句
7、 D. 对内联函数不可以进行异常接口声明
【2.13】 在C++中,关于下列设置默认参数值的描述中,( B )是正确的。
A.不允许设置默认参数值
B.在指定了默认值的参数右边,不能出现没有指定默认值的参数
C.只能在函数的定义性声明中指定参数的默认值
D. 设置默认参数值时,必须全部都设置
【2.14】 下面的类型声明中正确是( D )。
A. int &a[4]; B. int &*p;
C.int &&q; D. in 8、t i,*p=&i;
【2.15】 下面有关重载函数的说法中正确的是( C )。
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D.重载函数名可以不同
【2.16】 关于new运算符的下列描述中,( D )是错误的。
A,它可以用来动态创建对象和对象数组
B. 使用它创建的对象或对象数组 9、可以使用运算符delete删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时必须指定初始值
【2.17】 关于delete运算符的下列描述中,( C )是错误的。
A.它必须用于new返回的指针
B. 使用它删除对象时要调用析构函数
C. 对一个指针可以使用多次该运算符
D.指针名前只有一对方括号符号,不管所删除数组的维数
【2.18】 写 10、出下列程序的运行结果。
#include 11、
m=n;
n=temp;
}
int main()
{ int a=5,b=10;
f(a,b);
cout<
using namespace std;
int &f(int &i)
{ i+=10;
return i;
}
int main()
{ int k=0;
int &m=f(k);
cout< 12、turn 0;
}
答:10
20
【2.21】 举例说明可以使用const替代#define以消除#define的不安全性。
答:例如:#include 13、性。
#include 14、<”\t<<*(p+1)<<”\t”;
p=p+2;
for(int i=3;i<=20;i++)
{
*p=*(p-1)+*p(p-2);
Cout<<*p<<”\t”;
If(i%5==0)cout< 15、sing namespace std;
Double sroot(int i)
{ Return sqrt(i);}
Double sroot(long l)
{return sqrt(l);}
Double sroot(double d)
{return sqrt(d);}
Int main()
{
Int i=12;
Long l=1234;
Double d=12.34;
Cout<<”i的二次方根是:”< 16、l;
Cout<<”d的二次方根是:”< 17、 Sum++;
Cout<<100-5 * I – 2* j<<”\t”<
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818