第一节:do语句

练习4-1:代码清单3-9是判断所输入的整数符号的程序,请将其改写为可将输入显示这一过程循环任意次

#include <stdio.h>int main()
{int a;int b;do {printf("请输入一个整数:");scanf("%d", &a);if (a == 0)puts("该整数为0。");else if (a > 0)puts("该整数为正数。");elseputs("该整数为负数。");printf("要重复一次吗?【yes  0/No  1】:");scanf("%d", &b);} while (b == 0);return 0;
}

练习4-2:编写一段程序,像下面这样读取两个整数的值,然后计算出它们之间所有整数的和
请输入两个整数。
整数A:37
整数B:28
大于等于28小于等于37的所有整数的和是:325

#include<stdio.h>
int main()
{int a, b, c;int sum = 0;puts("请输入两个整数。");printf("整数A:"); scanf("%d", &a);printf("整数B:"); scanf("%d", &b);c = a;do{sum += c;c--;} while (c != b - 1);printf("大于等于%d小于等于%d的所有整数的和是:%d", b, a, sum);return 0;
}

第二节:while语句

练习4-3:对代码清单4-5中的程序进行修改,当输入的值为负数时不执行换行操作

#include<stdio.h>
int main()
{int no;printf("请输入一个正数.");scanf("%d", &no);while (no >= 0){printf("%d ", no);no--;}if (no < 0)putchar('\n');return 0;
}

练习4-4:对代码清单4-6进行修改,使其:
递减到1而非递减到0;
当输入的值小于0时,不进行换行;

#include<stdio.h>
int main()
{int no;printf("请输入一个正整数:");scanf("%d", &no);while (no >= 1){printf("%d  ", no--);}if (no < 0)putchar('\n');return 0;
}

练习4-5:对代码清单4-7的程序进行修改。
从1开始递增;
输入的值小于0时不换行;

#include<stdio.h>
int main()
{int i, no;printf("请输入一个正整数:");scanf("%d", &no);i = 1;while (i <= no){printf("%d  ", i++);}if (no >= 0)putchar('\n');return 0;
}

练习4-6:编写一段程序,像下面按照升序显示出小于输入值的所有正偶数。
请输入一个整数:19
2 4 6 8 10 12 14 16 18

#include<stdio.h>
int main()
{int a = 0;int i = 1;printf("请输入一个整数:");scanf("%d", &a);while (i < a ){if (i % 2 ==0){printf("%d ", i);}i++;}return 0;
}

练习4-7:编写一段程序,像下面这样显示出小于输入的整数的所有2的乘方
请输入一个整数:19
2 4 8 16

#include<stdio.h>
int main()
{int a = 0, i = 1;printf("请输入一个正整数:");scanf("%d", &a);while (i < a){if (i < 19 && i % 2 == 0){printf("%d  ", i);}i*=2;}return 0;
}

练习4-9:编写一段程序,交替显示+和-,总个数等于所输入的整数值。另外输入0以下的整数时,什么也不显示。

#include<stdio.h>
int main()
{int i = 0, no = 0;printf("请输入一个正整数:");scanf("%d", &no);while (i < no){if (i % 2 == 0)printf("+");elseprintf("-");i++;}return 0;
}

练习4-10:编写一段程序,像下面一样练习显示 * 总个数等于输入数值的个数,当输入0以下的数值时什么也不显示

#include<stdio.h>
int main()
{int i = 0, no = 0;printf("请输入一个正整数:");scanf("%d", &no);while (i < no){printf("*\n");i++;}return 0;
}

练习4-11:编写代码,显示下方效果;
请输入一个正整数:1963
1963的逆向结果是3691

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

练习4-12:读取一个整数,显示其位数。
请输入一个正整数:1963
1963的位数是:4

#include<stdio.h>
int main()
{int a = 0, b = 0, c = 0;printf("请输入一个正整数:");scanf("%d", &a);b = a;while (b > 0){b /= 10;c++;}printf("%d的位数是%d", a, c);return 0;
}

练习4-13:编写一段程序,求1到n的和。

#include<stdio.h>
int main()
{int n=0,i=0,sum=0;printf("请输入一个正整数:");scanf("%d", &n);for (i = 0; i <= n; i++){sum += i;}printf("1到%d的和为:%d", n, sum);return 0;
}

练习4-14:编写一段程序,像下面这样根据输入的整数,循环显示1234567890,显示的位数和输入的数值相同
请输入一个正整数:25
1234567890123456789012345

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

练习4-15:像下面一样显示身高和标准体重的对照表。显示的身高范围和间隔由输入的整数值进行控制,标准体重精准到小数点后两位。
开始数值(cm):155
结束数值(cm):190
间隔数值(cm):4
150cm 49.50kg
160cm 54.00kg
…(以下省略)…

