zoukankan      html  css  js  c++  java
  • 20200910-3 命令行和控制台编程

    此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11185]

    1.熟悉 命令行 和 控制台/标准输入和标准输出

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

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

    a.exe < b.txt > c.txt

     

    将b.txt中的内容作为a.exe程序的输入,并将处理结果覆盖写入到c.txt

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

    #include <stdio.h>
    #include<string.h>
    
    void main(int argc, char* argv[]) {
        int a, b, c;
        sscanf_s(argv[1],"a=%d", &a);//将控制台中的数据重新格式化,最新版中不支持sscanf函数,改为sscanf_s
        sscanf_s(argv[2], "b=%d", &b);
        sscanf_s(argv[3], "c=%d", &c);
        printf("%d
    %d
    %d", a, b, c);
    }
    

      

     (控制台使用了CMD美化程序Cmder,非IDE内控制台)

     2.熟悉 测试用例

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

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

     注意,需要读完本作业全部题目才能开始做题,有对时间记录和代码解读的要求。

     

    (3)代码解读 (20分)

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

    1002 写出这个数

    重难点:怎么样将数字用拼音写出来

    <?php
    $pinyin= array("ling","yi","er","san","si","wu","liu","qi","ba","jiu");
    fwrite ( STDOUT , '');//输入字符
    $num = trim ( fgets ( STDIN ) );//提取输入的字符
    $sum=0;
    for($i=0;$i<strlen($num);$i++){
        $single=substr($num, $i, 1);//截取一个字符
        $sum+=$single;
    }
    for($i=0;$i<strlen($sum);$i++){
        $single=substr($sum, $i, 1);
        echo $pinyin[$single];
        if($i<strlen($sum)-1)echo " ";
    }
    ?>
    

    1006 换个格式输出整数

    重难点:提取出各位上的数字并输出相对应的替代字符,要注意个位十位百位的变换

    <?php
    fwrite ( STDOUT , '');//输入字符
    $input = trim ( fgets ( STDIN ) );//提取输入字符
    for($i=0;$i<strlen($input);$i++){
        $single=substr($input, $i, 1);//截取一位字符
        for($j=0;$j<$single;$j++){
            if($i==0&&strlen($input)==3)echo "B";
            if(($i==0&&strlen($input)==2)||($i==1&&strlen($input)==3))echo "S";
            if(($i==0&&strlen($input)==1)||($i==1&&strlen($input)==2)||($i==2&&strlen($input)==3))echo $j+1;
        }
    }
    ?>
    

     

    1017 A除以B

    重难点:大数除法,int格式无法输入太大的数据,可以转化为数组方式并按照小学除法进行计算

    <?php
    fwrite ( STDOUT , '');//输入字符
    $input = trim ( fgets ( STDIN ) );获取输入的字符
    $num=substr($input,0,strpos($input," "));//提取空格前面的字符
    $cs=substr($input,strpos($input," ")+1,1);//提取空格后面的字符
    $next=0;//各位上的余数
    $jieguo="";
    for($i=0;$i<strlen($num);$i++){
        $single=substr($num, $i, 1);
        $single=$next.$single;
        $num2=intval($single/$cs);
        $ys=$single % $cs;
        if($num2>0||($num2==0&&$jieguo!=="")){
            $jieguo=$jieguo.$num2;
        }
        $next=$ys;
    }
    if($jieguo==="")$jieguo=0;
    echo $jieguo." ".$next;
    ?>
    

    (4)控制台应用 (15分)

    要求在博客中给出测试数据。

     1002 写出这个数

    测试数据1:99999999

    输出样例1:qi er

    测试数据2:10000000

    输出样例2:yi

    测试数据3:0

    输出样例3:ling

    测速结果:

     1006 换个格式输出整数

    测试数据1:999

    输出样例1:BBBBBBBBBSSSSSSSSS123456789

    测试数据2:100

    输出样例2:B

    测试数据3:99

    输出样例3:SSSSSSSSS123456789

    测试数据4:10

    输出样例4:S

    测试数据5:9

    输出样例5:123456789

    测试数据6:0

    输出样例6: 

    测速结果:

    1017 A除以B

    测试数据1:49 7

    输出样例1:7 0

    测试数据2:0 1

    输出样例2:0 0

    测试数据3:1000 1

    输出样例3:1000 0

    测试数据4:1000 6

    输出样例4:166 4

    测试数据5:100000000000000000000000000000000000 6

    输出样例5:16666666666666666666666666666666666 4

    测速结果:

    (4) PSP(8分)

  • 相关阅读:
    angularJS中的MVC思想?
    angularJs初体验,实现双向数据绑定!使用体会:比较爽
    原生JS去解析地址栏的链接?超好用的解决办法
    HDCMS多图字段的使用?
    sublime添加到鼠标右键打开文件的方法?
    Ajax做列表无限加载和Ajax做二级下拉选项
    Atitit.获取某个服务 网络邻居列表 解决方案
    Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
    Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
    Atitit.prototype-base class-based  基于“类” vs 基于“原型”
  • 原文地址:https://www.cnblogs.com/thinkget/p/13658217.html
Copyright © 2011-2022 走看看