精品文档 ·可编辑版
三、程序填空题
导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,
再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是
要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序
在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的
编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,
而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而
提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include
main()
{ int a,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
a= ① ;
b= ② ;
a= ③ ;
printf("a=%d,b=%d\n",a,b);
}
2 2 2 2
【3.2】下面程序的功能是根据近似公式: π/6≈ 1/1 +1/2 +1/3 + ……
2
+1/n ,求 π值。
#include
double pi(long n)
{ double s=0.0;
long i;
for(i=1;i<=n;i++)
s=s+ ① ;
return( ② );
}
【3.3】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k)
{ int p;
for(p=0,*k=p;p
if(s[p]
① ;
}
main()
{ int a[10],i,*k=&i;
1 / 28
精品文档 ·可编辑版
for(i=0;i<10;i++)
scanf("%d",&a[i]);
findmin(a,10,k);
printf("%d,%d\n",*k,a[*k]);
}
【3.4】下面程序的功能是计算 1-3+5-7+ …… -99+101 的值。
main()
{ int i,t=1,s=0;
for(i=1;i<=101;i+=2)
{ ① ;
s=s+t;
② ;
}
printf("%d\n",s);
}
【3.5】有以下程序段:
s=1.0;
for(k=1;k<=n;k++)
s=s+1.0/(k*(k+1));
printf("%f\n",s);
填空完成下述程序,使之与上述程序的功能完全相同。
s=0.0;
① ;
k=0;
do
{ s=s+d;
② ;
d=1.0/(k*(k+1));
}while( ③ );
printf("%f\n",s);
【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高
成绩和最低成绩,当输入为负数时结束输入。
main()
{ float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while( ① )
{ if(x>amax) amax=x;
2 / 28
精品文档 ·可编辑版
if( ② ) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
【3.7】下面程序的功能是将形参 x 的值转换为二进制数,所得的二进制数放在
一个一维数组中返回,二进制数的最低位放在下标为 0 的元素中。
fun(int x,int b[])
{ int k=0,r;
do
{ r=x% ① ;
b[k++]=r;
x/= ② ;
}while(x);
}
【3.8】下面程序的功能是输出 1 到 100 之间每位数的乘积大于每位数的和的数。
例如数字 26,数位上数字的乘积