C语言I博客作业04
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11494 |
| 我在这个课程的目标是 | 熟练掌握调用函数的运用,学习更多函数 |
| 这个作业在那个具体方面帮助我实现目标 | PTA的固定题目及自选题目和对题集的分析 、评论 |
| 参考文献 | C primer plus |
1.PTA实验作业(20分/题)
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名: 7-3 求幂之和 (15分)
题目内容描述:本题要求编写程序,计算sum = 2的幂次方总和。可以调用pow函数求幂。
1.1.1数据处理
1.数据表达:用了i、n两个整型变量和一个双精度浮点型变量result。i是通过for循环赋值来的,n是通过一开始用int定义而来,result是通过double定义而来。
result属于双精度浮点型变量,i、n属于整型变量。
2.数据处理:使用了result=result+pow(2,i);result=0;for循环语句。调用了pow函数。
3.函数参数:主函数:int main(),被调用函数:double pow(double x,double y)。被调用函数属于幂函数,用来求x^y。形式参数为定义的整型变量n,
实参数为定义的整型变量i。
1.1.2 实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 4 | result=30 | 幂之和为30 |
| 7 | result=254 | 幂之和为254 |
| 8 | result=510 | 幂之和为510 |
| 9 | result=1022 | 幂之和为1022 |
1.1.4 PTA提交列表及说明

提交列表说明:
1.格式错误:输出时空格符号没有打。解决方法:在result与=之间添加空格符号。
2.答案错误: 没有添加地址符号&。将&添加在变量n前。
1.2 题目2
题目名:实验2-4-1 统计各位数字之和是5的数 (20分)
题目内容描述:本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
1.2.1 数据处理
1.数据表达:该函数使用了h,number,sum,count,a,b变量。number是int定义而来属于整型变量,sum是为了求number的各位数和是否等价于5,用int定义的
属于整型变量。h是通过while循环赋值得到的。count是通过for循环得到的。a,b是通过整型定义而来。
2.数据处理:sum=sum+i; sum=sum+h; number=number/10; h=number%10; sum=0;count=0;for语句,if语句。
3.函数参数:被调用函数为函数is和函数count_sum,函数is为判断各位数之和是否为五,函数count_sum判断有多少个。实参为i,形式参数为number。i,number
属于整型变量。
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 14 99 | 14 is counted,count=5 sum=160 | 14到99其中各位数和为五的数有五个,这五个数之和为160 |
| 1004 9999 | 1004 is counted,count=35 sum=73885 | 1004到9999其中各位数和为五的数有35个,这35个数之和为73885 |
| 10004 99999 | 10004 is counted,count=70 sum=1322216 | 10004到99999其中各位数和为五的数为70个,这70个数之和为1322216 |
1.2.4 PTA提交列表及说明

提交列表说明:
1.格式错误:printf("sum = %d")添加了\n。解决方法:去掉\n。
2.答案错误:if(number!=0)错误number!不可以等于0,解决:写成if(number)。
2.代码互评(5分)*
同学代码1:

自己代码1:

同学代码优点:定义了denominator使算式更加简便,定义整形变量flag判断正负号更加清晰步骤齐全。
缺点:定义变量过多,步骤繁琐,变量定义的过于繁杂。
自己代码优点:调用了pow函数,定义的变量简洁清晰,步骤简单公式一步完成。
缺点:一个变量多次使用可能会混淆。
同学代码2:

自己代码2:

同学代码优点:用a代替sqrt(x)使赋值语句更加简洁,用i代替循环次数,x代替累加数。步骤新颖更令人深思学习更多。
缺点:定义的变量过多,步骤复杂。且i++和x++两者的含义容易混淆。
自己代码优点:定义变量较少,使用的语句也较少比较清晰。
缺点:代码形式老套,不新颖。
3.学习总结(15分)
3.1 学习进度条(5分)
| 周/日期 | 所花时间 | 代码行 | 所学知识点 | 目前迷惑点 |
|---|---|---|---|---|
| 第一周 | 20h | 300 | 定义变量 ,输入和输出 | 无 |
| 第二周 | 30h | 400 | if -else 语句 | 无 |
| 第三周 | 48h | 700 | for语句 | 无 |
| 第四周 | 45h | 750 | 函数的调用 | 形式参数和实参,多个未知数的求阶乘 |
3.2 累积代码行和博客字数(5分)
| 周/日期 | 代码行数 | 博客字数 |
|---|---|---|
| 第一周 | 200 | 500 |
| 第二周 | 300 | 800 |
| 第三周 | 650 | 1600 |
| 第四周 | 700 | 1800 |
![]() |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2 学习体会
学习过程:1.周一到周三这段时间在学习完for语句后,就会将课本上有关for语句的练习自己完成,也会经常在csdn上看看题目。
2.周四学习了函数的调用后空闲时间会重新再把这段内容自己再学一遍。
3.周五会完成相关题目集,或者再去做新的题目集。
感受:这周学的函数的调用相较于上周的for语句较为难一点,开始对于fact(int n)中的n没太弄明白以为它只可以指一个未知数。
所以导致我在做求组合数时所设的变量过多很混乱。对于调用一个新函数这里还是有点模糊。


浙公网安备 33010602011771号