20201015-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises04
P136
题解和分析
/*
编写一程序P136.C实现以下功能
通过键盘输入弧度x,输出x的余弦值(可用库函数cos)。
编程可用素材:printf("请输入弧度 x: ")、printf("\nCos(…) = …\n"…。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
请输入弧度 x: 2.553
Cos(2.55) = -0.83172
*/
#include <stdio.h>
#include <math.h>
int main(void)
{
double rad; //2.553
printf("请输入弧度 x: ");
scanf("%lf", &rad);
printf("\nCos(%.2lf) = %.5lf\n", rad, cos(rad));
return 0;
}
/*
分析:
1. 格式化,浮点数精度控制
2. 库函数调用,注意头文件包含
*/
P238
题解和分析
/*
编写一程序P238.C实现以下功能
先从键盘读入5个整数,然后倒序输出这5个数。
编程可用素材:printf("请输入5个数: ")、printf("\n这5个数倒序为: ")。
程序的运行效果应类似地如图1所示,图1中的1 3 6 10 22是从键盘输入的内容。
请输入5个数: 1 3 6 10 22
这5个数倒序为: 22 10 6 3 1
*/
#include <stdio.h>
int main(void)
{
int data1, data2, data3, data4, data5;
printf("请输入5个数: ");
scanf("%d %d %d %d %d", &data1, &data2, &data3, &data4, &data5);
printf("\n这5个数倒序为: %d %d %d %d %d\n", data5, data4, data3, data2, data1);
return 0;
}
P265
题解和分析
/*
编写一程序P265.C实现以下功能
先从键盘读入7个数据(依次为2实数、3整数、2字符),然后按示例格式倒序输出这7个数据。
编程可用素材:
printf("请输入7个数据(依次为2实数、3整数、2字符): ")、
printf("\n这7个数据倒序为: ")。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
请输入7个数据(依次为2实数、3整数、2字符): 61.12376371 152.351192 81 192 35 x m
这7个数据倒序为: 7-m 6-x 5-35 4-192 3-81 2-152.3511920 1-61.1237637
*/
#include <stdio.h>
int main(void)
{
double ddata1, ddata2;
int idata1, idata2, idata3;
char ch1, ch2;
printf("请输入7个数据(依次为2实数、3整数、2字符): ");
scanf("%lf %lf %d %d %d %c %c",
&ddata1, &ddata2, &idata1, &idata2, &idata3, &ch1, &ch2);
printf("\n这7个数据倒序为: 7-%c 6-%c 5-%d 4-%d 3-%d 2-%.7lf 1-%.7lf\n",
ch2, ch1, idata3, idata2, idata1, ddata2, ddata1);
return 0;
}
/*
分析
1. 数据格式化输入和输出
2. 变量的地址
3. 变量的输入输出顺序
*/
P728
题解和分析
/*
编写一程序P728.C实现以下功能
已知某产品单价是30 ,输入其数量是num,输出其总价。
编程可用素材:printf("please input num: ")、printf("\ntotal=…。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
please input num: 8
total=240
*/
#include <stdio.h>
int main(void)
{
int num;
int total;
printf("please input num: ");
scanf("%d", &num);
total = num * 30;
printf("\ntotal=%d\n", total);
return 0;
}
/*
分析:
1. 建议初学者,多使用变量,中间变量
2. 输入输出是基础
3. 可以适当创建自己的编程模板,然后写程序时,在思路成熟后,就是填空
4. 使用短句,方便调试
*/
P734
题解和分析
/*
编写一程序P734.C实现以下功能
从键盘输入一个正方体的边长(整型),计算该正方体的体积和表面积。
编程可用素材:
printf("Input a side of cube: ")…、
printf("\nThe volume of cube is …, the surface area of cube is %d.\n"…。
程序的运行效果应类似地如图1所示,图中的红色部分是从键盘输入的内容。
Input a side of cube: 5
The volume of cube is 125, the surface area of cube is 150.
*/
#include <stdio.h>
int main(void)
{
int length;
int cube;
int area;
printf("Input a side of cube: ");
scanf("%d", &length);
cube = length * length * length;
area = 6 * length * length;
printf("\nThe volume of cube is %d, the surface area of cube is %d.\n",
cube, area);
return 0;
}
/*
分析
1. 编程要实事求是,分析合适的数据类型,来存取相应的数据
2. 要特别注意题目要求和测试数据的要求
*/
P736
题解和分析
/*
编写一程序P736.C实现以下功能
从键盘上输入一个四位整数,计算各个位上的数字之和。
编程可用素材:
printf("Input a number with 4-digit: ")、
printf("\nsum=…\n"…。
程序的运行效果应类似地如图1所示,图中的红色部分是从键盘输入的内容。
Input a number with 4-digit: 1234
sum=10
*/
#include <stdio.h>
int main(void)
{
int num;
int gw, sw, bw, qw;
printf("Input a number with 4-digit: ");
scanf("%d", &num);
qw = num / 1000; // 离分出千位
bw = num % 1000 / 100; // 离分出百位
sw = num % 100 / 10; // 离分出十位
gw = num % 10; // 离分出个位
printf("\nsum=%d\n", qw + bw + sw + gw);
return 0;
}
/*
分析:
1. 整数除法
2. 整数求余
3. 表达式与函数调用
*/
P709
题解和分析
/*
编写一程序P709.C实现以下功能
输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9。
编程可用素材:
printf("Input the degree: ")、
printf("\nF(…)=C(…)…。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
Input the degree: 120
F(120.00)=C(48.89)
*/
#include <stdio.h>
int main(void)
{
double fdegree, cdegree;
printf("Input the degree: ");
scanf("%lf", &fdegree);
// c=5(F-32)/9
cdegree = (double)5 * (fdegree - 32) / 9;
printf("\nF(%.2lf)=C(%.2lf)\n", fdegree, cdegree);
return 0;
}
/*
分析:
1. 转换算法,这是以后编程的核心部分,现在的题提供了算法,以后可能需要程序员自己找算法或是创建算法
2. 计算过程中,如何去保证精度,不随意丢失精度
3. 输出结果字符串是如何拼接出来的,哪里是原样字符输出,哪里是格式占位输出
占位符的格式是输出的什么
整数?
字符?
浮点?
位宽,小数宽?
*/