• 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程序的输入文件,然后a程序进行相应的处理之后,将结果输出到c文本中。

    #include<stdio.h>
    int main(int argc,char *argv[]){
        int i;
        for(i=1;i<argc;i++){
            char* str = argv[i];
            while(*str!='=')
                str+=1;
            str+=1;
            printf("%s
    ",str);
            printf("
    ");
        }
        return 0; 
    } 
    


    2.熟悉 测试用例

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

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

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

    (3)代码解读 (20分)

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

    代码片断要求1 凡不缩进的,此题目拒绝接收。不知道什么是“缩进”的同学,请自行补课,不接受以“不知道”作为理由。

    代码片断要求2 要求使用cnblogs代码控件,参见往届同学黄兴、宫成荣的作业。凡粘贴IDE中的代码截图,或者贴文字而没有关键字高亮或彩色的,0分。

    [http://www.cnblogs.com/huangxman/p/5871201.html]

    [http://www.cnblogs.com/gongcr/p/5873493.html]

    • 1001 害死人不偿命的(3n+1)猜想:
      ① 重点难点:技术和偶数的判断,然后就是给出的条件,要求的是n=1的情况,所以循环条件是n!=1.
      ② 重要代码片段:
    #include <stdio.h>
    int main(){
    	int n;
    	scanf("%d",&n);
    	int i=0;
    	while(n!=1){
    		if(n%2==0){
    			n=n/2;
    		}
    		else{
    			n=(3*n+1)/2;
    		}
    		i++;
    	}
    	printf("%d",i); 
    	return 0;
    } 
    

    ③ 执行效果截图:

    • 1004 成绩排名:
      ① 重点难点:主要是结构体的应用,结构体的定义、用法、赋值等。
      ② 重要代码片段:
    #include <stdio.h>
    struct student{
    	char name[11];
    	char number[11];
    	int score;
    };
    int main(){
    	int n,i,max,min;
    	scanf("%d",&n);
    	struct student student[n];
    	for(i=0;i<n;i++){
    		scanf("%s %s %d",student[i].name,student[i].number,&student[i].score);
    	}
            printf("
    ");
    	max=min=0;
    	for(i=0;i<n;i++){
    		if(student[max].score<student[i].score){
    			max=i;
    		}
    		if(student[min].score>student[i].score){
    			min=i;
    		}
    	}
    	printf("%s %s
    ",student[max].name,student[max].number);
    	printf("%s %s
    ",student[min].name,student[min].number);
    	return 0;
    }
    

    ③ 执行效果截图:

    ④ 困难的地方:见到这个题就能想起用结构体,但是一开始忘记结构体的用法,先查阅资料了解之后又进行的,还有就是最开始没有输出正确结果,检查很久之后才发现是一个特别不起眼的地方写错了,导致检查了恩多次都没有检查出来,所以以后要认真仔细。

    • 1006 换个格式输出整数:
      ① 重点难点:根据题目找出规律,其实就是求出这个数的每一位上的数字。
      ② 重要代码片段:
    #include<stdio.h>
    int main(){
    	int n;
    	int i,b,s,g;            //分别代表百位,十位和各位
    	scanf("%d",&n);
    	printf("
    ");
    	b=n/100;
    	for(i=1;i<=b;i++){    //依此用循环输出即可
        	printf("B");
      	}
    	s=(n-b*100)/10;
    	for(i=1;i<=s;i++){
        	printf("S");
      	}
     	g=n-b*100-s*10;
    	for(i=1;i<=g;i++){
        	printf("%d",i);
    	}
    	return 0;
    }
    

    ③ 执行效果截图:

    ④ 得意、突破、困难的地方:一开始考虑的有点多,想着可能用到指针,但是也没有考虑好,后来静下心来分析之后才发现挺简单的,就是单纯的求每一位上的数字就可以。做题不能着急,静下心来慢慢思考就好。

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

    要求在博客中给出测试数据。
    参照上一题中“控制台”的知识,给出运行时从控制台读入测试数据和向控制台输出的截图。
    图表过小、字迹不清、错别字、句子不通顺的,教师会因为读不懂而对此题扣分。

    • 1001 害死人不偿命的(3n+1)猜想:
    • 1004 成绩排名:
    • 1006 换个格式输出整数:

    (4) PSP(8分)

    在同一篇博客中,参照教材第35页表2-2和表2-3,为上述3个题目制作PSP阶段表格。
    PSP阶段表格第1列分类,如功能1、功能2、测试功能1等。

    要求1 估算你对每个功能 (或/和子功能)的预计花费时间,填入PSP阶段表格,时间颗粒度为分钟。

    要求2 记录词频统计项目实际花费时间,填入PSP阶段表格,时间颗粒度要求分钟。

    要求3 对比要求1和要求2中每项时间花费的差距,分析原因。

  • 相关阅读:
    laravel 博客
    VSSより、指定したファイルを取得するマクロ(パス入り)
    使用SQLPlus连接Oracle实例
    SSH-Struts第四弹:Struts2学习过程中遇到的问题
    SSH-Struts第三弹:传智播客视频教程第一天上午的笔记
    Prim和Kruskal求最小生成树
    tarjan算法求强连通分量
    shutdown TCP 端口445
    Eclipse导出apk
    [模板]tarjan求强连通分量
  • 原文地址:https://www.cnblogs.com/houwx744/p/13659478.html
Copyright © 2020-2023  润新知