c语言一些机试题

更新时间:2023-12-05 12:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

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

例如,当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 ) { }

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

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

system(\

2.在[10000, 20000]范围内考察个位数字是7的素数, 问: (1) 这样的素数有多少个?

system(\

printf(\double s=0; int i;

for(i=1;i

(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==7)

{ }

num++; max=i;

printf(\return 0;

}

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

解答:

#include int main(void) { int year;

return 0; }

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

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

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

printf(\scanf(\

if( (year@0==0) || (year%4==0 && year0!=0) ) printf(\else printf(\

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

请勿改动主函数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 sushu(int n) {

int i,flag=0; for(i=2;i

p=m; s=s*10+p;

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

break;

if(i==n) flag=1; return flag; }

int main(void) { int i,max,num=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);

while(line[i]!='\\0') {

if(line[i]==' ') {

blank++; if(flag) flag=0;

for(i=1;i<1001;i++) {

if( huiwen(i) && sushu(i) ) { }

max=i; num++;

}

printf(\return 0;

} else if(!flag)

{

word++; flag=1;

} i++;

}

printf(\

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;

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(\}

说明:主函数中的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(\if(i==j) sum+=array[i][j]*array[i][j];

}

printf(\

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 } else

i++; {

string[j]=string[j+1];

j++;

}while(string[j]!='\\0');

}

printf(\

return 0; }

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

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

为函数值返回。

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

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

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

#include #include #include 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++) { }

s=sqrt(sum);

if(i%3==0 && i%7==0 )

sum+=i;

return s; }

main() /*主函数 */

{ printf(\}

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

解答:

#include

int main(void) {

int m,n,t;

printf(\scanf(\if( m>0 && n>0) {

if(m

t=m%n; m=n; t=m;

m=n;

n=t;

n=t; }while(t);

printf(\} else

printf(\

return 0; }

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)) 解答:

#include

int main(void) { double sum=1; }

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

1.现矩阵(3行3列)的转置(即行列互换)。 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900

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

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

double p=1,q=1; int n=1;

while ( p/q > 5e-4) { }

p*=n; q*=(2*n+1); sum+=p/q; n++;

printf(\return 0;

#include #include

int fun(int array[3][3]) {

???? }

main() {

int i, j;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; clrscr() ; for (i=0;i<3;j++)

{ for (j=0;j<3;j++)

printf(″}″,array[i][j]); printf(″\\n″); }

fun(array);

printf(“converted array:\\n”); for(I=0;I<3;I++)

{ for(j=0;j<3;j++)

printf(“}”,array[I][j]); printf(“\\n”); } } 解答:

#include #include int fun(int array[3][3]) { int temp,i,j; }

main() { int i, j;

for (i=0;i<3;i++)

{ }

for (j=0;j

temp=array[i][j];

array[i][j]=array[j][i]; array[j][i]=temp;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; for (i=0;i<3;i++) { for (j=0;j<3;j++) printf(\ }

printf(\

fun(array);

printf(\for(i=0;i<3;i++) {

for(j=0;j<3;j++)

printf(\printf(\

} }

2. 编写程序,计算s=1- + - +??+ - 解答:

#include

int main(void) { double s=0; int i,flag=1; }

3.编写程序,求2~100中的所有的亲密素数对的个数。亲密素数:如果x是素数,则x+2也是素数。

解答:

#include

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

for(i=1;i<101;i++)

{ }

s+=1.0/i*flag; flag=-flag;

printf(\return 0;

}

if(n%i==0)

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

int main(void) {

int i,num=0; for(i=2;i<101;i++)

if( sushu(i) && sushu(i+2) ) { }

printf(\num++;

printf(\ return 0; }

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

1. 从键盘入一个整数k(2≦k≦10000),输出它的所有质因子(即所有为素数的因子)。例如,若

输入整数:2310,则应输出:2、3、5、7、11。

解答:

#include

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,k;

printf(\scanf(\for(i=2;i

if( k%i==0 && sushu(i) ) printf(\

}

return 0;

2.编写函数fun,它的功能是:计算正整数n所有因子(1和n除外)之和作为函数值返回。 例如:n = 120时,函数值为239 注意:部分源程序给出如下。

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

试题程序:

#include #include int fun (int n) {

????? }

main() /*主函数 */ { clrscr();

printf(″%d\\n″, fun (120)); }

解答:

#include #include int fun (int n) {

int i,sum=0; for(i=2;i

main() /*主函数 */ { printf(\

if(n%i==0) sum+=i;

return sum;

}

3. 编写程序,求s=1/(1*2)+1/(2*3)+??+1/(n*(n+1) 解答:

#include int main(void) { int n,i; }

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

1.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

例如,当n = 10,x = 0.3时,函数值为1.349859

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

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

#include #include

#include

double fun(double x , int n) {

????? }

main()

{ clrscr();

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

解答:

#include #include #include

double fun(double x,int n) {

double s=0;

printf(\scanf(\for(i=1;i

s+=1.0/(i*(i+1)); printf(\return 0;

double s=1,p=1; int i;

for(i=1;i

return s; } main() {

printf(\}

2. 编写程序,求出并输出所有的“水仙花数”。所谓水仙花数,是指一个三位数,其各位数字的立方之

和等于该数。

解答:

#include

int main(void) {

int a,b,c,i;

for(i=100;i<1000;i++) { }

a=i/100; b=i/10;

c=i;

if( a*a*a + b*b*b + c*c*c ==i)

printf(\

return 0; }

3.给出三角形的三边a,b,c,求三角形的面积。 解答:

#include #include int main(void)

{ double a,b,c,p,s; printf(\

}

scanf(\

if( a+b>c && b+c>a && c+a>b) { p=(a+b+c)/2; s=sqrt( p * (p-a) * (p-b) * (p-c) ); }

printf(\

else printf(\return 0;

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

1.编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回:n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+??+1/(1+2+3+?+N) 例如:若n的值为11时,则函数的值为:1.833333

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

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

#include #include #include float fun(int n) {

???? }

main() { int n; float s;

clrscr()

printf(″\\nPlease enter N:″); scanf(″%d″, &n);

s = fun(n);

printf(″the result is: %f\\n″, s); }

解答:

#include #include

#include float fun(int n) {

int i; float s=0,p=0; }

main() { int n;

float s;

printf(\scanf(\

s = fun(n);

printf(\for(i=1;i

return s;

p+=i;

s+=1.0/p;

}

2.编程求:一球从100米高度自由落下,每次落地后反跳回原来高度的一半,再落下。求它在第10次落地时

,共经过多少米?第10次反弹多高? 解答:

#include

int main(void) {

int i;

double s=100,sum=100; for(i=1;i<10;i++) { }

s=s/2; sum+=2*s;

printf(\return 0;

}

3.编程:根据以下公式求π值,并作为函数值返回.(精确到0.000001).

解答:

#include

double fun(void) {

int i=1;

double m=1,n=1,s=1; do {

m*=i; n*=(2*i+1); s=s+m/n;

i++;

}while((m/n)>1e-6);

return 2*s; }

int main(void) {

double pi; pi=fun();

printf(\ return 0; }

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

1.下列程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。

例如:若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请编写fun函数,使它能得出正确的结果。 试题程序:

#include #include void fun( int m, int k ) { ???? }

main( ) {

int b, n;

clrscr();

printf(″\\nPlease enter a number and a base:\\n″); scanf(″%d %d″,&n, &b );

fun( n, b ); printf(″\\n″); }

解答:

#include #include

void fun( int m, int k ) { int t=1;

long s=0; do {

s+=(m%k)*t; t*=10;

}while( m/=k); s+=(m%k)*t;

printf(\}

main( ) { int b, n;

printf(\scanf(\fun(n,b);

printf(\

}

2.一个自然数平方的末几位与该数相同时,称该数为同构数.例如,252=625,则25为同构数.编程求出1~1000

中所有的同构数. 解答:

#include int main(void) {

long i,j,k; k=10;

for (i=1;i<=1000;i++) { }

if (i==k) k*=10; j=i*i;

if(j%k==i) printf(\

return 0;

}

3.编程计算 的值。当程序正确时,结果为:2488.000000。 函数定义如下: 解答:

#include

double fun(double x) {

double s;

s=2*x*x+3*x+4;

if(x<=2)

else s=-2*x*x+3*x-4;

return s; }

int main(void) {

double s;

s=fun( fun(-1.0)+fun(5.0));

printf(\ return 0; }

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

1.下列程序中,fun函数的功能是:求 s = aa? aa - ? - aaa – aa – a

(此处aa? aa表示n个a,a和n的值在1至9之间) 例如:a = 3,n = 6,则以上表达式为:

s = 333333 – 33333 – 3333 – 333 – 33 – 3 其值为:296298

a和n是fun函数的形参,表达式的值作为函数值传回main函数。 请编写fun函数,使它能计算出正确的结果。 试题程序: #include #include

long fun (int a, int n) {

????? }

main( )

}

int i;

float p1,p2,p3,s; p1=p2=p3=1;

for(i=1;i

main() /*主函数 */ {

printf(\}

2.求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并求这些数的个数。

解答:

#include

int main(void) { int i,count=0;

for(i=1;i<1001;i++) {

if( (i%7==0||i==0) && !(i%7==0 && i==0) ) { printf(\ }

count++;

}

printf(\

return 0; }

3.编程求一个3×3矩阵对角线元素之和. 解答:

#include #define N 4 int main(void)

{ int array[N][N],i,j,sum=0;

for(i=0;i

for(j=0;j

sum+=array[i][j];

for(i=0;i

for(j=0;j

printf(\

}

printf(\

}

printf(\

return 0; }

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

1.下列程序中,函数fun的功能是:求以下分数序列的前n项之和。 1/2,2/3,3/5,5/8,8/13,13/21,??

和值通过函数值返回main函数。例如,若n的值为:5,则应输出:3.007051。 请编写程序中的fun函数, 使它能得出正确的结果。 试题程序:

#include double fun( int n ) { ???? }

main()

{ int n;

printf(″Enter n: ″); scanf(″%d″, &n);

printf(″\\nThe result : %f \\n″, fun(n)); }

解答:

#include double fun( int n ) { int i; double x=1,y=2,t;

}

double s=x/y; for(i=1;i

y=t+x; s+=x/y;

}

return s;

main() {

int n;

printf(\

scanf(\

printf(\

}

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

个单词和2个空格。 解答:

#include

int main(void) { char str[81];

int i=0,flag=0,word=0,blank=0;

printf(\gets(str);

while( str[i]!='\\0' ) {

if(str[i]==' ') { }

else if( flag==0 )

{

word++; flag=1; blank++; flag=0;

} i++;

}

printf(\ return 0; }

3.编写程序,求1+3+5+7+??+195+197+199的和。 解答:

#include

int main(void) { }

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

1.已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。下列程序中

,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。 例如,当n=10时,程序的输出结果应为:23.197745。 请编写fun函数,使程序的输出正确的结果。 试题程序:

#include #include #include fun(int n) {

???? }

main ( ) { int n; clrscr( );

printf(″Input N=″); scanf(″%d″, &n); printf(″%f\\n″, fun(n)); }

解答:

int i; long sum=0;

for(i=1;i<200;i=i+2) sum+=i; printf(\return 0;

#include #include #include

double fun(int n) { int i;

int p[100]; double sum=0; p[0]=p[1]=0; p[2]=1;

for(i=3;i

p[i]=p[i-3]+p[i-2]+p[i-1];

}

for(i=0;i

sum+=sqrt(p[i]); return sum; }

main ( )

{ int n; printf(\ scanf(\ printf(\}

2. 编写程序,用简单选择排序方法对输入的10个整数排序(从大到小)。 解答:

#include #define N 10

int main(void) {

int i,j,temp,a[N];

printf(\for(i=0;i<10;i++) scanf(\for(i=0;i

for(j=i+1;j

if(a[i]

本文来源:https://www.bwwdw.com/article/oy8t.html

Top