当前位置:   article > 正文

C语言入门——《明解C语言》入门篇第四章练习_明解c语言入门篇答案第四章

明解c语言入门篇答案第四章

新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始。

整理了《明解C语言》入门篇第四章练习的“参考答案”,记录一下学习的过程。直接上代码。

  • 练习4-1
  1. int main()
  2. {
  3. int retry;
  4. do
  5. {
  6. int no;
  7. printf("请输入一个整数:");
  8. scanf("%d", &no);
  9. if (no == 0)
  10. puts("该整数为0");
  11. else if (no > 0)
  12. puts("该整数为正数");
  13. else
  14. puts("该整数为负数");
  15. printf("是否继续,继续请输入0,否则输入其他退出:");
  16. scanf("%d", &retry);
  17. } while (retry == 0);
  18. return 0;
  19. }
  • 练习4-2
  1. int main()
  2. {
  3. int retry;
  4. do
  5. {
  6. int no;
  7. printf("请输入一个整数:");
  8. scanf("%d", &no);
  9. if (no == 0)
  10. puts("该整数为0");
  11. else if (no > 0)
  12. puts("该整数为正数");
  13. else
  14. puts("该整数为负数");
  15. printf("是否继续,继续请输入0,否则输入其他退出:");
  16. scanf("%d", &retry);
  17. } while (retry == 0);
  18. return 0;
  19. }
  • 练习4-3
  1. int main()
  2. {
  3. int no;
  4. printf("请输入一个正整数:");
  5. scanf("%d", &no);
  6. int a;
  7. a = no;
  8. while (a >= 0)
  9. {
  10. printf("%d ", a--);
  11. no--;
  12. }
  13. no--;
  14. if (no >= 0);
  15. printf("\n");
  16. return 0;
  17. }
  • 练习4-4
  1. int main()
  2. {
  3. int no;
  4. printf("请输入一个正整数:");
  5. scanf("%d", &no);
  6. int a;
  7. a = no;
  8. while (a>= 1)
  9. {
  10. printf("%d ", a--);
  11. no--;
  12. }
  13. no--;
  14. do
  15. {
  16. printf("\n");
  17. } while (no >= 0);
  18. return 0;
  19. }
  • 练习4-5
  1. int main()
  2. {
  3. int i, no;
  4. printf("请输入一个正整数:");
  5. scanf("%d", &no);
  6. i = 1;
  7. while (i <= no)
  8. printf("%d ", i++);
  9. if (no >= 0)
  10. printf("\n");
  11. return 0;
  12. }
  • 练习4-6
  1. int main()
  2. {
  3. int i, no;
  4. printf("请输入一个整数:");
  5. scanf("%d", &no);
  6. i = 2;
  7. while (i <= no)
  8. {
  9. printf("%d ", i);
  10. i += 2;
  11. }
  12. if(no>=0)
  13. printf("\n");
  14. return 0;
  15. }
  • 练习4-7
  1. int main()
  2. {
  3. int i, no;
  4. printf("请输入一个整数:");
  5. scanf("%d", &no);
  6. i = 2;
  7. while (i <= no)
  8. {
  9. printf("%d ", i);
  10. i *= 2;
  11. }
  12. if(no>=0)
  13. printf("\n");
  14. return 0;
  15. }
  • 练习4-8
  1. int main()
  2. {
  3. int a,no;
  4. printf("正整数:");
  5. scanf("%d", &no);
  6. a = no;
  7. while (no-- > 0)
  8. putchar('*');
  9. if (a>1)
  10. putchar('\n');
  11. return 0;
  12. }
  • 练习4-9
  1. int main()
  2. {
  3. int a;
  4. int i=0;
  5. printf("正整数:");
  6. scanf("%d", &a);
  7. while (i < a - 1)
  8. {
  9. putchar('+');
  10. i++;
  11. putchar('-');
  12. i++;
  13. }
  14. if(i<a)
  15. putchar('+');
  16. return 0;
  17. }
  • 练习4-10
  1. int main()
  2. {
  3. int a;
  4. int i=0;
  5. printf("正整数:");
  6. scanf("%d", &a);
  7. while (i <a)
  8. {
  9. putchar('*');
  10. putchar('\n');
  11. i++;
  12. }
  13. return 0;
  14. }
  • 练习4-11
  1. int main()
  2. {
  3. int no;
  4. do{
  5. printf("请输入一个正整数:");
  6. scanf("%d", &no);
  7. printf("%d逆向显示的结果是:", no);
  8. if (no <= 0)
  9. puts("\n请不要输入非正整数。");
  10. } while (no <= 0);
  11. while (no > 0) {
  12. printf("%d", no % 10);
  13. no /= 10;
  14. }
  15. puts("。");
  16. return 0;
  17. }
  • 练习4-12
  1. int main()
  2. { int no;
  3. int i=0;
  4. do{
  5. printf("请输入一个正整数:");
  6. scanf("%d", &no);
  7. printf("%d的位数是:",no);
  8. if (no <= 0)
  9. puts("\n请不要输入非正整数。");
  10. } while (no <= 0);
  11. while (no > 0)
  12. {
  13. no /= 10;
  14. i++;
  15. }
  16. printf("%d。", i);
  17. return 0;
  18. }
  • 练习4-13
  1. int main()
  2. {
  3. int n;
  4. int i;
  5. int sum=0;
  6. printf("n的值:");
  7. scanf("%d", &n);
  8. for (i = 1; i <= n; i++)
  9. {
  10. sum += i;
  11. }
  12. printf("1到%d的和为%d", n, sum);
  13. return 0;
  14. }
  • 练习4-14
  1. int main()
  2. {
  3. int n;
  4. int i=1;
  5. int j;
  6. printf("请输入一个整数:");
  7. scanf("%d", &n);
  8. for (j = 1; j <= 25; j++)
  9. {
  10. printf("%d", i);
  11. i++;
  12. while (i == 10)
  13. {
  14. i = 0;
  15. }
  16. }
  17. return 0;
  18. }
  • 练习4-15
  1. int main()
  2. {
  3. int a;
  4. int b;
  5. int c;
  6. int i=0;
  7. int j;
  8. printf("开始数值(cm):");
  9. scanf("%d", &a);
  10. printf("结束数值(cm):");
  11. scanf("%d", &b);
  12. printf("间隔数值(cm):");
  13. scanf("%d", &c);
  14. for (i = a; i <= b; i += c)
  15. {
  16. j = (i - 100) * 0.9;
  17. printf("%dcm %dkg\n", i, j);
  18. }
  19. return 0;
  20. //标准体重=(身高-100)*0.9
  21. }
  • 练习4-16
  1. int main()
  2. {
  3. int n;
  4. int i=0;
  5. printf("整数值:");
  6. scanf("%d", &n);
  7. for (i = 1; i <= n; i+=2)
  8. printf("%d ", i);
  9. return 0;
  10. }
  • 练习4-17
  1. int main()
  2. {
  3. int n;
  4. int i;
  5. int j = 0;
  6. printf("n的值:");
  7. scanf("%d", &n);
  8. for (i = 1; i <= n; i++)
  9. {
  10. j = i * i;
  11. printf("%d的二次方是:%d\n", i, j);
  12. }
  13. return 0;
  14. }
  • 练习4-18
  1. int main()
  2. {
  3. int n;
  4. int i;
  5. printf("显示多少个*:");
  6. scanf("%d", &n);
  7. for (i = 1; i <= n; i++)
  8. {
  9. printf("*");
  10. if (i % 5 == 0)
  11. printf("\n");
  12. }
  13. return 0;
  14. }
  • 练习4-19
  1. int main()
  2. {
  3. int i, n;
  4. int j=0;
  5. printf("整数值:");
  6. scanf("%d", &n);
  7. for (i = 1; i <= n; i++)
  8. {
  9. if (n % i == 0)
  10. {
  11. printf("%d", i);
  12. putchar('\n');
  13. j++;
  14. }
  15. }
  16. printf("约数有%d个", j);
  17. return 0;
  18. }
  19. //%3d输出数值至少为3位
  • 练习4-20
  1. int main()
  2. {
  3. int i;
  4. int j=0;
  5. printf(" |");
  6. printf(" 1 2 3 4 5 6 7 8 9\n" );
  7. printf("-------------------------------\n");
  8. for (i = 1; i <= 9; i++)
  9. {
  10. printf("%d |", i);
  11. for (j = 1; j <= 9; j++)
  12. printf("%3d", i * j);
  13. putchar('\n');
  14. }
  15. return 0;
  16. }
  • 练习4-21
  1. int main()
  2. {
  3. int i;
  4. int n;
  5. printf("生成一个正方形\n");
  6. printf("正方形有几层:");
  7. scanf("%d", &n);
  8. for (i = 1; i <= n*n; i++)
  9. {
  10. putchar('*');
  11. if (i % n == 0)
  12. putchar('\n');
  13. }
  14. return 0;
  15. }
  • 练习4-22
  1. int main()
  2. {
  3. int i;
  4. int j;
  5. int a;
  6. int b;
  7. int tmp;
  8. puts("让我们来画一个长方形。");
  9. printf("一边:"); scanf("%d", &a);
  10. printf("另一边:"); scanf("%d", &b);
  11. if (a > b)
  12. {
  13. tmp = a;
  14. a = b;
  15. b = tmp;//使得b始终大于a
  16. }
  17. for (i = 1; i <= a; i++)
  18. {
  19. for (j = 1; j <= b; j++)
  20. putchar('*');
  21. putchar('\n');
  22. }
  23. return 0;
  24. }
  • 练习4-23
  1. int main()
  2. {
  3. int i;
  4. int j;
  5. int len;
  6. puts("生成直角在左上方的等腰直角三角形");
  7. printf("短边:");
  8. scanf("%d", &len);
  9. for (i = 1; i <=len; i++)
  10. {
  11. for (j = 1; j<=len-i+1;j++)
  12. putchar('*');
  13. putchar('\n');
  14. }
  15. return 0;
  16. }
  1. int main()
  2. {
  3. int i=0;
  4. int j;
  5. int len;
  6. puts("生成直角在右上方的等腰直角三角形");
  7. printf("短边:");
  8. scanf("%d", &len);
  9. for(i=1;i<=len;i++)
  10. {
  11. for (j = 1; j < i; j++)
  12. putchar(' ');
  13. for (j = 1; j <= len - i + 1; j++)
  14. putchar('*');
  15. putchar('\n');
  16. }
  17. return 0;
  18. }
  • 练习4-24
  1. int main()
  2. {
  3. int i;
  4. int j;
  5. int len;
  6. printf("让我们来画一个金字塔。\n");
  7. printf("金字塔有几层:");
  8. scanf("%d", &len);
  9. for (i = 1; i <=len; i++)
  10. {
  11. for(j=1;j<=len-i;j++)
  12. putchar(' ');
  13. for (j = 1; j <= (i - 1) * 2; j++)
  14. {
  15. putchar('*');
  16. }
  17. putchar('*');
  18. putchar('\n');
  19. }
  20. return 0;
  21. }
  • 练习4-25
  1. int main()
  2. {
  3. int i;
  4. int j;
  5. int len;
  6. printf("让我们来画一个向下的金字塔。\n");
  7. printf("金字塔有几层:");
  8. scanf("%d", &len);
  9. for (i = 1; i <= len; i++)
  10. {
  11. for (j = 1; j <= i-1; j++)
  12. {
  13. putchar(' ');
  14. }
  15. for (j = 3; j >= (i-1)*2-1; j--)
  16. printf("%d", i % 10);
  17. putchar('\n');
  18. }
  19. return 0;
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/程序代码艺术家/article/detail/62790
推荐阅读
相关标签
  

闽ICP备14008679号