王歆瑶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等。

原因:主要是因为自己基础比较差,很多知识都已经遗忘了,所以做题时显得很吃力,花费了很多时间回忆知识点,以后还需要多多加强练习。

 

posted @ 2019-09-10 15:08  新芽*  阅读(209)  评论(1编辑  收藏  举报