C语言上机试题1-20套

  • 格式:doc
  • 大小:239.50 KB
  • 文档页数:46

1

C语言上机考试题(第一套)

1.编写函数fun,它的功能是:计算并输出下列级数和:

)1(1321211nnS

例如,当n = 10时,函数值为:0.909091

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

试题程序:

#include

#include

double fun( int n )

{

float

„„„„

}

main() /*主函数 */

{ clrscr();

printf(″%f\n″, fun(10));

}

解答:

#include

#include double fun( int n ) {

double s=0;

int i; for(i=1;i

说明:主函数中的clrscr()函数为TC下使用的清屏函数,在VC中不能使用,在本题中可以直接删除或改为system("cls")

2

2.在[10000, 20000]范围内考察个位数字是7的素数, 问:

(1) 这样的素数有多少个?

(2) 其中最大的一个等于几?

解答:

#include int main(void) { int max,num=0; int i,j;

for(i=10000;i<20001;i++) { for(j=2;j

if( i%j==0 )

break; if( j==i && i%10==7)

{ num++; max=i;

} } printf("num=%d,max=%d\n",num,max);

return 0; }

3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。

解答:

#include int main(void) { int year; printf("please input the year:\n"); scanf("%d",&year); if( (year%400==0) || (year%4==0 && year%100!=0) ) printf("%d is a leap year!",year); else printf("%d is not a leap year!",year); return 0; }

3

C语言上机考试题(第二套)

1.编写函数fun,它的功能是:计算并输出下列级数和:

)1(1321211nnS

例如,当n = 10时,函数值为:0.909091

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

试题程序:

#include

#include

double fun( int n )

{

„„„„

}

main() /*主函数 */

{ clrscr();

printf(″%f\n″, fun(10));

}

解答:略(见第一套试题1)

2.回文数是指正读和反读都一样的自然数。例如,8, 121, 5445这三个数都是回文数。求:

(1) [1,1000]之内既是回文数,又是素数的最大整数。

(2) [1,1000]以内既是回文数,又是素数的整数有多少个。

解答:

#include

int huiwen(int n) {

int p,m,flag=0; int s=0; m=n; do { p=m%10; s=s*10+p; m=m/10;

4

}while(m); if(s==n) flag=1; return flag; }

int sushu(int n) { int i,flag=0; for(i=2;i

break; if(i==n) flag=1;

return flag; }

int main(void) { int i,max,num=0;

for(i=1;i<1001;i++) { if( huiwen(i) && sushu(i) )

{ max=i; num++;

} } printf("num=%d,max=%d\n",num,max); return 0; }

3. 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。比如输入:”How are you”,有3个单词和2个空格。

解答:

#include int main(void) { char line[81]; int word=0,blank=0,flag=0; int i=0; gets(line);

5

while(line[i]!='\0') { if(line[i]==' ') { blank++; if(flag) flag=0; } else if(!flag) {

word++; flag=1; }

i++; } printf("word=%d,blank=%d\n",word,blank);

return 0;

}

C语言上机考试题(第三套)

1.编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如:当t =1000时,函数值为:1597。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

试题程序:

#include

#include

#include

int fun( int t)

{

„„„„

}

main() /*主函数 */

{ int n;

clrscr();

n=1000;

6

printf(″n = %d, f = %d\n″,n, fun(n));

}

解答:

#include #include #include int fun( int t) { int f1=0,f2=1,temp; while(f2

{ temp=f1; f1=f2;

f2=temp+f1; } return f2;

} main() /*主函数 */ {

int n;

n=1000; printf("n = %d, f = %d\n",n,fun(n));

}

说明:主函数中的clrscr( )应删除,或者改为sys(“cls”)

2.先从键盘上输入一个3行3列矩阵元素的值,然后输出主对角线元素平方之和.

解答:

#include int main(void) { int array[3][3]; int i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) { scanf("%d",&array[i][j]); if(i==j) sum+=array[i][j]*array[i][j]; } printf("sum=%d\n",sum);

7

return 0; }

3. 编程:删除字符串中的数字字符。

解答:

#include int main(void) { char string[81]; int i=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'); } else

i++; } printf("%s\n",string); return 0; }

C语言上机考试题(第四套)

1.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。

例如若n为1000时,函数值应为:s = 153.909064。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

试题程序:

#include

#include

#include

8

double fun( int n)

{

}

main() /*主函数 */

{ clrscr();

printf(″s=%f\n″, fun (1000) );

}

解答:

#include #include #include

double fun( int n)

{ int i;

double s,sum=0; for(i=1;i<1000;i++) {

if(i%3==0 && i%7==0 ) sum+=i; }

s=sqrt(sum); return s; } main() /*主函数 */ { printf("s=%f\n",fun (1000) ); }

2.编程求出两个非零正整数的最大公约数.

解答:

#include int main(void) { int m,n,t; printf("please input two positive integer:\n"); scanf("%d%d",&m,&n); if( m>0 && n>0)