C语言循环语句进阶练习题

这篇具有很好参考价值的文章主要介绍了C语言循环语句进阶练习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:求出分数序列前n项之和

100

  • 任务要求
  • 参考答案
  • 评论98
  • 任务描述
  • 相关知识
    • scanf
    • 分数序列
  • 编程要求
  • 测试说明

任务描述

本关需要你求出分数序列前n项之和。

相关知识

你需要使用到scanf函数和循环语句来完成本关任务。

scanf

函数名: scanf 功 能:执行格式化输入 。

用 法:

 
  1. int scanf(char *format[,argument,...]);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。 其调用格式为:

 
  1. scanf("<格式化字符串>",<地址表>);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。 其控制串由三类字符构成:

  • 格式化说明符;
  • 空白符;
  • 非空白符。

分数序列

本关涉及到的分数序列规律如下:2/1,3/2,5/3,8/5,13/8,21/13…

编程要求

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

求出分数序列前n项之和,nscanf函数输入;

效果如下:

输入: 20。 输出: n=20,sum=32.660261

注意:本关小数的定义变量需要使用double类型,否则可能会有精度问题。

测试说明

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


开始吧!

#include <stdio.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    long n,i;
    double mol=2.0,den=1.0,sum=0.0,t;
    scanf("%ld",&n);
    for(i=1;i<=n;i++){
        sum+=mol/den;
        t=mol;
        mol=mol+den;
        den=t;
    }
    printf("n=%ld,sum=%lf",n,sum);
	/********** End **********/
}

第2关:求数列的第n项及前n项之和

100

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

任务描述

经过上一关的求和,感觉还可以吧,那么本关就需要你求数列的第n项及前n项之和。

相关知识

本关和上一关知识点是相同,能通过上一关,相信这一关你也没问题?

让我们放松一下,我来给个代码,请找出不正确的地方。

 
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i,r=0,n,sum=0,c=0;
  5. double j;
  6. scanf("%d",&n);
  7. for(i=1;i<n;i++)
  8. {
  9. int r1=i;
  10. for(j=1;r1!=0;j++)
  11. {
  12. r=r1%((int)pow(10,j));
  13. sum=sum+r/((int)pow(10,j-1));
  14. r1=r1-r;
  15. }
  16. if(!(sum%15))
  17. c++;
  18. sum=0;
  19. }
  20. printf("%d",c);
  21. return 0;
  22. }

找出不正确的地方可以贴在评论区哦~。

编程要求

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

求数列的第n项及前n项之和。

数列如下: f1=f2=1 fn=3fn-1+2fn-2 n>2

效果如下:

输入: 5。 输出: 61 85

测试说明

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


开始吧!

#include <stdio.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    int n,sum=2,i,fn;
    scanf("%d",&n);
    int a[n];
    a[1]=a[2]=1;
    for(i=3;i<=n;i++){
            a[i]=3*a[i-1]+2*a[i-2];
            sum+=a[i];
    }
    printf("%d\n%d",a[n],sum);
	/********** End **********/
}

第3关:数字之积

100

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

任务描述

本关需要你计算正整数的数字之积。

相关知识

数字之积,是乘积吗?这里的数字之积不是乘积的意思,数字之积是一个数乘以各个数位上的数之积。

例如: 一个数268,它的数字之积为2x6x8=96

那么用C语言怎么编写呢? 这里给个范例:

 
  1. #include<stdio.h>
  2. void main()
  3. {
  4. int a,s;
  5. s=1;
  6. printf("请输入一个整数");
  7. scanf("%d",&a);
  8. while (a>0)
  9. {
  10. s=s*(a % 10);
  11. a=a/10;
  12. }
  13. printf("a=%d",s);
  14. }

大家可以根据题目所需自由发挥。

编程要求

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

计算正整数num的各位上的数字之积。

效果如下:

输入:2583。 输出:240

测试说明

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


开始吧!

