1、大学计算机C+程序设计试题及答案六大学计算机C+程序设计试题及答案程序设计第91题 (10.0分) 题号:519/*-【程序设计】-题目:将运行结果(100以内素数)存入文件。-*/#include#include#include#includeusing namespace std;const int n=100;int main()*Program* End *答案: int an,i,j; char ch,b256; ofstream ofile; ifstream ifile; for(i=0;in;i+) ai=1+i; /用数组保存整数1-100 a0=0; /1不是素数,置0 f
2、or(i=0;in;i+) if(ai=0) continue; /该数已经置0,判断下一个数 for(j=i+1;jn;j+) if(aj%ai=0) aj=0; /是ai倍数的元素置0; ofile.open(myfile2_18.txt); int count=0; ofile1-n之间的素数:endl; for(i=0;in;i+) /输出所有素数 if(ai!=0) ofilesetw(6)ai; count+; if(count%10=0) ofileendl; /每行10个数据 ofile.close(); cout是否要将文件输出?Y或Nch; if(ch=y|ch=Y) if
3、ile.open(myfile2_18.txt); i=0; while(ifile.get(bi)/不可用,它不能读白字符, if(bi=n) break; i+; bi=0; coutbi;/由文件读入 coutsetw(6)i;/屏幕显示 count+; if(count%10=0) coutendl; /每行10个数 if(ifile.eof()!=0) break;/最后一个数据后面可能没有回车,直接为文件结束 ifile.close(); coutendl; return 0;第92题 (10.0分) 题号:731/*-【程序设计】-题目:完成函数sortLine(char * l
4、ine, int n);的编写。 其参数line是一个指向字符串的指针数组,n是指针 数组元素的个数,该函数对这些字符串按降序排列。注: 在比较了两个串的大小之后需要交换两个串时,只需 交换line中指向两个字符串的指针,不必交换串本身。-注意:部分源程序给出如下。仅在标有Program和End的 注释行之间补充代码,请勿改动其它内容。 -*/#include #include #include using namespace std;void grading();void sortLine(char * line, int n)/*Program*/ /* End */ int main()
5、 char s410=abc, kjf, bde, poi; char *line4 = s0,s1,s2,s3; sortLine(line,4); for(int i=0;i4;i+) coutlineiendl; /忽略阅读 grading(); /忽略阅读结束 return 0;/以下忽略阅读void grading() char s10100; char *line10; fstream infile; infile.open(in.txt,ios:in); for(int i=0;isi; linei=si; infile.close(); sortLine(line,10); f
6、stream outfile; outfile.open(out.txt,ios:out); for(i=0;i10;i+) outfilelineiendl; outfile.close();答案: for(int i=0;in-1;i+) for(int j=i+1;jn;j+) if (strcmp(linei,linej)0) char *m=linei; linei=linej; linej=m; 第93题 (10.0分) 题号:597/*-【程序设计】-题目: 从文件中读入6个数到数组中,计算其中正数的平均值aver.-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中
7、的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#includeusing namespace std;#include void writeinfile(float aver);void main() float a6,aver; int n=0,j; fstream myfile; myfile.open(in.txt,ios:in); for(int i=0;iai; myfile.close();/*Program*/* End */ writeinfile(aver);void writeinfile(float aver) fstream myfile;
8、 myfile.open(f.txt,ios:out); myfileaverendl; myfile.close();答案:- aver=0; for(j=0;j0) n+; aver+=aj; aver/=n;-第94题 (10.0分) 题号:589/*-【程序设计】-题目: 已知10个四位数输出所有对称数及个数 n 例如1221,2332都是对称数-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#includeusing namespace std;#include void writeinfil
9、e(int n);void main()int i,n=0,m10=1221,2243,2332,1435,1236,5623,4321,4356,6754,3234;for(i=0;i10;i+)/*Program*/* End */writeinfile(n);void writeinfile(int n)fstream myfile;myfile.open(f.txt,ios:out);myfilenendl;myfile.close();答案:-int a,b,c,d;a=mi/1000;b=mi%1000/100;c=mi%100/10;d=mi%10;if(a=d&c=b)cout
10、mi;n+;-第95题 (10.0分) 题号:669/*-【程序设计】-题目:函数myStrLen(char *a)返回字符串a的长度。填写 适当的代码,使得myStrLen()完成正确的功能。 -注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#include using namespace std;int myStrLen(char *str);int grading();int main() char str=Hello, this is a C+ program!; cout myStrLen(s
11、tr) endl; /忽略阅读 grading(); /忽略阅读结束 return 0;int myStrLen(char *str) /* Program */ /* End */以下忽略阅读int grading() char str1000; fstream inf,outf; inf.open(in.txt,ios:in); outf.open(out.txt,ios:out); for(int k=0;kstr; outfmyStrLen(str)endl; inf.close(); outf.close(); return 0; 答案: int i=0; while(stri) i
12、+; return i;第96题 (10.0分) 题号:530/*-【程序设计】-题目:编写函数IfDigitChar(ch),判断字符ch是否为数字字 符,是则返回1,否则返回0。 -注意:部分源程序给出如下。请勿改动主函数main和其它函数 中的任何内容,仅在*Program*和*End*所标记的区域内 完成题干要求的函数功能。-*/#include#includeusing namespace std;int grading();int IfDigitChar(char ch);/*Program*/* End */int main() char ch; cout请输入一个字符:ch;
13、if(IfDigitChar(ch) coutch is a digit charendl; else coutch is not a digit charendl; /忽略阅读 grading(); /忽略阅读结束 return 0;/以下忽略阅读int grading() char m; int i,j; fstream infile, outfile; infile.open (in.txt,ios:in); outfile.open(out.txt,ios:out); for (i=0;i4;i+) for (j=0;jm; outfileIfDigitChar(m); outfile
14、=0&ch=9) return 1; else return 0;第97题 (10.0分) 题号:651/*-【程序设计】-题目:写一个函数char myfun(int score), 实现百分制成绩与等级之间的转换关系: 90分以上为A,80-89为B,70-79为C, 60-69为D,60分以下为E,并将等级返回。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在注释形式标识Program和 End之间填入所编写的若干语句。-*/#include #include using namespace std;void grading();/*Program*/*
15、End */int main() cout分数为80分,等级为:myfun(80)endl; cout分数为70分,等级为:myfun(70)endl; cout分数为60分,等级为:myfun(60)endl; cout分数为40分,等级为:myfun(40)info0info1info2info3; ofstream wf(out.txt,ios:out); for(int i=0;i4;i+) wfmyfun(infoi); rf.close(); wf.close(); /忽略阅读结束答案:char myfun(int score) switch(score/10) case 10:c
16、ase 9:return A; case 8: return B; case 7: return C; case 6:return D; default: return E; 第98题 (10.0分) 题号:623/*-【程序设计】-题目: 有一个定义在自然数上的函数 f(x) 定义如下: 若 x 5 , 则 f(x) = x; 若 5=x=15, 则 f(x) = x-6。 试编写该函数,输入x值,返回相应的f(x)值。-注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何内容,仅在程序中介于 *Program* 和 * End * 的部分填入所编写的若干语句。-*/#in
17、clude#includeusing namespace std;int f(int x)/*Program*/* End */int main() ifstream inf(in.txt,ios:in); ofstream ouf(out.txt,ios:out); int x; while(infx) ouf f(x) endl; inf.close(); ouf.close(); return 0; 答案: if(x5) return x; if(5=x & x 15) return x+6; return x-6;第99题 (10.0分) 题号:612/*-【程序设计】-题目:某服装店
18、经营套服,也单件出售。若买的不少于50套,每套80元;若不足50套,则每套90元;单件上衣,每件60元;单条裤子,每条45元。已知要买的上衣和裤子数,编写函数计算应付款。函数原型是 int Payfor(int yifu,int kuzi);第一个参数表示衣服的数量,第二个参数表示裤子的数量-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在注释形式标识Program和 End之间填入所编写的若干语句。-*/#include #include using namespace std;void wwff();/*Program*/* End */int main() cout Payfor(1,2)endl; cout Payfor(2,1)endl; cout Payfor(45,60)endl;/忽略阅读 wwff();/