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

 

大家好,这里是争做图书馆扫地僧的小白。

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

目标:希望通过学习技术,期待着改变世界。

目录

前言

一、运算符练习

1  算术运算符

1.1 练习题:

2 自加自减运算符

3 关系运算符

4 逻辑运算符

        4.1 逻辑与

         4.2 逻辑或

        4.3 逻辑非

5 位运算符

6 条件运算符

7 练习题

二、常用的输入输出的函数练习

1.putchar/getchar

        1.1putchar

        1.2getchar

2.puts/gets

        2.1puts

        2.2gets

二、分支控制语句的练习

1.练习题

2.练习题

3.练习题


前言

         本系列的程序练习,是对应本人C语言专栏里面的学习笔记的相关程序,本篇将包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习。具体的知识点请看C语言学习笔记(上)-CSDN博客,对应知识点使用本篇练习效果更好。


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

一、运算符练习

1  算术运算符

        注意:  %(模除要求左右操作必须为整数)

#include <stdio.h>int main()
{int m = 5;int n = 2;printf("m + n = %d\n", m + n);printf("m - n = %d\n", m - n);printf("m * n = %d\n", m * n);printf("m / n = %lf\n", (double)m / (double)n);printf("m %% n = %d\n", m % n);				double a = 5.11double b = 3.45;printf("a + b = %lf\n", a + b);printf("a - b = %lf\n", a - b);printf("a * b = %lf\n", a * b);printf("a / b = %lf\n", a / b);return 0;
}

1.1 练习题:

从终端输入1个三位数 [100,999]

输出 个位+十位+百位 求和的结果,

如:输入:135

则输出:1 + 3 + 5 = 9

代码如下,仅供参考:

#include <stdio.h>
int main(){int num = 0;printf("请输入一个三位数:");scanf("%d", &num);int g = num % 10;//个位int s = num % 100 / 10;//十位int b = num / 100;//百位printf("%d + %d + %d = %d\n", b, s, g, b+s+g);return 0;
}

2 自加自减运算符

        注意:自增自减运算符,++在前和在后,结果是不一样的。

#include <stdio.h>int main()
{int a = 10;int b = ++a;printf("a = %d  b = %d\n", a, b);//11 11int m = 10;int n = m++;printf("m = %d  n = %d\n", m, n);//11 10return 0;
}

3 关系运算符

#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);if(a > b){printf("a>b\n");}else{printf("a<=b\n");}return 0;
}

4 逻辑运算符

        4.1 逻辑与

#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑与if(a >= 0 && b >= 0){printf("yes\n");}else{printf("no\n");}return 0;
}

         4.2 逻辑或

#include <stdio.h>int main(int argc, const char *argv[])
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑或if(a >= 0 || b >= 0){printf("yes\n");}else{printf("no\n");}return 0;
}

        4.3 逻辑非

#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑非if( !(a>b) ){printf("yes\n");}else{printf("no\n");}return 0;
}

5 位运算符

运算符的符号与运算逻辑:

&          按位与 按位运算

|            按位或 按位运算

^           按位异或 按位运算 

~           按位取反 按位运算

>>         按位右移 整个数据向右移动 高位补0 舍弃低位

#include <stdio.h>int main()
{unsigned char a = 0xb5;unsigned char b = 0xa3;unsigned char c = 0;//按位与c = a & b;printf("a & b = %#x\n", c);//按位或c = a | b;printf("a | b = %#x\n", c);//按位异或c = a ^ b;printf("a ^ b = %#x\n", c);//按位取反c = ~a;printf("~a = %#x\n", c);//按位左移c = a<<3;printf("a<<3 = %#x\n", c);//按位右移c = a>>3;printf("a>>3 = %#x\n", c);return 0;
}

6 条件运算符

        C语言中唯一一个三目运算符

#include <stdio.h>int main()
{int a = 10;int b = 20;int c = 0;c = (a<b ? ++a : ++b);printf("c = %d  a = %d  b = %d\n", c, a, b);return 0;
}

7 练习题

        如何交换两个变量的值

