C语言中的循环语句练习

注:练习题目均出自《明解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语句的循环体,即使是单一语句,也可以用{ }括起来使之成为复合语句(程序块),这样程序会易读。

原文地址:https://www.cnblogs.com/OctoptusLian/p/8367151.html

时间: 2024-07-31 20:05:39

C语言中的循环语句练习的相关文章

Oracle中的sql脚本语言中的循环语句介绍

--sql脚本语言的循环介绍:--1.goto循环点.declare  x number;begin  x:=0;--变量初始化:  <<repeat_loop>>--设置循环点.  x:=x+1;  dbms_output.put_line(x);--循环体  if x<9 then            --进入循环的条件.    goto repeat_loop;   --用goto关键字引导进入循环.    end if;end; --2.for循环. declare

C语言中嵌入式SQL语句

原文:[转载]C语言中嵌入式SQL语句 http://blog.csdn.net/cnlht/archive/2007/12/12/1930960.aspx原文地址 实验内容: 掌握SQL Server 2000的预编译程序NSQLPREP.EXE的使用(以课本例题1进行调试): 实验步骤: 一.数据库环境配置 1.创建xuesheng数据库,建立student表等: 2.关闭sql server 2000服务管理器: 3.将devtools文件夹拷贝到:C:\Program Files\Mic

js中的循环语句

js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; while(a<=1000){ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write(a+"&nbsp"

Shell中的循环语句实例

1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do     echo number $x done 注:"for" 循环总是接收 "in" 语句之后的某种类型的字列表.在本例中,指定了四个英语单词,但是字列表也可以引用磁盘上的文件,甚至文件通配符.实例1.2 #!/bin/bash for x in /var/log/* do     #echo "$x is a file

在c语言中嵌入汇编语句,对于我来说相当难。

今天早上在csdn论坛上看到一个帖子http://topic.csdn.net/u/20120917/14/82f42e17-977a-4824-95bd-7b79db15d283.html:“C语言中嵌入汇编,究竟有何意义?” 其中看到一个例子是在c语言中插入一段汇编代码获取CPU的主频,制造商和型号的: //=====================================================================================/*      

Python中使用循环语句打印三角形、菱形

前言:在学习开发语言循环语句的使用过程中,经常会打印各种形状来验证对循环语句的熟练掌握程度,接下来就使用python来打印多种形状练习. 如下示例中:变量i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制星号(*)的个数 1. 打印三角形  1.1 打印直角三角形 #/usr/bin/python rows = int(raw_input('please input a rows:')) i=j=k=1 if rows >= 3: for i in range(0,rows+1):

java语言基础与go语言基础,循环语句的区别

java语言  循环语句 for(表达式1(参数初始化):表达式2(条件判断):表达式3(更新循环变量)){ 语句循环操作: } 首先;参数的初始化,接下来条件判断,(条件成立),再执行循环操作,然后更新循环变量,又来做条件判断(条件成立),又执行循环操作:以此循环. 一,循环的三要素 1,循环变量 2,循环条件 3,循环体 二,do-while循环(先循环,再判断,至少循环一次) do{ 语句: }while(条件); 三,while循环(先判断,再循环,有可能一次也不循环) while(条件

单片机c语言教程:C51循环语句

单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写 1000 条空语 句那是多么麻烦的事情,再者就是要占用很多的存储空间.我们能知道这 1000 条空语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序 结构清晰明了,而且

Swift中的循环语句

循环语句能够使程序代码重复执行.Swift编程语言支持4种循环构造类型:while. do while.for和for in.for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件.这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体.for in是for循环的变形,它是专门为集合遍历而设计的.一.while语句while语句是一种先判断的循环结构,格式如下:while 循环条件 {    语句组 }wh