草庐IT

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

林赢56 2023-07-07 原文

第1关:x的余弦值

200

  • 任务要求
  • 参考答案
  • 评论118

任务描述

本关需要你通过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<stdio.h>
#include<math.h>
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

任务描述

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

相关知识

回文数

所谓回文数是指顺序读与反序读都是一样的数,如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<stdio.h>
#include<string.h>
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<stdio.h>
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语句允许测试一个变量等于多个值时的情况。每个值称为一个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<stdio.h>
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 语句,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 <stdio.h>
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语言之条件语句强化练习题的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  3. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  4. ruby - 定义方法参数的条件 - 2

    我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano

  5. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  6. ruby - 如何在 Ruby 中向现有方法定义添加语句 - 2

    我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  9. 牛客网专项练习30天Pytnon篇第02天 - 2

    1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析:    在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1:    print(k)k=k/2A.1000 B.10C.11D.9解析:    按照题意每次循环K/2,直到K值小于等

  10. ruby - ruby 乘法语句中星号中断语法前的空格 - 2

    在添加一些空格以使代码更具可读性时(与上面的代码对齐),我遇到了这个:classCdefx42endendm=C.new现在这将给出“错误数量的参数”:m.x*m.x这将给出“语法错误,意外的tSTAR,期待$end”:2/m.x*m.x这里的解析器到底发生了什么?我使用Ruby1.9.2和2.1.5进行了测试。 最佳答案 *用于运算符(42*42)和参数解包(myfun*[42,42])。当你这样做时:m.x*m.x2/m.x*m.xRuby将此解释为参数解包,而不是*运算符(即乘法)。如果您不熟悉它,参数解包(有时也称为“spl

随机推荐