C语言中的循环语句练习
2018-06-18 03:54:06来源:未知 阅读 ()
注:练习题目均出自《明解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语句的循环体,即使是单一语句,也可以用{ }括起来使之成为复合语句(程序块),这样程序会易读。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- 每日干货丨C++语言主流开发工具推荐! 2020-04-28
- C语言实现经典游戏——扫雷! 2020-04-17
- C语言中的宏定义 2020-04-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash