EDUCoder编程练习题解(编辑与调试)

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EDUCoder编程练习题解(编辑与调试)相关的知识,希望对你有一定的参考价值。

编辑与调试    顺序结构    选择结构一    选择结构二    循环一     循环二    函数
递归与嵌套函数     一维数组和二维数组     字符数组      指针一    指针二     结构体      文件

编辑与调试

第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)
  
	/********* Begin *********/
    int a, b, c;
    scanf("%d,%d,%d", &a, &b, &c);
    printf("max=%d\\n", MAX(MAX(a, b), c));
	/********* End *********/
    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 *********/

编辑与调试    顺序结构    选择结构一    选择结构二    循环一     循环二    函数
递归与嵌套函数     一维数组和二维数组     字符数组      指针一    指针二     结构体      文件

以上是关于EDUCoder编程练习题解(编辑与调试)的主要内容,如果未能解决你的问题,请参考以下文章

EDUCoder编程练习题解(文件)

EDUCoder编程练习题解(结构体)

EDUCoder编程练习题解(文件)

EDUCoder编程练习题解(指针一)

EDUCoder编程练习题解(指针一)

EDUCoder编程练习题解(指针一)