版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
試卷編號(hào):8172
所屬語(yǔ)言:C++
試卷方案:題庫(kù)182道設(shè)計(jì)題
試卷總分:1820分
共有題型:1種
一、程序設(shè)計(jì)共182題(共計(jì)1820分)
第1題(10.0分)題號(hào):664
/*--------------------------------------
【程序設(shè)計(jì)】
題目:已知有結(jié)構(gòu)體類型定義:
structnode
{intdata;
structnode*nextPtr;
};
請(qǐng)編寫函數(shù)voidcomputingList(node*head),對(duì)head
指向的單向鏈表,分別統(tǒng)計(jì)結(jié)點(diǎn)的data成員值為負(fù)數(shù)、0、
正數(shù)的結(jié)點(diǎn)個(gè)數(shù)分別存入變量neglive、zero、positive中。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中
的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編寫的若干語(yǔ)句。
---------------------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidgrading(int,int,int);
structnode
{
intdata;
structnode*nextPtr;
);
voidcomputingList(node*head)
intpositive=0,negtive=0,zero=0;
/**********Prograiii**********/
/**********End**********/
〃忽略閱讀
grading(positive,zero,negtive);
//忽略閱讀結(jié)束
)
structnode*createList(void)
(
node*head=NULL,*pl,*p2;
inti;
inta[10]={-1,3,4,0,9,4,11,-6,2,-10};
head=p2=pl=newnode;
pl->data=a[0];
for(i=l;i<10;i++)
{
pl=newnode;
pl->data=a[i];
p2->nextPtr=pl;
p2=pl;
}
p2->nextPtr=NULL;
return(head);
)
intmain()
(
structnode*head;
head=createList();
computingList(head);
return0;
)
〃以下忽略閱讀
voidgrading(inta,intb,intc)
fstrearnmyfile;
myfile.open("out.txt〃,ios::out);
myfile?a<<z,,z<<b?,/z/?c?endl;
myfile.close();
)
答案:structnode*p;
p=head;
while(p!=NULL)
(
if(p->data>0)
positive++;
elseif(p->data<0)
negtive++;
elseif(p->data==0)
zero++;
p=p->nextPtr;
第2題(10.0分)題號(hào):522
/*-------------------------
【程序設(shè)計(jì)】
題目:設(shè)計(jì)函數(shù)charcapitalize(char);將小寫英文字符變?yōu)閷?duì)應(yīng)的大寫字符。
注意:
1.部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在*program*
和*end*所標(biāo)記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。
2.〃標(biāo)記開(kāi)始與〃標(biāo)記結(jié)束內(nèi)的程序可以忽略閱讀。
-----------------------------------------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidwwjt();
/********Program********/
charcapitalize(charch)
(
if(ch>=,a'&&ch〈二'z')
returnch,a'+'A';
elsereturnch;
)
/********End********/
intmain()
(
inti=0;
charcp[30];
cout<〈〃請(qǐng)輸入包含小寫字母的句子:〃《endl;
cin.getline(cp,30);
while(cp[i]!='\0')
cout<<capitaiize(cp[i++]);
cout?endl;
//忽略閱讀
wwjt();
〃忽略閱讀結(jié)束
return0;
)
〃忽略閱讀
voidwwjt()
(
charins[250];
inti=0;
fstreaminfile,outfile;
infile,open("in.txt〃,ios::in);
outfile.open("out.txt,z,ios::out);
infile,getline(ins,250);
while(ins[i]!-\0*)
(
outfile<<capitalize(ins[i]);
i++;
}
infile,close();
outfile.close();
)
〃忽略閱讀結(jié)束
答案:charcapitalize(charch)
{
if(ch>=*a&&ch<=,z')
returnch-'a'+'A,;
elsereturnch;
)
第3題(10.0分)題號(hào):672
/*-------------------------
【程序設(shè)計(jì)】
題目:函數(shù)mySum(inta[][],intm,intn)返回二維
整數(shù)數(shù)組a中所有元素的和,m、n分別為數(shù)組a的行
數(shù)、列數(shù)。填寫適當(dāng)?shù)拇a,使得mySum()完成正確
的功能。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-----------------------------------------------*/
tlinclude<iostream>
[include<fstream>
usingnamespacestd;
intmySum(inta[2][3],intm,intn);
voidgfkd();
voidmain()
inta[2][3]={{1,2,3},{4,5,6}};
cout?mySum(a,2,3)?endl;
//-------main。函數(shù)此后部分可以不閱讀-
gfkdO;
)
intmySum(inta[2][3],intm,intn)
(
/***************Program*****************/
/***************End^jy***************,,
)
voidgfkd()
{fstreammyF;
inta[2][3];
myF.open("in.dat〃,ios::in);
myF.read((char*)a,sizeof(int)*2*3);
myF.close();
myF.open("out.dat,z,ios::out);
myF?mySum(a,2,3);
myF.closeO;
)
答案:inti,j,s=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
s=s+a[i][j];
returns;
第4題(10.0分)題號(hào):588
/*-----------------------------
【程序設(shè)計(jì)】
題目:求1T000之間同構(gòu)數(shù)的個(gè)數(shù)n。同構(gòu)數(shù)是:
”某數(shù)與其自身的平方數(shù)的后幾位相同
例如:25X25=625,25是同構(gòu)數(shù)。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-----------------------------------------------------*/
#include<fstream>
#include<iostream>
usingnamespacestd;
voidwriteinfile(intn);
voidmain()
intm,k,j,n=0;
for(m=l;m<=1000;m++)
/**********Program**********/
inti=l;
k=m;
while(k!=0)
(
k/=10;
i*=10;
)
if(j%i==m)
n++;
/********格End********橋/
)
writeinfile(n);
)
voidwriteinfile(intn)
(
fstreammyfile;
myfile.open(,zf.txt",ios::out);
myfile<<n<<endl;
myfile.close();
)
答案:inti=l;
k二m;
while(k!=0)
(
k/=10;
i*=10;
}
if(j%i==m)
n++;
第5題(10.0分)題號(hào):725
/*----------------------------
【程序設(shè)計(jì)】
題目:補(bǔ)充函數(shù)aver的代碼,該函數(shù)計(jì)算n個(gè)學(xué)生成績(jī)(通
過(guò)參數(shù)cj傳入)的平均分?jǐn)?shù)。
注意:部分源程序給出如下。僅在標(biāo)有〃Program〃和〃End〃
的注釋行之間補(bǔ)充代碼,請(qǐng)勿改動(dòng)其它內(nèi)容。
-----------------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidgrading0;
floataver(intcj,intn)
(
/**********Program**********/
/**********End**********/
)
intmain()
(
grading0;
return0;
)
voidgrading()
(
fstreaminfile,myfile;
intb[50];
inti;
infile,open(,zin.txt〃,ios::in);
myfile,open(,zout.txt",ios::out);
for(i=0;i<50;i++)
infile>>b[i];
myfile<<(int)aver(b,50)<<endl;
infile,close();
myfile.close();
答案:intsum=0;
inti;
for(i=0;i〈n;i++)
sum+=cj[i];
return(float)sum/n;
第6題(10.0分)題號(hào):709
/*----------------------------
【程序設(shè)計(jì)】
題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-----------------------------------------------------*/
#include<iostream>
ttinclude<fstream>
usingnamespacestd;
intgrading();
intgcd(intm,intn)
(
intr;
r=m%n;
/**********Program**********/
/**********End**********/
returnn;
}
intmain()
intm,n;
cout<〈”請(qǐng)輸入兩個(gè)數(shù):\n〃;
cin?m?n;
if(m<n)
(
inttemp;
temp=m;
m=n;
n=temp;
)
cout?m<<"和的最大公約數(shù)是“<<gcd(m,n)?endl;
cout?m<<"和“<<n<<"的最小公倍數(shù)是"<<m*n/gcd(m,n)?endl;
〃忽略閱讀
grading();
〃忽略閱讀結(jié)束
return0;
)
〃以下忽略閱讀
intgrading()
(
intm,n;
ifstreaminfile("in.txt〃,ios::in);
ofstreamoutfile(〃out.txt〃,ios::out);
if(!infile.is_open()||loutfile.is_open())
(
cout?/zFileOpenError!,z?endl;
return_1;
)
for(inti=0;i<8;i++){
infile?m?n;
outfile?gcd(m,n)<<"〃<<ni*n/gcd(m,n)?endl;
}
infile,close();
outfile.close();
return0;
)
答案:while(r!=O)
(
m=n;
n=r;
r=m%n;
}
第7題(10.0分)題號(hào):667
/*--------------------------
【程序設(shè)計(jì)】
題目:編程計(jì)算,計(jì)算公式如右圖所示。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
--------------------------------------------------------*/
#include<iostream>
ttinclude<fstream>
usingnamespacestd;
intcalcO
(
/**********Program***料*****/
/**********End***科*****/
}
voidmain(void)
intvalue;
value=calc();
cout<<“累計(jì)和s為:〃<<value<<endl;
fstreamoutfile;
outfile.open(/zout.txt〃,ios::out);
outfile?”累計(jì)和s為:〃?value?endl;
outfile.close();
)
答案:inti,k,s;
s=0;
for(i=l;i<=20;i++)
for(k=l;k<=3;k++)
s=s+(i+l)*(i+l)*(k+2)*(k+2);
returns;
第8題(10.0分)題號(hào):265
/*---------------------------------------------
【程序設(shè)計(jì)】
題目:完成函數(shù)cal,該函數(shù)計(jì)算數(shù)組a中的所有數(shù)據(jù)的
最大值及最小值以及它們的差,并存入到全局變
量max、min、ca中。例如數(shù)組a中包含8,43,7,
18,2,56,37,123,25,26則max=123,min=2,
ca=121o
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
--------------------------------------------------*/
#include<iostream>
Winclude<fstream>
usingnamespacestd;
intgradingO;
intmax,min,ca;
voidcal(inta[],intsize)
/**********Program**********/
/**********End**********/
)
intmain()
{
inta[100]={8,43,7,18,2,56,37,123,25,26);
cal(a,10);
cout?z,max=z,<<max<<endl;
cout?,/min=/z<<min<<endl;
cout?,zca=zz?ca?endl;
〃忽略閱讀
grading();
〃忽略閱讀結(jié)束
return0;
)
〃以下忽略閱讀
intgrading()
(
fstreaminfile,outfile;
inta[100],i;
infile,open(,zin.txt〃,ios::in);
outfile.open("out.txt〃,ios::out);
for(i=0;i<20;i++)
{
infile>>a[i];
)
cal(a,20);
outfile<<max<<,zz,<<min<<z,〃<<ca<<endl;
for(i=0;i<15;i++)
infile?a[i];
)
cal(a,15);
outfile<<max?z,/z<<min?z//z?ca?endl;
infile,close();
outfile.closeO;
return0;
}
答案:inti;
max=min=a[0];
for(i=0;i<size;i++)
(
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
)
ca=max-min;
第9題(10.0分)題號(hào):707
/*-------------------------
【程序設(shè)計(jì)】
題目:從文件中讀入n個(gè)字符串,將其中以字母A開(kāi)頭的字符串復(fù)制
到二維字符數(shù)組str1中。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
------------------------------------------------*/
#include<iostream>
#include<fstream>
#include<string>
usingnamespacestd;
#definen5
#defineM20
voidwwjt(intlen);
charstrl[n][M];
voidmain()
inti;
charstr[n][M];
ifstreaminfile("in.txt,z,ios::in);
if(!infile,isopen())
(
cout<<,zFileOpenError!z,<<endl;
return;
)
for(i=0;i<n;i++)
infile?str[i];
infile,close();
intj=0;
/**********Program**********/
/**********End**********/
wwjt(j);
)
voidwwjt(intlen)
(
ofstreamoutfile(z/out.txt〃,ios::out);
if(loutfile.is_open())
(
cout<<z/FileOpenErrorz,?endl;
return;
}
for(inti=0;i<len;i++)
outfile<<strl[i]?"\n";
outfile.close();
}
答案:for(i=0;i<n;i++)
(
if((strcmp(str[i],/ZA,Z)>=0)&&(strcmp(str[i],<0))
{strcpy(strl[j],str[i]);
j++;
}
)
第10題(10.0分)題號(hào):673
/*-----------------------------------------------------
【程序設(shè)計(jì)】
題目:函數(shù)myStrCat(char*dst,char*src)將字符串src
連接到字符串dst的后面。填寫適當(dāng)?shù)拇a,使得
mySum()完成正確的功能。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-----------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidmyStrCat(char*dst,char*src);
voidgfkd();
voidmain()
{chardst[100]=,zHello,
charsrc[100]="Goodluck!”;
myStrCat(dst,src);
cout?dst?endl;
//-------main。函數(shù)此后部分可以不閱讀一
gfkd();
)
voidmyStrCat(char*dst,char*src)
(
/***************Program*************我**/
End*****************/
)
voidgfkd()
fstreammyF;
chardst[100],src[100];
myF.open(z,in.dat〃,ios::in);
myF.read(dst,100);
myF.read(src,100);
myF.closeO;
myF.open(z,out.dat〃,ios::out);
myStrCat(dst,src);
myF?dst;
myF.closeO;
)
答案:inii=0,len;
1en=strlen(dst);
while(src[i])
dst[len++]=src[i++];
dst[len]='\0';
第11題(10.0分)題號(hào):723
/*----------------------------
【程序設(shè)計(jì)】
題目:編寫函數(shù)eachPrime,判斷兩個(gè)正整數(shù)m和n是否為
互質(zhì)數(shù)。若是,返回1;否則,返回
互質(zhì)數(shù):最大公約數(shù)為1的兩個(gè)數(shù)稱為互質(zhì)數(shù)。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
不妥//
#include<iostream>
^include<fstream>
#include<cstring>
usingnamespacestd;
inteachPrime(intm,intn)
/**********Program**********/
/**********End**********/
voidgrading();
intmain()
{
intnuml,num2,result;
cout<<"Pleaseentertwointeger(>0):\n〃;
cin?numl?num2;
if(numl<=0I|num2<=0)
cout?Inputerror!\n/z;
result=eachPrime(numl,num2);
if(result==1)
cout?numl?和?num2<<”是互質(zhì)數(shù)!\n〃;
else
cout?numl?和〃<<num2<<“不是互質(zhì)數(shù)!\n〃;
〃忽略閱讀
grading();
〃忽略閱讀結(jié)束
return0;
)
〃以下忽略閱讀
voidgrading()
(
intnl,n2,result;
fstreaminfilel72,myfile;
infilel72.open(,zin172.txt〃,ios::in);
myfile.open("out172.txt〃,ios::out);
for(inti=0;i<10;i++)
infilel72?nl?n2;
result=eachPrime(nl,n2);
myfile<<result<<endl;
!
infilel72.close();
myfile.close();
答案:inttemp;
while(n!=0)
(
temp=m;
m=n;
n=temp%n;
}
if(m=1)
return1;
else
return-1;
第12題(10.0分)題號(hào):529
/*----------------------------
【程序設(shè)計(jì)】
題目:定義函數(shù)doublemax(doublea,doubleb,doublec)實(shí)現(xiàn)求三個(gè)實(shí)數(shù)中的最大值。
注意:
1.部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在*program*
和*end*所標(biāo)記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。
2.〃忽略閱讀與〃忽略閱讀結(jié)束內(nèi)的程序可以忽略閱讀。
----------------------------------------------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidwjt();
/*********Program****橋***/
/*********End*********/
voidmainO
(
cout?max(3.2,7.4,4.5)?endl;
〃忽略閱讀
wwjt();
〃忽略閱讀結(jié)束
)
〃忽略閱讀
voidwwjt()
(
doublem,n,1;
fstreaminfile,outfile;
infile,open(〃in.txt",ios::in);
outfile.open("out.txt,z,ios::out);
for(inti=0;i<2;i++)
{
infile?m;
infile?n;
infile?l;
outfile?max(m,n,l)?endl;
}
infile,close();
outfile.close();
)
〃忽略閱讀結(jié)束
答案:doublemax(doublea,doubleb,doublec)
(
if(a>b&&a>c)returna;
if(b>a&&b>c)returnb;
returnc;
)
第13題(10.0分)題號(hào):697
/*-----------------------------
【程序設(shè)計(jì)】
題目:郵政匯款的收費(fèi)標(biāo)準(zhǔn)是匯款金額的1%,但單筆收費(fèi)上限是50元。
編寫一個(gè)函數(shù)doubleshouFei(doublemoney),根據(jù)輸入的
匯款金額money,返回所要收取的費(fèi)用。
注意:僅在標(biāo)有〃Program〃和〃End〃的注釋行之間補(bǔ)充填寫代碼。
請(qǐng)勿改動(dòng)主函數(shù)main和其它任何已有內(nèi)容。
------------------------------------------------*/
#include<iostream.h>
#include<fstream.h>
voidwriteinfile();
/**********Program**********/
/**********End**********/
voidmain()
(
cout<〈〃輸入?yún)R款金額:〃;
doublem;
cin>>m;
cout<<“本次匯款收費(fèi):〃<<shouFei(m)?endl;
writeinfile();
)
voidwriteinfile()
(
doublem;
ifstreaminFile("in.txt〃,ios::in|ios::nocreate);
if(linFile)
(
cerr<<”無(wú)法打開(kāi)數(shù)據(jù)文件in.txt。需要核查!"<<endl;
return;
)
fstreammyfile;
myfile.open(〃out.txt〃,ios::out);
if(!myfile.is_open())
cerr<<”無(wú)法打開(kāi)數(shù)據(jù)文件out.txt。需要核查!“<<endl;
return;
}
for(inti=0;i<3;i++)
(
inFile?m;
if(inFile.fail())break;
myfile<<shouFei(m)<<endl;
}
inFile,close();
myfile.close();
)
答案:doubleshouFei(doublemoney)
(
doublesf=0;
if(money<0)return0;
sf=money*。.01;
if(sf>50.0)
sf=50.0;
returnsf;
)
第14題(10.0分)題號(hào):695
/*---------------------------------
【程序設(shè)計(jì)】
題目:請(qǐng)輸出個(gè)、十、百位數(shù)字各不相同的所有三位數(shù),
結(jié)果寫入f2.txt中,一個(gè)數(shù)一行。
要求:輸出時(shí)按從小到大的順序輸出。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識(shí)Program和
End之間填入所編寫的若干語(yǔ)句。
*/
^include<iostream>
#include<fstream>
usingnamespacestd;
intmain()
(
inti,j,k,count=0;
ofstreamoutput;
output,open(〃f2.txt",ios::out);
/**********Program**********/
/**********End**********/
output,close();
cout?z/Presstheenterkeytoexit!?endl;
cin.ignore(cin.rdbuf()->in_avail()+1);
return0;
}
答案:for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=1;k<10;k++)
(
if(i!=j&&j!=k&&i!=k)
(
output<<k?j?i;
count++:
if(count==60)
(
count=0;
output?endl;
)
else
output<<〃;
}
第15題(10.0分)題號(hào):647
/*--------------------------
【程序設(shè)計(jì)】
題目:下面程序中的函數(shù)char*delc(char*s,charc);
去掉字符串s中的字符c,并將新得到的字符串返回,完成
該函數(shù)。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
---------------------------------------------------*/
#include<fstream>
#include<iostream>
#include<string>
usingnamespacestd;
char*delc(char*s,charc);
intniainO
(
inti;
chars[100],c='a';
fstreaminfile,outfile;
infile,openin.txt",ios::in);
outfile.open(/zout.txt",ios::out);
for(i=0;i〈20;i++)
(
infile?s;
dele(s,c);
outfile?s?endl;
c++;
)
infile,close();
outfile.closeO;
return0;
}
char*delc(char*s,charc)
/**********Prograiii**********/
/**********End**********/
答案:char*p;
while(p=strchr(s,c))
(
strcpy(p,p+1);
)
returns;
第16題(10.0分)題號(hào):595
/*-----------------------------
【程序設(shè)計(jì)】
題目:己知三個(gè)數(shù)a,b,c,按由小到大的順序存入a,b,
c中并輸出。
三個(gè)數(shù)a,b,c的值從已有文件infile596.txt中讀
取。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-----------------------------------------------------*/
#include<fstream>
#include<iostream>
usingnamespacestd;
#include<stdio.h>
voidwriteinfile(inta,intb,intc);
voidmain()
(
inta,b,c,t;
ifstreamifile;
ifile.open(,zinfile596.txt〃,ios::in);
if(!ifile)
cout<<〃文件打開(kāi)失敗〃;
return1;
)
ifile?a?b?c;
ifile.close();
/**********Program**********/
/**********End**********/
writeinfile(a,b,c);
return0;
}
voidwriteinfile(inta,intb,intc)
(
fstreammyfile;
myfile.open(,zf.txt",ios:;out);
myfile<Xa<<",”<Xc〈〈endl;
myfile.close();
}
答案:
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
第17題(10.0分)題號(hào):699
/*--------------------------
【程序設(shè)計(jì)】
題目:編寫函數(shù)pfh,功能是返回兩個(gè)實(shí)數(shù)的平方和。
注意:僅在標(biāo)有"Program"和"End"的注釋行之間補(bǔ)充填寫代碼。
請(qǐng)勿改動(dòng)主函數(shù)main和其它任何已有內(nèi)容。
------------------------------------------------*/
#include<iostream.h>
#include<fstream.h>
/**********Program**********/
/**********End**********/
intgrading();
intmain()
(
cout<〈〃輸入實(shí)數(shù)x,y:〃;
doublex,y;
cin?x>>y;
cout<<“它們的平方和是:"<<pfh(x,y)?endl;
〃忽略閱讀
grading();
〃忽略閱讀結(jié)束
return0;
}
〃以下忽略閱讀
intgrading()
(
doublex,y;
ifstreaminFile(〃in.txt〃,ios::in|ios::nocreate);
if(!inFile)
(
cerr<<〃無(wú)法打開(kāi)數(shù)據(jù)文件in.txt。需要核查!〃<<endl;
return1;
)
fstreammyfile;
myfile.open("out.txt〃,ios::out);
if(!myfile.is_open())
cem?”無(wú)法打開(kāi)數(shù)據(jù)文件out.txt。需要核查!"<<endl;
return1;
}
for(inti=0;i<4;i++){
inFile?x?y;
myfile?(int)pfh(x,y)?endl;〃在此僅輸出整數(shù)部分
)
inFile.close();
myfile.close();
return0;
)
答案:doublepfh(doublex,doubley)
(
returnx*x+y*y;
)
第18題(10.0分)題號(hào):586
【程序設(shè)計(jì)】
題目:編寫函數(shù)getSumO求整數(shù)m的各位數(shù)字之和并返回該值。
例如m=252時(shí),各位數(shù)字之和為9。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
—―――——---------------------------------———-------——*/
#include<fstream>
#include<iostream>
usingnamespacestd;
#include<stdio.h>
voidwriteinfile();
intgetSum(intm)
/**********program**********/
/**********End**********/
}
voidmain()
(
intm,s=0;
m=252;
s=getSum(m);
cout?s;
writeinfileO;
)
voidwriteinfile()
(
fstreammyfile;
myfile.open(,,f2.txt〃,ios::out);
myfile?getSum(252)?endl;
myfile?getSum(1457)<<endl;
myfile.close0;
)
答案:---------------------
ints=0,n;
while(m!=0)
{n=m%10;s+=n;m=m/10;)
returns;
第19題(10.0分)題號(hào):636
/*--------------------------
【程序設(shè)計(jì)】
題目:約瑟夫問(wèn)題
這是17世紀(jì)的法國(guó)數(shù)學(xué)家加斯帕在《數(shù)目的游戲問(wèn)題》中講的一個(gè)故事:15個(gè)教徒和15個(gè)
非教徒在深海上遇險(xiǎn),必須將一半的人投入海中,其余的人才能幸免于難,于是想了一個(gè)
辦法:30個(gè)人圍成一圓圈,從第一個(gè)人開(kāi)始依次報(bào)數(shù),每數(shù)到第九個(gè)人就將他扔入大海,
如此循環(huán)進(jìn)行直到僅余15個(gè)人為止。問(wèn)怎樣排法,才能使每次投入大海的都是非教徒。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編
寫的若干語(yǔ)句。
-------------------------------------------------------*/
#include<iostream>
#include<fstream>
usingnamespacestd;
voidoutput(inti);
voidcircle(structnodelink[]);
structnode
(
intnextp;/*指向下一個(gè)人的指針(下一個(gè)人的數(shù)組下標(biāo))*/
intno_out;/*是否被扔下海的標(biāo)記。1:沒(méi)有被扔下海。0:已被扔下海*/
}link[31];/*30個(gè)人,0號(hào)元素沒(méi)有使用*/
intmain()
(
inti;
for(i=l;i<=30;i++)/*初始化結(jié)構(gòu)數(shù)組*/
(
1ink[i].nextp=i+1;/*指針指向下一個(gè)人(數(shù)組元素下標(biāo))*/
link[i].no_out=l;/*標(biāo)志置為1,表示人都在船上*/
}
link[30].nextp=1;/*笫30個(gè)人的指針指向第一個(gè)人以構(gòu)成環(huán)*/
circle(link);
for(i=l;i<=30;i++)/*輸出排列結(jié)果*/
(
cout<X(link[i].noout?〃教徒〃:"非教徒");
output(link[i].no_out?l:0);/*0:表示被扔下海的非教徒,1:表示在船I:
的教徒*/
)
cout?endl;
return0;
voidcircle(structnodelink[])
/**********program**********/
/**********Prograiii**********/
voidoutput(inti)
ofstreammyfile;
myfile.open(〃f2.txt〃,ios::app);
myfile<<i;
myfile.close();
答案:
inti,j,k;
j=30;/*j:指向已經(jīng)處理完畢的數(shù)組元素,從link[i]指向的人開(kāi)始計(jì)數(shù)*/
for(i=0;i<15;i++)/*i:已扔下海的人數(shù)計(jì)數(shù)器*/
(
for(k=0;;)/*k:決定哪個(gè)人被扔下海的計(jì)數(shù)器*/
if(k<9)
(
j=link[j].nextp;/*修改指針,取下一個(gè)人*/
k+=link[j].no_out;/*進(jìn)行計(jì)數(shù)。因已扔下海的人計(jì)標(biāo)記為0*/
)
elsebreak;/*計(jì)數(shù)到15則停止計(jì)數(shù)*/
link[j].no_out=0;/*將標(biāo)記置0,表示該人已被扔下海*/
第20題(10.0分)題號(hào):688
/*----------------------------
【程序設(shè)計(jì)】
題目:函數(shù)compare比較兩個(gè)長(zhǎng)度為N的數(shù)組是否相等(即
兩數(shù)組中下標(biāo)相同的數(shù)組元素均相等)。請(qǐng)完成該
函數(shù)。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它
函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識(shí)Program和
End之間填入所編寫的若干語(yǔ)句。
------------------------------------------------*/
#include<fstream>
#include<iostream>
usingnamespacestd;
voidcompare(inta[],intb[],intN)
{
boolequal=true;
ofstreamoutfile;
outfile.open(,zf2.txt",ios::out);
/**********Program**********/
/**********End**********/
if(equal)
outfile<<"Equal!”<<endl;
else
outfile?”Notequal!z/<<endl;
outfile.close();
)
voidinput(inta[],intb[])
(
intindex;
ifstreaminput;
input,open(〃fl.txt",ios::in);
for(index=0;index<200;index++)
input?a[index];
for(index=0;index<200;index++)
input?b[index];
)
intmainO
(
inta[200],b[200]:
input(a,b);
compare(a,b,200);
cout?z/Presstheenterkeytoexit!”?endl;
cin.ignore(cin.rdbuf()->inavail()+1);
return0;
)
答案:for(intindex=0;index<200;index++)
{
if(a[index]!=b[index])
(
equal=false;
break;
}
)
第21題(10.0分)題號(hào):621
/*--------------------------------------------------
【程序設(shè)計(jì)】
題目:已知某文本文件in.txt中存放有若干整數(shù),請(qǐng)將其按照
從小到大的順序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 22200.5-2025低壓電器可靠性第5部分:家用和類似用途的剩余電流動(dòng)作斷路器可靠性試驗(yàn)方法
- 云南省保山市龍陵縣第一中學(xué)2024-2025學(xué)年高二下學(xué)期期末考試地理試題(含答案)
- 山東省棗莊市滕州市2025-2026學(xué)年上學(xué)期期末七年級(jí)地理試卷(含答案)
- 湖南省岳陽(yáng)市岳陽(yáng)縣第一中學(xué)2025-2026學(xué)年高一上學(xué)期1月月考語(yǔ)文試題(含答案)
- 2025~2026學(xué)年濟(jì)南市天橋區(qū)八年級(jí)第一學(xué)期生物期末考試試題以及答案
- 安徽省阜陽(yáng)市2025-2026學(xué)年高三上學(xué)期教學(xué)質(zhì)量監(jiān)測(cè)(期末)語(yǔ)文試卷含答案
- 2025-2026學(xué)年河北省張家口市橋東區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 化工企業(yè)安全講課課件
- 飛行培訓(xùn)教學(xué)課件
- 飛機(jī)表面修復(fù)技術(shù)
- 預(yù)算績(jī)效自評(píng)報(bào)告培訓(xùn)
- DB14-T 1734-2025 鍋爐用甲醇燃料儲(chǔ)供設(shè)施技術(shù)條件
- 浙江省寧波市鄞州區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末英語(yǔ)試題(含答案、聽(tīng)力原文無(wú)音頻)
- 提高連鑄機(jī)群錨地腳螺栓安裝一次合格率(修訂)4-11
- 礦山作業(yè)安全事故調(diào)查處理制度
- GB/T 45013-2024精細(xì)陶瓷基片的熱疲勞試驗(yàn)方法
- 《管理學(xué)基礎(chǔ)》教學(xué)大綱
- 充電樁場(chǎng)地租賃協(xié)議(范本)
- T-CI 263-2024 水上裝配式鋼結(jié)構(gòu)棧橋(平臺(tái))施工技術(shù)規(guī)程
- 云南省楚雄州2023-2024學(xué)年上學(xué)期期末教育學(xué)業(yè)質(zhì)量監(jiān)測(cè)九年級(jí)歷史試卷(含答案)
- 凝血功能檢測(cè)方法與臨床意義
評(píng)論
0/150
提交評(píng)論