C语言程序设计练习题(含程序及参考答案)

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 #include

void Trans( int m, int k ) {

int aa[20], i,j;

for( i = 0; m; i++ ) {

aa[i] = m%k; m /= k; }

for( j=i-1; j>=0; j-- )

printf(\

}

void main() {

int b, n;

printf( \enter a number and a base:\\n\); scanf(\ Trans( n, b ); }

12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零 #include

第 11 页 共 46 页

void fun(int *zs,int *fs,int *l,float aa[]) { int i;

for(i=0;i<50;i++) {

if(aa[i]>0) (*zs)++; if(aa[i]<0) (*fs)++; if(aa[i]==0) (*l)++; } }

void main() {

float num[50]; int i,czs,cfs,cl; czs=cfs=cl=0;

printf( \ for(i=0;i<50;i++) scanf(“%f”,&num[i]); fun(&czs,&cfs,&cl,num); printf(\}

12

正数:%d ,负数:%d ,零:%d

\\n\

13、计算并输出方程X+Y=1989的所有整数解 #include void fun() {

int x,y;

for(x=1;x<=44;x++) for(y=1;y<=44;y++) if(x*x+y*y==1989)

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

void main() {

printf(“方程x^2+y^2=1989的整数解为:\\n”); fun(); }

14、从键盘输入10个整数,求出其中的最大值。 #include int fun(int aa[]) {

int m,i; m=aa[0];

for(i=1;i<10;i++) if(aa[i]>m)

第 13 页 共 46 页

22

m=aa[i];

return m; }

void main() {

int num[10],i;

printf(“请从键盘输入10个整数:\\n”); for(i=0;i<10;i++) scanf(“%d”,&num[i]);

printf(“\\n最大的数是:%d\\n”,fun(num)); }

15、从键盘输入n值,输出如右图形。(例如1 2 3 4 5 n=5时)

1 1 2 3 4 1 1 1 2 3 #include 1 1 1 1 2 1 1 1 1 1void fun(int n) {

int i,j;

for(i=1;i<=n;i++) {

for(j=1;j<=i;j++) printf(“=”,1); for(j=2;j<=n+1-i;j++) printf(“=”,j); printf(“\\n”);

14

} }

void main() { int n;

printf(“\\n请输入图形的行数:”); scanf(“%d”,&n); fun(n); }

16、使用函数的方式,计算如下公式的值。 1 1 1 A1=1,A2=──,A3=──,……An=──── 1+A1 1+A2 1+A(n-1) 例如:若n=10,则应输出: 0.。 #include float fun ( int n ) {

float A=1; int i; for (i=1; i<=n; i++) A = 1.0/(1+A); return A ; }

第 15 页 共 46 页

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