第一阶段上机考试补题报告


 

R7-1 成绩统计表 (10 分)
 

某大学全校都开设C语言课程,每学年结束都按成绩进行统计。请编写程序,输入优秀、良好、中等、及格和不及格的人数,输出成绩统计表。

输入样例

36
275
1806
2194
101
 

输出样例

Rank      Number
----------------
Excellent     36
Good         275
Medium      1806
Pass        2194
Fail         101
----------------
Total       4412

 

第一题错误较多,主要是以为输出必须用循环来控制,想过设多个变量输入,但是通过翁恺老师的视频里讲最好不要代码复制,这是代码质量不良的表现,最后呈现的代码有点复杂,还有占格问
题,当时没有想清楚。以下是我做的修改:

 

7-4 求某月的天数 (20 分)
 

输入年份year、月份month,判断该月的天数。闰年:能被4整除但不能被100整除或者能被400整除的年份是闰年。

输入格式:

测试数据有多组,处理到文件尾。对于每组测试,输入两个整数,表示年份year和月份month。

输出格式:

对于每组测试,输出对应年月的天数。

输入样例:

2020 2
2020 4
 

输出样例:

29
30

 这题思路没什么问题,但是不小心把/当%用了,导致一直报错,还没有发现原因,以下是修改后的代码:

 

R7-6 交替字符倒三角形 (20 分)
 

根据读入的高,画出一个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循环里的条件有点小问题,以下做了修改:

 

7-5 位运算应用 (20 分)
 

现有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
 
结尾无空行
这题没有提交,一是有点害怕位运算的题,二是知道老师讲过,在编译器上运行结果不对,就没有提交,对于这道题我做了必要分析,之后也会加强这一块的学习:
解题思路:
将输入的tag转化位二进制,运用移位和或与将指定位置置零,输入的标志位tag表示其所处的位置,将tag位上的状态置1,输入的tag不同会进入不同的变量,输出的时候
一样的按位或1;

最后呢,总结几个方面:(1)学习情绪上,不要过于紧张,平常心对待,尽力学,才能在考试时充分发挥实力;

                                       (2)学习方法上,多自己探索,不是盲目地看视频,要勤思考,将他人的方法转化为自己容易接收并记住的,形成自己的思考体系;

                                       (3)学习内容上,位运算顾名思义是按位运算的,在一行中输出数字的占位可以通过%nd来实现,循环条件里可以放输入语句,使用递归时要注意

调用函数和输出位置,这直接影响输出顺序。

 
     


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM