1、C+语言程序设计复习题一、单选题1 在定义函数的格式类型修饰符 函数名 (形式参数表)函数体;中,函数体可以是( )。A、基本语句 B、复合语句C、空语句 D、语句序列2ABAB的值( )。A、为true B、为falseC、与AB 的值相同 D、与AB的值相同3每一个实在参数就是一个( )。A、表达式 B、常量 C、变量 D、函数调用4. 假定AB为一个类,则该类的拷贝构造函数的声明语句为_。 A AB&(AB x); B AB(AB x) C AB(AB &x); D AB(AB* x)5. 对于结构中定义的成员,其隐含访问权限为_。 A public B protected C priv
2、ate D static6当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_。 A ios:in B ios:out C ios:in | ios:out D 没有7在PC机中运行的C+ 语言程序,char类型的数据占 字节。A、1 B、2 C、3 D、48指出下列哪种基本类型是错误的 B 。A、float B、integer C、char D、long9若a,b,c均为整型变量,则表达式a=2,b=a+2,c=0的值为 。A、不定 B、2 C、4 D、010设char t=A;则表达式5+0.6+t值的数据类型为 。A、int B、float C、不确定 D、
3、double11以下 为不正确的if语句。A、if (xy); B、if (x= =y) x+y;C、if (x! = y) cinx else ciny; D、if(xy) x+;y+;12指向数组元素为整型的一维数组的指针变量的定义是 。A、int *p( ) B、int (*p)( ) C、int *p4 D、int (*p)413以下关于switch语句和break语句的描述中不正确的是 。A、 break语句不能用于循环语句和switch语句外的任何其它语句B、 switch语句中使用break语句或continue语句的作用相同C、 在循环语句中使用break语句是为了使流程跳出循
4、环体,提前结束循环D、 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。14下列关于函数定义的说法,正确的是 。A、函数定义时,可以嵌套 B、函数定义不可以嵌套,但可以嵌套调用C、主函数main()内可以定义函数 D、函数定义可以嵌套,调用也可以嵌套。15若有以下说明语句int a34=2,3,4,5,3,4,5,6,4,5,6,7;则正确对数组元素引用为 。A、*(a+1) B、*(a3+2) C、a1+3 D、a0016若定义如下的共同体类型变量x,则x所占用的内存字节数为 (以IBM PC机为例)union dataint i;char ch;doubl
5、e f;x;A、7 B、11 C、8 D、10二、填空题1应用程序TEST.CPP中只有一个函数,这个函数的名称是 main 。25|6,5&6和56的值分别是 7 , 4 和 3 。3不借助于其他变量交换x和y两个变量的值,应顺序执行的三个赋值语句是 x=x+y , y=x-y 和 x=x-y 。4下面的语句显示输出8行8列数组h的主对角线上的所有元素,请补充完整:for( i=0 ; i8 ;i+)cout hii ;5若一函数是以return;结束运行的,说明该函数是 无参 函数。6若正常执行了如下语句:int m20,*p1=m5,*p2=m+17,n;n=p2-p1; 则n的值为 1
6、2 。7已知 A一Z的ASCII码为6590,当执行char ch=14*5+2;coutchendl;语句序列后,得到的输出结果为 H 。8float和double类型的长度分别为 4 和 8 。9表达式xx+l表示成增量表达式为 x+ 。10假定p所指对象的值为36,p+l所指对象的值为49,则*+p的值为 49 。11假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为 *(xa) 。12对一个类中的数据成员的初始化可以通过构造函数中的 初始化表 实现,也可以通过构造函数中的 函数体 实现。13在C+程序中,语句之间必须用 ; 分隔。14在C+程序中, 运算符优先级最低。1
7、5在C+语言中,在IBM PC机环境下,double型数据占 8 字节。16若k 为int型变量,则下列语句的输出为 16 。k=017;cout0 是判断一元二次方式ax2+bx+c=0有实根的表达式。18表达式(b=10)&(c=0)的值为 0 。19已知a的ASCII的十进制代码为97,则表达式10+15.2-27*(a-b)的值为 52.2 。20在C+语言中,& 作为双目运算符时表示的是 按位与 ,而作为单目运算时表示的是 引用 。21一个函数由函数 名 和函数 体 两部分构成。22C+在执行过程中不检查数组是否 越界 。23C+语言规定,调用一个函数时,实参数变量与形参数变量之间的
8、数据传递是 。24指针变量的指针是 地址 。25结构体变量中的成员的引用一般形式:结构变量名成员名 。26写出满足AB则把A+B赋给M的if语句 if(AB) M=A+B 。27写出指向int型变量的指针变量p的一个定义语句: int *p 。三、给出下列程序运行后的输出结果1#include void SB(char ch) switch(ch) case A: case a: coutwell !; break; case B: case b: coutgood !; break; case C: case c: coutpass ! ; break; default: coutbad!
9、; break; coutendl; void main() char a6 =Abcaf; for(int i=0; ai; i+) SB(ai);答案:well !good !pass !well !bad!2#include void main() int a10= 36,25,48,14,55,40,72,40,86,27; int b1, b2; b1 = b2 = a0; for(int i= 1;ib1) if(b1b2) b2=b1; b1 = ai; coutb1 b2endl; 答案:86 723#include void main() int a8= 3,5,7,9,11
10、,13,15,17; int *p=a; for(int i=0;i8;i+) *p+=10; coutsetw(5) *p+; if (i+1) %3=0) coutendl; 答案:13 15 2719 21 2325 274. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; cout*a *bendl; void main() int x=10, y=25; LE(&x,&y); coutx yendl; 答案:25 1025 105. #include class A int a,b; public: A() a=b=0;
11、 A(int aa, int bb) a=aa; b=bb; couta bendl; ; void main() A x,y(2,3),z(4,5); 答案:(下面是四个数,中间有空格)2 34 56#includevoid main()int m=3,x=4,y=4,z=7;m=(mx)?x+: m;m=(my)?y+: m;m=(m“m=”mendl”x=”xendl”y=”yendl”z=”z;程序运行后的输出结果为:答案:m=7x=5y=4z=87#includevoid sort(int x,int y,int z) int t;if (xy)t=x;x=y;y=t;if(xz)t
12、=x;x=z;z=t;if(yz)t=y;y=z;z=t;cout“x=”x ”y=”y ”z=”z;void main() int a,b,c;cinabc;cout“a=”a ”b=”b ”c=”c;sort(a,b,c);cout“a=”a ”b=”b ”c=”c;假设输入为:10 6 8则程序运行后的输出结果为:参考答案:a=10 b=6 c=8x=6 y=8 z=10a=10 b=6 c=88. #includevoid prn str(char *str,int m,int n)int i;for (i=1;i“*”;str+;for (i=1;(i*str+;while(*str
13、)cout“*”;str+;coutendl;void main() char *p=“information”;prn str(p,3,4);程序运行后的输出结果为:答案: *form*四、写出下列每个函数的功能1.int Count(double a, int n) double m=0; int i;for(i=0;in;i+) m+=ai; m=m/n; int c=0;for(i=0;i=m) c+;return c; 答案:计算并返回参数数组中大于等于参数数组中所有元素平均值的元素个数2.long fact(long n)if (n=1L) return 1L;return n*f
14、act(n-1L);答案:通过函数递归调用,计算并返回参数n的阶乘 3. #include void WA(int a, int n) for(int i=0;in-1;i+) int k=i; for(int j=i+1;jn;j+) if(ajak) k=j; int x=ai; ai=ak; ak=x; 答案:对参数数组中的元素进行升序排序 4#include #include void JB(char* fname) /可把以fname所指字符串作为文件标识符的文件称为fname文件, /假定该文件中保存着一批字符串,每个字符串的长度均小于20。 ifstream fin(fname)
15、; char a20; int i=0; while(fina) coutaendl; i+; fin.close(); couti=iendl; 答案:依次把参数fname所指的文件中字符输入到字符串数组a中,并输出文件中字符个数五、编程题1设计一程序,它输入一个整数,判断它是否是整数序列32,52,31,86,3,44,11,7,55,63中的一个;若是,显示该整数在序列中的序号(注:最小序号是1),否则显示0。答案:#include int getno(int val) int a=32,52,31,86,3,44,11,7,55,63; for(int i=0;ival; coutge
16、tno(val);2.编写一个程序,统计输入的一行字符中数字、空格及其它字符分别有多少个。答案:#includevoid main() int i,eng=0,numb=0,blan=0,others=0; char a100; cin.getline(a,100); for(i=0;ai;i+) if(ai48) numb+; else if(ai=32) blan+; else if(ai65&ai97&ai97+25) eng+; else others+; couteng=engendlnumb=numbendl;coutblan=blanendlothers=othersendl; 3.有8个学生,每个学生四门课程的成绩存放在一个8行5列的二维数组的0到7行的1到4列中,编写一个函数实现:计算每个学生四门课程的总成绩,并存放在该学生所在行的第0列中。答案:#includevoid main() int i,j;int a85=0;for(i=0;i8;i+)for(j=1;jaij; /输入学生成绩for(i=0;i8;i+)for(j=1;j5;j+)ai0+=aij; /求学生四门课程总成绩9 / 9
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。