中央电大C++试题及答案小抄参考_第1页
中央电大C++试题及答案小抄参考_第2页
中央电大C++试题及答案小抄参考_第3页
中央电大C++试题及答案小抄参考_第4页
中央电大C++试题及答案小抄参考_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业好文档一、第一章单选题1在每个c+程序中都必须包含有这样一个函数,该函数的函数名为()。答案:aamainbmaincnamedfunction2c+源程序文件的缺省扩展名为()。答案:aacppbexecobjdlik3程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。答案:da空格或逗号b逗号或回车c逗号或分号d空格或回车4c+程序的基本模块为()。答案:da表达式b标识符c语句d函数5每个c+程序文件的编译错误分为()类。答案:b/warning errora1b2c3d4二、第一章填空题 1c+语言是在_语言的基础上发展起来的。答案:c2c+语言中的每条

2、基本语句以_作为结束符。答案:;(或分号)3c+语言中的每条复合语句以_作为结束符。答案:(或右花括号)4在c+每个程序行的后面或单独一行的开始使用注释的标记符为_。答案:/5单行或多行注释的开始标记符为_、结束标记符为_。答案:/*、*/6在一个c+程序文件中,若要包含另外一个头文件或程序文件,则应使用以_标识符开始的预处理命令。#include7c+程序中的所有预处理命令均以_字符开头。#8在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是_定义的头文件。用户 (或编程者)9一个函数定义由_和_两部分组成。答案:函数头、函数体10用于输出表达式值的标准输出流对象是_,

3、用于从键盘上为变量输入值的标准输入流对象是_。答案:cout、cin11当不需要函数返回任何值时,则应使用_标识符定义函数类型。答案:void三、第二章单选题1设x和y均为bool量,则x & y为真的条件是()。 答案:aa. 它们均为真b. 其中一个为真c. 它们均为假d. 其中一个为假2设x和y均为bool量,则x | y为假的条件是()。 ca. 它们均为真b. 其中一个为真c. 它们均为假d. 其中一个为假3设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为()。ca. 12b. 144c. 156d. 2884x0 & x=10的相反表达式为()。aa. x10

4、b. x10c. x=0 | x0 & x105x0 | y=5的相反表达式为()。ba. x=0 | y!=5b. x0 | y!=5 d. x0 & y=56字符串“a+b=12n”的长度为()。答案:ba. 6b. 7c. 8d. 97在下列的常值常量定义中,错误的定义语句是()。答案:ca. const m=10;b. const int m=20; c. const char ch; d. const bool mark=true;8枚举类型中的每个枚举常量的值都是一个()。 答案:aa. 整数b. 浮点数c. 字符d. 逻辑值9含随机函数的表达式rand()%20的值在()区间内。

5、答案:ca. 119b. 120 c. 019d. 020四、第二章填空题1十进制数25表示成符合c+语言规则的八进制数为_。答案:0312十进制数25表示成符合c+语言规则的十六进制数为_。答案:0x193在c+语言中,操纵符_表示输出一个换行符。答案:endl4执行“coutchar(a+2)endl;”语句后得到的输出结果为_。答案:c5已知az的ascii码为6590,当执行“int x=c+5;”语句后x的值为_。答案:726已知az的ascii码为6590,当执行“char ch=14*5+2;coutchendl;”语句序列后,得到的输出结果为_。答案:h7假定一个枚举类型的定义

6、为“enum raab,ac,ad,ae;”,则枚举常量ac的值为_。答案:18假定一个枚举类型的定义为“enum rba1,a2=3,a3,a4x=a3;”,则x的值为_。答案:49char、short、int、float、double类型的大小分别为_个字节。10十进制常数28和3.26的类型分别为_和_。答案:int、double11若需要定义一个常值常量,并且使c+能够进行类型检查,则应在定义语句的开始使用保留字_。答案:const/#define max 10012使用const语句定义一个常值常量时,则必须对它同时进行_。答案:初始化/如const int mm=20;13执行“i

