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的内容作为程序的输入,程序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>
    #include <stdlib.h>
    int main(int argc,char *argv[])
    {
        int i;
        for(i=1;i<argc;i++)
        {
            char *s;
            s=argv[i];
            if(*s!='=')
            {
                s++;
            }
            if(*s!=' ')
            {
                s++;
            }
            printf("%s
    ",s);
        }
    
        return 0;
    }

     

     2.熟悉 测试用例

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

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

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

     

    (3)代码解读 (20分)

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

    重点/难点:在于运用好while循环和if else的结合!

    重要代码:

    n=int(input("请输入一个整数:"))
    i=0      #所需要的步数
    while n!=1:
        if n%2 ==1:
            n=(3*n+1)/2
            i=i+1
        else:
            n/=2
            i=i+1
    print(i)

    效果执行图:

    1004成绩排名

    重点/难点:由于我还是python初学者,以下两个函数的应用对我来说是这题的重难点所在!

    split() 通过指定分隔符对字符串进行切片
    append()函数用于在列表末尾添加新的对象

    重要代码:

    n = input()
    name = []
    num = []
    grade = []
    for i in range(int(n)):
        a = input().split()
        name.append(a[0])
        num.append(a[1])
        grade.append(int(a[2]))
    good = -1
    bad = 101
    goodn = -1
    badn = -1
    for i in range(len(grade)):
        if (grade[i]>good):
            good = grade[i]
            goodn = i
        if (grade[i]<bad):
            bad = grade[i]
            badn = i
    print(name[goodn]+' '+num[goodn])
    print(name[badn]+' '+num[badn])

    效果执行图:

    1006换个格式输出整数

    重点/难点:在边界的判断上比较难,后来用循环嵌套的方式才得以完成!

    重要代码:

    num_i = input().strip()
    def R(num_i):
        if len(num_i) > 3:
            return
        if len(num_i) == 3:
            l = []
            for i in num_i:
                l.append(i)
            print('%s%s' % ('B' * int(l[0]), 'S' * int(l[1])), end='')
            for i in range(1, int(l[2]) + 1):
                print(f'{i}', end='')
    
        elif len(num_i) == 2:
            l = []
            for i in num_i:
                l.append(i)
            print('%s' % ('S' * int(l[0])), end='')
            for i in range(1, int(l[1]) + 1):
                print(f'{i}', end='')
    
        else:
            for i in range(1, int(num_i) + 1):
                print(f'{i}', end='')
    
    R(num_i)

    效果执行图:

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

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

    测试数据:3

    测试结果:

    1004成绩排名

    测试数据:

    3

    蒋慧 0001 78

    赵路遥 0002 89

    小谭 0007 90

    测试结果:

    1006换个格式输出整数

    测试数据:456

    测试结果:

     (4) PSP(8分)

  • 相关阅读:
    [hdu-2048] 神、上帝以及老天爷
    or1200中IMMU分析(续)
    Java Applet读写client串口——终极篇
    树莓派_Linux串口编程_实现自发自收
    2014百度实习生面试题(部分)具体解释
    Leetcode
    eclipse+webservice开发实例
    现有一些开源ESB总线的比較
    《HTML5 从入门到精通--7.6.3 单元格垂直跨度——rowspan》
    百度究竟是哪国的公司
  • 原文地址:https://www.cnblogs.com/Jh-123/p/13664189.html
Copyright © 2011-2022 走看看