#include <stdio.h>int main()
{int a = 1;int b = 2;#if 0//方法1:int temp = a;a = b;b = temp;
#endif#if 0//方法2: 通过加减的方式实现a = a+b;b = a-b;a = a-b;
#endif//方法3:三次异或实现两个数的交换 没有溢出的风险,a = a ^ b;b = a ^ b;a = a ^ b;printf("a = %d, b = %d\n", a, b);return 0;
}

二、常用的输入输出的函数练习

1.putchar/getchar

        1.1putchar

#include <stdio.h>int main()
{putchar(65);//Aputchar('B');putchar('\n');//可以传一个表达式putchar('A'+3);//Dreturn 0;
}

        1.2getchar

        注意:垃圾字符就是我们不想从终端获取的回车、空格等

#include <stdio.h>int main()
{//当多个getchar连续使用时 要注意清理垃圾字符char a1=0, v2=0, a3=0;a1 = getchar();getchar();a2 = getchar();getchar();a3 = getchar();getchar();printf("a1 = [%d] [%c]\n", a1, a1);printf("a2 = [%d] [%c]\n", a2, a2);printf("a3 = [%d] [%c]\n", a3, a3);return 0;
}

2.puts/gets

        2.1puts

#include <stdio.h>int main()
{//直接输出字符串常量puts("hello");//输出保存字符串的数组char str[32] = "beijing";puts(str);//输出指向字符串的指针char *p = "nihao";puts(p);//puts遇到 '\0' 就停止了后面的字符 不再继续输出puts("abcd\0efg");return 0;
}

        2.2gets

        注意:使用gets要保证用来保存字符串的数组足够大,否则会出现越界访问

#include <stdio.h>
int main()
{char s1[32] = {0};gets(s1);puts(s1);return 0;
}

二、分支控制语句的练习

1.练习题

从终端输入一个字符        

        ①如果输入的是小写字母则转换成大写输出

        ②如果输入的是大写字母则转换成小写输出

        ③如果输入'0'--'9'则都输出数字0

        ④其他字符 都输出 #

#include <stdio.h>int main()
{int a = 0;a = getchar();if(a >= 65 && a <= 90){a = a+32;printf("%c\n", a);}else if(a >= 'a' && a <= 'z'){a = a+'A'-'a';printf("%c\n", a);}else if(a >= '0' && a <= '9'){a -= '0';printf("%d\n", a);}else{printf("#\n");}return 0;
}

2.练习题

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

        输出成绩对应的等级

        [90, 100] A

        [80, 90) B

        [70, 80) C

        [60, 70) D

        [0, 60) 不及格

#include <stdio.h>int main(){int score = 0;scanf("%d", &score);if(score>=90 && score<=100){printf("A\n");}else if(score>=80 && score<90){printf("B\n");}else if(score>=70 && score<80){printf("C\n");}else if(score>=60 && score<70){printf("D\n");}else{printf("不及格\n");}return 0;
}

3.练习题

输入一个年份,输出这一年是平年还是闰年

        闰年:能被4整除且不能被100整除 或者 能被400整除

#include <stdio.h>int main(){int year = 0;scanf("%d", &year);if((year%4==0 && year%100 != 0) || year%400==0){printf("闰年\n");}else{printf("平年\n");}return 0;
}

总结

        这些就是C语言学习笔记(上)-CSDN博客笔记中剩余知识点所对应的程序练习,包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习,本程序练习建议对应博主对应的学习笔记知识点。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新AI系统ChatGPT网站系统源码,Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图+思维导图一站式解决方案

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

射频PCB电路布局设计及布线注意事项

在电子产品和设备中&#xff0c;电路板是一个不可缺少的部件&#xff0c;它起着电路系统的电气和机械等的连接作用。如何将电路中的元器件按照一定的要求&#xff0c;在PCB上排列组合起来&#xff0c;是PCB设计师的主要任务之一。布局设计不是简单的将元器件在PCB上排列起来&am…

【ZYNQ】教你用 Vivado HLS 快速设计一个 IP

Xilinx 推出的 Vivado HLS 工具可以直接使用 C、C或 System C 来对 Xilinx 系列的 FPGA 进行编程&#xff0c;从而提高抽象的层级&#xff0c;大大减少了使用传统 RTL 描述进行 FPGA 开发所需的时间。 Vivado HLS 的功能简单地来说就是把 C、C 或 SystemC 的设计转换成 RTL 实…

分布式事务的8种解决方案(荣耀典藏版)

大家好&#xff0c;我是月夜枫&#xff0c;在上篇文章中&#xff0c;我们已经谈到了分布式中至关重要的两个理论&#xff1a;CAP 理论和 BASE 理论。 今天将带大家探讨分布式事务里的“八奇技”&#xff0c;帮助大家在实际的分布式系统中更好地运用事务。 时光穿梭机&#xff…

Redis缓存雪崩、缓存击穿、缓存穿透

1. 什么是缓存雪崩 当我们提到缓存系统中的问题&#xff0c;缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效&#xff0c;导致瞬间大量的请求直接打到了数据库&#xff0c;可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中&#xff0c;…

CodeWhisperer——轻松使用一个超级强大的工具

CodeWhisperer 简介 CodeWhisperer是亚⻢逊云科技出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 CodeWhisperer有以下几个主要用途&#xff1a; 解决编程问题&#xff0c;提供代码建议&#xff0c;学习编程知识等等&#xff0c;并且CodeWhisper…

第一节 初始化项目

系列文章目录 第一节 初始化项目 文章目录 操作步骤 总结 操作步骤 打开cmd 输入 vue ui 在打开的网页中点击“创建”&#xff0c;复制文件夹路径并粘贴点击“在此创建新项目” 输入项目名称 点击下一步选择手动配置 选择babel、router、vuex、css pre-processors、 linter建…

大数据与人工智能|万物皆算法(第三节)

要点一&#xff1a;数据与智能的关系 1. 一切的核心都是数据&#xff0c;数据和智能之间是密切相关的。 数据是对客观现实的描述&#xff0c;而信息是数据转化而来的。 例如&#xff0c;24是数据&#xff0c;但说“今天的气温是24摄氏度”是信息&#xff0c;而说“班可以分成24…

Unity TextMeshPro中文字体的转换与显示

Unity TextMeshPro功能非常强大&#xff0c;但是我们用默认的字体格式却无法显示中文&#xff0c;必须把字体转换之后才能正常显示中文。 具体转换方法&#xff1a; 1、准备好字体&#xff0c;ttf或otf格式都可以&#xff0c;如&#xff1a;SOURCEHANSANSCN-NORMAL.OTF 2、准…

Elasticsearch8.x结合OpenAI CLIP模型实现图搜图及文搜图功能

前言 在当今大数据时代&#xff0c;搜索引擎已经是许多应用的核心组件之一&#xff0c;近年随着大模型以及AI技术&#xff08;如&#xff1a;自然语言处理NLP&#xff09;的流行&#xff0c;这些技术的结合将会创造出更多的应用场景&#xff0c;比如&#xff1a;电商商品搜索、…

数据驱动与数据安全,自动驾驶看得见的门槛和看不见的天花板

作者 |田水 编辑 |德新 尽管心理有所准备&#xff0c;2023年智能驾驶赛道的内卷程度还是超出了大多数人的预期。 这一年&#xff0c;汽车价格战突然开打&#xff0c;主机厂将来自销售终端的价格压力&#xff0c;传导到下游智驾供应商&#xff0c;于是&#xff0c;市面上出现…

100V降压芯片H6603 外围简洁无过冲 12V 24V 36V 48V 60V 转5V 3.3V

H6603是一款优秀的降压恒压电源芯片&#xff0c;具有外围元器件少、电路简单、效率高、发热量低等特点。 H6603 是一款内置功率 MOSFET降压开关转换器。在宽输入范围内&#xff0c;其峰值输出电流可达到 0.8A&#xff0c;具有极好的负载和线性调整率。 电流控制模式提供了快速瞬…