c语言程序设计习题集

double s=0,t=1; int n;

for(___;t>=le-5;n++) {s=s+t; t=_______; }

printf(“PI=%f”,2*______); }

答案:n=1 t=t*n/(2*n+1) s

8、下列程序输出200~300之间的全部素数的和,请填空。 #include main()

{int i,j,f,s=0;

for(i=201;i<=300;i+=2) {f=____;

for(j=2;j<=i/2;j++) if(i%j==0) {f=0;

______; }

if(_____)s+=i; }

printf(“200~300之间的全部素数的和为%d\\n”,s); }

答案: f=1; break; if(f)s+=i;

9、以下程序的功能是求两个整数的最大公约数,运行时输入两个数。

#include void main() {

int m,n,r,t;

printf(\请输入两个整数m和n:\\n\scanf(\if( ) {t=m;m=n;n=t;} while( ) {m=n;

; }

printf(\它们的最大公约数为%d\\n\

答案:if(m

10程序输出以下图形,请填空。 1 23 456 7890

main() {

int i=1,j; int_____;

for(;_____;i++)

{for(j=s;j<=s+i;j++) printf(“%d”,_____); s=s+I;

printf(“\\n”); } }

答案:int s=1; for(;i<=4;i++) printf(“%d”,j);

11、以下程序输入一行字符(以回车结束输入),统计其中所有小写字母的个数,请填空。

#include “stdio.h” main() {char ch; int s=0;

ch=getchar(); while(ch!=_____)

{if(ch>=’a’_____ch<=’z’)s++; _________}

printf(“%d\\n”,s); }

答案:’\\n’ && ch=getchar()

12.已知一个首项大于0的等差数列的前四项之和是26,积是880,下列程序输出该四项之值,请填空。

#include main()

{int a1,sum,product,a2,a3,a4; for(a1=1;a1<=5;a1++) for(a2=1;a2<=5;a2++) {a3=2*a2-a1; a4=2*a3-a1;

_____=a1+a2+a3+a4; _____=a1*a2*a3*a4;

if(sum==26_____prioduct==880)

printf(“a1=-,a2=-,a3=-,a4=-\\n”,a1,a2,a3,a4); } }

答案:sum product &&

13.下列程序输出200~300的全部素数中,个位数是3的素数和,请填空。 #include main()

{int i,j,f,s=0;

for(i=201;i<300;i+=2) {f=____;

for(j=2;j<=i/2;j++) if(i%j==0) {f=0; _______; }

printf(“s=%d\\n”,s); }

答案:f=1 break f&&i?==3

14.百马百担问题。有100匹马驮100担货,大马驮3担,中马驮2担,小马驮

1担。下列程序输出大、中、小马的匹数,(大、中、小的匹数均不得为0),请填空。

#include main()

{int i=1,j,k; While(j<33) {______;

While(j<50-i) {k=100-i-j;

If(i*3+j*2+k/2==100&&_____)

Printf(“bi=%d,mid=%d,small=%d\\n”,I,j,k); _______; } i++; } }

答案:j=1 k%2==0 j++

15.一个素数加上1000以后是43在倍数,下列程序输出满足这个条件在最小素

数,请填空。 #include main()

{int n,f,I; n=3;

While(_____) {f=1;

For(i=2;i<=n/2;i++) If(n%i= =0) {f=0;break;}

If(_____&&(n+1000)C= =0) {printf(“n=%d\\n”,n); ____; }n+=2;

} }

答案:1 f break

16.以下程序打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,

其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为种种原因153=13+33+53 。请填空。 Main()

{int I,j,k,n;

Printf(“水仙花数:”) ; For(n=100;n<=1000;n++) {i=_____; j=______ K=n;

If(____) printf(“%d\\n”,n); }

}

答案:n/100 n/10 i*i*i+j*j*j+k*k*k==n

17.有2个小于100的正整数a、b,a与b的和等于110,a的平方与b的平方

之和是6698,下面的程序输出满足上述条件的a、b的值(a main()

{int i,j,a=0,b=0; for(i=1;i<100;i++) {for(j=1;j<100;j++)

if(i+j==110&&i*i+j*j==6698) {a=_______; b_______; break;}

if(____)break; }

printf(“a=%d,b=%d\\n”,a,b); }

答案:a=i b=j a&&b

n-1

18、以下程序计算s=1-1/(1+2)+1/(1+2+3)-1/(1+2+3+4)+?+(-1)/(1+2+3+?

+n)的值(假设本题中的n=20)),请填空。

#include void main() {int i,j;

float s=0,s1; for(i=1;i<=20;i++) { ; for(j=1; ;j++) s1=s1+j; if(i%2==1) s+=1/s1; else

; }

printf(\}

答案:s1=0; j

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4