C语言上机试题1-20套
- 格式:doc
- 大小:239.50 KB
- 文档页数:46
1
C语言上机考试题(第一套)
1.编写函数fun,它的功能是:计算并输出下列级数和:
)1(1321211nnS
例如,当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(1321211nnS
例如,当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)