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分)

    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);
    
          return 0;
    }
    

    运行结果:

    2.熟悉 测试用例

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

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

    (3)代码解读 (20分)
    1001 害死人不偿命的(3n+1)猜想
    此题只要区分好奇偶数就可以。

    int n;
    int num = 0;
    scanf("%d",&n);
    while(n!=1){
          if(n%2 == 0){
                n/=2;
                num++;
          }else{
                n = (n*3+1)/2;
                num++;
          }
    }
    printf("%d",num);
    
    

    代码运行结果:

    1004 成绩排名
    最大值最小值的初始化分别为-1和101,然后再与输入进的值进行比较,将目前最大值最小值存入进去。

    int n,i;
    cin>>n;
    string name,xuehao;
    int grade;
    string maxn,maxx,minn,minx;
    int max=-1,min=101;
    for(i=0;i<n;i++){
          cin>>name>>xuehao>>grade;
          if(grade>max){
                max=grade;
                maxn=name;
                maxx=xuehao;
    	}
    	if(grade<min){
                min=grade;
                minn=name;
                minx=xuehao;
    	}
    }
    cout<<maxn<<" "<<maxx<<endl;
    cout<<minn<<" "<<minx;
    
    

    代码运行结果:

    1006 换个格式输出整数
    开始想把数字存放数组中,但是只想起来比较麻烦,就直接把数字分割开,再输出对应的字符。

    int n,i;
    while(scanf("%d",&n)!=EOF){
          for(i=0;i<(n/100);i++){
                printf("B");
          }
                for(i=0;i<(n/10%10);i++){
                printf("S");
          }
          for(i=0;i<(n%10);i++){
                printf("%d",i+1);
          }
          printf("
    ");
    }
    

    代码运行结果:

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

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

    测试数据:
    234、23

    1004 成绩排名

    测试数据:
    张三 qwe 76
    李四 ert 98
    王五 pop 100
    杜一 pgs 85

    1006 换个格式输出整数

    测试数据:
    345、723

    (4) PSP(8分)

  • 相关阅读:
    一文读懂高性能网络编程中的I/O模型
    QQ的成功,远没有你想象的那么顺利和轻松
    解密“达达-京东到家”的订单即时派发技术原理和实践
    以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
    老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?
    最火移动端跨平台方案盘点:React Native、weex、Flutter
    ogre3D学习基础11 -- 交换两个场景管理器
    STL学习笔记2--list
    STL学习笔记1--vector
    设计模式 --- 学习总结
  • 原文地址:https://www.cnblogs.com/dul843/p/13679186.html
Copyright © 2011-2022 走看看