梁梦瑶 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文档里。

请用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;

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出现偏差的原因是对数组这方面的知识遗忘太多了,思路有了之后思考了很久才知道怎么表示。

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

时间: 2024-10-14 21:53:06

梁梦瑶 20190905-3 命令行和控制台编程的相关文章

第四章 shell学习之sed命令和awk编程

sed命令 sed只是对缓冲区中原始文件的副本进行编辑,不改变源文件,所以要保存则要重定向到另一个文件 sed三种方式: 1.sed [选项] 'sed命令' 输入文件 2.sed [选项] -f sed脚本文件 输入文件 3../sed脚本文件 输入文件 其中3的sed脚本文件要以#! bin/sed -f等开头 选项: -n 不打印所有行到标准输出,默认先打印匹配的再打印所有 -e 关联多个sed命令 -f 调用sed脚本文件 定位文本: x x为指定行号 x,y 从x到y行 /patter

5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq

在上一篇博客5天玩转C#并行和多线程编程 —— 第一天 认识Parallel中,我们学习了Parallel的用法.并行编程,本质上是多线程的编程,那么当多个线程同时处理一个任务的时候,必然会出现资源访问问题,及所谓的线程安全.就像现实中,我们开发项目,就是一个并行的例子,把不同的模块分给不同的人,同时进行,才能在短的时间内做出大的项目.如果大家都只管自己写自己的代码,写完后发现合并不到一起,那么这种并行就没有了意义. 并行算法的出现,随之而产生的也就有了并行集合,及线程安全集合:微软向的也算周到

5天玩转C#并行和多线程编程

5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task 5天玩转C#并行和多线程编程 —— 第四天 Task进阶 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结 随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性能.在.net 4.0中,微软给我们提供了

C#并行和多线程编程

5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task 5天玩转C#并行和多线程编程 —— 第四天 Task进阶 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结 在上一篇博客5天玩转C#并行和多线程编程 —— 第一天 认识Parallel

5天玩转C#并行和多线程编程 —— 第四天 Task进阶

5天玩转C#并行和多线程编程系列文章目录,前三天的目录,最后一篇更新完会附上完整目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task  一.Task的嵌套 Task中还可以再嵌套Task,Thread中能不能这样做,我只能说我是没这样写过.Task中的嵌套,我感觉其实也可以分开来写,不过嵌套起来会方便管理一点.Task中的嵌套分为两种,关联嵌套和非关

eclipse运行 Maven Test命令时控制台输出乱码的解决办法

在Maven的pom.xml文件中增加: <properties>      <argLine>-Dfile.encoding=UTF-8</argLine> </properties> 今天突然遇到这个问题了,上网搜了一下,答案一大堆,还是这个最好!记录一下! eclipse运行 Maven Test命令时控制台输出乱码的解决办法,布布扣,bubuko.com

在CMD命令行和PowerShell中实现复制粘贴功能

在CMD命令行和PowerShell中实现复制粘贴功能 经常使用命令行或者PowerShell的朋友肯定会遇到这种情况:粘贴文本很简单,右键--选择粘贴即可,但是想要复制命令行或者PowerShell中的命令,倒是不知道怎么办了.其实只需要更改其属性. PS:PowerShell是基于任务的命令行外壳,这里和CMD命令行设置一样. 左键点击CMD处理程序左上角,选择属性.(或者按下Alt+空格). 选中快速编辑模式,点击确定. 这时,我们可以选择命令行中的文本了. 在新命令行中双击右键,即可实现

Python进阶(三十五)-Fiddler命令行和HTTP断点调试

Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 ??上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都称为一个session).界面中能够看到Fiddler抓取的全部HTTP请求.而为了更加方便的管理全部的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作Linux的童鞋应该能够感受到这会有多么方便

Cent OS 命令行和窗口界面默认登录切换方法

在 CentOS 中的修改方法如下: 1. root登陆,免得老是sudo 2. 打开/etc/inittab 文件     #vim /etc/inittab 3. 在默认的 run level 设置中,可以看到第一行书写如:      id:5:initdefault:(默认的 run level 等级为 5:即图形模式 3:即命令行模式) 4. 将第一行的 5 修改为 3 即可. 5. 保存文件后重启系统你就可以看见是启动的文本界面了. Cent OS 命令行和窗口界面默认登录切换方法,布