【C语言】程序练习(三)

大家好,这里是争做图书馆扫地僧的小白。非常感谢各位的支持,也期待着您的关注。

目前博主有着C语言、C++、linux以及数据结构的专栏,内容正在逐步的更新。

希望对各位朋友有所帮助同时也期望可以得到各位的支持,有任何问题欢迎私信与我。

个人主页:争做图书馆扫地僧的小白_-CSDN博客

C语言专栏:C语言_争做图书馆扫地僧的小白的博客-CSDN博客

C++专栏:C++系列_争做图书馆扫地僧的小白的博客-CSDN博客

linux系统:linux系统_争做图书馆扫地僧的小白的博客-CSDN博客

数据结构:数据结构_争做图书馆扫地僧的小白的博客-CSDN博客

最后送大家一句话,路好不好走,也许我不能决定,但走不走,却只有我能决定。

目录

前言

一、分支控制语句

1.switch...case语句

        1.1 练习题:

        1.2 练习题

二、循环控制语句

1使用goto实现循环

        1.1练习题

 2 while循环

        2.1 练习题

 3.do...while循环

4. for循环

        4.1练习题1

        4.2练习题2

5.综合练习题

总结


前言

        C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

        本篇程序练习时对应博主的C语言学习笔记(中)-CSDN博客,本次博客内容将围绕学习笔记中的相关知识点进行整理程序的相关练习,也是博主在学习C语言的过程中所练习的一些题目,希望对有需要的朋友有所帮助,鉴于笔记内容较多,预计将C语言学习笔记(中)-CSDN博客对应的知识点分成两次进行程序讲解。本篇将包含分支控制语句中的switch...case语句、循环控制语句中的goto,while循环,do...while循环以及for循环的练习题。


提示:以下是本篇文章正文内容,下面案例可供参考

一、分支控制语句

1.switch...case语句

        1.1 练习题:

1.使用switch..case语句

        实现简易的计算器功能: ( 实现 + - * )功能即可

        要求,在终端输入 表达式 如: 2+9

        输出计算的结果 :11

   代码示例如下所示:

#include <stdio.h>

int main(){
    int value1 = 0;
    char operator = 0;
    int value2 = 0;
    scanf("%d%c%d", &value1, &operator, &value2);

    switch(operator){
        case '+':    //注意:如果是字符常量 需要加 单引号
            printf("%d\n", value1 + value2);
            break;
        case '-':
            printf("%d\n", value1 - value2);
            break;
        case '*':
            printf("%d\n", value1 * value2);
            break;
        default:
            printf("出错了\n");
            break;
    }
    
    return 0;
}

        1.2 练习题

在终端输入一个成绩 [0,100]

        输出成绩对应的等级

        [90, 100]         A

        [80, 90)           B

        [70, 80)           C

        [60, 70)           D

        [0, 60)          不及格

代码如下(示例):

#include <stdio.h>

int main()
{
	int num = 0;
	scanf("%d", &num);

	switch(num/10){
		case 10:	//此处使用了case击穿规则
		case 9:
			printf("A\n");
			break;
		case 8:
			printf("B\n");
			break;
		case 7:
			printf("C\n");
			break;
		case 6:
			printf("D\n");
			break;
		default:
			printf("不及格\n");
			break;
	}

	return 0;
}

二、循环控制语句

1使用goto实现循环

        1.1练习题

使用 goto 计算 1+2+3+...+100 求和的结果。

代码示例如下:

#include <stdio.h>

int main(){
	int sum = 0;	
	int i = 1;                    
LOOP:
	sum = sum + i;
	i++;
	if(i <= 100){
		goto LOOP;
	}
	printf("sum = %d\n", sum);

	return 0;
}

 2 while循环

        2.1 练习题

使用 while 循环,实现 1~100 求和。

#include <stdio.h>

int main(){
    int sum = 0;
    int i = 1;
    while(i <= 100){
        sum += i;
        i++;
    }
    printf("sum = %d\n", sum);
    
    return 0;
}

 3.do...while循环

#include <stdio.h>

int main()
{
	int sum = 0;
	int i = 1;
	do{
		sum += i;
		i++;
	}while(i<=100);

	printf("sum = %d\n", sum);

	return 0;
}

4. for循环

        4.1练习题1

使用for循环 计算 1~100 求和。

 代码示例:

#include <stdio.h>

int main()
{
	int sum = 0;
	int i = 0;
	for(i = 1; i <= 100; i++){	
		sum += i;
	}
	printf("sum = %d\n", sum);

	printf("i = %d\n", i);

	return 0;
}

        4.2练习题2

输出 [100,999] 范围内所有的水仙花数。

        水仙花数:一个三位数,如果 个*个*个 + 十*十*十 + 百*百*百 == 自身

        如: 153 == 1*1*1 + 5*5*5 + 3*3*3 = 1 +125 + 27 == 153

代码示例:

#include <stdio.h>

