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

一、do语句

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

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

二、whie语句

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

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

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

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

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

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

4,逆向显示正整数

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

三、for语句

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

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

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

#include <stdio.h>
int main() {
int beginHigh = , endHigh = ;
float weight = ;
int margin = ;
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 - )*0.9; //这是一个计算标准体重的公式
printf("%d cm\t\t%.2f\n", i, weight); // \t代表制表符,相当于按下一次Tab键
}
return ;
}

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

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

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

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

四、多重循环

1,显示九九乘法表

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

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

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

3,画一个长方形

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

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

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

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

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

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

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

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

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

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 = ;i<=n; i++) {
for (int j = ; j<=n-i; j++) {
putchar(' ');
}
for (int j=;j<=i ; j++) {
putchar('*');
}
for (int j=; j<i; j++) {
putchar('*');
}
putchar('\n');
}
return ;
}

金字塔变形(1)

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

金字塔变形(2)

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

总结

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

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

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

  1. C语言中嵌入式SQL语句

    原文:[转载]C语言中嵌入式SQL语句 http://blog.csdn.net/cnlht/archive/2007/12/12/1930960.aspx原文地址 实验内容: 掌握SQL Serve ...

  2. 怎么绘制C语言选择和循环语句的思维导图

    C语言是一门非常基础的计算机语言,是大部分本科学生的公共专业,在C语言的学习中,选择和循环语句是至关重要的部分,利用思维导图可以有效节约时间并加深知识点记忆. 接下来就为大家介绍一下我用iMindMa ...

  3. js中的循环语句

    js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; whil ...

  4. shell脚本中select循环语句用法

    shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...

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

    今天早上在csdn论坛上看到一个帖子http://topic.csdn.net/u/20120917/14/82f42e17-977a-4824-95bd-7b79db15d283.html:“C语言 ...

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

    单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 ...

  7. 详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  8. C语言中的循环结构与选择结构

    1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...

  9. Swift中的循环语句

    循环语句能够使程序代码重复执行.Swift编程语言支持4种循环构造类型:while.do while.for和for in.for和while循环是在执行循环体之前测试循环条件,而do while是在 ...

随机推荐

  1. Scala解码base64编码的URL提示Last unit does not have enough valid bits

    问题描述 开始使用Base64.getMimeDecoder().decode(base_url).map(_.toChar).mkString去解码,部分数据也提示如题的错误 然后尝试使用Base6 ...

  2. MySQL查看当前运行的事务和执行的账户

    -- 查看当前运行的事务,这点在变更表结构之前必须要查看select * from information_schema.innodb_trx; -- 查看当前运行的事务的账户和事务开始的时间,及其事 ...

  3. 10个超赞的jQuery图片滑块动画

    在网站开发过程中,特别是前端开发这块,经常会使用到很多图片滑块动画,也就是一些基于jQuery和HTML5的焦点图插件.本文将为大家收集10个超赞的jQuery图片滑块动画,这些现成的jQuery插件 ...

  4. jetty 6.1 笔记

    download: http://dist.codehaus.org/jetty/jetty-6.1.22/ jetty 6.2 代码启动 必要jar包 lib --->> lib---& ...

  5. django模型相关的知识点

    定义属性 概述: django根据属性的类型确定以下信息 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表增加自动增长的主键列,每个模 ...

  6. Web图形开发

    Web项目开发过程中要找到完美的图形解决方案比较困难,只能根据自己的需要,选择自己最合适的画图方案. Web图表一般有以下几种做法: (1)使用客户端控件技术 (2)使用服务器端生成图片 (3)使用富 ...

  7. 【emWin】例程三十三:窗口对象———Radio

    简介: 如同复选框一样,单选按钮也可用来选择选项.打开或选择单选按钮时,将出现 圆点.与复选框的差别是,用户一次只能选择一个单选按钮.选择一个按钮时,小工 具中的其他按钮将关闭. 触摸校准(上电可选择 ...

  8. Windows-DB2 9.7安装图解

    解压后,双击 setup.exe 安装 打开后,选择"安装产品" 在安装产品中,选择"安装新产品" 点击下一步 同意软件许可协议,点击下一步 可以根据需要,选择 ...

  9. 【Unity】自定义编辑器窗口——拓展编辑器功能

    最近学习了Unity自定义编辑器窗口,下面简单总结,方便用到时回顾. 新建一个脚本: using UnityEngine; using System.Collections; using UnityE ...

  10. WPF转换器:时间转换为字符串

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureI ...