C语言中的循环语句练习

2018-01-28 11:17:47来源:cnblogs.com作者:Zoctopus·Lian人点击

分享
第七城市

注:练习题目均出自《明解C语言 入门篇》

一、do语句

1,求多个整数的和及平均值

#include<stdio.h>int main(void){    int sum = 0;  //和     int cnt = 0;  //整数个数     int retry;  //判断是否继续    do{        int t;        printf("请输入一个整数:");        scanf("%d",&t);        sum = sum + t;        cnt = cnt + 1;        printf("是否继续?<Yes...0/No...9:");        scanf("%d",&retry);    } while(retry == 0);        printf("和为%d,平均值为%.2f。/n",sum,(double)sum / cnt);    return 0;}

二、whie语句

1,递增显示从0到输入的正整数为止的各个整数

#include<stdio.h>int main(void){    int i,n;    printf("请输入一个正整数:");    scanf("%d",&n);    i = 0;    while(i <= n)        printf("%d ",i++);  //i的值在显示之后递增    printf("/n");        return 0;  } 

2,编写一段程序,按照升序显示出小于输入值的所有正偶数

#include<stdio.h>int main(void){    int i,n;    printf("请输入一个正整数:");    scanf("%d",&n);    i = 0;    while(i <= n){        i = i + 2;        if(i < n)  //应先对递增后的值进行判断,看是否越界         printf("%d ",i);             }    printf("/n");        return 0;  } 

3,编写一段程序,使之交替显示+和-,总个数等于所输入的整数值

#include<stdio.h>int main(void){    int num;    int i=0;    printf("正整数:");    scanf("%d",&num);    while (i<num) {        if (++i%2)            putchar('+');        else            putchar('-');    }    return 0;}

4,逆向显示正整数

#include<stdio.h>int main(void){    int n;    do{        printf("请输入一个正整数:");        scanf("%d",&n);        if(n <= 0)            puts("请不要输入非正整数。");    }while(n <= 0);        printf("该整数逆向显示的结果是 ");    while(n > 0){        printf("%d", n % 10);        n /= 10;    }    puts("。 ");        return 0;    }

三、for语句

1,编写一段程序,根据输入的整数,循环显示1234567890,显示的位数和输入的整数值相同

#include <stdio.h>int main(void){        int i,j,n;        j=1;        printf("请输入一个整数:");        scanf("%d",&n);        for(i=0;i<n;i++) {                printf("%d",j);                j++;                if(j>9)                        j-=10;        }        printf("/n");        return 0;}

2,编写一段程序,显示出身高和标准体重的对照表。注:显示的身高范围和间隔由输入的整数值进行控制,标准体重精确到小数点后两位。

#include <stdio.h>int main() {     int beginHigh = 0, endHigh = 0;     float weight = 0;     int margin = 0;     printf("开始数值(cm):");     scanf("%d", &beginHigh);     printf("结束数值(cm):");     scanf("%d", &endHigh);     printf("间隔值(cm):");     scanf("%d", &margin);     for (int i = beginHigh;i <= endHigh; i+=margin) {             weight = (i - 100)*0.9;  //这是一个计算标准体重的公式             printf("%d cm/t/t%.2f/n", i, weight);  // /t代表制表符,相当于按下一次Tab键      }     return 0;}

3,显示输入的整数值的所有约数

#include<stdio.h>int main(void){    int i,n;    printf("整数值:");    scanf("%d",&n);    for(i = 1;i <= n;i++)        if(n % i == 0)            printf("%d ",i);    putchar('/n');        return 0;  } 

4,编写一段程序,输入一个整数值,显示该整数值个' * '。每显示5个就进行换行。

#include<stdio.h>int main(){    printf("请输入整数:");    int a;    scanf("%d",&a);    int b=0;    for(int i=0;i<a;i++)    {        if(b==5)        {            printf("/n");            b=0;        }    printf("*");    b=b+1;    }     } 

 

四、多重循环

1,显示九九乘法表

#include<stdio.h>int main(void){    int i,j;    for(i = 1;i <= 9;i++){        for(j = 1;j <= 9;j++)            printf("%3d",i * j);        putchar('/n');    }        return 0; } 

2,编写一段程序,为九九乘法表增加横纵标题

