C语言I博客作业06
1.作业头
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11559 |
| 这个作业的目标 | 进一步了解分支结构,深化学习if和switch语句,熟练运用if,switch |
| 学号 | 20209060 |
一、本周教学内容&目标
第3章 分支结构 3.3 使学生熟悉多分支结构switch语句的使用。
二.本周作业头
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11559 |
| 我在这个课程的目标是 | 熟练使用分支结构,熟练学会if,switch语句 |
| 这个作业在那个具体方面帮助我实现目标 | PTA专项习题练习,思维导图中阅读书籍总结 |
| 参考文献 | C语言程序设计,B站 |
三、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
四.作业格式
1.PTA实验作业(20分/题)

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.PTA实验作业
1.1计算天数
题目内容描述:本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
1.1.1实验代码截图


1.1.2 数据处理
数据表达:运用整型变量year,month,day,a,
数据处理:用if,else 条件语句中镶嵌switch语句,首先判断年份是不是闰年,表达式: if((year%4==0&&year%100!=0)||(year%400==0))
继续判断是否满足后面switch中条件,a代表天数,a=month+day;输出a.
1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2009/03/02 | 61 | 样例 |
| 2000/03/02 | 62 | 闰年不闰月 |
| 2000/01/02 | 2 | 闰年一月 |
| 1.1.4 pta提交列表及说明 | ||
![]() |
1.部分正确:if 语句中写的输出月份,而不是 a=month+day;这句话写在了结尾
2.部分正确:同上,else 语句中写的输出月份,而不是 a=month+day;
1.2多分支表达-倍数问题
题目内容描述:键盘输入1个正的整数A,如果是3的倍数但不是5的倍数,则输出A除以5的余数。 如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。 如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数。 如果A不是正整数,没有任何输出。
1.2.1实验代码截图

1.2.2 数据处理
数据表达:定义整型变量A
数据处理:if (A%3!=0 && A%5!=0) {A=A%15;printf("%d\n",A);}
if (A%3==0 && A%5!=0) {A=A%5;printf("%d\n",A);}
if (A%5==0 && A%3!=0) {A=A%3;printf("%d\n",A);}
if (A%1!=0){printf("");}
1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 18 | 3 | 样例 |
| 20 | 2 | 是5的倍数但不是3的倍数 |
| 15 | 没有任何输出 | 15既是3的倍数也是5的倍数,不符合以上条件 |
| 1.2.4 pta提交列表及说明 | ||
![]() |
1.答案错误:一开始定义了两个整型变量A,a,A判断是否符合条件,a表示结果,后面if语句完了后直接加a=%5,没有括号
2.答案错误:将if语句换成if else加条件句,a输出错误
3.答案错误:每个if条件句加了输出语句,最后面又写了个输出语句,删掉就可以了
2.代码互评(5分)
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
A同学

B同学


我的


1,A同学调用了函数,超纲了目前还没有学到不做过多点评
2,B同学前半部分和我一样用if判断是否闰年,镶嵌switch语句判断天数,但else引入flag,省去了我的后面一截
3,我的代码用了if else 镶嵌两个switch,思路很清晰但代码有些复杂了
3.学习总结
3.1学习进度条
| 日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 第一周10.18-10.24 | 12 | 58 | 简单的hello world输出 | 对printf输出变形 |
| 第二周10.25-10.31 | 18 | 242 | 学习如何有效提问,继续对输出语句学习 | 无 |
| 第三周11.1-11.8 | 28h | 182 | 学习for循环语句,if-else语句 | 在if循环条件语句时括号中不知道加不加printf输出语句 |
| 第四周11.8-11.15 | 27h | 387 | 自定义函数,调用函数 | 自定义函数时实参和形参有些混乱 |
| 第五周11.15-11.22 | 25h | 390 | 在使用if,else if语句时思路不谨慎,导致代码部分正确 | |
| 第六周11.22-11.29 | 20h | 432 | 学习了switch语句,在解决某些问题上提供了很大的便处,如查询价格,数量,颜色等 | |
| 3.2累积代码行和博客字数 | ||||
![]() |
||||
![]() |
||||
| 3.3.1 学习内容总结 | ||||
![]() |
||||
| 3.3.2 学习体会 |
1.这周学习了分支结构switch
2.博客园作业书写,内容没有太大的变化,很多部分内容只需要往上加一点点新的
3.在用switch语句时常常与其他语句一起用,导致在结构中写了printf后又在结尾写输出语句造成编译错误
4.这次PTA中算前天日期的题目有些难了,看着很简单其实用if语句要分出很多不同的类型比如闰年不闰年,月份,年份是否要根据日期的变化增减






浙公网安备 33010602011771号