C++语言程序设计课程期末综合练习1.docx

上传人:b****8 文档编号:13181167 上传时间:2023-06-11 格式:DOCX 页数:15 大小:20.84KB
下载 相关 举报
C++语言程序设计课程期末综合练习1.docx_第1页
第1页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第2页
第2页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第3页
第3页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第4页
第4页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第5页
第5页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第6页
第6页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第7页
第7页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第8页
第8页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第9页
第9页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第10页
第10页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第11页
第11页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第12页
第12页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第13页
第13页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第14页
第14页 / 共15页
C++语言程序设计课程期末综合练习1.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++语言程序设计课程期末综合练习1.docx

《C++语言程序设计课程期末综合练习1.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课程期末综合练习1.docx(15页珍藏版)》请在冰点文库上搜索。

C++语言程序设计课程期末综合练习1.docx

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<pay*2<

}

输出结果:

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=s)m++;

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=s)m++;

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=s)m++;

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--)

cout<

cout<

}

3.假定一个函数声明为“intFF(inta[],intn);”,要求递归求出数组a中所有n个元素之积并返回。

intFF(inta[],intn)

{

if(n==1)returna[n-1];

elsereturna[n-1]*FF(a,n-1);

//或者if(n==0)return1;

//elsereturna[n-1]*FF(a,n-1);

}

4.假定函数声明为“voidPrint(inta[],intn);”,要求按下标从大到小的次序输出数组a中的n个元素的值,每个值后面接着输出一个逗号,但最后一个值后面为换行符。

voidPrint(inta[],intn)

{

for(inti=n-1;i>0;i--)

cout<

cout<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2