#include <stdio.h>int main(){    int i, j ;    //打印第一行    printf("   |") ;    for(i = 1; i <= 9; i++)    {        printf("  %d", i) ;    }    printf("/n") ;    //打印第二行    for(i = 1; i <= 32; i++)        printf("-") ;    printf("/n") ;    //开始打印99乘法表,每行开头要有行号    for(i = 1; i <= 9; i++)//行    {        printf(" %d |", i) ;        for(j = 1; j <= 9; j++)//列        {            printf(" %2d", i*j) ;        }    printf("/n") ;    }    return 0 ;}

3,画一个长方形

#include<stdio.h>int main(void){    int i,j;    int height,width;        puts("让我们来画一个长方形。");    printf("高:");   scanf("%d",&height);    printf("宽:");   scanf("%d",&width);        for(i = 1;i <= height;i++) { //长方形有height行         for(j = 1;j <= width;j++)  //每行显示width个             putchar('*');        putchar('/n');  //换行    }    return 0;     } 

4,(1)显示直角在左下方的等腰直角三角形

#include<stdio.h>int main(void){    int i,j,len;    puts("直角在左下方的等腰直角三角形。");    printf("边长:");    scanf("%d",&len);        for(i = 1;i <= len;i++){        for(j = 1;j <= i;j++)            putchar('*');        putchar('/n');    }        return 0; } 

 

(2)显示直角在右下方的等腰直角三角形

#include<stdio.h>int main(void){    int i,j,len;    puts("直角在左下方的等腰直角三角形。");    printf("边长:");    scanf("%d",&len);        for(i = 1;i <= len;i++){        for(j = 1;j <= len-i;j++)            putchar(' ');        for(j = 1;j <= i;j++)            putchar('*');        putchar('/n');    }        return 0; } 

(3)显示直角在左上方的等腰直角三角形

#include <stdio.h>int main() {    int i,j,len;    puts("直角在左下方的等腰直角三角形。");    printf("边长:");    scanf("%d",&len);         for (int i = 1; i<=len; i++) {        for (int j = 1; j <=len-i+1; j++) {            putchar('*');        }          putchar('/n');    }    return 0; }

(4)显示直角在右上方的等腰直角三角形

#include <stdio.h>int main() {    int i,j,len;    puts("直角在左下方的等腰直角三角形。");    printf("边长:");    scanf("%d",&len);       for (int i = 1; i<=len; i++) {         for (int j = 1; j <=i; j++) {            putchar(' ');        }        for (int j=1; j<=len-i+1; j++) {             putchar('*');        }        putchar('/n');     }    return 0;}

5,编写一段程序,输入一个整数,显示出输入整数层的金字塔形状

提示:第 i 行显示 (i - 1)* 2 + 1 个 ' * '

#include "stdio.h"int main(int argc, char const *argv[]){    int n;    puts("让我们来描绘一个金字塔。");    printf("金字塔有几层:"); scanf("%d",&n);    for (int i = 1;i<=n; i++) {        for (int j = 1; j<=n-i; j++) {            putchar(' ');        }        for (int j=1;j<=i ; j++) {            putchar('*');        }        for (int j=1; j<i; j++) {            putchar('*');        }    putchar('/n');      }    return 0;}

金字塔变形(1)

#include<stdio.h>int main(){    int i,j,n;    puts("让我们来描绘一个金字塔。");    printf("金字塔有几层:"); scanf("%d",&n);    for(i=1;i<=n;i++)    {        for(j=0;j<n-i;j++)            printf(" ");        for(j=1;j<2*i;j++)            printf("%d",i);        printf("/n");    }    return 0;}

金字塔变形(2)

#include<stdio.h>int main(){    int i,j,n;    puts("让我们来描绘一个金字塔。");    printf("金字塔有几层:"); scanf("%d",&n);    for(i=1;i<=n;i++)    {        for(j=0;j<n-i;j++)            printf(" ");        for(j=1;j<=i;j++)            printf("%d",j);        for(j=i-1;j>0;j--)            printf("%d",j);        printf("/n");    }}

总结

循环是C语言的基础,所以要扎实练习,孰能生巧。在此列举一些注意事项:

  • 注意区分while语句和do-while语句,前者是先判断后执行,后者是先执行后判断。
  • do语句的循环体至少会执行一次,而while语句的循环体则有可能一次也不会执行。
  • 注意不要在for语句和while语句的()后放置空语句。
  • do语句的循环体,即使是单一语句,也可以用{ }括起来使之成为复合语句(程序块),这样程序会易读。
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台