EDUCoder编程练习题解(顺序结构)
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EDUCoder编程练习题解(顺序结构)相关的知识,希望对你有一定的参考价值。
编辑与调试 顺序结构 选择结构一 选择结构二 循环一 循环二 函数
递归与嵌套函数 一维数组和二维数组 字符数组 指针一 指针二 结构体 文件
顺序结构
第1关:加法运算
任务描述
本关任务:写一个加法程序,输入整数a,b,输出他们的和。
编程要求
请补充Begin-End之间的代码,写一个加法程序,输入整数a,b,输出他们的和。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
输入格式:scanf(“%d,%d”,&a,&b);
输出格式:printf(“%d+%d=%d\\n”,a,b,c);
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:3,4
样例输出:3+4=7
解题程序
#include <stdio.h>
int main(void)
int a,b,c;
//Please input a,b:
/*********Begin*********/
scanf("%d,%d", &a, &b);
c = a + b;
printf("%d+%d=%d\\n", a, b, c);
/*********End**********/
return 0;
第2关:不使用第3个变量,实现两个数的对调
任务描述
本关任务:下列程序是不用第三个变量,实现将两个数进行对调的操作。
程序代码如下:
#include <stdio.h>
int main(void)
int a,b;printf(“Enter a and b:”);
scanf(“%d%d”,&a,&b);
printf(“a=%d b=%d\\n”,a,b);
a= ① ;b= ② ;a= ③ ;
printf(“a=%d b=%d\\n”,a,b);
return 0;
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,并按照要求完成本关任务。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:3 4
输出:
a=3 b=4
a=4 b=3
输入:7 85
输出:
a=7 b=85
a=85 b=7
解题程序一(真正不使用中间变量)
#include<stdio.h>
int main(void)
int a,b;
//Enter a and b:
scanf("%d%d",&a,&b);
printf("a=%d b=%d\\n",a,b);
/*********Begin*********/
a ^= b;
b ^= a;
a ^= b;
/*********End**********/
printf("a=%d b=%d\\n",a,b);
return 0;
解题程序二
#include<stdio.h>
int main(void)
int a,b;
//Enter a and b:
scanf("%d%d",&a,&b);
printf("a=%d b=%d\\n",a,b);
/*********Begin*********/
a = a ^ b;
b = b ^ a;
a = a ^ b;
/*********End**********/
printf("a=%d b=%d\\n",a,b);
return 0;
解题程序三
#include<stdio.h>
int main(void)
int a,b;
//Enter a and b:
scanf("%d%d",&a,&b);
printf("a=%d b=%d\\n",a,b);
/*********Begin*********/
a = a - b;
b = b + a;
a = -(a - b);
/*********End**********/
printf("a=%d b=%d\\n",a,b);
return 0;
第3关:用宏定义常量
任务描述
本关任务:已知某物品单价为30,数量为x。求商品的总价钱。用宏定义物品的单价。
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,用宏定义物品的单价。
输入:一个整数x,代表物品的数量。
输出:输出总价格。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
5
样例输出:
150
解题程序
#include <stdio.h>
#define PRICE 30
int main(void)
/*********Begin*********/
int x;
scanf("%d", &x);
printf("%d\\n", x * PRICE);
/*********End**********/
return 0;
第4关:数字分离
任务描述
输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
输入:一个三位数
输出:输出该数字的百位,十位,个位,数字之间用一个空格隔开。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
123
样例输出:
1 2 3
问题分析
进制问题,怎样取出10进制数的各位数字。
解题程序
#include <stdio.h>
int main(void)
/*********Begin*********/
int a;
scanf("%d", &a);
printf("%d %d %d\\n", a / 100, a / 10 % 10, a % 10);
/*********End**********/
return 0;
第5关:计算总成绩和平均成绩
任务描述
本关任务:编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
输入:五个整数
输出:总成绩和平均成绩,其中平均成绩保留小数点后两位。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
60 70 80 90 100
样例输出
400 80.00
问题分析
一般情况下,浮点使用double类型进行计算。
解题程序
#include <stdio.h>
int main(void)
/*********Begin*********/
int a, i, sum = 0;
for (i = 1; i <=5; i++)
scanf("%d", &a);
sum += a;
printf("%d %.2f\\n", sum, (double) sum / 5);
/*********End**********/
return 0;
第6关:求三角形的面积
任务描述
本关任务:编程求以a、b、c为边长的三角形的面积area。
相关知识
三角形面积计算公式为:
假设三角形三条边长分别为a、b、c,其中s=(a+b+c)/2,则面积:
a r e a = s ( s − a ) ( s − b ) ( s − c area=\\sqrts(s-a)(s-b)(s-c area=s(s−a)(s−b)(s−c
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程求以a、b、c为边长的三角形的面积area。
输入:a b c三角形的三条边,可以是小数;
输出:三角形面积,保留3位小数。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
3 4 5
样例输出:
6.000
解题程序
#include <stdio.h>
#include <math.h>
int main(void)
/*********Begin*********/
double a, b, c;
scanf("%lf%lf%lf", &a, &b, &c);
double s = (a + b + c) / 2;
printf("%.3f\\n", sqrt(s * (s - a) * (s - b) * (s - c)));
/*********End**********/
return 0;
第7关:立体几何计算题
任务描述
本关任务:设圆半径r,圆柱高h , 求圆周长C1,半径为r的圆球表面积Sb,圆半径r,圆柱高为h的圆柱体积Vb。 用scanf输入数据,输出计算结果,输出时取小数点后两位数字。请编程序。 PI=3.14
编程要求
输入:两个double型浮点数,r和h;
输出:圆周长C1、圆球表面积Sb、圆柱体积Vb。 保留两位小数,每个结果后换行。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
1.5,3
样例输出:
C1=9.42
Sb=28.26
Vb=21.20
提示
圆球表面积计算公式为s=4πr2,r为球的半径。
圆柱体体积计算公式为:V=πr2h,r为半径,h为高。
解题程序
#include <stdio.h>
#define PI 3.14
int main(void)
/*********Begin*********/
double r, h;
scanf("%lf,%lf", &r, &h);
printf("C1=%.2f\\nSb=%.2f\\nVb=%.2f\\n", 2 * PI * r, 4 * PI * r * r, PI * r * r * h);
/*********End**********/
return 0;
第8关:计算两个正整数的最大公约数
任务描述
编程计算两个正整数的最大公约数。其中求最大公约数的函数原型已经给出,请在主函数中编程调用函数,输出最大公约数。
程序的运行示例:
12,3↙
3
####函数原型说明
求最大公约数的函数原型如下:
int MaxCommonFactor( int a, int b);
返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。
参数:a,b是两个整型数
相关知识
本任务主要考察函数的调用方法。
####编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程计算两个正整数的最大公约数。
输入:输入格式:“%d,%d”
输出:输出格式:“%d\\n”
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
467,465
样例输出:
1
解题程序
#include<stdio.h>
int MaxCommonFactor( int a, int b)
int c;
if (a <= 0 || b <= 0)
return -1;
while (b)
c = a % b;
a = b;
b = c;
return a;
int main(void)
/*********Begin*********/
int m, n;
scanf("%d,%d", &m, &n);
printf("%d\\n", MaxCommonFactor(m, n));
/*********End**********/
return 0;
编辑与调试 顺序结构 选择结构一 选择结构二 循环一 循环二 函数
递归与嵌套函数 一维数组和二维数组 字符数组 指针一 指针二 结构体 文件
以上是关于EDUCoder编程练习题解(顺序结构)的主要内容,如果未能解决你的问题,请参考以下文章