| 
 | 
 
1.编辑与调试  2.顺序结构  3.选择结构一  4.选择结构二  5.循环一  6.循环二  7.函数 
8.递归与嵌套函数  9.一维数组和二维数组  10.字符数组  11.指针一  12.指针二  13.结构体  
14.文件 
选择结构一 
 
第1关:排序 
 
任务描述 
本关任务:下面的程序是从键盘输入三个整数按从小到大的顺序输出。 
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 
输入格式 
输入格式如下:  
printf("请输入三个整数:"); 
scanf("%d%d%d",&a,&b,&c); 
输出 
排序输出从小到大的三个整数。  
输出格式如下:  
printf("从小到大排列为:%d,%d,%d",a,b,c); 
编程要求 
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写排序的小程序。 
测试说明 
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。 
样例输入: 
请输入三个整数:5 7 6 
样例输出: 
从小到大排列为:5,6,7 
问题分析 
一种方法是不排序,直接经过判定输出结果。好在3个数只有6种组合。 
另外一种方法是,根据冒泡排序原理,先排序再输出。 
解题程序(不排序) 
#include<stdio.h> 
int main(void) 
{   
    /*********Begin*********/ 
    int a, b, c; 
    printf(&#34;请输入三个整数:&#34;); 
    scanf(&#34;%d%d%d&#34;, &a, &b, &c); 
    printf(&#34;从小到大排列为:&#34;); 
    if (a <= b && a <= c) { 
        if (b <= c) printf(&#34;%d,%d,%d\n&#34;, a, b, c); 
        else printf(&#34;%d,%d,%d\n&#34;, a, c, b); 
    }  else if (b <= a && b <= c) { 
        if (a <= c) printf(&#34;%d,%d,%d\n&#34;, b, a, c); 
        else printf(&#34;%d,%d,%d\n&#34;, b, c, a); 
    } else if (c <= a && c <= b) { 
        if (a <= b) printf(&#34;%d,%d,%d\n&#34;, c, a, b); 
        else printf(&#34;%d,%d,%d\n&#34;, c, b, a); 
    }   
    /*********End**********/  
    return 0; 
} 
解题程序(排序) 
#include<stdio.h> 
void swap(int *p, int *q) 
{ 
    int t; 
    if (*p > *q) 
        t = *p, *p = *q, *q = t; 
} 
int main(void) 
{   
    /*********Begin*********/ 
    int a, b, c; 
    printf(&#34;请输入三个整数:&#34;); 
    scanf(&#34;%d%d%d&#34;, &a, &b, &c); 
    if (a > b) swap(&a, &b); 
    if (b > c) swap(&b, &c); 
    if (a > b) swap(&a, &b); 
    printf(&#34;从小到大排列为:%d,%d,%d\n&#34;, a, b, c); 
    /*********End**********/  
    return 0; 
} 
第2关:选择结构-闰年判断 
 
任务描述 
编写程序,完成如下功能:从键盘输入任意年份year,判别该年份是否闰年。 
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 
输入 
从键盘任意输入一个年份 。 
输出 
根据是否闰年进行输出,是输出&#34;****是闰年!&#34;,否输出&#34;****不是闰年!&#34;,其中****为当前输入的年份。     
样例输入 
2000 
样例输出 
2000 是闰年! 
编程要求 
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-闰年判断的小程序。 
测试说明 
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。 
问题分析 
简单的闰年判定逻辑如下: 
1. 每400年必润; 
2. 每4年一润,但是100年不润。 
解题程序 
#include<stdio.h> 
int main(void) 
{   
    /*********Begin*********/ 
    int year; 
    scanf(&#34;%d&#34;, &year); 
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 
        printf(&#34;%d 是闰年!\n&#34;, year); 
    else  
        printf(&#34;%d 不是闰年!\n&#34;, year);  
    /*********End**********/  
    return 0; 
} 
 
第3关:选择结构-分段函数问题 
 
任务描述 
本关任务:编写程序,根据输入的值,输出函数的值。 
有一个函数,定义如下 
f(x) = \left \{   \begin{array}{lr} {x}^{2}+x-6   & \text {x<0,x$\neq$-3}\\ {x}^{2}-5x+6 & \text {0$\leq$x$\lt10$,x$\neq$2,x$\neq$3}\\ {x}^{2}-x-1 & \text {其他} \end{array} \right.  
写一段程序,输入x,输出y。 
输入 
从键盘任意输入一个数x 
输出 
一个数y,保留小数点后三位。 
编程要求 
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-分段函数问题的小程序。 
测试说明 
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。 
样例输入: 
14 
样例输出: 
181.000 
解题程序 
#include <stdio.h> 
int main(void) 
{   
    /*********Begin*********/ 
    double x, f; 
    scanf(&#34;%lf&#34;, &x); 
    if (x < 0 && x != -3) 
        f = x * x + x - 6; 
    else if (0 <= x && x < 10 && x != 2 && x != 3)   
        f = x * x - 5 * x + 6; 
    else  
        f = x * x - x - 1; 
    printf(&#34;%.3f\n&#34;, f);   
    /*********End**********/  
    return 0; 
} 
 
第4关:学生成绩等级换算 
 
任务描述 
本关任务:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E,如果输入数据不在0~100范围内,请输出一行:“Score is error!”。 
输入 
从键盘输入一个成绩,成绩可以使浮点数。 
输出 
(1)如果输入数据在0到100范围内:一个字符,表示成绩等级。 
(2)如果输入数据不在0~100范围内,请输出一行:“Score is error!”。 
编程要求 
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写学生成绩等级换算的小程序。 
测试说明 
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。 
样例输入: 
90 
样例输出: 
A 
问题分析 
参见博文:HDU2004 成绩转换【入门】 
解题程序 
#include <stdio.h> 
int main(void) 
{   
    /*********Begin*********/ 
    char s[] = &#34;EEEEEEDCBAA&#34;; 
        double a; 
    scanf(&#34;%lf&#34;, &a); 
    if (a < 0 || a > 100) 
        printf(&#34;Score is error!\n&#34;); 
    else { 
        printf(&#34;%c\n&#34;, s[((int) a) / 10]); 
    }   
    /*********End**********/  
    return 0; 
} 
 
1.编辑与调试  2.顺序结构  3.选择结构一  4.选择结构二  5.循环一  6.循环二  7.函数 
8.递归与嵌套函数  9.一维数组和二维数组  10.字符数组  11.指针一  12.指针二  13.结构体  
14.文件 |   
 
 
 
 |