#include <stdio.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    int n,mask=1,t,i=1,num=1;
    scanf("%d",&n);
    t=n;
    while(t>0){
        t/=10;
        mask*=10;
        i++;
    }
    for(i=i-1;i>0;i--){
        num=num*(n%10);
        n/=10;
    }
    printf("%d",num);
	/********** End **********/
}

第4关:水仙花数

100

  • 任务要求
  • 参考答案
  • 评论98
  • 任务描述
  • 相关知识
    • 水仙花数
  • 编程要求
  • 测试说明

任务描述

本关需要你编写程序输出100-1000中的水仙花数。

相关知识

水仙花数

水仙花数是指一个n位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

 
  1. //三个数的立方和加起来等于三个数的组合
  2. 153是一个水仙花数,因为153=1^3+5^3+3^3.

编程要求

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

求出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。

测试说明

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


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

#include <stdio.h>
#include<math.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    int n,i,sum=0,t;
    for(i=100;i<1000;i++){
        sum=0;
        t=i;
        while(t>0){
            sum=sum+pow(t%10,3);
            t/=10;
        }
        if(sum==i){
            printf("%d ",sum);
        }
    }
	/********** End **********/
}

第5关:杨辉三角形

100

  • 任务要求
  • 参考答案
  • 评论98
  • 任务描述
  • 相关知识
    • 杨辉三角形
  • 编程要求
  • 测试说明

任务描述

本关需要你打印出以下的杨辉三角形 效果如下:

 
  1. 1
  2. 1 1
  3. 1 2 1
  4. 1 3 3 1

相关知识

本关涉及到杨辉三角形,让我们来简单理解一下杨辉三角形吧。

杨辉三角形

是二项式系数在三角形中的一种几何排列。 简单的说一下就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就是1,2,1这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,你就明白其中的道理了。

编程要求

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

打印出杨辉三角形(要求打印8行)。

效果如下: 输入:8

输出:

 
  1. 1
  2. 1 1
  3. 1 2 1
  4. 1 3 3 1
  5. 1 4 6 4 1
  6. 1 5 10 10 5 1
  7. 1 6 15 20 15 6 1
  8. 1 7 21 35 35 21 7 1

测试说明

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


开始你的任务吧!

#include<stdio.h>
#include<math.h>
int main()
{
     // 请在此添加你的代码
    /********** Begin *********/
    int cao(int a,int b);
    int i,j,n=13;
    while(n>12)
        scanf("%d",&n);     
    for(i=0;i<n;i++)       
    {
        for(j=0;j<28-4*i;j++) 
            printf(" ");  
        for(j=1;j<i+1;j++) 
            printf("%d    ",cao(i,j));    
        printf("%d\n",cao(i,j));
    }
    return 0;
}
int cao(int a,int b)     
{
    int z;
    if((b==1)||(b==a+1))  
        return 1;  
    z=cao(a-1,b-1)+cao(a-1,b);          
    return z;
    /********** End **********/
}

C语言循环语句进阶练习题

