此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/5523

1.熟悉 命令行和控制台

(1)假设在当前目录下存在应用程序 a.exe 和 文件文件 b.txt,请以数据流图并辅助以文字说明下述控制台命令的作用是什么。

答:b文件的内容输入进a程序中,然后将输出结果保存在c文件中。

(2)请用C语言开发应用程序d.exe,从控制台指令读入命令行参数,并在控制台分别打印出a、b、c的值。运行效果形如下面的示例。

代码如下:

#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",a,b,c);
}

执行效果截图如下:

 2.熟悉 测试用例

(1)请在网站 [https://pintia.cn/]注册账号。

(2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。

截图如下:

(3)代码解读

发表博客,介绍上述3个题目代码中重点/难点,展示重要代码片断,给出执行效果截图,展示你感觉得意、突破、困难的地方。

1001 害死人不偿命的(3n+1)猜想

此题较为容易,利用递归判断下奇偶数便可得出结果。

代码片段如下:

int kan(int i,int n)
{
    if(i==1)
        return n;
    else if(i%2==0)
    {
        n++;
        kan(i/2,n);
    }
    else if(i%2!=0)
    {
        n++;
        kan((3*i+1)/2,n);
    }
}

执行效果截图如下:

 

1002 写出这个数

此题的难点在于如何利用字符串来处理这个大数,以及如何处理结果为X0X、X00(X指1-9任意一个数字)这一类数字的输出。

代码片段如下:

if(bai!=0)
{
    switch1(bai);
    printf(" ");
    switch1(shi);
    printf(" ");
    switch1(ge);
}
else if(shi!=0)
{
    switch1(shi);
    printf(" ");
    switch1(ge);
}
else if(ge!=0)
{
    switch1(ge);
}

执行效果截图如下:

1006 换个格式输出整数

此题较为简单,判断一下输入数字的位数然后利用循环便可做出来。

代码片段如下:

if(bai!=0)
{
    for(int temp1=0;temp1<bai;temp1++)
        printf("B");
}
if(shi!=0)
{
    for(int temp2=0;temp2<shi;temp2++)
        printf("S");
}
if(ge!=0)
{
    for(int temp3=1;temp3<=ge;temp3++)
        printf("%d",temp3);
}

执行效果截图如下:

 

(4)PSP

在同一篇博客中,参照教材第35页表2-2和表2-3,为上述3个题目制作PSP阶段表格。PSP阶段表格第1列分类,如功能1、功能2、测试功能1等。

出现时间差的原因:

1、在编写1001题和1006题的时候,我发现我的C语言并没有遗忘那么多,于是就很顺利的完成了编码以及测试,所以出现了预计时间大于实际时间的状况。

2、1002题的字符串处理大数在一开始构思的时候想的很好,到了实际编码才发现各种函数都忘得一干二净,只能临时补课;后来测试的时候出现了错误,一开始忽略掉了某种类型结果的输出,后来思考后改正。于是1002题的实际耗时比预估时间超出了不少。

 

posted on 2019-09-11 15:11  Eustia丶  阅读(137)  评论(0编辑  收藏  举报