王歆瑶20190905-3 命令行和控制台编程
此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/5523
1.熟悉 命令行和控制台
假设在当前目录下存在应用程序 a.exe 和 文件文件 b.txt,
请以数据流图并辅助以文字说明下述控制台命令的作用是什么。
a.exe < b.txt > c.txt
请用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> int main() { int a,b,c; scanf("a=%d b=%d c=%d",&a,&b,&c); printf("%d\n%d\n%d\n",a,b,c); while(1); }
2.熟悉 测试用例
(1)请在网站 [https://pintia.cn/]注册账号。
(2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。
(3)代码解读。
1001:害死人不偿命的(3n+1猜想)
难点:对待奇偶函数不一样的处理方法
重要代码片段:
#include<stdio.h> int main() { int n,i; i=0; scanf("%d",&n); while(n!=1) { if(n%2==0) n=n/2; else n=(3*n+1)/2; i=i+1; } printf("%d\n",i); }
运行:
1006:换个格式输出整数
难点:百位、十位和个位的‘B’'S'输出需要好好思考
重要代码片段
#include<stdio.h> int main() { int n,x,y,z,i; scanf("%d",&n); if(n<=999){ x=n%10; y=(n/10)%10; z=n/100; for(i=1;i<=z;i++){ printf("B"); } for(i=1;i<=y;i++){ printf("S"); } for(i=1;i<=x;i++) printf("%d",i); } }
运行:
1008:数组元素循环右移问题
难点:数组的使用
重要代码片段:
#include<stdio.h> int main() { int n,m,x,y,z; scanf("%d %d",&n,&m); int a[n]; for(x=0;x<n;x++) scanf("%d",&a[x]); for(x=0;x<m;x++) { z=a[n-1]; for(y=n-2;y>=0;y--) a[y+1]=a[y]; a[0]=z; } for(x=0;x<n;x++) { printf("%d",a[x]); if(x!=n-1) printf(" "); } }
运行:
(4) PSP
在同一篇博客中,参照教材第35页表2-2和表2-3,为上述3个题目制作PSP阶段表格。
PSP阶段表格第1列分类,如功能1、功能2、测试功能1等。
原因:主要是因为自己基础比较差,很多知识都已经遗忘了,所以做题时显得很吃力,花费了很多时间回忆知识点,以后还需要多多加强练习。