明解C语言入门篇第三版练习代码(部分)------第二/三/四章

今年刚开始学C语言,整本书已经看过敲过了一遍了,现在把一些重难点代码再记一遍,整本书再看完就开始中级篇的学习。

前面的内容比较基础,所以这次复习前面几章我并没有每个都再敲一遍。

第一次发表博客,难免经验不足,如果代码有问题或者有更好的建议,欢迎大家留言讨论!

第二章

练习代码 2-5

//编写一段程序,像右边那样读取两个整数的值,计算出前者是后者的百分之几,并用实数输出结果。

#include <stdio.h>

int main ()
{	
 int a,b;
 
 printf("请输入两个整数。\n");
 printf("整数a:");
 scanf("%d",&a);
 printf("整数b:");
 scanf("%d",&b);
 
 printf("a是b的%f%%",(double)a/b*100);  //注意在printf中显示%要输入%%,一个%为类型转换。
 
 return 0;
 } 

第三章

练习3-13

//对代码清单3-17中的程序进行修改,不使用if语句,而是改用switch语句来实现。

#include <stdio.h>

int main ()
{
 int month;
 
 printf("请输入月份:");
 scanf("%d",&month);
 
 switch (month) {
 case 3 :                                      //如果没有break语句,程序将落到下一条语句上。
 case 4 :
 case 5 : printf("%d月是春季。",month); break;
 case 6 :
 case 7 :
 case 8 : printf("%d月是夏季。",month); break;
 case 9 :
 case 10 :
 case 11 : printf("%d月是秋季。",month); break;
 case 12 :
 case 1 :
 case 2 : printf("%d月是冬季。",month); break;
 }
 
 return 0;
}

第四章

练习4-3

//对代码清单4-5中的程序进行修改,当输入的值为负数的时候不执行换行操作。

#include <stdio.h>

int main ()
{
 int no;
 printf("请输入一个正整数:");
 scanf("%d",&no);

 if (no >=0) {
   while (no >= 0) {
     printf("%d ",no);
     no --;
   }
   printf("\n");
 }
 
 return 0;
}

练习4-7

//编写一段程序,向右边这样显示出小于输入的整数的所有2的乘方。

#include <stdio.h>

int main ()
{
	int no,i=2;

	printf("请输入一个整数:");
	scanf("%d",&no);

	while(i<=no) {
        printf("%d ",i);
        i *= 2;
	}

	return 0;
}

练习4-11

//对代码清单4-10的程序进行修改,使其像右边这样在显示结果的同时显示输入的整数值。

#include <stdio.h>

int main ()
{
    int no;

    do {
        printf("请输入一个正整数:");
        scanf("%d",&no);
        if (no<=0)
            puts("\a请不要输入非正整数。");
    } while (no<=0);


    printf("%d逆向显示的结果是:",no);
    while (no>0) {
        printf("%d",no%10);
        no /= 10;
    }
    puts("。");

    return 0;
}

练习4-18

//编写一段程序,输入一个整数值,显示改整数值个‘*’。每显示5个就进行换行。

#include <stdio.h>

int main ()
{
    int no,i;

    do {
        printf("显示多少个*:");
        scanf("%d",&no);
        if (no<=0)
            puts("\a请不要输入非正整数。");
    } while (no<=0);

    for (i=1; i<=no; i++) {
        printf("*");
        if (i%5==0) {
            printf("\n");
        }
    }
    return 0;
}

练习4-24

//编写一段程序,输入一个整数,像右面这样显示出输入整数层的金字塔形状。

#include <stdio.h>

int main ()
{
	int n,i,j;

	printf("让我们来画一个金字塔。\n");
	printf("金字塔有几层:");
	scanf("%d",&n);

	for (i=1; i<=n; i++) {
		for (j=1; j<=n-i; j++) {   //每行n-i个空格
			printf(" ");
		}
		for(j=1; j <= (2*i-1); j++) {  //每行2*i-1个*,注意要写2*i而不是2i!
			printf("*");
		}                   //*后面的空格可以不要
		printf("\n");
	}
	return 0;
}

练习4-25

//编写一段程序,像右边这样显示输入整数层的向下的金字塔形状。第i行显示i%10的结果。

#include <stdio.h>

int main ()
{
	int n,i,j;

	printf("让我们来画一个向下的金字塔。\n");
	printf("金字塔有几层:");
	scanf("%d",&n);

	for (i=1; i<=n; i++) {
        for (j=1; j<=(i-1); j++) {   //第i行显示i-1个空格
            printf(" ");
        }
        for (j=1; j<=2*(n-i)+1 ;j++) {  //第i行显示2*(n-i)+1个数字
            printf("%d",i%10);
        }
        printf("\n");
	}

	return 0;
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页