#include <stdio.h>
int main()
{
    //获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

    // 请在此添加你的代码
    /********** Begin *********/
    int i,j,k,n=0,a[14][14];
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        a[i][1] = a[i][i] = 1; 
    for(i=3;i<=n;i++)
        for(j=2;j<=i-1;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    for(i=1;i<=n;i++){
        for(k=1;k<=n-i;k++)
            printf("   ");
        for(j=1;j<=i;j++)
            printf("%6d",a[i][j]);     
        printf("\n");
    }
    printf("\n");
    /********** End **********/
}

 C语言循环语句进阶练习题

 文章来源地址https://www.toymoban.com/news/detail-453786.html

到了这里,关于C语言循环语句进阶练习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)

    ​本篇文章几乎涵盖了绝大部分的Shell语法练习,用一个个实战练习,巩固Shell的学习,话不多说,直接开始。 练习1:按照时间生成文件\\\"2018-05-22.log\\\"将每天的磁盘使用状态写入到对应日期的文件 练习2:统计Nginx日志中每个IP的访问量有多少,日志格式如下 练习3:写一个脚本

    2024年02月14日
    浏览(13)
  • 循环结构(含练习题)

    循环结构(含练习题)

    当循环次数或范围确定时,多用for循环,反之多用while循环 循环结构一般由四部分组成: 初始化语句,在循环开始最初执行,并且只执行一次 条件判断、步进语句、循环体 for循环,循环体可以执行零次或多次 每执行一次循环体,就会执行一次步进语句 foreach循环,JDK 5 新特

    2024年02月19日
    浏览(9)
  • 【MySQL】- 05 sql 语句练习题

    【MySQL】- 05 sql 语句练习题

    查询结果就不放了,语句是否成功运行,结果是否正确都容易自行判断 –1. 学生表 Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别 –2. 课程表 Course(c_id,c_name,t_id) – --课程编号, 课程名称, 教师编号 –3. 教师表 Teacher(t_id,t_name) --教师编号,教师姓名 –4. 成

    2024年02月08日
    浏览(7)
  • 【MySQL】- 05 sql 语句练习题(第二部分)

    20、 查询学生的总成绩并进行排名 21、 查询不同老师所教不同课程平均分从高到低显示 22、 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩 23、 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比 24、 查询学生平均成绩及其名次

    2024年02月09日
    浏览(7)
  • C++ Primer 6.3 返回类型和return语句 知识点+练习题

    C++ Primer 6.3 返回类型和return语句 知识点+练习题

    用在返回值类型为void的函数中,可以不写return,因为此类函数会在最后一句隐式执行return; 可以自己写return;在函数里类似于break,直接退出 除return;还可以return func();此时func为返回值为void的函数 先拷贝再传值 不要返回局部对象的引用或指针 :函数完成后,它所占用的

    2024年01月17日
    浏览(14)
  • C语言之练习题

    C语言之练习题

    欢迎来到我的: 世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 这期文章由:两题问答题+四道编程题;小孩在文章中写有详细解题思路,感谢大家支持支持。 思路: 首先我们要知道 x=x(x-1) 的含义; 假设x=3;也就是 011 ; 而x-1=2;是 010 ;

    2024年02月10日
    浏览(16)
  • C 语言练习题更新

    目录(先不要看答案,首先自己做才能更好的领悟,做不来没关系) 题目一:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。 题目

    2024年02月14日
    浏览(11)
  • 10 SQL进阶 -- 综合练习题 -- 10道经典SQL题目,配套数据与解答

    10 SQL进阶 -- 综合练习题 -- 10道经典SQL题目,配套数据与解答

    点击下方链接直接下载 创建数据表脚本:http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/SQL/create_table.sql 执行建表语句 执行成功 查看创建的表 点击下方链接直接下载 插入数据脚本:https://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/SQL/data.zip 大家下载好脚本后,先在MySQL环境中运

    2024年04月27日
    浏览(7)
  • 习题练习 C语言

    习题练习 C语言

    首先我们要了解什么是offsetof宏: . 此具有函数形式的宏返回数据结构或联合类型中成员成员的偏移值(以字节为单位)。 . 返回的值是size_t类型的无符号整数值,其字节数位于指定成员与其结构开头之间。 什么意思呢,可以看到下面这张图片: 下面我们来看到这一习题:

    2024年02月14日
    浏览(12)
  • 习题练习 C语言(暑期)

    习题练习 C语言(暑期)

    今天为大家分享我暑假期间所练习的一些小题目! 相信大家看完之后都会有所提升的! 加油! 以下不正确的定义语句是( ) A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0}; B: char c2[] = {‘x10’, ‘xa’, ‘8’}; C: char c1[] = {‘1’,‘2’,‘3’,‘4’,‘5’}; D: int y[5+3]={0, 1, 3, 5, 7, 9}; 题目解

    2024年02月10日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包