码迷,mamicode.com
首页 > 其他好文 > 详细

梁梦瑶 20190905-3 命令行和控制台编程

时间:2019-09-08 18:13:20      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:账号   辅助   判断   mamicode   错误   没有   命令行   code   info   

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

1.熟悉 命令行和控制台 

假设在当前目录下存在应用程序 a.exe 和 文件文件 b.,

请以数据流图并辅助以文字说明下述控制台命令的作用是什么。(5分)

a.exe < b.txt > c.txt

答:文档b作为程序a的输入,结果输出到c文档里。

技术图片 

请用C言开发应用程序d.exe,从控制台指令读入命令行参数,并在控制台分别打印出abc的值。运行效果形如下面的示例(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;

while(scanf("a=%d b=%d c=%d",&a,&b,&c))
{
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("\n");}
}

控制台运行效果

技术图片

2.熟悉 测试用例


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


(2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。截图如下,要求包括1.红色对号、2.标号、3.用户名(此例中为 Young)。(30分)


(3)代码解读。(20分)


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

答:(2)

技术图片

                       技术图片                                     技术图片

(3)代码解读

1001题目:害死人不偿命的3n+1猜想
重难点:
此题目较为简单,需要做的工作就是重复对n进行切割。如果n为偶数,那n就变成原来的一半,如果n为奇数,那n就变为(3*n+1)/2,将这个过程进行循环,设置一个计数器每循环一次计数器+1,退出循环的条件是n==1,最终输出计数器的个数。重难点就在于循环的内容和循环条件的判断。
重要代码片断:
while(n!=1)
    {
       if(n%2==0)
        {
          n=n/2;
          count++;
        }
        else
        {
          n=(3*n+1)/2;
          count++;
        }
    }
       printf("%d",count);
    return 0; 
技术图片

 


 1006题目:换个格式输出整数

重难点:此题的重点即为给一个整数后能够分别得到它的个位十位和千位,得到个十百千位以后就可以使用循环打出想要的答案。

重要代码片断:

    a=n/100;
    b=n%100/10;
    c=n%10;
    for(int i=1;i<=a;i++)
        putchar(B);
    for(int j=1;j<=b;j++)
        putchar(S);
    for(int k=1;k<=c;k++)
        printf("%d",k); 

 

技术图片

 

 

1009题目:说反话

重难点:重点就是当遇到空格时说明一个单词的结束,单词个数加1,可使用二维数组,分别来统计单词个数和单词的长度,最后可将二维数组当做特殊的一维数组,倒向输出单词即可。

重要代码片断:

    gets(str1);
    for(i=0;i<strlen(str1);i++)
    {
        if(str1[i]== )
        {
            str2[j][m]=\0;
            j++;
            m=0;
            n++;
        }
        else
            str2[j][m++]=str1[i];
        if(str1[i]==\n)
            break;
    }
    str2[j][m]=\0;
    for(i=n;i>0;i--)
    {
            printf("%s ",str2[i]);
    }
    printf("%s",str2[0]);
技术图片

 


 3.psp表格

技术图片

 

 代码1出现偏差的原因是很久不太用c语言了,知识有点生疏,出现很多小错误进行了多次修改 

 代码2出现偏差的原因是看着题目很难得样子实际没有那么难。

代码3出现偏差的原因是对数组这方面的知识遗忘太多了,思路有了之后思考了很久才知道怎么表示。

 

梁梦瑶 20190905-3 命令行和控制台编程

标签:账号   辅助   判断   mamicode   错误   没有   命令行   code   info   

原文地址:https://www.cnblogs.com/summerkingy/p/11487394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!