int main(){
    int num = 0;
    int g = 0;
    int s = 0;
    int b = 0;
    for(num = 100; num < 1000; num++){
        g = num%10;
        s = num/10%10;
        b = num/100;
        if(num == g*g*g + s*s*s + b*b*b){
            printf("%d 是水仙花数\n", num);
        }
    }

    return 0;
}

5.综合练习题

输入一个日期:如 2022/9/30

输出这个日期是这一年的第几天。 

#include <stdio.h>

#define MONTH1 31
#define MONTH2 28
#define MONTH3 31
#define MONTH4 30
#define MONTH5 31
#define MONTH6 30
#define MONTH7 31
#define MONTH8 31
#define MONTH9 30
#define MONTH10 31
#define MONTH11 30
#define MONTH12 31

int main()
{
    int year, month, day;
    printf("请输入要查询的日期(年/月/日):");
    scanf("%d/%d/%d", &year, &month, &day);

	//标志位  0为平年1为闰年
    int leap = 0;

    //判断年是闰年还是平年
    if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
        leap = 1;
    }

    //判断月份输入的是否有误
    if(month < 1 || month > 12){
        printf("您输入的月份有误,请重新输入\n");
        return -1;
    }

    //判断日是否有误
    if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
        if(day < 1 || day > 31){
            printf("您输入的日期有误,请重新输入\n");
            return -1;
        }
    }

    if(month==4 || month==6 || month==9 || month==11){
        if(day < 1 || day > 30){
            printf("您输入的日期有误,请重新输入\n");
            return -1;
        }
    }
    
    if(month == 2){
        if(leap == 1){ 
            if(day < 1 || day > 29){
                printf("您输入的日期有误,请重新输入\n");
                return -1;
            } 
        }else if(leap == 0){ 
            if(day < 1 || day > 28){
                printf("您输入的日期有误,请重新输入\n");
                return -1;
            }
        }
    }
    
    int days = 0;
    switch(month){
		case 12:
			days += MONTH11;
		case 11:
			days += MONTH10;
		case 10:
			days += MONTH9;
		case 9:
			days += MONTH8;
		case 8:
			days += MONTH7;
		case 7:
			days += MONTH6;
		case 6:
			days += MONTH5;
		case 5:
			days += MONTH4;
		case 4:
			days += MONTH3;
		case 3:
			days += MONTH2 + leap;
		case 2:
			days += MONTH1;
		case 1:
			days += day;
			break;
    }

    printf("%d年%d月%d日%d年的第%d天\n", year, month, day, year, days);

    return 0;
}


总结

        以上就是今天所整理的全部内容,包括分支控制语句中的switch...case语句、循环控制语句中的goto,while循环,do...while循环以及for循环的练习题。希望对正在学习的小伙伴们有所帮助,同时也期待着您的关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/277447.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【华为数据之道学习笔记】7-3基于物理世界的“硬感知”能力

“硬感知”能力的分类 数据采集方式主要经历了人工采集和自动采集两个阶段。自动采集技术仍在发展中&#xff0c;不同的应用领域所使用的具体技术手段也不同。基于物理世界的“硬感知”依靠的就是数据采集&#xff0c;是将物理对象镜像到数字世界中的主要通道&#xff0c;是构建…

进阶版求字符串长度

大家好呀&#xff01;&#xff01;&#xff01;我是Beilef&#xff0c;一个努力的跨界者&#xff0c;今天带来的每日一题是用简单的函数还有递归求字符串长度。下面开始啦&#xff0c;不对的地方请留言。感谢您的斧正。 文章目录 目录 文章目录 前言 一、题目展示 解题思路&am…

Mybatis行为配置之Ⅳ—日志

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

HCIA-Datacom题库(自己整理分类的)——ARP协议【完】

一、单选 1.ARP 属于哪一层协议&#xff1f; 数据链路层 网络层 物理层 传输层 2.ARP请求是____发送的 点播 广播 组播 单播 关于ARP报文的说法错误的是? ARP请求报文是广播发送的 ARP报文不能被转发到其他广播域 ARP应答报文是单播方发送的 任何链路层协议都需…

java spring boot 自定义 aop

以一个锁的加锁和释放为例 1、先定义注解 /*** 锁切面* author fmj*/ Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface VersionLockAOP { }2、然后定义切面类以及切点 /*** 切面*/ Component Aspect Slf4j public class VersionLockAOPAspe…

Jackson—Anti-Human IgE Antibodies

Jackson lmmunoResearch推出一系列适用于诊断试剂研发的Mouse Monoclonal Anti-Human IgE antibodies&#xff08;小鼠抗人IgE单克隆抗体&#xff09;&#xff0c;补充了Jackson现有的抗人lgG、IgM和lgA抗体产品&#xff0c;抗人IgE可与一系列特定的报告分子偶联&#xff08;如…

融汇贯通 —— 2023年技术与心灵的双重成长旅程

当我们站在2023年的岁末&#xff0c;回望这一年赋予我们的经历和挑战&#xff0c;心中涌动的感慨与启示像朝日初升的光芒&#xff0c;照亮脚下的路&#xff0c;亦照见心中的路。在此&#xff0c;我想分享几个方面的感悟和成长&#xff0c;愿它们能有所触动&#xff0c;成为您前…

