https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11185
1.熟悉 命令行 和 控制台/标准输入和标准输出
假设在当前目录下存在应用程序 a.exe 和 文件文件 b.txt,
请以数据流图并辅助以文字说明下述控制台命令的作用是什么。(5分)
a.exe < b.txt > c.txt
答:将文本b的内容作为程序的输入,程序a运行处理后将所得到的结果再输出到文本从c中。
如下流程图:
请用C语言开发应用程序d.exe,从控制台指令读入命令行参数,并在控制台分别打印出a、b、c的值。运行效果形如下面的示例(6分)
d.exe a=1 b=2 c=3
1
2
3
d.exe a=11 b=22 c=33
11
22
33
#include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]) { int i; for(i=1;i<argc;i++) { char *s; s=argv[i]; if(*s!='=') { s++; } if(*s!=' ') { s++; } printf("%s ",s); } return 0; }
2.熟悉 测试用例
(1)请在网站 [https://pintia.cn/]注册账号。(0分)
(2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。截图如下,要求包括1.红色对号、2.标号、3.用户名(此例中为 Young)。(30分)
注意,需要读完本作业全部题目才能开始做题,有对时间记录和代码解读的要求。
(3)代码解读 (20分)
1001害死人不偿命的(3n+1)猜想
重点/难点:在于运用好while循环和if else的结合!
重要代码:
n=int(input("请输入一个整数:")) i=0 #所需要的步数 while n!=1: if n%2 ==1: n=(3*n+1)/2 i=i+1 else: n/=2 i=i+1 print(i)
效果执行图:
1004成绩排名
重点/难点:由于我还是python初学者,以下两个函数的应用对我来说是这题的重难点所在!
split() 通过指定分隔符对字符串进行切片
append()函数用于在列表末尾添加新的对象
重要代码:
n = input() name = [] num = [] grade = [] for i in range(int(n)): a = input().split() name.append(a[0]) num.append(a[1]) grade.append(int(a[2])) good = -1 bad = 101 goodn = -1 badn = -1 for i in range(len(grade)): if (grade[i]>good): good = grade[i] goodn = i if (grade[i]<bad): bad = grade[i] badn = i print(name[goodn]+' '+num[goodn]) print(name[badn]+' '+num[badn])
效果执行图:
1006换个格式输出整数
重点/难点:在边界的判断上比较难,后来用循环嵌套的方式才得以完成!
重要代码:
num_i = input().strip() def R(num_i): if len(num_i) > 3: return if len(num_i) == 3: l = [] for i in num_i: l.append(i) print('%s%s' % ('B' * int(l[0]), 'S' * int(l[1])), end='') for i in range(1, int(l[2]) + 1): print(f'{i}', end='') elif len(num_i) == 2: l = [] for i in num_i: l.append(i) print('%s' % ('S' * int(l[0])), end='') for i in range(1, int(l[1]) + 1): print(f'{i}', end='') else: for i in range(1, int(num_i) + 1): print(f'{i}', end='') R(num_i)
效果执行图:
(4)控制台应用 (15分)
1001害死人不偿命的(3n+1)猜想
测试数据:3
测试结果:
1004成绩排名
测试数据:
3
蒋慧 0001 78
赵路遥 0002 89
小谭 0007 90
测试结果:
1006换个格式输出整数
测试数据:456
测试结果:
(4) PSP(8分)