神秘博客

C Primer Plus [第六版]第5章编程练习题答案

1

#include <stdio.h>
const int SHI = 60;

int main()
{
  int m, mm, s;

  printf("分钟转换为小时分钟的程序\n");
  printf("请输入分钟( <=0 退出): ");
  scanf_s("%d", &m);

  while (m > 0)
  {
    s = m / SHI;
    mm = m % SHI;
    printf("%d 分钟等于 %d 小时 %d 分钟\n", m, s, mm);
    printf("请继续输入分钟( <=0 退出): ");
    scanf_s("%d", &m);
  }
  printf("完成退出!\n");

  system("pause");
  return 0;
}

2

#include <stdio.h>

int main()
{
  int a, b;

  printf("该程序用于打印比你输入的整数大10的所有整数\n");
  printf("请输入一个整数: ");
  scanf_s("%d", &a);
  b = a + 10;
  while (a <= b)
  {
    printf("%d\t", a);
    a++;
  }
  printf("\n完成. \n");

  system("pause");
  return 0;
}

 

3

/*
编写一个程序,提示用户输入天数,然后将其转换成周数和天数。
例如,用户输入18,则转换成2周4天。
通过while循环让用户重复输入天数,当用户输入一个非正值时(如0或者-20),循环结束。
*/
#include <stdio.h>
const int z = 7;   //一周7天

int main()
{
  int a, b, c;

  printf("天数换算成周数程序\n\n");
  printf("请输入天数[<=0退出]: ");
  scanf_s("%d", &a);

  while (a > 0)
  {
    b = a / z;
    c = a % z;
    printf("%d 天等于 %d 周 %d 天.\n", a, b, c);
    printf("请输入天数[<=0退出]: ");
    scanf_s("%d", &a);
  }
  printf("完成退出!\n");

  system("pause");
  return 0;
}

 

4

/*
编写一个程序,提示用户输入一个身高(单位:厘米),并分别以厘米和英寸为单位显示该值,
允许有小数部分。程序应该能让用户重复输入身高,直到用户输入一个非正值。
*/
#include <stdio.h>
const double ft = 30.48;
const double in = 12;
int main()
{
  int x;
  double cm;
  double y;
  printf("身高厘米换算成英寸\n\n");
  printf("请输入身高[cm][<=0退出]: ");
  scanf_s("%lf", &cm);
  while (cm > 0)
  {
    x = cm / ft;
    y = (cm / ft - x)*in;
    printf("%.1f 厘米 = %d 英尺 %.1f 英寸\n", cm, x, y);
    printf("请输入身高[cm][<=0退出]: ");
    scanf_s("%lf", &cm);
  }
  printf("完成退出.\n");
  system("pause");
  return 0;
    
}

5

/*
修改程序addemop.c,你可以认为它是计算20天里赚多少钱的程序
(假设第1天赚$1、第2天赚$2,以此类推)。修改程序,使其可以与
用户交互,根据用户输入的数进行计算(即,用读入的一个变量代替20)
*/
#include <stdio.h>
int main()
{
  int count, sum, q;
  count = 0;
  sum = 0;
  
  printf("请输入工作的天数: ");
  scanf_s("%d", &q);
  while (count++ < q)
        sum = count + sum;
    printf("工作 %d 天 = $%d\n", q,sum);
  
    
  system("pause");
  return 0;

6

/*
修改程序编程练习5的程序,使其能计算整数的平方和(可以认为1天赚$1、
第2天赚$4、第3天赚$9,以此类推)C没有平方函数,但是可以用n*n来表示
*/
#include <stdio.h>
int main()
{
  int count, sum, q;
  count = 0;
  sum = 0;
  printf("请输入工作的天数: ");
  scanf_s("%d", &q);
  while (count++ < q)
    sum = count*count + sum;
  printf("工作 %d 天 = $%d\n", q, sum);
  system("pause");
  return 0;
}

7

#include <stdio.h>
void li(double x);
int main()
{
  double y;
  printf("请输入一个 double 类型的数: ");
  scanf_s("%lf", &y);
  li(y);
  system("pause");
  return 0;
}
void li(double x)
{
  printf("%g 的立方值为 %g\n", x,x*x*x);
}

 

8

#include <stdio.h>

int main()
{
  int x, y;

  printf("此程序用求模运算, 第二个运算对象保持不变\n\n");
  printf("输入一个整数作为第二操作数: ");
  scanf_s("%d", &y);
  printf("现在输入第一个操作数");
  scanf_s("%d", &x);
  printf("%d %% %d is %d\n", x, y, x%y);
  printf("输入第一个操作数的下一个数字[<=0 退出]: ");
  scanf_s("%d", &x);
  while (x > 0)
  {
    printf("%d %% %d is %d\n", x, y, x%y);
    printf("输入第一个操作数的下一个数字[<=0 退出]: ");
    scanf_s("%d", &x);
  }
  printf("\n完成退出.\n\n");

  system("pause");

  return 0;
}

9

#include <stdio.h>

void Temperatures(double y);
int main()
{
  double x;
  

  printf("请输入华氏温度[q 退出]: ");
  
  
  
  
  while (scanf_s("%lf", &x) == 1)  // 判断用户输入数字继续,字母退出 这个前面章节并没有学到
  {
    
    Temperatures(x);
    printf("请输入华氏温度[q 退出]: ");
  }
  printf("\n完成退出. \n");
  system("pause");
  return 0;
}

void Temperatures(double y)
{
  double a, b;
  const double c = 5.0 / 9.0;
  const double d = 32.0;
  const double e = 273.16;
  a = c * (y - d);
  b = a + e;

  printf("%.3f(F) = %.3f(C) = %.3f(K)\n", y, a, b);

}

 

版权说明:
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

觉得文章有用就请我吃包辣条吧

微信扫一扫打赏