7、nt x=45,y=13;coutx/y;”语句序列后得到的输出结果为_。答案:314执行“int x=45,y=13;cout5的相反表达式为_。答案:x+yy逻辑值为_。答案:false 或026若x=5,y=10,则x!=y的逻辑值为_。答案:true 或127假定x=5,则执行“a=(x?10:20);”语句后a的值为_。答案:10 28执行“typedef int datatype;”语句后,在使用int定义整型变量的地方都可以使用_来定义整型变量。答案:datatype五、第三章单选题1当处理特定问题时的循环次数已知时,通常采用()来解决。答案:aa. for循环b. while循

8、环c. do循环d. switch语句2循环体至少被执行一次的语句为()语句。答案:ca. for循环b. while循环c. do循环d. 任一种循环3在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。答案:ba. forb. ifc. dod. while4for语句能够被改写为()语句。答案:da. 复合b. ifc. switchd. while5循环语句“for(int i=0; in; i+) s;”中循环体s被执行的次数为()。答案:ca. 1b. n-1c. nd. n+16下面循环语句执行结束后输出的i值为()。答

9、案:bfor(int i=0; in/2)coutiendl; break;a. n/2b. n/2+1c. n/2-1d. n-17在下面循环语句中内层循环体s语句的执行总次数为()。答案:dfor(int i=0; in; i+)for(int j=i; jn; j+) s;/n+(n-1)+.+1a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/28在下面的while循环语句中,其循环体被执行的次数为()。答案:cint i=0,s=0; while(s20)i+; s+=i;/s=1,3,6,10,15,21a. 4b. 5c. 6d. 79在下面的do循环语句中

10、,其循环体被执行的次数为()。答案:aint i=0; do i+; while(i*i10);/i=0,1,2,3a. 4b. 3c. 5d. 2六、第三章填空题1在switch语句中,每个语句标号所含保留字case后面的表达式必须是_。整型常量2在if语句中,每个else关键字与它前面同层次并且最接近的_关键字相配套。if3作为语句标号使用的c+保留字case和default只能用于_语句的定义体中。switch4执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)_执行。不停止5若while循环的“头”为”whil

