1、淮阴工学院c加加期末上机考试模拟题大题一.母牛生小牛:请使用VC6打开考生目录下的工作区文件cattle.dsw。此工程包含一个源程序文件cattle.cpp,完成如下功能,若一头小母牛,从出生起第四个年头开始,每年生一头母牛。按此规律,第n年时有多少头母牛? (n由键盘输入)。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main()/*1* *found*_int n;_/*2* *found* long a=1, _b=1_, c=1, temp; cout n; for(int i=4; i=n; i+) /*3* *
2、found* _temp=a+c;_ a=b; b=c; c=temp; cout c endl;二.判断是否为素数:请使用VC6打开考生目录下的工作区文件prime.dsw。此工程包含一个源程序文件prime.cpp,该程序实现从键盘输入一整数,判断其是否为素数。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include /*1* *found*_#include_void main() /输入 long m; cout m; /处理 double sqrtm=sqrt(m); /用到math.h int i; for(i=2; i_ sqrtm
3、_) cout m is prime.n; else cout m isnt prime.n;三. 请使用VC6打开考生目录下的工作区文件sanif.dsw。此工程包含一个源程序文件sanif.cpp,编写程序,实现下列函数功能:但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#includevoid main()/*1* *found*double x,y; cout输入一个数:x;/*2* *found* if(x2) y=-x+2.5; else if(x4) y=2-1.5*(x-3)*(x-3); else/*3* *found* y=-1.5;
4、 couty=yendl;四.斐波那契数列. 请使用VC6打开考生目录下的工作区文件feibo.dsw。此工程包含一个源程序文件feibo.cpp,输出菲波那切数列的前40项。菲波那切数列的特征是:前两项为1,以后每一项为前两项之和。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main() int a=1,b=1,c; coutatbt; /*1* *found* for(int i=3;i=40;i+) /*2* *found* c=a+b; coutct; /*3* *found* a=b; b=c; if(i%5=0)
5、 coutendl; 五.完数请使用VC6打开考生目录下的工作区文件完数.dsw。此工程包含一个源程序文件完数.cpp,输出求1000之内的所有“完数”,输所谓“完数”,是指一个数恰好等于它的因子之和。例如6是完数,因为6=1+2+3。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main()/*1* *found* for(int i=1; i1000; i+) int sum=0; for(int j=1; j=i/2; j+) /*2* *found* if(i%j=0) sum= sum + j; /*3* *foun
6、d* if(i=sum) cout ilimit但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main() /*1* *found* int limit; double sum=0; cinlimit; int n=0; do /*2* *found* n+; sum+=1.0/n; /*3* *found* while(sum=limit); coutsum=sumendl n=nendl;七.金字塔. 请使用VC6打开考生目录下的工作区文件shuzijinzita.dsw。此工程包含一个源程序文件shuzijinzitai
7、.cpp,实现打印一个如图所示的数字金字塔:1121123211234321.12345678987654321但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:/打印数字金字塔 #includevoid main() int i,j,n=9; for(i=1;i10;i+) /*1* *found* for(j=1;j=n-i;j+) cout ;/*2* *found* for(int k=1;ki+1;k+) cout0;k-) coutk; coutendl; 八.成绩.请使用VC6打开考生目录下的工作区文件chengji.dsw。此工程包含一个源程
8、序文件chengji.cpp,其完成输入学生百分制成绩,输出五分制成绩,即“优秀”、“良好”、“中等”、“及格”与“不及格”。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main() int a; cina;/*1* *found*switch(a/10) case 10: case 9:cout优秀;break; case 8:cout良好;break; case 7:cout中等;break; case 6:cout及格;break; case 5: case 4: case 3: case 2: case 1:/*2*
9、 *found* case 0:cout不及格;break;/*3* *found* default:cout输入错误1;break;九. 请使用VC6打开考生目录下的工作区文件date.dsw。此工程包含一个源程序文件date.cpp,完成输入某一年的年份和月份,计算该月的天数。提示: 一年中的大月(1月、3月、5月、7月、8月、10月、12月),每月的天数为31天; 一年中的小月(4月、6月、9月、11月),每月的天数为30天; 对于2月,则要判断该年是平年还是闰年,平年的2月为28天,闰年的2月为29天。某年符合下面两个条件之一就是闰年:年份能被400整除;年份能被4整除,但不能被100
10、整除。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include void main()int y,m,d;cout请输入年份和月份:y;cinm;/*1* *found*switch(m)case 1:case 3:case 5:case 7:case 8:case 10:/*2* *found* case 12: d=31;break;case 4:case 6:case 9:case 11: d=30; break;case 2: if(y%4=0 & y%100!=0) | (y%400=0)/*3* *found* d=29; else d
11、=28;cout当前月为d天!endl;十. 请使用VC6打开考生目录下的工作区文件div3.dsw。此工程包含一个源程序文件div3.cpp,求出1599中能被3整除,且至少有一位数字为5的所有整数,要求每输出5个数字换一行。如15、51、513均是满足条件的整数。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:/求能够被3整除且某一个数字位为5的数字#includevoid main() for(int i=1;i=599;i+) /*1* *found* if(i%3=0) int k=i;/*2* *found* while(k!=0) /*3*
12、*found* if(k%10=5) cout k; break; k=k/10; 4. 使用VC6打开考生文件夹下的工作区文件proj4.dsw,使用递归函数形式写sum函数,求解:sum(n)=1-2+3-.+n。补充编制程序,使其功能完整。在main函数中进行了测试。#include #include int sum(int n)/*333*int s;if(n=1) s=1;else s=n+sum(n-1);return s;/*666*void main()int n=5,result=0;result=sum(n);fstream fout;fout.open(out4.txt,
13、ios:out);if(!fout.fail() foutresultendl; coutresultendl; 5.使用VC6打开考生文件夹下的工作区文件proj5.dsw,使用递归函数形式编写facto函数,求解:求组合数:。补充编制程序,使其功能完整。在main函数中进行了测试。#include #include #include iostream.hlong facto(int x)/*333*long s;if(x=1) s=1;else s=x*facto(x-1);return s;/*666*void main()int m=5,n=3,temp;double cmn;if (
14、 m n ) temp = n;n = m;m = temp;cmn=facto(m)/(facto(n)*facto(m-n);/三次调用facto函数fstream fout;fout.open(out5.txt,ios:out);if(!fout.fail()foutthe combination is cmnendl;coutthe combination is cmnendl; 6.使用VC6打开考生文件夹下的工作区文件proj6.dsw,编写递归函数,求解:若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?补充编制程序,使其功能完整。在main函数
15、中进行了测试。#include #include iostream.h#include long cattle(int n);void main() int n=10,sum=0; sum=cattle(n);fstream fout;fout.open(out6.txt,ios:out);if(!fout.fail()fout第n年的总头数为sumendl;cout第n年的总头数为sumendl; long cattle(int n)/*333*long s;if(n=3) s=1;else s=cattle(n-1)+cattle(n-3);return s; /*666*7. 使用VC6
16、打开考生文件夹下的工作区文件proj7.dsw,用递归方法计算x的n阶勒让德多项式的值。已有调用语句“poly(n,x);”,编写poly函数。递归公式如下:补充编制程序,使其功能完整。在main函数中进行了测试。#include #include double poly(double x,int n); void main() int n=10; double x=1.5; double result=0; result=poly(x,n); fstream fout; fout.open(out7.txt,ios:out); if(!fout.fail() foutn阶勒让德多项式的值为r
17、esultendl; coutn阶勒让德多项式的值为resultendl; double poly(double x,int n) /*333*double s;if(n=0) s=1;else if(n=1) s=x;else s=(2*n-1)*x*poly(x,n-1)-(n-1)*poly(x,n-2)/n;return s; /*666* 8请使用VC6打开考生文件夹下的工作区文件proj8.dsw。此工程包含一个源程序文件proj8.cpp,实现读入20个整数,统计非负数个数,并计算非负数之和。但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#
18、include #includevoid main( )int i,a20,s,count;s = count = 0;/*1* *found*for(i=0;i ai; for(i = 0;i 20;i +) if(ai 0)/*2* *found* break;else s += ai;/*3* *found* count+; coutscount;9请使用VC6打开考生文件夹下的工作区文件proj9.dsw。此工程包含一个源程序文件proj9.cpp,函数index(char s,char t)用于检查字符串s中是否包含字符t。若包含,则返回t在s中的开始位置(下标值),否则返回-1。但
19、程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整,并删除下划线:#include int index(char s,char t)int i,j,k;/*1* *found* for(i=0;si != 0;i +) /*2* *found* for(j = i,k = 0; tk!=0 &sj = tk;j +,k +);/*3* *found* if(tk=0) return i; return -1;void main()char s=dfggkjgkjz;coutindex(s,fg);10.使用VC6打开考生文件夹下的工作区文件proj10.dsw,编写一函数实现
20、将一个33的矩阵转置,补充编制程序,使其功能完整。在main函数中进行了测试。#include#include#includevoid rever(int a3,int n);void main( ) fstream fout; fout.open(out10.txt,ios:out); if(fout.fail() return; int array33=1,2,3,4,5,6,7,8,9; for(int i =0;i3;i+) for(int j=0;j3;j+) coutarrayij ; coutendl; coutendl; rever(array,3); for(i =0;i3;
21、i+) for(int j=0;j3;j+) coutarrayij ; foutarrayij ; foutendl; coutendl; void rever(int a3,int n)/*333* int b33;for(int i=0;i3;i+) for(int j=0;j3;j+) bij=aij;for( i=0;i3;i+) for(int j=0;j3;j+) aij=bji;/*666*11使用VC6打开考生文件夹(D:WEBEXAM李龙斌)下的工作区文件proj11.dsw,编写一函数实现两字符串的连接,要求使用字符数组保存字符串,而不使用现成饿库函数。补充编制程序,使其功能完整。在main函数中进行测试。#include#include#includevoid Strcat(char str1,char str2);void main( ) fstream fout; fout.open(out11.txt,ios:out); if(fout.fail() return; int i=0,j=0;char s1200=hello! ,s2100=how are you?; Strcat(s1,s2);cout 连接后的字符串为: s1 endl;fout 连接后的字符串为: s1 endl; void Strcat(char str1,char str2)