zoukankan      html  css  js  c++  java
  • 梁梦瑶 20190905-3 命令行和控制台编程

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

    1.熟悉 命令行和控制台 

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

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

    a.exe < b.txt > c.txt

    答:“<”代表输入重定向,将文档b代替键盘作为程序a的输入,“>”代表输出重定向,该运算符会导致建立一个名为c.txt的新文件供我们使用,然后将a.exe的输出重定向到该文件。

    请用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 argc,char **argv)
    {
        int a,b,c;
        sscanf(argv[1], "a=%d", &a);
        sscanf(argv[2], "b=%d", &b);
        sscanf(argv[3], "c=%d", &c);
        printf("%d
    
    ",a);
        printf("%d
    
    ",b);
        printf("%d",c);
    }

    控制台程序

    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++;
            }
        }
    
    
    
    

     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]=='
    ')
              break;
            if(str1[i]==' ')
            {
                str2[j][m]='';
                j++;
                m=0;
                n++;
            }
            else
            {
                str2[j][m]=str1[i];
                m++;
            }
        }
        str2[j][m]='';
        for(i=n;i>0;i--)
        {
            printf("%s ",str2[i]);
        }
        printf("%s",str2[0]);
    
    

     3.psp表格

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

     代码2出现偏差的原因是之前遇到这个题目,已经做过一遍了,所以比预计时间少了一点。

    代码3出现偏差的原因是对数组这方面的知识遗忘太多了,这个题目对我而言很有难度。
  • 相关阅读:
    流方式下载文件
    数据导出excel
    文件属性的生成操作build action
    数据库添加注释
    前后端交互
    ASP.NET Core 3.0 原生DI拓展实现IocManager
    ASP.NET Core使用Elasticsearch记录NLog日志
    IdentityServer4中文文档
    Elasticsearch、Kibana Windows下环境搭建
    通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
  • 原文地址:https://www.cnblogs.com/summerkingy/p/11487394.html
Copyright © 2011-2022 走看看