《C++语言程序设计》自检自测题三及答案.docx

上传人:b****3 文档编号:3848184 上传时间:2022-11-25 格式:DOCX 页数:13 大小:17.62KB
下载 相关 举报
《C++语言程序设计》自检自测题三及答案.docx_第1页
第1页 / 共13页
《C++语言程序设计》自检自测题三及答案.docx_第2页
第2页 / 共13页
《C++语言程序设计》自检自测题三及答案.docx_第3页
第3页 / 共13页
《C++语言程序设计》自检自测题三及答案.docx_第4页
第4页 / 共13页
《C++语言程序设计》自检自测题三及答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《C++语言程序设计》自检自测题三及答案.docx

《《C++语言程序设计》自检自测题三及答案.docx》由会员分享,可在线阅读,更多相关《《C++语言程序设计》自检自测题三及答案.docx(13页珍藏版)》请在冰豆网上搜索。

《C++语言程序设计》自检自测题三及答案.docx

《C++语言程序设计》自检自测题三及答案

《C++语言程序设计》自检自测题(三)及答案

一、给出下列程序运行后的输出结果

1.

#include

voidmain(){

ints1=0,s2=0;

for(inti=0;i<10;i++)

if(i%2)s1+=i;

elses2+=i;

cout<

}

2.

#include

voidmain(){

inta[8]={8,19,26,15,6,24,27,18};

inti2=0,i3=0;

for(inti=0;i<8;i++)

if(a[i]%2==0)i2++;

elseif(a[i]%3==0)i3++;

cout<

}

3.

#include

voidmain(){

inta[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};

intm=a[0][0];

intii=0,jj=0;

for(inti=0;i<3;i++)

for(intj=0;j<4;j++)

if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}

cout<

}

4.

#include

voidmain(){

inta=10,b=15;

cout<

{a*=3;

intb=a+20;

cout<

}

cout<

}

5.

#include

voidmain(){

intx=20,y=40,*p;

p=&x;

cout<<*p<<’’;

*p=x+10;

p=&y;

cout<<*p<

*p=y+20;

cout<

}

6.

#include

voidSB(charch){

switch(ch){

case’A’:

case’a’:

cout<<”well!

”;break;

case’B’:

case’b’:

cout<<”good!

”;break;

case’C’:

case’c’:

cout<<”pass!

”;break;

default:

cout<<”bad!

”;break;

}

cout<

}

voidmain(){

chara[6]=”Abcaf”;

for(inti=0;a[i];i++)SB(a[i]);

}

7.

#include

voidmain(){

inta[8]={36,25,48,14,55,40,72,40};

intb1,b2;

b1=b2=a[0];

for(inti=1;i<8;i++)

if(a[i]>b1){

if(b1>b2)b2=b1;

b1=a[i];

}

cout<

}

8.

#include

voidmain(){

inta[8]={3,5,7,9,11,13,15,17};

int*p=1;

for(inti=0;i<8;i++){

cout<

if((i+1)%3==0)cout<

}

}

9.

#include

