C++语言程序设计课程期末综合练习1.docx
- 文档编号:25695781
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:15
- 大小:20.84KB
C++语言程序设计课程期末综合练习1.docx
《C++语言程序设计课程期末综合练习1.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课程期末综合练习1.docx(15页珍藏版)》请在冰豆网上搜索。
C++语言程序设计课程期末综合练习1
C++语言程序设计课程期末综合练习
一、单选题
1.由C++源程序文件编译而成的目标文件的缺省扩展名为(A.obj)。
2.程序运行中需要从键盘上输入多于一个数据时,各数据之间需要使用(D.空格或回车)符号作为分隔符。
3.设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为(C.x的值)。
4.任何for语句都能够被改写为(D.while)语句。
5.break语句叫做(A.中断退出循环或开关)语句。
6.在下面的一维数组定义中,(C.inta[];)语句有语法错误。
7.下面的(C.new)保留字不能作为函数的返回类型。
8.下面的函数声明中,(B.voidBC(inta,charb);
)是“voidBC(inta,intb);”的重载函数。
9.当一个字符指针指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C.n-1)。
10.假定AB为一个类,则该类的拷贝构造函数的声明语句为(D.AB(AB&);)。
11.下面的保留字(C.new)不能作为函数的返回类型。
12.C++源程序文件的默认扩展名为(A.cpp)。
13.在下列的标识符常量的定义语句中,错误的定义语句是(C.constcharch;)。
14.for循环语句一定能够被改写为(D.while)语句。
15.假定a为一个数组名,则下面的(B.*++a)表达式有语法错误。
16.在下面的二维数组定义中,只有(D.inta[][5]={{1,2,3},{4,5}};
)语句是正确的。
17.下面(B.AA(inta=0,intb);)的函数声明格式不正确。
18.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态数组空间,则使用下面的(D.delete[]p;)语句。
19.假定要对结构类型AB定义加号运算符重载的普通函数,实现两个AB类型对象的加法,并返回相加结果,则该函数的声明语句为(A.ABoperator+(AB&a,AB&b);)。
20.当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使用#include命令,使之包含(D.fstream.h)头文件。
21.枚举类型中的每个枚举常量的值都是一个(A.整数)值。
22.设x和y均为bool量,则逻辑表达式x||y为假的条件是(C.x和y均为假)。
23.声明或定义一个内联函数时,必须在函数开始使用保留字(D.inline)。
24.在下面的函数声明中,存在着语法错误的是(D.BC(intx=6,inty))。
25.假定a为一个整型数组名,则元素a[4]与(C.*(a+4))的表示等价。
26.循环语句“for(inti=0;i 27.将两个字符串连接起来组成一个字符串时,选用(C.strcat())函数。 28.C++编译预处理命令在程序中都是以(B.#)字符开头的。 29.假定有结构定义为“structBOOK{chartitle[40];doubleprice;};”,则该结构类型的长度为(D.48)个字节。 30.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为(B.n)。 二、填空题 1.C++语言中每条复合语句以左花括号开始,并以______}(右花括号)________结束。 2.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则ac的值为___1____。 3.十进制数25表示成符合C++语言规则的八进制数为____031____。 4.表达式x=x+y表示成复合赋值表达式为_____x+=y_____。 5.若x=5,则x>5的逻辑值为____假(false或0)_____。 6.假定一个一维数组的定义为“char*a[8];”,则该数组占用___32_____个字节的存储空间。 7.假定x=10,则表达式2+x++的值为____12____。 8.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为____46____。 9.假定要动态分配一个类型为int的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为int*r=________newint[n];_________。 10.设px指向一个类的动态分配的对象,则执行“deletepx;”语句时,将自动调用该类的______析构函数______。 11.执行“cout<<”x1=”<<18*4;”语句后得到的输出结果为____x1=72____。 12.在c++语言中,用转义字符序列____’\n’____表示输出一个换行。 13.int类型的大小为____4____个字节。 14.假定y的值为5,则增量表达式++y的值为_____6_____。 15.假定a的值为25,则算术表达式a%3的值为____1____。 16.结束所在循环类语句或switch语句执行的中断语句的保留字为_____break_____。 17.函数调用时,实参向形参的传送分为____引用____传送和值传送两种方式。 18.假定a是一个一维数组,则a[i]的指针访问方式为____*(a+i)____。 19.假定一个结构类型的定义为”structC{doublea[5];intn;};”,则该类型的大小为___44_____个字节。 20.若要在程序中进行_____文件______的输入输出操作,则必须在开始的#inlude预处理命令中使用fstream.h头文件。 21.十进制数30表示成符合C++语言规则的十六进制数为____0x1E(字母x和E大小写均可)____。 22.假定一个枚举类型的定义为“enumRB{ab,ac,ad,ae};”,则枚举常量ad的值为____2____。 23.假定y=8,则执行y++*4运算后,y的值为___9_____。 24.算术表达式 +1对应的C++表达式为_________(x+y)/(2*x*y)+1 ___________。 25.关系表达式x<5的相反表达式为_____x>=5_______。 26.假定整数变量x=48,则a/12的运算结果为___4_____。 27.假定一个二维数组的定义语句为“inta[3][4];”,则该数组包含有____12____个整型元素。 28.函数被调用时,实参向形参的传送分为引用传送和___值_____传送两种方式。 29.假定一个结构类型的定义为”structB{inta[5];char*b;};”,则该类型的大小为___24_____字节。 30.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_____构造函数_______使其初始化。 三、写出下列每个程序运行后的输出结果 1.#include voidmain(){ intn=4,y=1; while(n--)y*=3; cout<<"y="< } 输出结果: y=81 2.#include voidmain(){ inta[8]={2,8,10,5,12,7,9,20}; intc=0,i=0; while(i<8){ if(a[i]>10)c++; i++; } cout<<"c="< } 输出结果: c=2 3.#include voidmain(){ inta[5]={3,6,9,12,8}; for(int*p=a;p if(*p>8)cout<<*p<<''; } 输出结果: 912 4.#include intLA(inta[],intn){ ints=0; for(inti=0;i s+=a[i]; returns; } voidmain(){ inta[5]={5,2,8,6,4}; intb=LA(a,5); cout<<"b="< } 输出结果: b=25 5.#include structAB{ charaa[15]; intbb; }; voidmain(){ ABa[4]={{"Apple",25},{"Peach",40},{"Pear",36},{"Tomato",62}}; for(inti=0;i<4;i++) if(a[i].bb<40)cout< cout< } 输出结果: ApplePear 6.#include voidmain(){ ints1=0; for(inti=1;i<=5;i++)s1+=2*i; cout<<”s1=”< } 输出结果: s1=30 7.#include voidmain(){ inta[6]={6,9,12,18,15,20}; intc=0; for(inti=0;i<6;i++) if(a[i]%2==1)c++; cout<<"c="< } 输出结果: c=2 8.#include voidmain(){ inta[3][4]={{1,2,7,8},{5,6,11,15},{9,20,3,4}}; intm=a[0][0]; for(inti=0;i<3;i++) for(intj=0;j<4;j++) if(a[i][j]>m)m=a[i][j]; cout< } 输出结果: 20 9.#include voidmain(){ inta=10,b=15,c; c=a+b; {intb=a+20; c+=a+b; } cout< } 输出结果: 65 10.#include voidmain(){ inta[8]={6,19,4,12,20,5,18,25}; int*p,s=0; for(p=a;p if(*p<10)s+=*p; cout< } 输出结果: 15 11.#include voidmain(){ ints=0; for(inti=1;i<=8;i+=2) s+=i*i; cout<<"s="< } 输出结果: s=84 12.#include voidmain(){ inti=1,s=0; while(s<15)s+=i++; cout< } 输出结果: 6,15 13.#include voidmain(){ inta[8]={36,25,48,14,55,20,47,82}; intc1=0,c2=0; for(inti=0;i<8;i++) if(a[i]<50)c1++;elsec2++; cout< } 输出结果: 62 14.#include intLB(int*a,intn){ intp=1; for(inti=0;i p*=*a;a++; } returnp; } voidmain(){ inta[5]={1,2,3,4,3}; cout< } 输出结果: 72 15.#include structWorker{ charname[15];//姓名 intage;//年龄 floatpay;//工资 }; voidmain(){ Workerx={"wangfong",46,1640}; Workery,*p; y=x;p=&x; cout< } 输出结果: 563280 四、写出下列每个函数的功能 1.intSA(inta,intb){ if(a>b)return1; elseif(a==b)return0; elsereturn-1; } 函数功能: 比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a 2.intLK(inta[],intn){ floats=0;inti; for(i=0;i s/=n; intm=0; for(i=0;i returnm; } 函数功能: 求出数组a的n个元素中大于等于平均值的元素个数并返回。 3.intWD(inta[],intn){ intm=a[0]; for(inti=1;i if(a[i]>m)m=a[i]; returnm; } 函数功能: 从数组a的n个元素中求出最大值并返回。 4.doubleFI(intn){//n为大于等于1的整数 doublex,y=0; do{ cin>>x; y+=x*x; }while(--n); returny; } 函数功能: 求出从键盘上输入的n个整数的平方和并返回。 5.boolWE(inta[],intb[],intn){ for(inti=0;i if(a[i]! =b[i])break; if(i==n)returntrue;returnfalse; } 函数功能: 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。 6.intLK(inta[],intn){ doubles=0; inti,m=0; for(i=0;i s=s/n; for(i=0;i returnm; } 函数功能: 统计出数组a[n]中大于等于其平均值的元素个数并作为函数值返回。 7.doubleFI(intn){//n为大于等于1的整数 doublex,y=0; do{ cin>>x; y+=x; }while(--n); returny; } 函数功能: 求出从键盘上输入的n个整数的和并返回。 8.boolWE(inta[],intb[],intn){ for(inti=0;i if(a[i]! =b[i])break; if(i==n)returntrue;returnfalse; } 函数功能: 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。 9.intLK(inta[],intn){ doubles=0; inti,m=0; for(i=0;i s=s/n; for(i=0;i returnm; } 函数功能: 统计出数组a[n]中大于等于其平均值的元素个数并作为函数值返回。 五、按题目要求编写程序 1.已知6≤a≤30、15≤b≤36,求出满足不定方程2a+5b=126的全部整数组解。 如(13,20)就是其中的一组解,并按此格式输出每组解。 #include voidmain() { inta,b; for(a=6;a<=30;a++) for(b=15;b<=36;b++) if(2*a+5*b==126) cout<<'('< } 2.假定函数声明为“voidPrint(inta[],intn);”,要求按下标从大到小的次序输出数组a中的n个元素的值,每个值后面接着输出一个空格。 voidPrint(inta[],intn) { for(inti=n-1;i>=0;i--)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计 课程 期末 综合 练习