1C++练习题一、掌握递归调用:任何有意义的递归调用总是由两部分组成的,即递归公式与递归结束条件。递归函数设计的一般形式是:函数类型递归函数名f(参数x){if(满足结束条件)结果=初值;else结果=含f(x-1)的表达式;返回结果;}例题:书P81例4-12,例4-13,二、掌握冒泡排序法算法:如果一个数组b,有n个数,则要进行n-1趟比较,在第一趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较,冒泡排序的算法如下边:voidbubble(intb[],intn){for(inti=0;in-1;n++);for(intj=0;jn-1-i;j++);if(b[j]b[i]){intt=b[j];b[j]=b[j+1];b[j+1]=t;}}例题:书P143例7-3三、掌握二维数组的应用例题:书P146例7-4,例7-6四、练习1.C++中两个逻辑常量是什么?(true,false)C++语言和C语言的不同点(C++为面向对象程序设计,C为面向过程程序设计或称结构化程序设计)。2.C++语言的具有抽象、封装、继承、多态的特点,理解每个特点的意思(课本P3-P4)3.表达式中不同类型的数据进行混合运算时,不同类型数据的转换顺序。比如10+a+x*y,其中a为float型,x为int型,y为double型,那么整个表达式的值是什么类型?(double型)4.复合的赋值运算符(a+=b、x*=y+8、%=)的用法2a+=b相当于a=a+bx*=y+8相当于x=x*(y+8)a%=b相当于a=a%b5.在类中声明一个友元函数的格式?比如viodfun()函数是类A的友元函数。友元函数的限定词:friend例:friendviodfun()6.熟悉三目运算符(?:)(课本P47)、自增(++)自减(--)的用法格式:关系表达式?表达式1:表达式2功能:当关系表达式的值为真,结果为表达式1的值,关系表达式的值为假,结果为表达式2的值例:若有定义”intx=4,y=5;”,则表达式”yx++?x--:y++”的值为(C)A)3B)4C)5D)6《习题与指导》P5第27-32题,自增自减:《习题与指导》P4第17题7.三个循环语言(for、while、do…while)的用法,给定条件后,会判断循环次数。比如whlie(inta=5)a--;循环次数是多少?《习题与指导》P9第6-9题,8.指针和引用的用法,比如:设intb=10,*p;执行语句p=&b;b+=3;*p=10;那么b的值是多少?b=109.通过二维数组的下标来引用某个元素。例如floatb[3][5]={10,20,30,40,50,60,70,80,90,55,66},那么b[1][3]的值是多少(=90)?b[3][5]为二维数组,每行5个元素,共3行,b[0][0]=10,b[0][1]=20,b[0][2]=30,b[0][3]=40,b[0][4]=50b[1][0]=60,b[1][1]=70,b[1][2]=80,b[1][3]=90,b[1][4]=55b[2][0]=66,b[2][1]=0,b[2][2]=0,b[2][3]=0,b[2][4]=0310.三种不同的继承方式中,分析派生类成员对基类的各个成员的访问权限(课本P180表9-1,P182表9-2,P185表9-3)11.运算符重载的用法(课本P224)运算符重载的限定词:operator继承和派生的概念(课本P177),类的继承的三种继承方式是(public,private,protected)?(课本P177倒数第4行)11.C++语言中,下列运算符优先级最高的是?(习题与指导P3第9题)函数的形式参数是?(习题与指导P17第8题)数据封装要解决的问题是(课本P105):防止不同模块之间数据的非法访问(习题与指导P30第1题)12.若变量已正确定义,并且指针p已经指向变量x,则*&x相当于(x)。13.在while语句中,循环体(D)。A.必须是赋值语句B.必须是复合语句C.必须包含if语句D.可以是空语句14.下列程序执行后输出的结果是()。#includeiostream.hvoidmain(){inti,j;for(i=1;i=3;i++){for(j=1;j=4-i;j++)cout;for(j=1;j=i;j++)couti;coutendl;}}运行结果:415.设intm=5;语句while(m==0)coutm-=2;的循环体执行的次数是(A)。A.0B.1C.2D.无限16.执行下列程序段后的输出结果是(101)。inta=100;doa=a+1;while(a120);coutaendl;17.有以下类的说明,请指出错误的地方(A)。classCSample{constinta=2.5;//A常数据成员初始化只能在构造函数中初始化public:CSample();//BCSample(intval);//C~CSample();//D};18.若有定义intb[10];,则b数组中首元素的地址可以表示为(D)。19.A.b+1B.&b[1]C.&bD.b20.执行下列程序段后的输出结果是(-1)。intx=5;while(x--);coutxendl;21.Sample是一个类,执行语句Samplea[2],*p=newSample;后,调用Sample类的构造函数的次数是(D)。A.0B.1C.2D.322.下列程序的输出结果是(4)#includeiostream.h5intfun(intx,inty);intmain(){inta=4,b=5,c=6,x;chard='3';x=fun(fun(a,b),fun(c,d));coutxendl;}intfun(intx,inty){if(xy)returnx;returny;}23.设有数组定义:chararray[]=”Sample”;,则数组array所占的空间为(D)。A.4个字节B.5个字节C.6个字节D.7个字节24.以下组数定义中,不正确的是(D)。A.inta[4][6];B.intb[][4]={10,3,9,3};C.intc[10][10]={0};D.intd[3][]={{11,2},{1,12,3},{11,12,3,14}};25.在C++语言中,错误的常量是(D)。A.OXffB.’\72’C.2LD.1.2e0.5