三、程序填空题
?导读:在程序填空题中,已经给出了程序得主干,读者首先要理解程序得思路,再选择正确得内容填入空白处,使程序完成既定得功能。这类习题得设计就就是要引导读者逐步掌握编程得方法。本节习题得难度适中,可能有些典型得程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己得编程能力。在程序设计语言学习得中期,读者对程序设计已经有了初步得了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习得效率。
【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);?}
【3。2】下面程序得功能就是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。?#include <math、h〉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〈t;p++)?if(s[p]〈s[*k])① ; }main(){ int a[10],i,*k=&i;?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; 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,数位上数字得乘积12大于数字之与8、main()?{ int n,k=1,s=0,m;?for(n=1;n〈=100;n++){ k=1;?s=0;?① ;while( ② ) { k*=m%10;?s+=m%10;③ ;}?if(k〉s)?printf(”%d”,n);}}
?【3。9】下面程序得功能就是统计用0至9之间得不同得数字组成得三位数得个数、?main(){ int i,j,k,count=0;?for(i=1;i
?【3。10】下面程序得功能就是输出100以内得个位数为6、且能被3整除得所有数。main(){ int i,j;?for(i=0; ① ;i++) { j=i*10+6;if( ② ) countinue;?printf("%d",j);?}}
【3、11】下面程序得功能就是用辗转相除法求两个正整数m与