第一阶段上机考试补题报告
某大学全校都开设C语言课程,每学年结束都按成绩进行统计。请编写程序,输入优秀、良好、中等、及格和不及格的人数,输出成绩统计表。
输入样例
36
275
1806
2194
101
输出样例
Rank Number
----------------
Excellent 36
Good 275
Medium 1806
Pass 2194
Fail 101
----------------
Total 4412
第一题错误较多,主要是以为输出必须用循环来控制,想过设多个变量输入,但是通过翁恺老师的视频里讲最好不要代码复制,这是代码质量不良的表现,最后呈现的代码有点复杂,还有占格问
题,当时没有想清楚。以下是我做的修改:
输入年份year、月份month,判断该月的天数。闰年:能被4整除但不能被100整除或者能被400整除的年份是闰年。
输入格式:
测试数据有多组,处理到文件尾。对于每组测试,输入两个整数,表示年份year和月份month。
输出格式:
对于每组测试,输出对应年月的天数。
输入样例:
2020 2
2020 4
输出样例:
29 30
这题思路没什么问题,但是不小心把/当%用了,导致一直报错,还没有发现原因,以下是修改后的代码:
根据读入的高,画出一个ST字符交替的倒三角形。
输入格式:
输入数据含有不超过50个正整数n(1≤n≤30)。 以键盘输入^Z或遇到文件结束符时结束数据输入。
输出格式:
输出以n为高的ST字符交替的倒三角形,画出每个三角形时都应另起一行。
输入样例:
3 10
输出样例:
STSTS
STS
S
STSTSTSTSTSTSTSTSTS
STSTSTSTSTSTSTSTS
STSTSTSTSTSTSTS
STSTSTSTSTSTS
STSTSTSTSTS
STSTSTSTS
STSTSTS
STSTS
STS
S
这题犯了上题一样的错误,将/当%用了,后面输出的for循环里的条件有点小问题,以下做了修改:
现有96个端口状态,用3个无符号整型ua(95~64),ub(63~32),uc(31~0)组合起来的96位二进制数来表示,每位二进制数的1、0表示其正常和故障状态。
输入一个tag位,将tag位上二进制数置1.
tag位表示其在96位中所处的位数(在96位中从低向高从0至95)
输入格式:
第一行输入三个无符号整数,表示ua,ub,uc
第二行输入一个整数tag。
输出格式:
若tag值不在0到95之间,则输出Error
,否则输出转换后的ua,ub,uc
输入样例:
1 2 3
-2
输出样例:
Error
输入样例:
1 2 3
10
输出样例:
ua=1,ub=2,uc=1027
最后呢,总结几个方面:(1)学习情绪上,不要过于紧张,平常心对待,尽力学,才能在考试时充分发挥实力;
(2)学习方法上,多自己探索,不是盲目地看视频,要勤思考,将他人的方法转化为自己容易接收并记住的,形成自己的思考体系;
(3)学习内容上,位运算顾名思义是按位运算的,在一行中输出数字的占位可以通过%nd来实现,循环条件里可以放输入语句,使用递归时要注意
调用函数和输出位置,这直接影响输出顺序。