第1题 (10.0分) 难度:中 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这
4块当砝码能称出1~40磅的整数重量的物体。编程求这4块
的各自重量。
-------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
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分) 难度:较易 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:利用全局变量计算长方体的体积及三个面的面积。
-------------------------------------------------------*/
#include <stdio.h>
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分) 难度:易 第1章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘输入一组整数,使用条件表达式找出最大的整数。
当输入的整数为 0 时结束。
例如,输入 1 2 3 5 4 0 时,输出"max=5"。
-------------------------------------------------------*/
#include <stdio.h>
#include <conio.h>
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<num
=========或=========
max<=num
=======(答案3)=======
printf
第4题 (10.0分) 难度:易 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从读入的整数数据中,统计大于零的整数个数和小于零的
整数个数。用输入零来结束输入,程序中用变量i统计大于
零的整数个数,用变量j统计小于零的整数个数。
-------------------------------------------------------*/
#include <stdio.h>
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分) 难度:中 第6章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
-------------------------------------------------------*/
#include <conio.h>
#include <stdio.h>
#include <math.h>
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分) 难度:易 第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 <stdio.h>
#include <stdlib.h>
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<n
=======(答案2)=======
i=2
=======(答案3)=======
r=n%i
=======(答案4)=======
n=n/i
=========或=========
n/=i
第7题 (10.0分) 难度:中 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:如果整数A的全部因子(包括1,不包括A本身)之和等
于B;且整数B的全部因子 ( 包括1,不包括B本身 )
之和等于A,则将整数A和B称为亲密数。求 3000 以内
的全部亲密数。
-------------------------------------------------------*/
#include <stdio.h>
#include <stdio.h>
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<b)
printf("%4d~%4d\n",a,b) ;
}
}
答案:
=======(答案1)=======
b+=i
=========或=========
b=b+i
=======(答案2)=======
n+=i
=========或=========
n=n+i
=======(答案3)=======
n == a
第8题 (10.0分) 难度:易 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3
元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡
各多少只?
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int cocks,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分) 难度:易 第1章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘键盘输入3个整数,然后找出最大的数并输出。
例如:输入"12,45,43",
输出 "三个数是:12,45,43.最大数是:45."。
-------------------------------------------------------*/
#include <stdio.h>
#include <conio.h>
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<c) max=c;
/***********SPACE***********/
printf("最大数是:%d.", 【?】);
}
答案:
=======(答案1)=======
scanf
=======(答案2)=======
a>b
=========或=========
a>=b
=========或=========
b<a
=========或=========
b<=a
=======(答案3)=======
max
第10题 (10.0分) 难度:易 第2章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输出1到100之间每位数的乘积大于每位数的和的数。
例如:数字26,数位上数字的乘积12大于数字之和8。
-------------------------------------------------------*/
#include <stdio.h>
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<m
=======(答案3)=======
m=m/10
=========或=========
m/=10