计算机类考试所有C语言题库

计算机类考试所有C语言题库
计算机类考试所有C语言题库

所属语言:C语言

试卷方案:所有C语言题库

试卷总分:1220分

共有题型:1种

一、程序填空共122题(共计1220分)

第1题(10.0分)题号:558 难度:中第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这

4块当砝码能称出1~40磅的整数重量的物体。编程求这4块的各自重量。

-------------------------------------------------------*/

#include

#include

main()

{

int i,j,k,l,p,t1,t2,t3,t4;

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

/***********SPACE***********/

for(【?】;j<38-i;j++)

/***********SPACE***********/

for(k=j;k<【?】;k++)

{

l=40-i-j-k;

for(p=1;p<40;p++)

{

for(t1=-1;t1<2;t1++)

for(t2=-1;t2<2;t2++)

for(t3=-1;t3<2;t3++)

for(t4=-1;t4<2;t4++)

/***********SPACE***********/

if(【?】==p) goto next;

break;

/***********SPACE***********/

next:if(p==【?】)

{

printf("%d,%d,%d,%d\n",i,j,k,l);

exit(0);

}

}

}

printf("error.");

}

答案:

=======(答案1)=======

j=i

=======(答案2)=======

39-i-j

=========或=========

39 -i -j

=======(答案3)=======

i*t1+j*t2+k*t3+l*t4

=========或=========

i * t1 + j * t2 + k * t3 + l * t4

=======(答案4)=======

39

第2题(10.0分)题号:525 难度:较易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:利用全局变量计算长方体的体积及三个面的面积。

-------------------------------------------------------*/

#include

int s1,s2,s3;

int vs(int a,int b,int c)

{

int v;

/***********SPACE***********/

v=【?】;

s1=a*b;

/***********SPACE***********/

s2=【?】;

s3=a*c;

return v;

}

main()

{

int v,l,w,h;

printf("\ninput length,width and height: ");

/***********SPACE***********/

scanf("%d%d%d",【?】,&w,&h);

/***********SPACE***********/

v=【?】;

printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3); }

答案:

=======(答案1)=======

a*b*c

=========或=========

a*c*b

=========或=========

b*a*c

=========或=========

b*c*a

=========或=========

c*a*b

=========或=========

c*b*a

=======(答案2)=======

b*c

=========或=========

c*b

=======(答案3)=======

&l

=======(答案4)=======

vs(l,w,h)

第3题(10.0分)题号:356 难度:易第1章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:从键盘输入一组整数,使用条件表达式找出最大的整数。

当输入的整数为 0 时结束。

例如,输入 1 2 3 5 4 0 时,输出"max=5"。

-------------------------------------------------------*/

#include

#include

main()

{

int num=-1;

int max = 0;

printf("请输入一组整数: \n");

/***********SPACE***********/

【?】(num!=0)

{

scanf("%d",&num);

/***********SPACE***********/

max = 【?】 ? num : max;

}

/***********SPACE***********/

【?】("max=%d\n", max);

}

答案:

=======(答案1)=======

while

=======(答案2)=======

num>max

=========或=========

num>=max

=========或=========

max

=========或=========

max<=num

=======(答案3)=======

printf

第4题(10.0分)题号:537 难度:易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于

零的整数个数,用变量j统计小于零的整数个数。

-------------------------------------------------------*/

#include

main()

{

int n,i,j;

printf("Enter iNT number,with 0 to end\n");

i=j=0;

scanf("%d",&n);

while(n!=0)

{

/***********SPACE***********/

if(n>0)i=【?】;

/***********SPACE***********/

if(n<0)j=【?】;

/***********SPACE***********/

scanf("%d",【?】);

}

printf("i=%4d,j=%4d\n",i,j);

}

答案:

=======(答案1)=======

i+1

=========或=========

1+i

=======(答案2)=======

j+1

=========或=========

1+j

=======(答案3)=======

&n

第5题(10.0分)题号:364 难度:中第6章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:计算并输出high以内最大的10个素数之和,high由主函数传给fun函数,若high的值为100,则函数的值为732。

-------------------------------------------------------*/

#include

#include

#include

int fun( int high )

{

int sum=0,n=0,j,yes;

/***********SPACE***********/

while((high>=2) && (【?】))

{

yes=1;

for (j=2;j<=high/2;j++ )

/***********SPACE***********/

if (【?】)

{

yes=0;

break;

}

if(yes)

{

sum+=high;

n++;

}

high--;

}

/***********SPACE***********/

【?】;

}

main( )

{

printf("%d\n", fun(100));

}

答案:

=======(答案1)=======

n<10

=========或=========

10>n

=========或=========

n<=9

=========或=========

9>=n

=======(答案2)=======

high%j==0

=========或=========

!(high%j)

=======(答案3)=======

return sum

=========或=========

return(sum)

第6题(10.0分)题号:353 难度:易第6章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。

例如:当N=150时,可分解成1×2×3×5×5;

当N=-150时,可分解为-1×2×3×5×5。

下边程序能实现这种分解过程。当N=150,输出以下分解结

果:N= 1* 2* 3* 5* 5

-------------------------------------------------------*/

#include

#include

main()

int n,i,r;

scanf("%d",&n);

if (n==0)

{

printf ("data error \n");

exit(0);

}

/***********SPACE***********/

else if (【?】)

printf("n=1");

else

{

printf("n=-1");

n=-n;

}

/***********SPACE***********/

for(【?】;i<=n;i++)

{

/***********SPACE***********/ 【?】 ;

while(r==0)

{

printf("*%d",i);

/***********SPACE***********/ 【?】 ;

r=n%i;

}

}

printf("\n");

}

答案:

=======(答案1)=======

n>0

=========或=========

0

=======(答案2)=======

i=2

=======(答案3)=======

r=n%i

=======(答案4)=======

n=n/i

=========或=========

n/=i

第7题(10.0分)题号:584 难度:中第2章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:如果整数A的全部因子(包括1,不包括A本身)之和等

于B;且整数B的全部因子 ( 包括1,不包括B本身 )

之和等于A,则将整数A和B称为亲密数。求 3000 以内

的全部亲密数。

-------------------------------------------------------*/

#include

#include

main( )

{

int a, i, b, n ;

printf("Friendly-numbers pair samller than 3000:\n") ;

for(a=1 ; a<3000 ; a++)

{

for(b=0,i=1 ; i<=a/2 ; i++ )

/***********SPACE***********/

if(!(a%i)) 【?】 ;

for(n=0,i=1 ; i<=b/2 ; i++)

/***********SPACE***********/

if(!(b%i)) 【?】 ;

/***********SPACE***********/

if(【?】 && a

printf("%4d~%4d\n",a,b) ;

}

}

答案:

=======(答案1)=======

b+=i

=========或=========

b=b+i

=======(答案2)=======

n+=i

=========或=========

n=n+i

=======(答案3)=======

n == a

第8题(10.0分)题号:535 难度:易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3 元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡

各多少只?

此处用的while循环,之前我们用的for循环

-------------------------------------------------------*/

#include

main()

{

int cocks,hens,chicks; //公鸡kɑ?k,母鸡hen,小鸡t??k

cocks=0;

while(cocks<=19)

{

/***********SPACE***********/

【?】=0;

/***********SPACE***********/

while(hens<=【?】)

{

chicks=100-cocks-hens;

if(5*cocks+3*hens+chicks/3==100)

//此处有点问题,应加上&&(chicks%3==0),比如3,20,77

printf("%d,%d,%d\n",cocks,hens,chicks);

/***********SPACE***********/

【?】;

}

/***********SPACE***********/

【?】;

}

}

答案:

=======(答案1)=======

hens

=======(答案2)=======

33

=======(答案3)=======

hens++

=========或=========

++hens

=========或=========

hens=hens+1

=========或=========

hens=1+hens

=======(答案4)=======

cocks++

=========或=========

++cocks

=========或=========

cocks=cocks+1

=========或=========

cocks=1+cocks

第9题(10.0分)题号:345 难度:易第1章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:从键盘键盘输入3个整数,然后找出最大的数并输出。

例如:输入"12,45,43",

输出 "三个数是:12,45,43.最大数是:45."。

-------------------------------------------------------*/

#include

#include

main()

{

int a, b, c, max;

printf("请输入三个整数:\n");

/***********SPACE***********/

【?】("%d,%d,%d",&a, &b, &c);

printf("三个数是:%d,%d,%d.", a, b, c);

/***********SPACE***********/

if (【?】) max=a;

else max=b;

if (max

/***********SPACE***********/

printf("最大数是:%d.", 【?】);

}

答案:

=======(答案1)=======

scanf

=======(答案2)=======

a>b

=========或=========

a>=b

=========或=========

b

=========或=========

b<=a

=======(答案3)=======

max

第10题(10.0分)题号:579 难度:易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:输出1到100之间每位数的乘积大于每位数的和的数。

例如:数字26,数位上数字的乘积12大于数字之和8。

-------------------------------------------------------*/

#include

main()

{

int n,k=1,s=0,m;

for(n=1;n<=100;n++)

{

k=1;

s=0;

/***********SPACE***********/

【?】 ;

/***********SPACE***********/

while( 【?】 )

{

k*=m%10;

s+=m%10;

/***********SPACE***********/

【?】;

}

if(k>s)

printf("%d ",n);

}

}

答案:

=======(答案1)=======

m=n

=======(答案2)=======

m>0

=========或=========

0

=======(答案3)=======

m=m/10

=========或=========

m/=10

第11题(10.0分)题号:539 难度:较易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:计算圆周率的近似值。

需要图片,万维系统有此题,可以尝试猜下

-------------------------------------------------------*/

#include

#include

main()

{

int s,n;

/***********SPACE***********/

double 【?】,t;

t=1;pi=0;n=1;s=1;

/***********SPACE***********/

while(【?】>=2e-6)

{

pi+=t;n+=2;s=-s;t=s/n;

}

/***********SPACE***********/

pi*=【?】;

printf("pi=%.6f\n",pi);

}

答案:

=======(答案1)=======

pi

=======(答案2)=======

fabs(t)

=======(答案3)=======

4

第12题(10.0分)题号:606 难度:中第1章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

给定程序中,sum(int n)函数的功能是:递归调用计算1~n的

累加和。请填空。

例如:

输入:100

输出:5050

-------------------------------------------------------*/

#include "stdio.h"

int sum(int n)

{

if(n==1)

/***********SPACE***********/

【?】;

else

/***********SPACE***********/

【?】;

}

void main()

{

int m;

scanf("%d",&m);

printf("%d",sum(m));

}

答案:

=======(答案1)=======

return(1)

=======(答案2)=======

return(sum(n-1) + n)

第13题(10.0分)题号:360 难度:易第1章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:打印出1~1000中满足个位上的数字、十位上的数字和百位上的数字都相等的所有三位数。

本题输出"111,222,333,444,555,666,777,888,999, 1000"

-------------------------------------------------------*/

#include

main()

{

int i,g, s, b;

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

{

/***********SPACE***********/

g=【?】;

s=(i/10)%10;

/***********SPACE***********/

b=(【?】)%10;

/***********SPACE***********/

if(g==s 【?】 s==b)

printf("%d,",i);

}

}

答案:

=======(答案1)=======

i%10

=======(答案2)=======

i/100

=======(答案3)=======

&&

第14题(10.0分)题号:561 难度:易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)).其中,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带