上升到人生法则的贝叶斯理论

贝叶斯定理在数据分析、机器学习和人工智能等领域有广泛的应用。贝叶斯定理&#xff08;Bayes’ theorem&#xff09;是一种用于计算条件概率的重要定理&#xff0c;它基于条件概率的定义&#xff0c;描述了在已知某一条件下&#xff0c;另一个条件发生的概率。 需要注意的是&a…

STM32 CubeMX工具在TSL2561驱动开发中的快速集成与调试技巧

在STM32 CubeMX工具中快速集成和调试TSL2561驱动的开发技巧&#xff0c;可以大大提高开发效率和减少调试时间。下面将为您介绍如何在CubeMX中进行快速集成和调试TSL2561驱动的技巧和步骤。 1. 创建新工程和选择芯片型号 打开STM32 CubeMX工具&#xff0c;点击“New Project”…

课件如何录屏解说?解说技巧,快来围观!

随着在线教育和知识共享理念的普及&#xff0c;越来越多的老师和学生开始尝试录制课件来进行知识传播和课程讲解。课件录屏是将课件内容、讲解声音和画面融合在一起的一种方式&#xff0c;有助于观众更好地理解和掌握知识。可是课件如何录屏解说呢&#xff1f;本文将介绍两种常…

设计模式-对象池模式

设计模式专栏 模式介绍模式特点应用场景对象池模式和工厂模式的区别代码示例Java实现对象池模式Python实现对象池模式 对象池模式在spring中的应用 模式介绍 对象池模式是一种创建型设计模式&#xff0c;它将对象预先创建并初始化后放入一个池中&#xff0c;以供其他对象使用。…

关于Unity使用图片字体示例

1.使用TexturePacker打包图集 下载地址 TexturePacker - Create Sprite Sheets for your game! 2.准备好数字图 3. 导入图片 4. 打包图集需要的设置 将重心点设置为左下方 点击回车 > 后点击回 >到精灵列表 选择导出的格式 导出后的内容 >导入unity 导入 >…

Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式

一、ImageMagick简介 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换&#xff0c;可以处理超过100种图像格式&#xff0c;包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作&#xff0c;即可以通过命令行进行&am…

利用全面预算管理,构建企业数智化管理体系

财务团队对于一个企业的发展来说一直承担着巨大的压力&#xff0c;特别是当今的经济世态&#xff0c;财务管理被赋予比以往任何时候更高的期望。为了提高运营效率&#xff0c;降低管理成本&#xff0c;企业朝着数智化的方向逐渐靠拢。其中&#xff0c;全面预算管理的潜在价值是…

【C++】vector 基本使用(详解)

目录 一&#xff0c;vector 的介绍 二&#xff0c;vector 的定义 1&#xff0c;vector() 2&#xff0c;vector&#xff08;size_type n, const value_type& val value_type()&#xff09; 3&#xff0c;vector (const vector& x) 4&#xff0c;vector (InputIte…

IDEA 2022.2 安装教程

1.下载2020.3版本IDEA 链接&#xff1a;https://pan.baidu.com/s/1IFK8VRjT7vM2VM75ToveGQ?pwd176m 提取码&#xff1a;176m 2.安装 下载完成后&#xff0c;双击exe安装包&#xff0c;出现IDEA安装欢迎首页&#xff1a; 3.将 ja - netfiltet 文件复制到idea安装目录附件 …

Tailwind CSS 在Html中的使用

官网地址&#xff1a;Installation - Tailwind CSS 前言 记录从0到1在原生HTML中通过Tailwind CLI 使用Tailwind CSS Tailwind CLI 第一步&#xff0c;新建一个HTML文件夹 mkdir HTML 第二步&#xff0c;安装依赖tailwindcSS npm install -D tailwindcss 第三步&#xf…

SpringSercurity踩坑之request.getRequestURI()和request.getRequestURL()

今天在开发的时候遇到一个小小的问题&#xff0c;我在swagger测试权限的时候&#xff0c;直接跳过了放开的路径&#xff0c;直接进行了角色判断&#xff0c; .addFilterBefore(new TokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class) 在这里if判断路径…

园林机械部件自动化三维测量检测形位公差-CASAIM自动化三维检测工作站

随着园林机械的广泛应用&#xff0c;对其机械部件的精确测量需求也日益增加。传统的测量方法不仅效率低下&#xff0c;而且精度难以保证&#xff0c;因此&#xff0c;自动化三维测量技术成为了解决这一问题的有效途径。本文将重点介绍CASAIM自动化三维检测工作站在园林机械部件…

mysql查询出json格式字段中的值

一、使用场景 由于一些特殊数据使用json格式保存到表数据种中了&#xff0c;在查询的时候需要查询出这条数据中json格式中的某个字段 比如&#xff1a;需要将下列字符串中的“nationality”字段单独查询出来 json格式是一个对象 结果&#xff1a; json格式是一个集合 查询结…