《明解C语言》第四章笔记和练习题

笔记:

1、do..while(继续语句); do..while(终止条件);
2、数据递增
while( i <= no)
printf("%d", i++);
3、限定此数循环操作
while(no-- > 0)
putchat('*');
putchat('\n');

套路1:

do while语句,持续运行
do{
}while(持续条件)或while(!终止条件)

练习题:

4-1

#include
void main()
{
    int a,b,c,d,max1;
    c = 0;
    do
    {
        /* code */
        puts("请输入一个整数");scanf("%d",&a);
        if(a%2)
            puts("不能被2整除");
        else
            puts("能被2整除");
        c++;
        printf("这是输入的第%d次\n还想继续输入吗?是..1,否..0\n",c); scanf("%d",&b);
        
    } while (b==1);
        printf("结束,您一共运行了%d次\n",c);
}

4-2

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    puts("请输入整数b:");scanf("%d",&b);
    c = 0;
    if(a>b)
    {d=a;a=b;b=d;}
    do{
        c += a++;
    }while(a<=b);
    printf("整数%d到整数%d之间的和为%d\n",a,b,c);
}

4-3

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    //puts("请输入整数b:");scanf("%d",&b);

    while(a>=0)
    {
        printf("%d ",a);
        a--;
    }

    if(a>=-1)
        printf("\n");

}

4-4

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    while(a>=1)
        printf("%d ",a--);
    if(a>=0)
        printf("\n");
}

4-5

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数b:");scanf("%d",&b);
    a=0;
    while(a <= b)
        printf("%d ",a++);
    if(b >= 0)
        printf("\n");
}

4-6

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数b:");scanf("%d",&b);
    a=1;
    while(a <= b)
    {
        if(a%2)
            printf(" ");
        else
            printf("%d",a);
        a++;
    }
    printf("\n");  
}

4-7

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数b:");scanf("%d",&b);
    a=2;
    while(a <= b)
    {
        printf("%d ",a);
        a *= 2;
    }
    printf("\n");
    }

4-8

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    
    while(a-->0)
        putchar('*');
    if(a>=-1)
        putchar('\n');
}

4-9

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    
    while(a>0)
    {
        if(a%2)
            putchar('+');
        else
            putchar('-');
        a--;
    }
        
}

4-10

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    while(a>0)
    {       
        puts("*");
        a--;
    }   
}

4-11

#include
void main()
{
    int a,b,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    while(a>0)
    {
        printf("%d",a%10);
        a /= 10;
    }
    putchar('\n');
}

4-12(在上题基础上改)

void main()
{
    int a,b=0,c,d,max1;
    puts("请输入整数a:");scanf("%d",&a);
    while(a>0)
    {
        printf("%d",a%10);
        a /= 10;
        b++;
    }
    putchar('\n');
    printf("是%d位数\n",b);
}

4-13

#include
void main()
{
    int a,b=0,c=0,max1=0;
    puts("请输入你想加到几?");scanf("%d",&b);
    for(a=1;a<=b;a++)
    {
        max1 += a;
    }
    printf("他们的和是%d\n",max1);
}

4-14

#include
void main()
{
    int a,b=1,c=0,max1=0;
    puts("请输入你想加到几?");scanf("%d",&b);
    for(a=1;a<=b;a++)
    {   
        c++;
        if(c>9)
            c = 0;
        printf("%d\n",c);      
    }
}

4-15

#include
void main()
{
    int a,start,stop,interval;
    printf("开始数值:");scanf("%d",&start);
    printf("终止数值:");scanf("%d",&stop);
    printf("间隔数值:");scanf("%d",&interval);

    for(a = start;a <= stop;a += interval)
    {
        printf("%dcm    %.2fkg\n",a,(a-100)*0.9);
    }
}

4-16

#include
void main()
{
    int a,b;
    printf("请输入一个整数:");scanf("%d",&a);
    for(b=0;b<=a;b++)
    {
        if(b%2)
            printf("%d",b);
        else
            putchar(' ');
    }
    putchar('\n');
}

4-17

#include
void main()
{
    int a,b;
    printf("请输入一个整数:");scanf("%d",&b);
    for(a=1;a<=b;a++)
        printf("%d的二次方是%d\n",a,a*a);
}

4-18

#include
void main()
{
    int a,b,c=0;
    printf("请输入一个整数:");scanf("%d",&b);
    for(a=0;a

4-19

#include
void main()
{
    int a,b,c=0;
    printf("请输入一个整数:");scanf("%d",&b);
    for(a=1;a<=b;a++)
    { 
        if(b%a==0)
        {
            c++;
            printf("%d ",a);
        }
    }
        putchar('\n');
        printf("约数的个数为%d\n",c);
}

4-20

//待做

4-21

#include
void main()
{
    int a;
    puts("请输入正方形有几层:");scanf("%d",&a);
    for(int i=1;i<=a;i++)
    {
        for(int j=1;j<=a;j++)
        putchar('*');
        putchar('\n');
    }
}

4-22

#include
void main()
{
    int a,b;
    printf("长方形的长是:");scanf("%d",&a);
    printf("长方形的宽是:");scanf("%d",&b);
    for(int i=1;i<=b;i++)
    {
        for(int j=1;j<=a;j++)
        putchar('*');
        putchar('\n');
    }

4-23


4-24

#include
void main()
{
    int a,b;
    printf("金字塔有多少层:");scanf("%d",&a);
    for(int i=1;i<=a;i++)
    {
        for(int j=1;j<=a-i;j++)
        {
            putchar(' ');
        }
        for(int j=1;j<=(i-1)*2+1;j++)
        {
            putchar('*');
        }
        putchar('\n');
    }
}

4-25

#include
void main()
{
    int a,b;
    printf("金字塔有多少层:");scanf("%d",&a);
    for(int i=1;i<=a;i++)
    {
        for(int j=1;j<=i;j++)
        {
            putchar(' ');
        }
        for(int j=1;j<=(a-i)*2+1;j++)
        {
            printf("%d",i%10);
        }
        putchar('\n');
    }
}

你可能感兴趣的:(《明解C语言》第四章笔记和练习题)