C语言之条件语句强化练习题

第1关:x的余弦值

200

  • 任务要求
  • 参考答案
  • 评论118
  • 任务描述
  • 相关知识
    • cos()
    • pow()
  • 编程要求
  • 测试说明

任务描述

本关需要你通过switch语句的编写,完成求xy值结果的小程序。详情如下:

  1. 0<=x<10时,y=cos(x+3.0)

  2. 10<=x<20时,y=pow(cos(x+7.5),2)

  3. 20<=x<30时,y=pow(cos(x+4.0),4)

相关知识

cos()

C库函数double cos(double x) 返回一个弧度角x的余弦值。

参数:

  • x 这是浮点值同比弧度表示的角度。

返回值:

  • 这个函数返回x的余弦。

例如:


  1. int main ()
  2. {
  3. double x, ret, val;
  4. x = 60.0;
  5. val = 180.0 / PI;
  6. ret = cos( x*val );
  7. printf("The cosine of %lf is %lf degrees
  8. ", x, ret);
  9. x = 90.0;
  10. val = 180.0 / PI;
  11. ret = cos( x*val );
  12. printf("The cosine of %lf is %lf degrees
  13. ", x, ret);
  14. return(0);
  15. }

运行上面的程序,将产生以下结果:


  1. The cosine of 60.000000 is 0.664171 degrees
  2. The cosine of 90.000000 is -0.299510 degrees

pow()

C库函数double pow(double x, double y)表示xy次方。

例如:


  1. {
  2. printf("Value 8.0 ^ 3 = %lf", pow(8.0, 3));
  3. printf("Value 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
  4. return(0);
  5. }

运行上面的程序,将产生以下结果:


  1. Value 8.0 ^ 3 = 512.000000
  2. Value 3.05 ^ 1.98 = 9.097324

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

switch语句编程计算出xy值:

  1. 0<=x<10时,y=cos(x+3.0)

  2. 10<=x<20时,y=pow(cos(x+7.5),2)

  3. 20<=x<30时,y=pow(cos(x+4.0),4)

注意:

  • 要求不输出小数点后面多余的零。

测试说明

例如: 测试输入:5。 预期输出:-0.1455

测试输入:15。 预期输出:0.762661


验货啦,验货啦,开始你的任务吧!

#include
#include
int main()
{
	int x;
    double y;
	/*********begin*********/
    scanf("%d",&x);
    switch(x/10){
        case 0:
            y=cos(x+3.0);
            break;
        case 1:
            y=pow(cos(x+7.5),2);
            break;
        case 2:
            y=pow(cos(x+4.0),4);
            break;
    }
    printf("%g",y);
	/*********end*********/
	return 0;
}

第2关:回文数

300

  • 任务要求
  • 参考答案
  • 评论118
  • 任务描述
  • 相关知识
    • 回文数
    • for循环
  • 编程要求
  • 测试说明

任务描述

本关需要你完成判断一个数是否是回文数的小程序。

相关知识

回文数

所谓回文数是指顺序读与反序读都是一样的数,如121,25852都是回文数。

注意:

  1. 偶数个的数字也有回文数124421

  2. 小数没有回文数。

for循环

用法如下:


  1. for ( init; condition; increment )
  2. {
  3. statement(s);
  4. }

下面是 for 循环的控制流:

  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量;

  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句;

  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可;

  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

从键盘上输入一个正整数,判断其是否是回文数。如果是回文数,则输出Yes,否则输出No

例如: 测试输入:123。 预期输出:No

测试输入:123321。 预期输出:Yes

测试说明

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。


验货啦,验货啦,开始你的任务吧!

#include
#include
int main(){
    int n,i,b;
    char list[10];
    scanf("%s",list);
    n=strlen(list);
    b=0;
    for(i=1;i<=(n/2);i++){
        if(list[i-1]==list[n-i])
            b++;
    }
    n=n/2;
    if(n==b){
        printf("Yes");
    }
    else{
       printf("No"); 
    }
    return 0;
}

第3关:石头、剪刀、布

200

  • 任务要求
  • 参考答案
  • 评论118
  • 任务描述
  • 相关知识
    • 运算符优先级
  • 编程要求
  • 测试说明

任务描述

本关需要你完成,判断玩家“石头剪刀布”游戏输赢的小程序。

相关知识

运算符优先级

下表按运算符优先级从高到低列出各个运算符,即高优先级的出现在上,较低优先级的出现在下。

在表达式中,较高优先级的运算符会优先被计算。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

两个玩家分别说出任意一项,根据游戏规则确定胜负。如果两者一样,输出平局!,否则输出哪个玩家胜利。

注意:

  • 所有输出语句中的标点均为中文标点符号;

  • 石头(0)、布(1)、剪刀(2)。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:1 0。 预期输出:玩家1胜!


验货啦,验货啦,开始你的任务吧!

#include
int main()
{
int a,b,flag;
/*********begin*********/
scanf("%d %d",&a,&b);
if(a==0){
    if(b==0)flag=0;
    if(b==1)flag=2;
    if(b==2)flag=1;
}
if(a==1){
    if(b==0)flag=1;
    if(b==1)flag=0;
    if(b==2)flag=2;
}
if(a==2){
    if(b==0)flag=2;
    if(b==1)flag=1;
    if(b==2)flag=0;
}
switch(flag){
    case 0:printf("平局!"); break;
    case 1:printf("玩家1胜!"); break;
    case 2:printf("玩家2胜!"); break;
}
/*********end*********/
}

第4关:一个月有多少天

300

  • 任务要求
  • 参考答案
  • 评论118
  • 任务描述
  • 相关知识
    • switch 语句
    • 嵌套 switch 语句
  • 编程要求
  • 测试说明

任务描述

本关需要完成计算出某一年的某个月有几天的小程序。

相关知识

switch 语句

一个switch语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个switch case进行检查。

嵌套 switch 语句

您可以在一个switch语句内使用另一个switch语句。

举例说明:


  1. int main ()
  2. {
  3. /* 局部变量定义 */
  4. int a = 100;
  5. int b = 200;
  6. switch(a) {
  7. case 100:
  8. printf("这是外部 switch 的一部分
  9. ");
  10. switch(b) {
  11. case 200:
  12. printf("这是内部 switch 的一部分
  13. ");
  14. }
  15. }
  16. printf("a 的准确值是 %d
  17. ", a );
  18. printf("b 的准确值是 %d
  19. ", b );
  20. return 0;
  21. }

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

编写程序从键盘输入年份和月份,计算出这一年的这一个月共有几天。

应该注意:

  • 是大月还是小月;

  • 是否为2月;

  • 分闰年和非闰年。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:2017 1。 预期输出:31天

测试输入:2000 2。 预期输出:29天


验货啦,验货啦,开始你的任务吧!

#include
int main()
{
    int a,b;
    /*********begin*********/
    scanf("%d %d",&a,&b);
    switch(b){
        case 1:printf("31天");break;
        case 2:
            if((a%4==0&&a%100!=0)||a%400==0){
                printf("29天");break;
            }else{
                printf("28天");break;
            }
        case 3:printf("31天");break;
        case 4:printf("30天");break;
        case 5:printf("31天");break;
        case 6:printf("30天");break;
        case 7:printf("31天");break;
        case 8:printf("31天");break;
        case 9:printf("30天");break;
        case 10:printf("31天");break;
        case 11:printf("30天");break;
        case 12:printf("31天");break;
    }
    /*********end*********/
}

第5关:求分段函数的值

100

  • 任务要求
  • 参考答案
  • 评论118
  • 任务描述
  • 相关知识
    • if...else
  • 编程要求
  • 测试说明

任务描述

本关需要完成求如下分段函数值的小程序。

相关知识

if...else

一个 if 语句后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。


  1. if(boolean_expression)
  2. {
  3. /* 如果布尔表达式为真将执行的语句 */
  4. }
  5. else
  6. {
  7. /* 如果布尔表达式为假将执行的语句 */
  8. }

编程要求

编写函数fun计算出下列分段函数的值:

注意: 保留两位小数点。

测试举例:

测试输入:-1。 预期输出:f(x)=6.00

测试输入:1。 预期输出:f(x)=2.00

测试说明

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。


验货啦,验货啦,开始你的任务吧!

#include 
int main()
{ 
    /*********begin*********/
    double x,y;
    scanf("%lf",&x);
    if(x<0&&x!=-3){
        y=x*x+x+6.00;
    }else if(x>=0&&x<10&&x!=2&&x!=3){
        y=x*x-5.00*x+6.00;
    }else{
        y=x*x-x-1.00;
    }
    printf("f(x)=%.2lf",y);
    /*********end*********/
}

你可能感兴趣的:(c语言,蓝桥杯,开发语言)