所有C语言题库大全含答案.docx
《所有C语言题库大全含答案.docx》由会员分享,可在线阅读,更多相关《所有C语言题库大全含答案.docx(200页珍藏版)》请在冰豆网上搜索。
所有C语言题库大全含答案
试卷编号:
2203
所属语言:
C语言
试卷方案:
所有C语言题库
试卷总分:
1220分
共有题型:
1种
一、程序填空共122题(共计1220分)
第1题(10.0分)题号:
558难度:
中第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
一个40磅重的板碎成4块,每块正好是一个整数磅,且用这
4块当砝码能称出1~40磅的整数重量的物体。
编程求这4块
的各自重量。
-------------------------------------------------------*/
#include
#include
main()
{
inti,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)gotonext;
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
ints1,s2,s3;
intvs(inta,intb,intc)
{
intv;
/***********SPACE***********/
v=【?
】;
s1=a*b;
/***********SPACE***********/
s2=【?
】;
s3=a*c;
returnv;
}
main()
{
intv,l,w,h;
printf("\ninputlength,widthandheight:
");
/***********SPACE***********/
scanf("%d%d%d",【?
】,&w,&h);
/***********SPACE***********/
v=【?
】;
printf("v=%ds1=%ds2=%ds3=%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时结束。
例如,输入123540时,输出"max=5"。
-------------------------------------------------------*/
#include
#include
main()
{
intnum=-1;
intmax=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()
{
intn,i,j;
printf("EnteriNTnumber,with0toend\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
intfun(inthigh)
{
intsum=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)=======
returnsum
=========或=========
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()
{
intn,i,r;
scanf("%d",&n);
if(n==0)
{
printf("dataerror\n");
exit(0);
}
/***********SPACE***********/
elseif(【?
】)
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()
{
inta,i,b,n;
printf("Friendly-numberspairsamllerthan3000:
\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元钱能买公鸡、母鸡、小鸡
各多少只?
-------------------------------------------------------*/
#include
main()
{
intcocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
/***********SPACE***********/
【?
】=0;
/***********SPACE***********/
while(hens<=【?
】)
{
chicks=100-cocks-hens;
if(5*cocks+3*hens+chicks/3==100)
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()
{
inta,b,c,max;
printf("请输入三个整数:
\n");
/***********SPACE***********/
【?
】("%d,%d,%d",&a,&b,&c);
printf("三个数是:
%d,%d,%d.",a,b,c);
/***********SPACE***********/
if(【?
】)max=a;
elsemax=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()
{
intn,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()
{
ints,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(intn)函数的功能是:
递归调用计算1~n的
累加和。
请填空。
例如:
输入:
100
输出:
5050
-------------------------------------------------------*/
#include"stdio.h"
intsum(intn)
{
if(n==1)
/***********SPACE***********/
【?
】;
else
/***********SPACE***********/
【?
】;
}
voidmain()
{
intm;
scanf("%d",&m);
pr