C++笔试题目-带答案(3)

2019-09-01 09:25

L=(int *)malloc((N+1)*4);

t=0;

for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); BubbleSort(L,N); ti[t++]=clock();

for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); SelectSort(L,N); ti[t++]=clock();

for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); InsertSort(L,N); ti[t++]=clock();

for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); ShellSort(L,N); ti[t++]=clock();

printf(\ for(k=0;k<4;k++)

printf(\

N*=5; }

printf(\}

6.一个类中,const类型成员函数的主要作用是什么?在该函数中可以调用该类的什么类型的成员变量和成员函数?该类的一个非const对象可以调用const成员函数吗?(10)

(1)可以定义const常量,具有不可变性。

(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) 编译器就会知道i是一个常量,不允许修改;

(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可! (4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错; 例如: void f(const int i)

(5) 为函数重载提供了一个参考。 class A { ......

void f(int i) //一个函数

void f(int i) const //上一个函数的重载 ...... };

(6) 可以节省空间,避免不必要的内存分配。

const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。 (7) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

不能修改类的数据成员,不能在函数中调用其他不是const的函数. 1)const对象调用的是const成员函数 。

2)非const成员函数可以调用const成员函数,这样做一般是用来避免代码重复,但引入了一个casting动作。

7.下面两个语句的执行效果相同吗?为什么?(9)

语句1: while(*p++){}; 语句2: while(*p){ p++;} 区别在于退出循环后, p的值不一样

while( *p++ ); //当*p=0时,退出循环,此时p++仍然执行了 while( *p ) p++; //当*p=0时,退出循环,此时p++不再被执行

例如 char *p=\ 执行完第一个while循环后,p指向的是'\\0'后面的一个字节,*p的结果是未知的

而如果是执行第二个循环,则p指向的是'\\0',也就是'D'后面的一字节,即*p='\\0


C++笔试题目-带答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:WP3100状态代码表 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: