C++复习题答案-精品文档资料整理.doc
《C++复习题答案-精品文档资料整理.doc》由会员分享,可在线阅读,更多相关《C++复习题答案-精品文档资料整理.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、:第一部分一、单项选择题、在一个程序中,main函数的位置(3)。 必须在程序的开头 必须在程序的后面 可以在程序的任何地方 必须在其它函数中间、程序基本单位是(4)。 数据 字符 函数 语句、执行语句 int i=10,*p=&i;后,下面描述错误的是(1)。 p的值为10 p指向整型变量i *p是一个地址 *p表示变量i的值 p的值是变量i的地址、执行语句 int a=5,b=10,c; int *p1=&a,*p2=&b;后,下面不正确的赋值语句是(2)。 *p2=b; p1=a; p2=p1; c=*p1*(*p2);、设i=1,j=2,则表达式i+ +j的值为(3)。 1 2 3 4
2、、设i=1,j=2,则表达式+i+j的值为(4)。 1 2 3 4、执行下列语句后,x的值是(4),y的值是(3)。int x,y; 短路现象,“与”语句,前者执行了,后者就不执行x=y=1; +x|+y; 不确定 0 1 2、已知x=5,则执行语句x+=x-=xx; 后,x的值为(3)。 25 40 -40 20 x=(x+(x-x*x) x=(-20-20)、已知a=4,b=6,c=8,d=9,则“(a+,ba+&cd)?+d:ab”的值为(4)。 9 6 8 010、有如下程序段:int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为(4)。
3、 ture false 0 111、下面程序的输出结果是(4)。#include using namespace std;int main( ) int a=6,b=6; if(a5) a-=1; b+=1; else a+=1; b-=1; cout”a=”aendl; cout”b=”bendl;return 0; 5 7 a=5 b=7 a=5 b=6 编译时出错12、下面程序的输出结果是(2)#include using namespace std;int main( ) int a=6,b=6; if(a5) a-=1; b+=1; else a+=1; b-=1; cout”a=”
4、aendl; cout”b=”bendl;return 0; 5 7 a=5 b=7 a=5 b=6 a=6 b=513、下面程序的输出结果是(2)#include using namespace std;int main( ) int x=6,y=8; if(x+6) cout+y6) cout -yendl; else couty+endl; return 0; 8 7 9 编译时出错14、下面程序的输出结果是(1)#include using namespace std;int main( ) int x=6,y=8; if(+x6) cout+yendl; else couty+6)
5、cout -yendl; return 0; 1. 8 8 9 7 7 8 编译时出错15、下面程序的输出结果是(1)#include using namespace std;f(int a) int b=0; static int c=3; 第一次时b=1,c=4,结束后b变回0,c继续是4,因为 b+;c+; static会保留c的上一次值,而b不是静态函数成员。 return (a+b+c); int main( ) int a=2,i; for(i=0;i3;i+)coutf(a)endl;return 0; 7 8 9 7 7 7 7 10 13 7 9 1116、下面程序的输出结果
6、是(3)#include using namespace std;void fun(int x,int y,int z) 主函数中的原数值不受fun的影响 z=x*x+y*y; int main( ) int z=68; fun(5,2,z); coutz;return 0; 0 29 68 无定值17、下面程序的输出结果是(1)#include using namespace std;int fun(int a,int b) return (+a*b+); int main( ) int x=3,y=4,z=5,r; r=fun(fun(x,y),z); coutrxyendl; 85 3
7、4 60 3 4 126 4 5 85 4 518、下面的程序中,当输入4、2时,其输出结果是(3)#include using namespace std;long fib(int n) if(n2) return (fib(n-1)+fib(n-2); else return (n); int main( ) int i; couti; coutendl; coutfib(i)endl; return 0; 5 1 4 2 5 2 6 219、下面程序的输出结果为(1)#include using namespace std;unsigned func(unsigned num) unsi
8、gned d=1,k;do k=num%10; 2.6除以10余2。此时num符合要求num/=10; while(num); 如果这里改成num=0,输出结果是6return (k); int main( ) unsigned n=26; coutfunc (n); return 0; 2 4 6 520、下面程序的输出结果为(3)#include using namespace std;func (int a,int b) int c; c=a*b; return (c ); 第一个括号由左到右执行,然后第二个括号执行funcint main( )int x=6,y=7,z=8,r; r=
9、func(x-,y,x*y),z-);coutr;return 0; 294 245 280 41621、下面程序的输出结果为(1)#include using namespace std;int main( ) int a33=1,2,3,4,5; int s=0; for (int i=1;i3;i+)for(int j=0;j=i;j+)s+=aij;coutsendl;return 0; 12 14 15 1322、下面程序的输出结果是(1)#include using namespace std;void fun(int *x,int *y)cout*x” “*y” “; 虽然这里是
10、有fun函数,但是加了方向使主函数*x=3;*y=4; 它影响,第一次是x与y调转,然后它在结束int main( ) 时,重新赋值給了,x与y,第二次继续调转 int x=1,y=2; fun(&y,&x); coutx” “y;return 0; 2 1 4 3 1 2 1 2 2 1 1 2 1 2 3 423、下面程序的输出结果是(3)#include using namespace std;int main( ) int a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; coutp=5; a1.*p=5; *a1.p=5;33、已知类A中一个成员函数说明如下:void
11、Set(A&a)其中,A&a的含意是(3)。 指向类A的指针为a 将A的地址值赋给变量Set a是类A的对象的引用,用来作函数Set()的形参 变量A与a按位相与作为函数Set()的参数34、下面程序的输出结果是(1)#include using namespace std;class pointpublic:void poi(int px=10,int py=10) x=px; y=py;getpx( ) return x;getpy( ) return y;private:int x,y;int main( )point p,q;p.poi();q.poi(15,15);cout“p点的坐
12、标是:”p.getpx( )“,”;coutp.getpy( )endl;cout“q点的坐标是:”q.getpx( )“,”;coutq.getpy( )endl;return 0; p点的坐标是:10,10 p点的坐标是:0,0 q点的坐标是:15,15 q点的坐标是:15,15 p点的坐标是:0,0 p点的坐标是:10,10 q点的坐标是:0,0 q点的坐标是:10,10?35、有以下类的说明,请指出错误的地方(A B D) class CSampleprivate:int a=2.5;(A)CSample;(B)public:CSample(int val);(C)CSample;(D
13、);36、下面程序的输出结果是(1)#includeusing namespace std;int main()int i,j,m=0,n=0;for (i=0;i2;i+)for (j=0;j=i) m=1;n+;coutmendl;coutn;return 0; 1 1 1 01 4 6 2二、判断题、任何字符常量与一个任意大小的整型数进行加减都是有意义的。(x)、在命名标识符中,大小写字母是不加区分的。(x)、引用是某个变量的别名。对引用的操作,实质上就是对被引用的变量的操作。(y)、typedef类型定义是原来定义一些中所没有的新类型。(x)、枚举变量的取值受到该枚举变量所对应的枚举表
14、中枚举常量的局限。(y)、已知:int a(5);表达式(a=7)+a具有二义性。(y)、预处理命令是在进行编译时首先执行的,然后再进行正常编译。(y)、条件编译命令只在编译时才有用。(y)、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。(x)10、switch语句中必须有break语句,否则无法退出switch语句。(x)11、while循环语句的循环体最少执行一次。(x)12、只有for循环的循环体可以是空语句,其它种类循环的循环体不能用空语句。(x)13、当循环体为空语句时,说明该循环体不做任何工作,只起延时作用。(x)14、在多重循环中,内重循环的循环变量引用的次数比外重
15、的多。( y)15、在中,说明函数时要用函数原型,即定义函数时的函数头部分。(y)16、如果一个函数没有返回值,定义时需用void说明。(y)17、使用内置函数是以增大空间开销为代价的。(y)18、返回值类型、参数个数和类型都相同的函数也可以重载。(x)19、在设置了参数默认值后,调用函数的对应实参就必须省略。(x)20、函数形参的作用域是该函数的函数体。(y)21、定义外部变量时,不用存储类说明符extern,而声明外部变量时用它。(y)22、内部静态类变量与自动类变量作用域相同,但是生存期不同。(y)23、静态类标识符在它的作用域之外是不存在的。(x)24、使用关键字class定义的类中默
16、认的访问权限是私有的(private)。(y)25、指向对象的指针和指向类的成员的指针在表达形式上是不相同的。(y)26、一维对象指针数组的每个元素应该是某个类的对象的地址值。(y)27、一个类的构造函数中可以不包含对其子对象的初始化。(x)三、 填空题、下面程序是计算110之间偶数之和,请填空:#include using namespace std; int main( ) int a,b,i; a=0;b=0; for(i=0; i=10;i+) a+=i; i+ ; cout”偶数之和为:”aendl;return 0; 、下面程序是输出100内能被3整除且个位数是6的所有整数,请填空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习题 答案 精品 文档 资料 整理
限制150内