大學計算機《C++程序設(shè)計》試題及答案(六)_第1頁
大學計算機《C++程序設(shè)計》試題及答案(六)_第2頁
大學計算機《C++程序設(shè)計》試題及答案(六)_第3頁
大學計算機《C++程序設(shè)計》試題及答案(六)_第4頁
大學計算機《C++程序設(shè)計》試題及答案(六)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

*/*/大學計算機《C++程序設(shè)計》試題及答案程序設(shè)計第91題(10.0分)題號:519/* 【程序設(shè)計】題目:將運行結(jié)果(100以內(nèi)素數(shù))存入文件。#include<fstream>#include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;constintn=100;intmain(){*********Program**********!**!**!**!**!**!**!**!**!* Ls人 *!**!**!**!**!**!**!**!**!********** End *********}答案:inta[n],i,j;charch,b[256];ofstreamofile;ifstreamifile;//用數(shù)組保存整數(shù)1-100//用數(shù)組保存整數(shù)1-100//1不是素數(shù),置0//該數(shù)已經(jīng)置0,判斷下一個數(shù)a[0]=0;for(i=0;i<n;i++){if(a[i]==0)continue;for(j=i+1;j<n;j++)if(a[j]%a[i]==0)a[j]=0; //是a[i]倍數(shù)的元素置0;ofile.open("myfile2_18.txt");intcount=0;ofile<<"1-"<<n<<”之間的素數(shù):"<<endl;for(i=0;i<n;i++) //輸出所有素數(shù)if(a[i]!=0){ofile<<setw(6)<<a[i];count++;if(count%10==0)ofile<<endl;//每行10個數(shù)據(jù)}ofile.close();cout6"是否要將文件輸出?Y或N"<<endl;cin>>ch;if(ch=='y'||ch=='Y'){ifile.open("myfile2_18.txt");i=0;while(ifile.get(b[i])){//不可用>>,它不能讀白字符,if(b[i]=='\n')break;i++;}b[i]='\0';cout<<b<<endl;count=0;while(1){ifile>>i;//由文件讀入cout<<setw(6)<<i;//屏幕顯示count++;if(count%10==0)cout<<endl;//每行10個數(shù)if(ifile.eof()!=0)break;//最后一個數(shù)據(jù)后面可能沒有回車,直接為文件結(jié)束}ifile.close();cout<<endl;}return0;第92題(10.0分)題號:731/* 【程序設(shè)計】題目:完成函數(shù)sortLine(char*line[],intn);的編寫。其參數(shù)line是一個指向字符串的指針數(shù)組,n是指針數(shù)組元素的個數(shù),該函數(shù)對這些字符串按降序排列。注:在比較了兩個串的大小之后需要交換兩個串時,只需交換line中指向兩個字符串的指針,不必交換串本身。注意:部分源程序給出如下。僅在標有“Program"和“End”的注釋行之間補充代碼,請勿改動其它內(nèi)容。 */#include<fstream>#include<iostream>#include<string>usingnamespacestd;voidgrading();voidsortLine(char*line[],intn){/**********Program**********//**********End**********/}intmain(){chars[4][10]={“abc“,“kjf“,“bde“,“poi“};char*line[4]={s[0],s[1],s[2],s[3]};sortLine(line,4);for(inti=0;i<4;i++){cout<<line[i]<<endl;}//忽略閱讀grading();//忽略閱讀結(jié)束return0;}//以下忽略閱讀voidgrading(){chars[10][100];char*line[10];fstreaminfile;infile.open(“in.txt“,ios::in);for(inti=0;i<10;i++){infile>>s[i];line[i]=s[i];}infile.close();sortLine(line,10);fstreamoutfile;outfile.open("out.txt",ios::out);for(i=0;i<10;i++)outfile<<line[i]<<endl;outfile.close();}答案:for(inti=0;i<n-1;i++)for(intj=i+1;j<n;j++){if(strcmp(line[i],line[j])<0){char*m=line[i];line[i]=line[j];line[j]=m;}}第93題(10.0分)題號:597/* 【程序設(shè)計】題目:從文件中讀入6個數(shù)到數(shù)組中,計算其中正數(shù)的平均值aver.注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>usingnamespacestd;#include<stdio.h>voidwriteinfile(floataver);voidmain(){floata[6],aver;intn=0,j;fstreammyfile;myfile.open("in.txt",ios::in);for(inti=0;i<6;i++)myfile>>a[i];myfile.close();/**********Program**********//**********End**********/writeinfile(aver);}voidwriteinfile(floataver){fstreammyfile;myfile.open("f.txt",ios::out);myfile<<aver<<endl;myfile.close();}答案: aver=0;for(j=0;j<6;j++){if(a[j]>0){n++;aver+=a[j];}}aver/=n;第94題(10.0分)題號:589/* 【程序設(shè)計】題目:已知10個四位數(shù)輸出所有對稱數(shù)及個數(shù)n例如1221,2332都是對稱數(shù)注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>usingnamespacestd;#include<stdio.h>voidwriteinfile(intn);voidmain(){inti,n=0,m[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};for(i=0;i<10;i++){/**********Program**********//**********End**********/}writeinfile(n);}voidwriteinfile(intn){fstreammyfile;myfile.open("f.txt",ios::out);myfile<<n<<endl;myfile.close();}答案: inta,b,c,d;a=m[i]/1000;b=m[i]%1000/100;c=m[i]%100/10;d=m[i]%10;if(a==d&&c==b){cout<<m[i];n++;}第95題(10.0分)題號:669/* 【程序設(shè)計】題目:函數(shù)myStrLen(char*a)返回字符串a(chǎn)的長度。填寫適當?shù)拇a,使得myStrLen()完成正確的功能。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;intmyStrLen(char*str);intgrading();intmain(){charstr[]="Hello,thisisaC++program!";cout<<myStrLen(str)<<endl;//忽略閱讀grading();//忽略閱讀結(jié)束return0;intmyStrLen(char*str){/***************Program*****************//***************End*****************/}//以下忽略閱讀intgrading(){charstr[1000];fstreaminf,outf;inf.open("in.txt",ios::in);outf.open("out.txt",ios::out);for(intk=0;k<10;k++){inf>>str;outf<<myStrLen(str)<<endl;}inf.close();outf.close();return0;}答案:inti=0;while(str[i])i++;returni;第96題(10.0分)題號:530/* 【程序設(shè)計】題目:編寫函數(shù)IfDigitChar(ch),判斷字符ch是否為數(shù)字字符,是則返回1,否則返回0。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在*Program*和*End*所標記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。 */#include<iostream>#include<fstream>usingnamespacestd;intgrading();intIfDigitChar(charch);/*********Program*********//*********End*********/intmain(){charch;cout<<”請輸入一個字符:“<<endl;cin>>ch;if(IfDigitChar(ch))cout<<ch<<"isadigitchar"<<endl;elsecout<<ch<<"isnotadigitchar"<<endl;//忽略閱讀grading();//忽略閱讀結(jié)束return0;}//以下忽略閱讀intgrading(){charm;inti,j;fstreaminfile,outfile;infile.open("in.txt",ios::in);outfile.open("out.txt",ios::out);for(i=0;i<4;i++){for(j=0;j<6;j++){infile>>m;outfile<<IfDigitChar(m);}outfile<<endl;}infile.close();outfile.close();return0;}答案:intIfDigitChar(charch){if(ch>='0'&&ch<='9')return1;elsereturn0;}第97題(10.0分)題號:651/* 【程序設(shè)計】題目:寫一個函數(shù)charmyfun(intscore),實現(xiàn)百分制成績與等級之間的轉(zhuǎn)換關(guān)系:90分以上為"A",80-89為"B",70-79為"C",60-69為"D",60分以下為“E",并將等級返回。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標識Program和End之間填入所編寫的若干語句。*/#include<iostream>#include<fstream>usingnamespacestd;voidgrading();/**********Program**********//**********End**********/intmain(){cout<<”分數(shù)為80分,等級為:"<<myfun(80)<<endl;cout<<”分數(shù)為70分,等級為:"<<myfun(70)<<endl;cout<<”分數(shù)為60分,等級為:"<<myfun(60)<<endl;cout<<”分數(shù)為40分,等級為:"<<myfun(40)<<endl;//忽略閱讀grading();//忽略閱讀結(jié)束return0;}//忽略閱讀voidgrading(){ifstreamrf("in.txt",ios::in);intinfo[4];rf>>info[0]>>info[1]>>info[2]>>info[3];ofstreamwf("out.txt",ios::out);for(inti=0;i<4;i++){wf<<myfun(info[i]);}rf.close();wf.close();}//忽略閱讀結(jié)束答案:charmyfun(intscore){switch(score/10){case10:case9:return'A';case8:return'B';case7:return'C';case6:return'D';default:return'E';}}第98題(10.0分)題號:623/* 【程序設(shè)計】 題目:有一個定義在自然數(shù)上的函數(shù)f(x)定義如下:若x<5,則f(x)=x;若5<=x<15,則f(x)=x+6;若x>=15,則f(x)=x-6。試編寫該函數(shù),輸入*值,返回相應的f(x)值。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在程序中介于"**********Program**********"和"**********End**********"的部分填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;intf(intx){/**********Program**********//**********End**********/}intmain(){ifstreaminf("in.txt",ios::in);ofstreamouf("out.txt",ios::out);intx;while(inf>>x)ouf<<f(x)<<endl;inf.close();ouf.close();return0;}答案:if(x<5)returnx;if(5<=x&&x<15)returnx+6;returnx-6;第99題(10.0分)題號:612/* 【程序設(shè)計】題目:某服裝店經(jīng)營套服,也單件出售。若買的不少于50套,每套80元;若不足50套,則每套90元;單件上衣,每件60元;單條褲子,每條45元。已知要買的上衣和褲子數(shù),編寫函數(shù)計算應付款。函數(shù)原型是intPayfor(intyifu,intkuzi);第一個參數(shù)表示衣服的數(shù)量,第二個參數(shù)表示褲子的數(shù)量注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標識Program和End之間填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;voidwwff();/**********Program**********//**********End**********/intmain(){cout<<Payfor(1,2)<<endl;cout<<Payfor(2,1)<<endl;cout<<Payfor(45,60)<<endl;//忽略閱讀wwff();//忽略閱讀結(jié)束return0;}//忽略閱讀voidwwff(){ifstreamrf("in.txt",ios::in);inty,k;rf>>y>>k;ofstreamwf("out.txt",ios::out);wf<<Payfor(y,k);rf.close();wf.close();}//忽略閱讀結(jié)束答案:intPayfor(intyifu,intkuzi){inttao=0;intpay=0;if(yifu<=kuzi){tao=yifu;kuzi-=yifu;pay=45*kuzi;}else{tao=kuzi;yifu-=kuzi;pay=60*yifu;}if(tao>=50)pay+=tao*80;elsepay+=tao*90;returnpay;}第100題(10.0分)題號:653/* 【程序設(shè)計】題目:請編寫一加密函數(shù),函數(shù)原型是voidencrypt(char*info)該函數(shù)針對輸入字符串的加密規(guī)律是:對字符串的每個字母以該字母后面第4個字母加以替換。例如,字母'A'后面第4個字母是'E',用'£'代替"’。因此,"China"應譯為"Glmre",注意:'V'后面的第4個字母是'A','X'后面的第4個字母是'B'。'Y'后面的第4個字母是'C','Z'后面的第4個字母是'D'。(小寫字母與大寫字母處理相類似)注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標識Program和End之間填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;voidgrading();/**********Program**********//**********End**********/intmain(){chars[10]="aVwpFz";encrypt(s);cout<<"原文是aVwpFz,加密后為“<<s;//忽略閱讀開始grading();//忽略閱讀結(jié)束return0;}//以下忽略閱讀voidgrading(){ifstreamrf("in.txt",ios::in);chars[10];rf>>s;ofstreamwf("out.txt",ios::out);encrypt(s);;wf<<s;rf.close();wf.close();}答案:voidencrypt(char*info){do{if(*info<=86||(*info>=97&&*info<=118))*info+=4;else*info-=22;info++;}while(*info);}第101題(10.0分)題號:720/* 【程序設(shè)計】題目:下面的函數(shù)countchar統(tǒng)計字符串s中非英文字母的個數(shù)并返回。完成該函數(shù)的編寫。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>usingnamespacestd;intcountchar(chars[]){/**********Program**********//**********End**********/intmain(){charstr[201];intcount;for(inti=0;i<150;i++)str[i]=rand()%91+33;str[i]='\0';count=countchar(str);fstreammyfile;myfile.open("out.txt",ios::out);myfile<<count<<endl;myfile.close();return0;}答案:inti=0,cou=0;while(s[i]!='\0'){if(!(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'))cou++;i++;}第102題(10.0分)題號:578/* 【程序設(shè)計】題目:將數(shù)組S中所有小寫字母改寫成大寫字母。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>#include<string>usingnamespacestd;voidwwjt(char[]);voidfun(chars[]){/**********Program**********//**********End**********/}voidmain(){chars[80]="abdsaFDSAFdsafASFDSafghHFDHTjte";fun(s);wwjt(s);}voidwwjt(chars[]){fstreammyfile;myfile.open("out.dat",ios::out);myfile<<s<<endl;myfile.close();}答案: for(inti=0;i<strlen(s);i++)if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-'a'+'A';第103題(10.0分) 題號:658/* 【程序設(shè)計】題目:一個首項大于0的遞增等差數(shù)列前四項和為26,前四項積為880,請編寫一個函數(shù)intmyfun()返回該數(shù)列的第20項的值。提示:如果一個數(shù)列從第二項起,每一項與它的前一項的差等于同一個常數(shù),這個數(shù)列就叫做等差數(shù)列,這個常數(shù)叫做等差數(shù)列的公差。例如:等差數(shù)列:1,3,5,7,9,11。該數(shù)列的公差是2,第5項值是9。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標識Program和End之間填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;voidgrading();/**********Program**********//**********End**********/intmain(){cout<<“該數(shù)列的第20項是:"<<myfun()<<endl;//忽略閱讀grading();//忽略閱讀結(jié)束return0;}//以下忽略閱讀voidgrading(){ofstreamwf("out.txt",ios::out);wf<<“該數(shù)列的第20項是:"<<myfun()<<endl;wf.close();答案:intmyfun(){inta,b,c,d,flag;for(flag=1,a=0;flag&&a<5;++a)for(d=1;flag&&d<5;++d){b=a+(a+d)+(a+2*d)+(a+3*d);c=a*(a+d)*(a+2*d)*(a+3*d);if(b==26&&c==880){returna+19*d;}}return-1;}第104題(10.0分)題號:614/* 【程序設(shè)計】題目:編寫一個函數(shù)compose。,求解1、2、3、4四個數(shù)字能組成多少個互不相同且無重復數(shù)字的三位數(shù)?注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>usingnamespacestd;voidwriteinfile(intn);intcompose(){/**********Program**********//**********End**********/}voidmain(){inti=0;i=compose();cout<<i<<endl;//忽略閱讀開始writeinfile(i);//忽略閱讀結(jié)束}//以下忽略閱讀voidwriteinfile(intn){fstreammyfile;myfile.open("f.txt",ios::out);myfile<<n<<endl;myfile.close();}答案:inti,j,k,n=0;for(i=1;i<5;i++)for(j=1;j<5;j++)for(k=1;k<5;k++)if(i!=k&&i!=j&&j!=k)n++;cout《"能組成"<<n<<"個互不相同且無重復數(shù)字的三位數(shù)";returnn;第105題(10.0分)題號:642/* 【程序設(shè)計】題目:求數(shù)組中離平均數(shù)最近的那個數(shù)。函數(shù)intmid(inta[],intlen);計算數(shù)組a中所有數(shù)的平均值,并返回數(shù)組中離該平均值最近的那個數(shù),編寫該函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>usingnamespacestd;intmid(inta[],intlen);intmain(){inta[20],i,j;fstreaminfile,outfile;infile.open("in.txt",ios::in);outfile.open("out.txt",ios::out);for(j=0;j<10;j++){for(i=0;i<10;i++)infile>>a[i];outfile<<mid(a,10)<<endl;}infile.close();outfile.close();return0;}intmid(inta[],intlen){/**********Program**********//**********End**********/}答案:floatm=0;inti;for(i=0;i<len;i++)m+=a[i];m=m/len;floatcha=a[0]>m?a[0]-m:m-a[0];intnum=a[0];for(i=1;i<len;i++){floats=a[i]>m?a[i]-m:m-a[i];if(s<cha){cha=s;num=a[i];}}returnnum;第106題(10.0分)題號:258/* 【程序設(shè)計】題目:利用順序排序法將10個數(shù)按降序排列注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream.h>#include<fstream.h>#include<stdio.h>voidwriteinfile(intn[]);voidmain(){intn[10]={5,6,4,2,3,7,8,5,6,7},i,j,k;/**********Program**********//**********End**********/writeinfile(n);}voidwriteinfile(intn[]){intk;fstreammyfile;myfile.open("f.txt",ios::out);for(k=0;k<10;k++)myfile<<n[k]<<endl;myfile.close();}答案: for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(n[i]<n[j]){k=n[j];n[j]=n[i];n[i]=k;}第107題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論