#include<stdio.h>
int main()
{int begin = 0;int end = 0;int interval = 0;int i = 0 , j=0;printf("开始数值(cm):"); scanf("%d", &begin);printf("结束数值(cm):"); scanf("%d", &end);printf("间隔数值(cm):"); scanf("%d", &interval);j = begin;for (i = 0; i <= (end - j) / interval; i++){printf("%dcm        %.2fkg\n", begin, (begin - 100) * 0.9);begin += interval;}return 0;
}

练习4-16:编写一段程序,输入一个整数值,显示该整数值以下所有奇数
整数值:15
1 3 5 7 9 11 13 15

#include<stdio.h>
int main()
{int a = 0, i = 1;printf("请输入一个整数值:");scanf("%d", &a);while (i <= a){printf("%d  ", i);i+=2;}return 0;
}

练习4-17:编写一段程序,像下面这样显示1~n的整数值的二次方。
n的值:3
1的二次方是:1
2的二次方是:4

#include<stdio.h>
int main()
{int n = 0, i = 0;printf("n的值为:"); scanf("%d", &n);for (i = 1; i < n; i++){printf("%d的二次方是:%d\n", i, i * i);}i++;return 0;
}

练习4-18:编写一段程序,显示 * 每五个就进行一次换行,数字为几显示多少个。

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

练习4-19:对代码清单4-15进行修改,在显示所有约数后显示约数个数
整数值:4
1
2
4
约数有:3个

#include<stdio.h>
int main(void)
{int i = 0, n = 0, m = 0;printf("整数值:");scanf("%d", &n);  for (i = 1; i <= n; i++)if (n % i == 0){printf("%d ", i);printf("\n");m++;}printf("约数有%d个。", m);return 0;
}

明解C语言第四章习题相关推荐

  1. 《明解C语言》第九章字符串课后练习题

    习题 9-2 #include <stdio.h> int main() {     char str[] = "ABC"; //    char str[] = &q ...

  2. C语言入门——《明解C语言》入门篇第四章练习

    新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始. 整理了<明解C语言>入门篇第四章练习的"参考答案",记录一下学习的过程.直接上代码. 练习4-1 int m ...

  3. 明解C语言入门篇_第8章_动手编写各种程序吧

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  4. 明解C语言入门篇_第13章_文件处理

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  5. 明解C语言入门篇_第6章_函数

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  6. 明解C语言入门篇_第5章_数组

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  7. 明解C语言入门篇_第12章_结构体

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  8. 明解C语言入门篇_第9章_字符串的基本知识

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  9. 明解C语言入门篇_第10章_指针

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  10. 明解C语言入门篇_第4章_程序的循环控制

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

最新文章

  1. Oracle的自定义函数浅析
  2. Kong APIGW — OpenResty
  3. 结构化道路上车辆自动驾驶中的雷达类型及安装位置
  4. Memcpy, blockcopy的进一步理解
  5. HDU 1517 A Multiplication Game
  6. array python 交集_模糊数学Python库简介和评测
  7. 重要·Flutter 首个预览版 发布
  8. Effective C++: 06继承与面向对象设计
  9. mysql 5.5.18下载_MySQL5.7.18下载和安装过程图文详解
  10. Linux常用指令总结二~~
  11. YOLOv3 精度再次提高 4.3%,训练提速 40%!PaddleDetection全面升级
  12. Objective-C 日记④ 集合家族
  13. 两个卡巴斯基 6.0 官方简体中文版授权文件
  14. C语言中空字符串长度,C语言中求字符串的长度
  15. [渝粤教育] 平顶山学院 学前心理学 参考 资料
  16. FLUENT中的常用边界条件
  17. Word2003分栏设置方法
  18. 一个强悍而优美的Android视频播放器
  19. uni-app学习日记7
  20. C++/MFC 面试题(一)

热门文章

  1. 有关各浏览器内核的区别
  2. 突出的就是一个「性价比」— 小新 Air 14 2020 评测
  3. 小米android11账号补丁,小米9 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
  4. 这些年看过的书...
  5. 数值分析的matlab实验总结,数值分析及其MATLAB实验(第2版)
  6. EasyDarwin —— ubuntu搭建rtsp服务,使用FFmpeg进行rtsp推拉流
  7. GPS 经纬度换算方法和定位误差计算
  8. 荔枝软件如何测试声音,荔枝如何测自己的声音 荔枝测自己的声音方法
  9. linux系统下在ubuntu20.04安装matlab2017总结
  10. 中兴e8820刷openwrt_中兴E8820V2(电信天翼宽带类似新路由3歌华链)-拆机及OpenWrt固件...