网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 99|回复: 2

EDUCoder编程实训题解(1.编辑与调试)

[复制链接]

3

主题

9

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2022-12-10 14:02:55 | 显示全部楼层 |阅读模式
1.编辑与调试 2.顺序结构 3.选择结构一 4.选择结构二 5.循环一 6.循环二 7.函数
8.递归与嵌套函数 9.一维数组和二维数组 10.字符数组 11.指针一 12.指针二 13.结构体
14.文件
编辑与调试

第1关:打印输出 Hello World

任务描述
本关任务:通过运行一个C语言程序,让你初步了解程序的运行方法。
编程要求
请补充Begin-End之间的代码,使用printf()在屏幕上输出 Hello World 。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:无
输出:Hello World
解题程序
#include<stdio.h>
int main(void)
{  
    /********* Begin *********/
    printf("Hello World\n");
       
    /********* End *********/
    return 0;
}

第2关:打印输出图形

任务描述
本关任务:参照上面调试的程序,编写一个能输出规定图形的程序。
编程要求
编写一个C程序,输出以下图案,并上机调试通过。第一行开头有4个空格,第二行开头有3个空格,第三行有2个空格,第四行开头有一个空格,第五行开头没有空格,9个*。
   *
  ***
   OK
  Hello!
*********测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:无
输出:
   *
  ***
   OK
  Hello!
*********提示
本题通过执行多个printf函数输出每一行即可,暂时不用考虑使用循环。
解题程序
#include<stdio.h>
int main(void)
{         
    /********* Begin *********/
    printf("    *\n");
    printf("   ***\n");
    printf("  OK\n");
    printf(" Hello!\n");
    printf("*********\n");
    /********* End *********/
    return 0;
}

第3关:求3个数的最大值

任务描述
本关任务:编写一个程序,输入a、b、c三个整数,输出其中最大值。
输入
输入一行数据,分别为a b c。
输出
a b c其中最大的数,不用换行。

如何求出最大值
求几个数的最大值?

三个数两两比较,将较大的数存入最大值变量max;
编程要求
根据提示,在右侧编辑器Begin-End中补充代码,计算并输出三个数的最大值。
测试说明
我会对你编写的代码进行测试:

测试输入:10,30,20
预期输出:max=30

测试输入:15,78,85
预期输出:max=85

提示:
注意输入输出格式。
解题说明
一种办法是使用逻辑判定再输出其最大值。
另外一种办法是,使用求最大值得宏定义。
解题程序一(逻辑判定计算)
#include<stdio.h>
int main(void)
{  
        /********* Begin *********/
    int a, b, c, ans;
    scanf("%d,%d,%d", &a, &b, &c);
        if (a >= b && a >= c) ans = a;
    else if (b >= c) ans = b;
    else ans = c;
    printf("max=%d\n", ans);
        /********* End *********/
    return 0;
}
解题程序二(宏定义)
/* 三数最大值 */

#include<stdio.h>

#define MAX(a, b) ((a) > (b) ? (a) : (b))

int main(void)
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    printf("%d\n", MAX(MAX(a, b), c));
    return 0;
}

第4关:熟悉C语言调试过程
任务描述
本关任务:以下程序源代码有错误,请使用C语言的调试功能,检查程序的错误并更正,使之能正确运行。
程序源代码:
#include<stdio.h>
int main(void)
{int  x;
    int y=2,z=3;
    scanf("%d",&x);
    if(x=y+z);
       printf("*****");
    else  
       printf("#####" );
   return 0;
}

编程要求
程序中要求键盘输入x的值,当x的值为5时输出*****,否则输出#####。
输入:整数x的值。
输出:当x的值为5时输出*****,否则输出#####。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:5
输出:*****
问题分析
预先给定的原来的程序有BUG,第6行的“=”应该改为“==”,并且这一行最后的“;”也要删除。
另外原来程序的缩进的书写格式也不标准,需要修改整理。
头文件的引号也需要修改为“<>”。
解题程序
#include <stdio.h>
int main(void)
{
    /********* Begin *********/
    int  x;
    int y=2,z=3;
    scanf("%d",&x);
    if (x==y+z)
        printf("*****");
    else  
        printf("#####" );
    return 0;
    /********* End *********/
}

1.编辑与调试 2.顺序结构 3.选择结构一 4.选择结构二 5.循环一 6.循环二 7.函数
8.递归与嵌套函数 9.一维数组和二维数组 10.字符数组 11.指针一 12.指针二 13.结构体
14.文件
回复

使用道具 举报

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2025-4-25 08:45:24 | 显示全部楼层
路过 帮顶 嘿嘿
回复

使用道具 举报

2

主题

6

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2025-5-25 05:23:30 | 显示全部楼层
看起来不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-6 08:41 , Processed in 0.083103 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表