C 语言 第二批作业——参考答案
提示:本参考答案,使用了第三章 运算符与表达式 的内容,请注意!!!
警告:不要抄,先尝试边理解边调试,不然你永远不会学会!!!
1.1 题目
1.1.1 第一题
- 定义变量存放学员的五门课成绩,输出成绩的总和及平均值,运行效果如图2-10所示。

1.1.2 第二题
- 某公司员工的工资计算方式为:养老保险金占工资的5%,医疗保险金占工资的5%,失业保险金占工资的2%,其他杂费占工资的1%,某员工一月份的总工资为3600,要扣除以上几项资金,请计算出该员工的实际工资及各项需要扣除资金的数额,并进行输出(注意输出格式的美观)。运行效果如图2-11所示。

1.2 源码和解释代码
1.2.1 第一题
代码解释
#include <stdio.h>- 作用:导入标准输入输出库(
stdio.h),使得程序可以使用输入输出函数如printf。 - 解释:标准输入输出库提供了读取输入和输出结果的功能。
int main()- 作用:定义主函数
main,程序从这里开始执行。 - 解释:
int表示函数返回类型为整数,main是主函数的名字。
- 变量定义
int a = 78;- 作用:定义一个整型变量
a,并初始化其值为78。 int b = 86;- 作用:定义一个整型变量
b,并初始化其值为86。 int c = 75;- 作用:定义一个整型变量
c,并初始化其值为75。 int d = 85;- 作用:定义一个整型变量
d,并初始化其值为85。 int e = 83;- 作用:定义一个整型变量
e,并初始化其值为83。
- 定义总成绩和平均成绩
double ZhongChengJi = 407.000000;- 作用:定义一个双精度浮点型变量
ZhongChengJi,并初始化其值为407.000000。 double PinJunChengJi = 81.400000;- 作用:定义一个双精度浮点型变量
PinJunChengJi,并初始化其值为81.400000。
- 输出成绩
printf("第一门课程成绩 : %d\n", a);- 作用:打印字符串
"第一门课程成绩 : "后面跟上变量a的值。 printf("第二门课程成绩 : %d\n", b);- 作用:打印字符串
"第二门课程成绩 : "后面跟上变量b的值。 printf("第三门课程成绩 : %d\n", c);- 作用:打印字符串
"第三门课程成绩 : "后面跟上变量c的值。 printf("第四门课程成绩 : %d\n", d);- 作用:打印字符串
"第四门课程成绩 : "后面跟上变量d的值。 printf("第五门课程成绩 : %d\n", e);- 作用:打印字符串
"第五门课程成绩 : "后面跟上变量e的值。
- 输出总成绩和平均成绩
printf("五门课的总成绩是:%lf,平均成绩是:%lf.\n", ZhongChengJi, PinJunChengJi);- 作用:打印字符串
"五门课的总成绩是:", 后面跟上变量ZhongChengJi的值,接着打印字符串",平均成绩是:", 再跟上变量PinJunChengJi的值。
return 0;- 作用:主函数返回0,表示程序正常结束。
- 解释:0表示成功,非0表示异常。
总结
通过上述解释,您可以了解到这个简单的C语言程序是如何定义变量、使用
printf函数输出信息,并最终返回0来表示程序的正常结束。这个程序展示了C语言的一些基本语法和功能。1.2.2 第二题
代码解释
#include <stdio.h>- 作用:导入标准输入输出库(
stdio.h),使得程序可以使用输入输出函数如printf。 - 解释:标准输入输出库提供了读取输入和输出结果的功能。
int main()- 作用:定义主函数
main,程序从这里开始执行。 - 解释:
int表示函数返回类型为整数,main是主函数的名字。
- 变量定义
double gongZi = 3600;- 作用:定义一个双精度浮点型变量
gongZi,并初始化其值为3600。 double yangLaoFeiYong = 180.00;- 作用:定义一个双精度浮点型变量
yangLaoFeiYong,并初始化其值为180.00(表示养老保险费用)。 double yiLiaoFeiYong = 180.00;- 作用:定义一个双精度浮点型变量
yiLiaoFeiYong,并初始化其值为180.00(表示医疗保险费用)。 double shiYeFeiYong = 72.00;- 作用:定义一个双精度浮点型变量
shiYeFeiYong,并初始化其值为72.00(表示失业保险费用)。 double qiTaFeiYong = 36.00;- 作用:定义一个双精度浮点型变量
qiTaFeiYong,并初始化其值为36.00(表示其他费用)。 double shiJiGongZi = 3132.00;- 作用:定义一个双精度浮点型变量
shiJiGongZi,并初始化其值为3132.00(表示实际工资)。
- 输出各项费用和实际工资
printf("要扣除的费用分别是:\n");- 作用:打印一行提示文字。
printf("\t 养老保险: %lf\n", yangLaoFeiYong);- 作用:打印养老保险费用。
printf("\t 医疗保险: %lf\n", yiLiaoFeiYong);- 作用:打印医疗保险费用。
printf("\t 失业保险: %lf\n", shiYeFeiYong);- 作用:打印失业保险费用。
printf("\t 其他费用: %lf\n", qiTaFeiYong);- 作用:打印其他费用。
printf("\t 实际工资是: %lf\n", shiJiGongZi);- 作用:打印实际工资。
return 0;- 作用:主函数返回0,表示程序正常结束。
- 解释:0表示成功,非0表示异常。
总结
通过上述解释,您可以了解到这个简单的C语言程序是如何定义变量、使用
printf函数输出各项费用和实际工资的。这个程序展示了C语言的一些基本语法和功能。1.3 使用第三章 运算符与表达式 的内容 计算实际工资
1.3.1 第二题
代码解释
#include <stdio.h>- 作用:导入标准输入输出库(
stdio.h),使得程序可以使用输入输出函数如printf。 - 解释:标准输入输出库提供了读取输入和输出结果的功能。
int main()- 作用:定义主函数
main,程序从这里开始执行。 - 解释:
int表示函数返回类型为整数,main是主函数的名字。
- 变量定义
double gongZi = 3600;- 作用:定义一个双精度浮点型变量
gongZi,并初始化其值为3600。 double yangLaoBiaoZhun = 0.05;- 作用:定义一个双精度浮点型变量
yangLaoBiaoZhun,并初始化其值为0.05(表示养老保险的比例为5%)。 double YiLiaoBiaoZhun = 0.05;- 作用:定义一个双精度浮点型变量
YiLiaoBiaoZhun,并初始化其值为0.05(表示医疗保险的比例为5%)。 double ShiYeBiaoZhun = 0.02;- 作用:定义一个双精度浮点型变量
ShiYeBiaoZhun,并初始化其值为0.02(表示失业保险的比例为2%)。 double QiTaBiaoZhun = 0.01;- 作用:定义一个双精度浮点型变量
QiTaBiaoZhun,并初始化其值为0.01(表示其他费用的比例为1%)。
- 计算各项费用
double yangLaoFeiYong = gongZi * yangLaoBiaoZhun;- 作用:计算养老保险费用。
double yiLiaoFeiYong = gongZi * YiLiaoBiaoZhun;- 作用:计算医疗保险费用。
double shiYeFeiYong = gongZi * ShiYeBiaoZhun;- 作用:计算失业保险费用。
double qiTaFeiYong = gongZi * QiTaBiaoZhun;- 作用:计算其他费用。
- 计算实际工资
double shiJiGongZi = gongZi - yangLaoFeiYong - yiLiaoFeiYong - shiYeFeiYong - qiTaFeiYong;- 作用:计算实际工资,即工资减去所有扣除的费用。
- 输出各项费用和实际工资
printf("要扣除的费用分别是:\n");- 作用:打印一行提示文字。
printf("\t 养老保险: %lf\n", yangLaoFeiYong);- 作用:打印养老保险费用。
printf("\t 医疗保险: %lf\n", yiLiaoFeiYong);- 作用:打印医疗保险费用。
printf("\t 失业保险: %lf\n", shiYeFeiYong);- 作用:打印失业保险费用。
printf("\t 其他费用: %lf\n", qiTaFeiYong);- 作用:打印其他费用。
printf("\t 实际工资是: %lf\n", shiJiGongZi);- 作用:打印实际工资。
return 0;- 作用:主函数返回0,表示程序正常结束。
- 解释:0表示成功,非0表示异常。
优缺点分析
第一种实现方式的优点:
- 简单直接:
- 直接给出费用金额,代码更简洁明了。
- 减少计算:
- 不需要进行额外的计算,减少了计算开销。
第一种实现方式的缺点:
- 缺乏灵活性:
- 如果需要调整费用金额,需要重新手动设置每个费用项的值。
- 当费用比例发生变化时,需要重新计算费用金额,并更新代码。
- 难以扩展:
- 如果需要增加或减少费用项,需要手动添加或删除费用项和实际工资的计算。
第二种实现方式的优点:
- 可扩展性:
- 当需要调整费用比例时,只需要修改比例变量即可,无需重新计算费用。
- 如果将来需要增加或减少费用项,只需相应地增加或减少比例变量和计算公式即可。
- 准确性:
- 通过计算得出费用金额,可以确保费用计算的准确性。
- 灵活性:
- 可以更容易地调整费用比例,而不需要重新计算费用金额。
第二种实现方式的缺点:
- 计算开销:
- 每次计算费用都需要进行乘法运算,可能会略微增加计算开销。
- 初始设定:
- 需要预先知道费用比例,如果比例不确定,则需要先确定后再进行编程。
总结
第一种实现方式更适合需要灵活调整费用比例的情况,它提高了代码的可维护性和可扩展性。第二种实现方式则适用于固定费用金额的情况,代码更为简单直接。具体选择哪种方式取决于实际应用场景的需求。
1.4 源码下载
- 作者:神秘人
- 链接:https://blog.tianjiaji.top//url/C-ZY-DA-2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。