voidLG(int*&a,int&m){

a=newint[m];

int*p=a;

for(inti=0;i

*p++=i*i;

}

voidmain(){

int*b,n=5;

LG(b,n);

for(inti=0;i

cout<

cout<

delete[]b;

}

 

10.

#include

#include

structWorker{

charname[5];//姓名

intage;//年龄

floatpay;//工资

};

voidmain(){

Workerx;

char*t=”WeiRong”;

intd=45;floatf=1235;

strcpy(x.name,t);

x.age=d;x.pay=f;

cout<

}

11.

#include

voidmain(){

ints=0;

for(inti=1;i<=5;i++)

s+=i*i;

cout<<”s=”<

}

12.

#include

voidmain(){

ints=0;

for(inti=1;;i++){

if(s>50)break;

if(i%2==0)s+=i;

}

cout<<”i,s=”<

}

13.

#include

intLB(int*a,intn){

ints=1;

for(inti=0;i

s*=*a++;

returns;

}

voidmain(){

inta[]={1,2,3,4,5,6,7,8};

cout<

cout<

}

14.

#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

voidmain(){

Workerx{“wangfong”,43,640};

Workery,*p;

y=x;p=&x;

cout<

cout<name<<’’<age*2<<’’<pay+100<

}

二、写出下列每个函数的功能

1.

#include

intS(inta,intb){

if(a>b)return1;

elseif(a==b)return0;

elsereturn-1;

}

2.

#include

boolSG(intx){//x为大于等于2的整数

inta=int(sqrt(x));//取x的平方根

inti=2;

while(i<=a){

if(x%i==0)break;

i++;

}

if(i<=a)return0;

elsereturn1;

}

3.

//structWorker{

//charname[15];//姓名

//intage;//年龄

//floatpay;//工资

};

voidQ(Workera[],intn){

for(inti=0;i

cin>>a[i].name>>a[i].age>>a[i].pay;

}

4.

#include

#include

voidJD(char*fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件

//假定该文件保存着一批整数

{

ifstreamfin(fname,ios:

:

in|ios:

:

nocreate\ios:

:

binary)

intx,s=0,n=0;

while(fin.read((char*)&x,sizeof(x))){

s+=x;n++;

}

cout<

fin.close();

}

5.

floatFI(intn){

//n为大于等于1的整数

floatx,y=0;

do{

cin>>x;

n--;y+=x*x;

}while(n>0);

returny;

}

6.

#include

voidWA(inta[],intn){

for(inti=0;i

intk=i;

for(intj=i+1;j

if(a[j]

intx=a[i];a[i]=a[k];a[k]=x;

}

}

7.

#include

voidLI(intn){

int*a=newint[n];

for(inti=0;i>a[i];

for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’;

cout<<’\n’;

delete[]a;

}

8.

#include

#include

#include

voidJA(char*fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件

{

ofstreamfout(fname);

chara[20];

cin>>a;

while(strcmp(a,”end”)!

=0){

fout<

cin>>a;

}

fout.close();

}

9.

intWC(inta[],intn,intk){

intc=0;

for(inti=0;i

if(a[i]>=k)c++;

returnc;

}

10.

#include

int*LJ(inta[],intn){

intk=0;

for(inti=1;i

if(a[i]>a[k])k=i;

return&a[k];

}

11.

//structDNode{

//doubledata;//值域

//DNode*next;//指针域

//};

voidQB(DNode*&f,intn){

if(n==0){f=NULL;return;}

f=newDNode;

cin>>f->data;

DNode*p=f;

while(--n){

p=p->next=newDNode;

cin>>p->data;

}

p->next=NULL;

}

12.

#include

#include

#include

intJB(char*fname,char*key)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

{

ifstreamfin(fname);

chara[20];

inti=0;

while(fin>>a)

if(strcmp(a,key)==0)i++;

fin.close();

returnI;

}

三、编程

1.已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a+5b=126的全部整数组解。

如(13,20)就是其中的一组解。

2.编写一个递归函数intFF(inta[],intn),求出数组a中所有n个元素的平方之和并返回。

3.编写一个函数voidSelectSort(inta[],intn),采用选择排序的方法按升序排列数组a中的n个元素。

参考答案

一、给出下列程序运行后的输出结果

1.2520

2.52

3.2120

4.1015

3050

3015

5.2040

3060

6.well!

good!

pass!

well!

bad!

7.7255

8.357

91113

1517

9.169410

10.WeiRong451235

11.s=55

12.i,s=15,56

13.120120360

14.wangfong43640

wangfong86740

二、写出下列每个函数的功能

1.比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a

2.判断x是否为一个质数,若是则返回1,否则返回0。

3.从键盘输入n个Worker类型的记录到一维数组a中。

4.从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

5.求出从键盘上输入的n个整数的平方和并返回。

6.采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

7.把从键盘上输入的n个整数按与输入的相反次序显示出来。

8.从键盘上输入一组字符串到fname文件中,直到输入标志结束的字符串“end”为止。

9.统计出数组a中大于等于值为k的元素个数并返回。

10.求出数组a中n个元素的最大值元素,返回该元素的地址。

11.建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。

12.求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。

 

三、编程

1.

#include

voidmain()

{

inta,b;

for(a=6;a<=30;a++)

for(b=15;b<=36;b++)

if(2*a+5*b==126)cout<<’(‘<

}

2.

intFF(inta[],intn)

{

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

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

}

3.

voidSelectSort(inta[],intn)

{

inti,j,k;

for(i=1;i

k=i-1;

for(j=i;j

if(a[j]

intx=a[i-1];a[i-1]=a[k];a[k]=x;

}

}

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

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1