11、e(i+=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行_次后正常结束。116若do循环的“尾”为”while(+i10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行_次后正常结束。107当在程序中执行到_语句时,将结束本层循环类语句或switch语句的执行。答案:break8当在程序中执行到_语句时,将结束所在循环语句中循环体的一次执行。答案:continue9在程序中执行到_语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案:return10在程序执行完一个_函数调用后,将结束整个程序的执行过程,返回到操作系统或c+集

12、成开发环境界面窗口。答案:主(或main)七、第三章程序运行结果1. #includevoid main()int x=5;switch(2*x-3) case 4: coutx ;case 7: cout2*x+1 ;case 10: cout3*x-1 ; break;default: coutdefaultendl;coutswitch end.endl;答案:11 14 switch end.c+语言程序设计复习课一、第三章函数功能 1#includeint sa(int a, int b) if(ab) return 1;else if(a=b) return 0;else retu

13、rn -1;答案:比较两个整型参数a和b的大小,若ab则返回1,若a=b则返回0,若a=b & a=c) return a;if(b=a & b=c) return b;return c;答案:求出a,b,c三个数中的最大值并返回。3int se(int n) /n为大于等于1的整数int x; cinx; if(n=1) return x;int m=x;while(-n) cinx; m+=x;return m;答案:求出从键盘上输入的n个整数之和并返回。4double sf(double x, int n) /n为大于等于0的整数double p=1,s=1;for(int i=1;i=

14、n;i+) p*=x; s+=p/(i+1);return s;答案:计算1+x/2+x2/3+.+xn/(n+1)的值并返回。5#includebool sg(int x) /x为大于等于2的整数int a=int(sqrt(x); /取x的平方根int i=2;while(i=a) if(x%i=0) break; i+;if(ix;while(x!=-1) n+; y+=x; cinx;if(n=0) return y; else return y/n;答案:求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。7float fi(int n) /n为大于等于1的整数float

15、x,y=0;do cinx; y+=x*x; while(-n0);return y;答案:求出从键盘上输入的n个常数的平方和并返回8#include#includevoid main()int x,y;cinx;y=int(sqrt(x);/sqrt(x)为求x的算术平方根for(int i=1;i=y;i+)if(x%i=0) cout”x=”i*x/iendl;答案:把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。二、第三章编写函数 1.编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+.+1/n5的最小n值。答案: void main()int i=

16、0; double s=0;/或int i=1; double s=1;while(s5) s+=double(1)/+i;coutn=iendl; 2. 编写一个主函数,计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。void main()int i;/用i作为循环变量 int p=1;/用p作为累乘变量 int s=1;/用s作为累加循环变量 for(i=1;i=10;i+) p*=3; s+=p;coutsendl;3编写一个主函数,已知6a30,15b36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的

17、一组解。答案:void main()int a,b;for(a=6;a=30; a+)for(b=15;b=36;b+)if(2*a+5*b=126) cout(a,b)a; couta;8. 一个二维字符数组a1020能够存储_个字符串,每个字符串的长度至多为_。答案:10、19五、第四章程序运行结果1. #includevoid main() int a10=12,39,26,41,55,63,72,40,83,95;int i1=0, i2=0;for(int i=0;i10;i+) if(ai%2=1) i1+; else i2+;couti1 i2endl;答案:642. #incl

18、udevoid main() int a9=36,25,48,14,55,40,32,66,60;int b1, b2;b1=b2=a0;for(int i=1;ib1) if(b1b2) b2=b1; b1=ai;else if(aib2) b2=ai;coutb1 b2endl;答案:66603. #includevoid main() char a=abcdabcabfgacd;int i1=0, i2=0, i=0;while(ai) if(ai=a) i1+;if(ai=b) i2+;i+;couti1 i2 iendl;答案:4314六、第四章编写程序1. 编写一个函数,函数头格式

19、为“void fun4(char* a, int b)”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中。答案:void fun4(char* a, int b)int i;for(i=0;i=0 & j=9) bj+;a+;c+语言程序设计复习课一、第五章单选题1下面的()函数头格式不正确。答案:daaa(int a, int b)baa(int a, int b=0)caa(int a=0, int b=0)daa(int a=0, int b)2下面的()保留字不能作为函数的返回类型。答案:cavoidbintcnewdlong3下

20、面的函数声明中,“void bc(int a, int b);”的重载函数是()。答案:baint bc(int x, int y);bvoid bc(int a, char b);cfloat bc(int a, int b, int c=0);dvoid bc(int a, int b=0);4声明或定义一个内联函数时,必须在函数开始使用保留字()。答案:castaticbconstcinlinedextern 5在下面的函数声明中,()存在着语法错误。答案:daint bc(int a, int);bint bc(int, int);cint bc(int, int=5);dint bc

21、(int x; int y);6若定义了函数double *function(), 则该函数的返回值为()。答案:ba实数型b实数指针型c函数指针型d数组型7. 下列()的调用方式是引用调用。答案:ca形参和实参都是变量b形参是指针,实参是地址值c形参是引用,实参是变量d形参是变量,实参是地址值8为了提高程序的运行速度,可将不太复杂的函数实现为()。答案:aa内联函数b重载函数c递归函数d函数模板9下面正确的函数原型语句是()。答案:baint function(void a);bvoid function (int);cint function(a); dvoid int(doub10. 函

22、数调用func(exp1,exp2), exp3*exp4-exp5)中所含实参的个数为()个。答案:ba1b2c4d511. 若用数组名作为函数调用的实参,传递给形参的是()答案:aa数组的首地址b数组中第一个元素的值c数组全部元素的值d数组元素的个数12. 文件包含命令中被包含的文件的扩展名()。答案:ca只能是.hb不能是.hc可以是.h或.cppd只能是.cpp二、第五章填空题1在c+语言中,一个函数由_和_组成。答案:函数头、函数体 2在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为_。答案:03函数被调用时,实参向形参的传送分为_和_两种传送方式。答案:引用

23、、值4重载一个函数的条件是:该函数必须在参数的_或参数的_上与其它同名函数有所不同。答案:个数、类型5如果一个函数只允许在同一程序文件中被调用,则应在该函数定义前加上的c+保留字为_。答案:static6如果一个函数直接或间接地调用自身,这样的调用被称为_调用。答案:递归7假定一个函数模板的定义为“templatet cubin(t n)return n*n*n ;”,则类型参数为_。答案:t8对于无返回值函数,定义函数时要用_作为函数类型。答案:void9函数形参的作用域是该函数的_。答案:函数体10c+提供的预处理命令有宏定义命令,条件编译命令和_。答案:文件包含命令11程序的编译是以_为

24、单位进行的。答案:文件三、第五章程序运行结果#include#includedouble sd(double a, double b, char op) double x;switch(op) case +: x=a+b; break;case -: x=a-b; break;case *: x=a*b; break;case /: if(b) x=a/b; else exit(1);break;default: exit(1);return x;void main() int x=25,y=10;coutsd(x,y,-) ;coutsd(x,y,*) ;coutsd(x+y,y,/)end

25、l;答案:15 250 3.52#includevoid main() int a=10, b=20;couta bendl;a*=3;int b=a+35;couta bendl;couta bendl;答案: 1020、3065 、30203#includevoid wf(int& x, int y) x=x+y;y=x+y;coutx,yendl;void main() int x=8, y=15;coutx,yendl;wf(x,y);x=2*x; coutx,yendl;答案: 8,15、 23,38 、46,154#includevoid selectsort(int a, int

26、 n) int i,j,k;for(i=1;in;i+) /进行n-1次选择和交换k=i-1;for(j=i;jn;j+)if(ajak) k=j;int x=ai-1; ai-1=ak; ak=x;void main() int i;int a6=20,15,32,47,36,28;selectsort(a,6);for(i=0; i6; i+) coutai ;coutendl;答案:15 20 28 32 36 47四、第五章函数功能 1bool wb(int a, int n, int x) for(int i=0;in;i+)if(ai=x) return true;return f

