1C语言上机考试题(第一套)1.编写函数fun,它的功能是:计算并输出下列级数和:)1(1321211nnS例如,当n=10时,函数值为:0.909091注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#includeconio.h#includestdio.hdoublefun(intn){float…………}main()/*主函数*/{clrscr();printf(″%f\n″,fun(10));}解答:#includeconio.h#includestdio.hdoublefun(intn){doubles=0;inti;for(i=1;in+1;i++)s+=1.0/(i*(i+1));returns;}main()/*主函数*/{system(cls);printf(%f\n,fun(10));}说明:主函数中的clrscr()函数为TC下使用的清屏函数,在VC中不能使用,在本题中可以直接删除或改为system(cls)22.在[10000,20000]范围内考察个位数字是7的素数,问:(1)这样的素数有多少个?(2)其中最大的一个等于几?解答:#includestdio.hintmain(void){intmax,num=0;inti,j;for(i=10000;i20001;i++){for(j=2;ji;j++)if(i%j==0)break;if(j==i&&i%10==7){num++;max=i;}}printf(num=%d,max=%d\n,num,max);return0;}3.编写程序,从键盘输入一年份,判断该年份是否为闰年。解答:#includestdio.hintmain(void){intyear;printf(pleaseinputtheyear:\n);scanf(%d,&year);if((year%400==0)||(year%4==0&&year%100!=0))printf(%disaleapyear!,year);elseprintf(%disnotaleapyear!,year);return0;}3C语言上机考试题(第二套)1.编写函数fun,它的功能是:计算并输出下列级数和:)1(1321211nnS例如,当n=10时,函数值为:0.909091注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#includeconio.h#includestdio.hdoublefun(intn){…………}main()/*主函数*/{clrscr();printf(″%f\n″,fun(10));}解答:略(见第一套试题1)2.回文数是指正读和反读都一样的自然数。例如,8,121,5445这三个数都是回文数。求:(1)[1,1000]之内既是回文数,又是素数的最大整数。(2)[1,1000]以内既是回文数,又是素数的整数有多少个。解答:#includestdio.hinthuiwen(intn){intp,m,flag=0;ints=0;m=n;do{p=m%10;s=s*10+p;m=m/10;4}while(m);if(s==n)flag=1;returnflag;}intsushu(intn){inti,flag=0;for(i=2;in;i++)if(n%i==0)break;if(i==n)flag=1;returnflag;}intmain(void){inti,max,num=0;for(i=1;i1001;i++){if(huiwen(i)&&sushu(i)){max=i;num++;}}printf(num=%d,max=%d\n,num,max);return0;}3.编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。比如输入:”Howareyou”,有3个单词和2个空格。解答:#includestdio.hintmain(void){charline[81];intword=0,blank=0,flag=0;inti=0;gets(line);5while(line[i]!='\0'){if(line[i]==''){blank++;if(flag)flag=0;}elseif(!flag){word++;flag=1;}i++;}printf(word=%d,blank=%d\n,word,blank);return0;}C语言上机考试题(第三套)1.编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如:当t=1000时,函数值为:1597。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#includeconio.h#includemath.h#includestdio.hintfun(intt){…………}main()/*主函数*/{intn;clrscr();n=1000;6printf(″n=%d,f=%d\n″,n,fun(n));}解答:#includeconio.h#includemath.h#includestdio.hintfun(intt){intf1=0,f2=1,temp;while(f2t){temp=f1;f1=f2;f2=temp+f1;}returnf2;}main()/*主函数*/{intn;n=1000;printf(n=%d,f=%d\n,n,fun(n));}说明:主函数中的clrscr()应删除,或者改为sys(“cls”)2.先从键盘上输入一个3行3列矩阵元素的值,然后输出主对角线元素平方之和.解答:#includestdio.hintmain(void){intarray[3][3];inti,j,sum=0;for(i=0;i3;i++)for(j=0;j3;j++){scanf(%d,&array[i][j]);if(i==j)sum+=array[i][j]*array[i][j];}printf(sum=%d\n,sum);7return0;}3.编程:删除字符串中的数字字符。解答:#includestdio.hintmain(void){charstring[81];inti=0,j;gets(string);while(string[i]!='\0'){if(string[i]='0'&&string[i]='9'){j=i;do{string[j]=string[j+1];j++;}while(string[j]!='\0');}elsei++;}printf(%s\n,string);return0;}C语言上机考试题(第四套)1.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。例如若n为1000时,函数值应为:s=153.909064。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#includeconio.h#includemath.h#includestdio.h8doublefun(intn){}main()/*主函数*/{clrscr();printf(″s=%f\n″,fun(1000));}解答:#includeconio.h#includemath.h#includestdio.hdoublefun(intn){inti;doubles,sum=0;for(i=1;i1000;i++){if(i%3==0&&i%7==0)sum+=i;}s=sqrt(sum);returns;}main()/*主函数*/{printf(s=%f\n,fun(1000));}2.编程求出两个非零正整数的最大公约数.解答:#includestdio.hintmain(void){intm,n,t;printf(pleaseinputtwopositiveinteger:\n);scanf(%d%d,&m,&n);if(m0&&n0)9{if(mn){t=m;m=n;n=t;}do{t=m%n;m=n;n=t;}while(t);printf(themaxcommondivisoris%d\n,m);}elseprintf(Error!\n);return0;}3.请编写程序:根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1))解答:#includestdio.hintmain(void){doublesum=1;doublep=1,q=1;intn=1;while(p/q5e-4){p*=n;q*=(2*n+1);sum+=p/q;n++;}printf(pi=%f,2*sum);return0;}10C语言上机考试题(第五套)1.现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includeconio.hintfun(intarray[3][3]){…………}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr();for(i=0;i3;j++){for(j=0;j3;j++)printf(″%7d″,array[i][j]);printf(″\n″);}fun(array);printf(“convertedarray:\n”);for(I=0;I3;I++){for(j=0;j3;j++)printf(“%7d”,array[I][j]);printf(“\n”);}}解答:#includestdio.h#includeconio.hintfun(intarray[3][3])11{inttemp,i,j;for(i=0;i3;i++){for(j=0;ji+1;j++){temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;}}}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}fun(array);printf(convertedarray:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}}2.编写程序,计算s=1-21+31-41+……+991-1001解答:#includestdio.hintmain(void){doubles=0;inti,flag=1;12for(i=1;i101;i++){s+=1.0/i*fl