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

news2024/11/27 10:46:02

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

目前博主有着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循环的练习题。希望对正在学习的小伙伴们有所帮助,同时也期待着您的关注。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Leetcode 39】组合总和 —— 回溯法

39. 组合总和 给你一个无重复元素的整数数组candidates和一个目标整数target &#xff0c;找出candidates中可以使数字和为目标数target的 所有不同组合&#xff0c;并以列表形式返回。你可以按**任意顺序 **返回这些组合。 candidates中的同一个数字可以 无限制重复被选取 。…

畅捷通的 Serverless 探索实践之路

作者&#xff1a;计缘&#xff0c;阿里云云原生架构师 畅捷通介绍 畅捷通是中国领先的小微企业财税及业务云服务提供商&#xff0c;成立于 2010 年。畅捷通在 2021 年中国小微企业云财税市场份额排名第一&#xff0c;在产品前瞻性及行业全覆盖方面领跑市场&#xff0c;位居中…

百万数据集测试赛题秒级查询的MySQL方案

目录 比赛题目 最佳解法 solution_row prime_encoded 相关知识 递归 CTE SUBSTRING_INDEX 引用资料 比赛题目 有一张表 cards&#xff0c;id 是自增字段的数字主键&#xff0c;另外有4个字段 c1,c2,c3,c4 &#xff0c;每个字段随机从 1~10 之间选择一个整数&#xff…

十二:爬虫-Scrapy框架(上)

一&#xff1a;Scrapy介绍 1.Scrapy是什么&#xff1f; Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架(异步爬虫框架) 通常我们可以很简单的通过 Scrapy 框架实现一个爬虫&#xff0c;抓取指定网站的内容或图片 Scrapy使用了Twisted异步网…

多平面包络的圆柱体参数估计

多平面包络的圆柱体参数估计 场景 现有多个空间平面包络一个柱体&#xff0c;从圆柱顶端俯视如图所示&#xff1a; 中心位置为圆柱实际所在位置。现在已知这些平面的参数&#xff08;每个平面的方程均为axbyczd0形式, 参数为a,b,c,d&#xff09;&#xff0c;希望求解它们包络…

阿里云oss无法访问.apk或者.ipa的文件

-- 有意栽花花不发 无心插柳柳成荫 0048-00000201 更新时间&#xff1a;2023-07-19 10:31:16 问题描述 在2023年08月15日后为Bucket开通传输加速&#xff0c;如果通过OSS传输加速域名访问其中后缀为.apk或者.ipa的文件&#xff0c;服务器返回400错误。 问题原因 出于安全…

分布式IO在工业自动化中的应用

传统的自动化产线及物流系统主要是利用PLC来处理数据&#xff0c;并将这些数据保存在PC当中。但是随着互联网技术的迅速发展&#xff0c;越来越多的系统集成商利用分布式IO模块&#xff0c;实现从控制器到自动化最底层之间的IO通信。 分布式IO在工业自动化中的应用 分布式IO是用…

再次被gpt震撼到了,md转json

1.md内容来自excel 参考链接&#xff1a; https://chat.xutongbao.top/

什么是计算机视觉

计算机视觉&#xff08;Computer Vision&#xff09;是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说&#xff0c;计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标&#xff0c;计算机视觉结合了图像处理、机器学习、模…

低代码平台搭建ERP系统 低代码快速开发灵活的ERP

随着数字化时代的到来&#xff0c;企业迫切需要高效、灵活的ERP系统来提高运营效率。在这一背景下&#xff0c;白码低代码平台成为了企业实现数字化转型的首选工具。本文将介绍低代码开发ERP的概念&#xff0c;并以白码低代码平台为例&#xff0c;探讨其在企业数字化转型中的重…

解决jenkins、git拉取代码仓库失败Please make sure you have the correct access rights

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

spellman高压发生器电源维修XRV450PN4500 NY1059

Spellman高压电源X射线发生器维修XRV系列常见维修型号&#xff1a;XRV160N1800, XRV160N3000, XRV160P4000, XRV160P6000/208V 3o, XRV225N3000, XRV225N6000/208V 3o, XRV225P4000, XRV350PN4500, XRV450PN4500。 Spellman所拥有的变频器架构可以使高压电源获得高利用率的效率…

小C说历史(人物介绍第二篇):Unix之父 C语言之父 伟大的Ken Thompson 肯·汤普森

Unix之父 C语言之父 伟大的Ken Thompson 肯汤普森 Unix之父——肯•汤普森&#xff08;Ken Thompson&#xff09;被称作“世界上最杰出的程序员”&#xff0c;他自学编程&#xff0c;26岁创造Unix&#xff0c;改写了计算机操作系统的历史&#xff0c;并在古稀之年成为Go语言的共…

win10 telnet服务开启教程

win10 telnet服务开启教程 1、打开控制面板&#xff0c;选择【程序和功能】 2、点击【启用或关闭Windows功能】 3、勾选【Telnet 客户端】,然后点击确定。

【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

第一章 简介 太赫兹波是介于微波和光波之间的光谱区域&#xff0c;频率从 0.1THz ~ 10THz 之间&#xff0c;波长在 3mm ~ 30μm 之间。提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的需求&#xff0c;使该区域成为下一代无线通信&#xff08;6G&#xff09;的重…

外汇天眼:Valdas Dapkus和Tradewale因零售外汇欺诈计划被判支付280万美元

美国衍生品市场监管机构商品期货交易委员会&#xff08;CFTC&#xff09;宣布&#xff0c;美国新泽西地区法院于11月28日发布了对位于伊利诺伊州的Valdas Dapkus的最终裁定默认令。5月4日&#xff0c;法院对Dapkus控制的两家实体——Tradewale LLC和Tradewale Managed Fund发布…

电子工程师如何接私活赚外快?

对电子工程师来说&#xff0c;利用业余时间接私活是个很常见的技术&#xff0c;不仅可以赚取额外收入&#xff0c;也能提升巩固技术&#xff0c;可以说国内十个工程师&#xff0c;必有五个在接私活养家糊口&#xff0c;如果第一次接私活&#xff0c;该如何做&#xff1f; 很多工…

虚拟机迁移技术原理与应用

虚拟机迁移技术主要应用于两种场景&#xff1a; 第一种&#xff0c;随着现在虚拟化的发展&#xff0c;传统it架构的物理机需迁移到虚拟机上&#xff0c;实现负载均衡、资源优化等目的。 第二种&#xff0c;将虚拟机从一个虚拟化平台迁移到另一个虚拟化平台&#xff0c;可以是…

Django 文件上传(十二)

当 Django 处理文件上传时&#xff0c;文件数据最终会被放置在 request.FILES 。 查看文档&#xff1a;文件上传 | Django 文档 | Django Django工程如下&#xff1a; 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…

Android Context在四大组件及Application中的表现

文章目录 Android Context在四大组件及Application中的表现Context是什么Context源码Activity流程分析Service流程分析BroadcastReceiver流程分析ContentProvider流程分析Application流程分析 Android Context在四大组件及Application中的表现 Context是什么 Context可以理解…