27、alse;答案:从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。2templateint fun8(t a, int n, t key)int c=0for(int i=0;i=key) c+;return c;答案:函数模板,从一维数组an中统计出其值大于等于key的元素个数并作为函数值返回。3#includetemplateint wg(tt a, tt b) if(ab) return 1;else if(a=b) return 0;else return -1;答案:模板函数,比较两个变量a和b的大小,若ab则返回1,若a=b则返回0,若ab则返回-1。4. templ

28、atevoid we(type a, type b, int n) for(int i=0;in;i+)bn-i-1=ai;答案:模板函数,把数组a的每个元素按逆序放入数组b中。五、第六章单选题1假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大()字节。答案:ca1b2c4d82假定a为一个字符数组名,则元素a8相对于该数组首地址的字节地址为()。答案:cba4b8c16d323假定a为一个整型数组名,则元素a4相对于该数组首地址的字节地址为()。答案:cca4b8c16d324假定a为一个数组名,则下面的()表示有错误。答案:cbaaib*a+c*ad*(a

29、+1)5用new运算符创建一维数组的正确语句是()。答案:caint *p=new a10;b.int *p=new float10;cint *p=new int10;d.int *p=new int5=1,2,3,4,5六、第六章填空题1假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为_。答案:252假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为_。答案:463假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_。答案:264假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p+);”语句后

30、,p所指对象的值为_。答案:255假定a是一个指针数组,则a+i所指对象的地址比a地址大_字节。答案:4*i6假定a是一个一维数组,则ai的指针访问方式为_。答案:*(a+i)7假定a是一个二维数组,则aij的指针访问方式为_。答案:*(ai+j) 或*(*(a+i)+j)七、第六章程序运行结果1#includevoid main() int a8=3,5,7,9,11,13,15,17;int *p=a;for(int i=0;i8;i+) coutsetw(5)*p+;if(i+1)%4=0) coutendl;答案: 3579 、11 13 15 172#includevoid main