参数的宏,一个用来求s,另一个用来求area。编写程序,

在程序中用带参数的宏求面积area。

-------------------------------------------------------*/

#include

#include "math.h"

/***********SPACE***********/

#【?】 S(x,y,z)(x+y+z)/2

#define AREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))

main()

{

double area;

float a,b,c,s;

printf("a,b,c=");

/***********SPACE***********/

scanf("%f,%f,%f",&a,【?】,&c);

if(a+b>c&&b+c>a&&c+a>b)

{

/***********SPACE***********/

s=【?】;

/***********SPACE***********/

area=【?】;

printf("area=%f\n",area);

}

}

答案:

=======(答案1)=======

define

=======(答案2)=======

&b

=======(答案3)=======

S(a,b,c)

=======(答案4)=======

AREA(s,a,b,c)

第15题(10.0分)题号:557 难度:易第2章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。

-------------------------------------------------------*/

#include

#include

main()

{

int x,y;

/***********SPACE***********/

for(x=1;【?】;x++)

/***********SPACE***********/

for(【?】;y<10;y++) //多思考下,小坑

/***********SPACE***********/

if(【?】==3848)

{

/***********SPACE***********/

printf("%d*%d=3848\n",【?】);

exit(0);

}

}

答案:

=======(答案1)=======

x<10

=========或=========

10>x

=========或=========

x<=9

=========或=========

9>=x

=======(答案2)=======

y=0

=======(答案3)=======

(10*x+2)*(70+y)

=========或=========

( 10 * x + 2 ) * ( 70 + y )

=======(答案4)=======

10*x+2,70+y

=========或=========

10 * x + 2 , 70 + y

第16题(10.0分)题号:496 难度:易第1章/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。

当调用正确时,程序输出:x1=5.000000,x2=3.000000,

x1*x1+x1*x2=40.000000。

-------------------------------------------------------*/

#include

double f1(double x)

{

return x*x;

}

double f2(double x, double y)

{

return x*y;

}

double fun(int i, double x, double y)

{

if (i==1)

/***********SPACE***********/

return 【?】(x);

else

/***********SPACE***********/

return 【?】(x, y);

}

main()

{

double x1=5, x2=3, r;

r = fun(1, x1, x2);

r += fun(2, x1, x2);

printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);

}

答案:

=======(答案1)=======

f1

=======(答案2)=======

f2

第17题(10.0分)题号:473 难度:难第1章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:甲乙丙丁4人同时开始放鞭炮,甲每隔t1 s放一次,乙每隔t2 s放一次,丙每隔t3 s放一次,丁每隔t4 s放一次,每人各放n次。

函数fun的功能是根据形参炸响,只算一次响声,第一次响声是在第0s。例如:若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。

-------------------------------------------------------*/

#include

/***********SPACE***********/

#define OK(i, t, n) ((【?】==0) && (i/t

int fun(int t1, int t2, int t3, int t4, int n)

{

int count, t , maxt=t1;

if (maxt < t2) maxt = t2;

if (maxt < t3) maxt = t3;

if (maxt < t4) maxt = t4;

count=1; /* 给count赋初值 */

/***********SPACE***********/

for(t=1; t< maxt*(n-1); 【?】)

{

if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) )

count++;

}

/***********SPACE***********/

return 【?】;

}

main()

{

int t1=7, t2=5, t3=6, t4=4, n=10, r;

r = fun(t1, t2, t3, t4, n);

printf("The sound : %d\n", r);

}

答案:

相关主题
相关文档
最新文档