ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

20200910-3 命令行和控制台编程

2020-09-11 02:01:09  阅读:220  来源: 互联网

标签:截图 题目 int 编程 20200910 new 控制台 include


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

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

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

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

a.exe < b.txt > c.txt

作用:文档传入程序a,程序a运行将内容传给文档c。

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

代码:



#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("a=%d b=%d c=%d",&a,&b,&c);
    printf("%d\n%d\n%d\n",a,b,c);
}

 效果:

 2.熟悉 测试用例

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

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

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

(3)代码解读 (20分)

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

1004成绩排名题目比较简单,主要考察了结构体,字符串数组

此题的重点:主要是注意输出时字符串的输出格式

 

#include<stdio.h>
#include<stdlib.h>
struct student
{
    char name[15];
    char IDnumber[15];
    int score;
};
typedef struct student student;
int main()
{
    int cnt;
    scanf("%d",&cnt);
    student max={"","",0},min={"","",100};
    while(cnt--)
    {
        student new;
        scanf("%s%s%d",new.name,new.IDnumber,&new.score);
        if(new.score>max.score)
            max=new;          
        if(new.score<min.score)    
            min=new;
    }
    printf("%s %s\n",max.name,max.IDnumber);
    printf("%s %s\n",min.name,min.IDnumber);
    return 0;
}

运行结果图:

 

1009说反话  题目给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出

此题主要重点:记录每个单词的起始和终止位置以及二维数组字符串的用法。

#include<stdio.h>
#include<string.h>
char str[85];
int book[85][2];
int main()
{
      scanf("%[^\n]",str);
      int ind,ins=strlen(str),con=0,booknow=0;
    for(ind=0;ind<ins;ind++)
    {
        if(str[ind]!=' '&&!con)
        {
            con=1;
            book[booknow][0]=ind;
        }
        else if(str[ind]==' '&&con)
        {
            con=0;
            book[booknow++][1]=ind;
        }
    }
    if(con)
        book[booknow++][1]=ins;
    for(ind=booknow-1;ind>=0;ind--)
    {
        for(ins=book[ind][0];ins<book[ind][1];ins++)
            printf("%c",str[ins]);
        printf("%c",ind==0?'\n':' ');
    }
      return 0;
} 

运行结果图:

 

 

1011A+B和C  题目给定区间 [−2​31​​,2​31​​] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C

输入格式:

输入第 1 行给出正整数 T (≤),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。

输出格式:

对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。

此题:解法容易理解,但注意输入输出格式和给定区间范围

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max(a,b) (a<b?b:a)
#define min(a,b) (a>b?b:a)
int main(int argc, char *argv[])
{
    int cnt;
    scanf("%d",&cnt);
    for(int i=1;i<=cnt;i++)
    {
        long long a,b,c;
        scanf("%ld%ld%ld",&a,&b,&c);
        if(a+b>c)
            printf("Case #%d: true\n",i);
        else
            printf("Case #%d: false\n",i);
    } 
    return 0;
}

 

 

 

运行结果:

 

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

要求在博客中给出测试数据。参照上一题中“控制台”的知识,给出运行时从控制台读入测试数据和向控制台输出的截图。

图表过小、字迹不清、错别字、句子不通顺的,教师会因为读不懂而对此题扣分。

1004成绩排名题目
测试数据:
2
xucancan 101 98
wangfang 102 97

截图:



1009说反话题目
测试数据:
dgdfh

截图:



1011 A+B和C题目
测试数据:
2
123 33 44
123 66 400

测试结果截图:






(5) PSP(8分)

  预计花费时间  实际花费时间 花费时间差距 原因
题目1004 20min 22min 2min 题目本身思路不难,由于二位数组和字符串的使用不够熟练,实际时间超出了预计
题目1009 11min 15min 4min 在if语句:判断行、列;输入输出格式上花费了一定时间。
题目1011 10min 12min 2min 没有考虑输入的范围以及输出格式输入格式,花了一些时间

 

 












标签:截图,题目,int,编程,20200910,new,控制台,include
来源: https://www.cnblogs.com/xucancan/p/13649358.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有