31、() int a9=2,4,6,8,10,12,14,16,18;for(int i=0;i9;i+=2) coutsetw(5)*(a+i) ;coutendl;答案:261014183#includevoid main() int x=20,y=40,*p;p=&x; cout*p ;*p=x+10; cout*p ;p=&y; cout*pendl;*p=y+20; coutx yendl;答案: 203040 、 30604. #includeint lb(int *a, int n) int s=1;for(int i=0;in;i+) s*=*a+;return s;void ma

32、in() int a=1,2,3,4,5,6,7,8;int b=lb(a,5)+lb(&a3,3);coutb=bendl;答案:b=240c+语言程序设计复习课一、第六章写出函数功能1. #includeint* lj(int a, int n) int k=0;for(int i=1;iak) k=i;return &ak;答案:求出数组a中n个元素的最大值元素,返回该元素的地址。2. #includevoid li(int n) int* a=new intn;for(int i=0;iai;for(i=n-1;i=0;i-) cout*(a+i) ;coutn;delete a;答案

33、:把从键盘上输入的n个整数按与输入的相反次序显示出来。3. void lk(int a, int n, int& m) /int a同int*afloat s=0; int i;for(i=0;in;i+) s+=ai; /ai同*(a+i)s/=n;for(i=0,m=0;i=s) m+;答案:求出数组a的n个元素中大于等于平均值的元素个数,该个数由引用参数m返回。二、第七章单选题 1假定一个结构类型的定义为 “struct aint a,b; a* c;”,则该类型的大小为_字节。答案:ba8b12c16d202假定一个结构类型的定义为 “struct dint a; union int

34、b; double c;d* d2;”,则该类型的大小为_字节。答案:da8b12c16d203假定有“struct bookchar title40; float price; book *book;”,则不正确的语句为()。答案:a abook *x=new book;bbook x=c+ programming,27.0;cbook *x=new book;dbook *x=&book;4假定有“struct bookchar title40; float price;book;”,则正确的语句为()。答案:b abook &x= &book;bbook &x=book;cbook &x

35、=new book;dbook &x=book;三、第七章填空题1假定要动态分配一个类型为worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为worker* r= _。答案:new workern;2假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为_。答案:n*(x.a)3假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为_。答案:n*(p-b)4与结构成员访问表达式p-name等价的表达式是_。答案:n(*p).name5与结构成员访问表达式(*fp).score等价的表达式是_。答案:nfp-score四、第七章程序运行结果1.

36、#includestruct worker char name15;/姓名int age;/年龄float pay;/工资;void main() worker x=wangfong,43,1640;worker y, *p;y=x; p=&x; p-pay+=100; y.age y.payendl;coutname age+2 pay+200endl;答案:wangfong431640 、wangfong4519402. #include#includestruct worker char name15;/姓名int age;/年龄float pay;/工资;bool

37、operator=(worker& r1, worker& r2) if(strcmp(, )=0) return true;else return false;void main() worker a4=abc,25,420,def,58,638,ghi,49,560,jkl,36,375;worker x=ghi;for(int i=0; i4; i+) if(ai=x) break; ai.age ai.payendl;答案:ghi 49 5603. #includestruct worker char name15;/姓名int age

38、;/年龄float pay;/工资;bool operator (worker& r1, worker& r2) if(r1.ager2.age) return true;else return false;void main() worker a4=abc,25,420,def,58,638,ghi,49,560,jkl,36,375;worker x=a0;for(int i=1; i4; i+) if(xai) x=ai; x.age x.payendl;答案:def58638五、第七章写出函数功能1void qa(worker a, int n) for(int i=0; ai.ageai.pay;假定结构类型worker 的定义如下:struct worker char name15;/姓名int age;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论