做网站哪个便宜,深圳市浩天建设网站,id自动导入wordpress,福州做网站的公司电话文章目录 前言一、大杂烩1.导入2.常量3.标识符4.关键字5.整型补充5.1 short#xff1a;短整型5.2 long#xff1a;长整型5.3 long long#xff1a;长长整型 二、例题讲解问题#xff1a;1597. 买文具问题#xff1a;1596. 火柴棒三角形问题问题#xff1a;1417. 买文具问… 文章目录 前言一、大杂烩1.导入2.常量3.标识符4.关键字5.整型补充5.1 short短整型5.2 long长整型5.3 long long长长整型 二、例题讲解问题1597. 买文具问题1596. 火柴棒三角形问题问题1417. 买文具问题1320. 时钟旋转问题1323. 扩建花圃问题问题1462. 小明的游泳时间 三、总结四、感谢 前言
在经历了初步的编程概念洗礼后你已经掌握了变量、数据类型、基本的算术运算符等核心知识点。本篇内容旨在巩固之前所学并通过实例深入带你领略C语言的魅力为NOI之路打下坚实基础。
我们将围绕以下几个关键点进行深化学习和实践 常量的使用理解常量与变量的区别掌握字面常量与符号常量的定义及应用特别是在处理固定数值如圆周率时如何提升代码的可读性和维护性。 标识符的规范学习如何正确命名标识符遵循C的命名规则确保代码的清晰度和专业性同时避免与关键字冲突。 整型变量的深入除了基础的int类型还将探索short、long、long long等整数类型了解它们在内存占用、数值范围上的差异以及如何根据实际需求选择最合适的类型。 实战演练通过解决具体问题如“扩建花圃”和“小明的游泳时间”我们将理论知识转化为实践强化整数运算能力体会C在解决实际问题中的灵活性和效率。
学习路线C从入门到NOI学习路线
学习大纲C全国青少年信息学奥林匹克竞赛NOI入门级-大纲 一、大杂烩
1.导入
在上一节中各位学的怎么样是否把变量、数据类型、int整型、算术运算符等知识点弄清楚 上一节的知识点确实很多对于初学者来说还是比较有难度的因此我们今天不讲新知识。 咳咳~简单对前面的知识进行补充。 2.常量
常量和变量一听名字就知道两个差不多不同的是常量在程序执行期间其值不会发生改变也就是不能重新赋值。
常量可以分为字面常量和符号常量两种类型。 C中的字面常量不需要定义。字面常量是指在程序中直接使用的常量值例如整型常量、字符型常量、字符串常量等。这些常量的值在程序编译时就已经确定了因此不需要进行定义。例如
int num 10; // 定义一个整型变量num并初始化为10
int result num 20; // 使用字面常量20进行计算在上面的代码中20就是一个整型字面常量它直接出现在程序中进行计算而不需要进行定义。
而如果要在程序中多次使用同一个常量值并且这个值写起来比较繁琐比如计算圆的面积、周长、体积我们需要多次用到圆周率3.14159265358979323846这个时候就需要符号常量。 圆周率是一个确定的值有限范围内把圆周率定义为符号常量这样可以提高程序的可读性和可维护性。例如
#include iostream
using namespace std;const double PI 3.14159265358979323846; // 定义圆周率常量int main() {double r, c, s, v;cout 请输入圆的半径;cin r;c 2 * PI * r; // 计算圆的周长s PI * r * r; // 计算圆的面积v 4.0 / 3.0 * PI * r * r * r; // 计算圆的体积cout 圆的周长为 c endl;cout 圆的面积为 s endl;cout 圆的体积为 v endl;return 0;
}C中定义符号常量的方法使用const关键字。使用const关键字定义符号常量的语法格式如下
const 数据类型 常量名 常量值;只是在变量的定义基础上加了const关键字需要注意的是常量名全部大写养成良好的代码习惯。
3.标识符
其实标识符就是我们前面讲到的变量名。准确的说变量名则是标识符的一种。
数据类型 变量名 值;标识符是用来标识变量、函数、类、结构体等各种程序实体的名称。
标识符必须以字母、下划线或者汉字开头后面可以跟字母、下划线、数字或者汉字。C标识符是区分大小写的长度没有限制。以下是一些C标识符的命名规则
标识符不能是C关键字例如if、else、while等。标识符不能包含空格。标识符不能以数字开头。标识符不能包含特殊字符例如、#、$等。标识符应该具有描述性能够清晰地表达其含义。
4.关键字
C关键字是指在C编程语言中具有特殊含义的保留字这些关键字不能作为标识符使用。
C中的关键字包括auto、bool、break、case、catch、char、class、const、constexpr、continue、decltype、default、delete、do、double、dynamic_cast、else、enum、explicit、export、extern、false、float、for、friend、goto、if、inline、int、long、mutable、namespace、new、nullptr、operator、private、protected、public、register、reinterpret_cast、return、short、signed、sizeof、static、static_assert、static_cast、struct、switch、template、this、thread_local、throw、true、try、typedef、typeid、typename、union、unsigned、using、virtual、void、volatile、wchar_t、while等。
并不需要将关键字全部记住在Dev C中关键字都会被不同的颜色和字体粗细区别出来。
5.整型补充
C中的整型变量是一种用来存储整数值的数据类型。整数就是没有小数部分的数字。
以下是一些除 int 以外常见的C整数变量类型
5.1 short短整型
占用2个字节范围为-32768到32767。
声明一个short类型的变量a并将其初始化为-123
short a -123;5.2 long长整型
其大小可以与int相同即4个字节但在很多现代系统尤其是64位系统上通常占用8个字节64位范围扩大到-9223372036854775808到9223372036854775807。
#include iostream
using namespace std;int main() {long a 2147483647;a;cout a a endl; // 输出a 2147483648return 0;
}5.3 long long长长整型
long long是一种整数类型它可以存储更大的整数值。long long类型的变量至少占用8个字节64位可以存储的最大值为9223372036854775807最小值为-9223372036854775808。
#include iostream
using namespace std;int main() {long long b 9223372036854775807;b;cout b b endl; // 输出b -9223372036854775808return 0;
}short、int、long和long long在运行速度上没有明显的区别它们的区别在于占用的空间大小和能够表示的整数范围。
二、例题讲解
问题1597. 买文具
类型基本运算、整数运算 题目描述
花花去文具店买了 1 支笔和 1块橡皮已知笔 x 元/ 支橡皮 y元 / 块花花付给了老板 n 元请问老板应该找给花花多少钱
输入
三个整数x、y、n 分别代表了笔的单价、橡皮的单价和花花付给老板的钱已知花花付给老板的钱 n≥xy 。
输出
一个整数代表老板应该找给花花的钱。
样例
输入
2 1 10输出
71.分析问题
已知笔的单价x、橡皮的单价y和花花付给老板的钱n。未知请问老板应该找给花花多少钱s关系sn-x-y。
2.定义变量 // 二、数据定义 int x, y, n, s; // 定义变量x存储笔单价y存储橡皮单价n存储支付总金额s存储找零金额3.输入数据 // 三、数据输入 cinxyn; // 输入笔单价、橡皮单价及顾客支付的总金额4.数据计算 // 四、数据计算 s n - (x y); // 计算出老板应该找回给花花的金额5.输出结果 // 五、输出结果 couts; // 输出应找回的金额return 0; // 程序正常结束返回值为0完整代码如下
#includebits/stdc.h
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知笔的单价(x)、橡皮的单价(y)和顾客花花付给老板的总金额(n)// 未知老板应该找给花花多少钱(s)// 关系s n - (x y)即总金额减去商品总价等于找零// 二、数据定义 int x, y, n, s; // 定义变量x存储笔单价y存储橡皮单价n存储支付总金额s存储找零金额// 三、数据输入 cinxyn; // 输入笔单价、橡皮单价及顾客支付的总金额// 四、数据计算 s n - (x y); // 计算出老板应该找回给花花的金额// 五、输出结果 couts; // 输出应找回的金额return 0; // 程序正常结束返回值为0
}问题1596. 火柴棒三角形问题
类型基本运算、整数运算 题目描述
如下图所示摆 1 个火柴棒三角形需要 3 根火柴那么摆 2 个火柴棒三角形就需要 6 根火柴请问摆 n 个火柴棒三角形需要多少根火柴
输入
一个整数 n 代表想要摆放的火柴棒三角形的数量。
输出
一个整数代表了需要多少根火柴的数量。
样例
输入
3输出
91.分析问题
已知想要摆放的火柴棒三角形的数量n。未知需要多少根火柴的数量s。关系sn * 3。
2.定义变量 // 二、数据定义 int n, s; // 定义变量n存储三角形数量s存储所需火柴棒总数3.输入数据 // 三、数据输入 cinn; // 从标准输入读取需要摆放的等边三角形火柴棒图形的数量4.数据计算 // 四、数据计算 s n * 3; // 根据每个等边三角形需要3根火柴棒来计算所需的火柴棒总数5.输出结果 // 五、输出结果 couts; // 输出摆放n个等边三角形所需要的火柴棒总数量return 0; // 程序正常结束返回值为0完整代码如下
#includebits/stdc.h
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知想要摆放的等边三角形火柴棒图形的数量(n)。// 未知需要的火柴棒总数量(s)。// 关系每个等边三角形需要3根火柴棒所以所需火柴棒总数s n * 3。// 二、数据定义 int n, s; // 定义变量n存储三角形数量s存储所需火柴棒总数// 三、数据输入 cinn; // 从标准输入读取需要摆放的等边三角形火柴棒图形的数量// 四、数据计算 s n * 3; // 根据每个等边三角形需要3根火柴棒来计算所需的火柴棒总数// 五、输出结果 couts; // 输出摆放n个等边三角形所需要的火柴棒总数量return 0; // 程序正常结束返回值为0
}问题1417. 买文具
类型基本运算、整数运算 题目描述
文具店的水笔的单价是一个整数小明从文具店买了 x 支水笔花了 y 元。请问如果你要从该文具店购买 5 支水笔需要付多少钱
输入
两个整数 x 和 y 用空格隔开分别代表小明买的水笔的支数和他付给老板的金额。
输出
一个整数代表如果你买 5 支水笔应该付给老板的金额。
样例
输入
10 20输出
101.分析问题
已知小明买的水笔的支数x和他付给老板的金额y。未知买 5 支水笔应该付给老板的金额m。关系my / x * 5。
2.定义变量 // 二、数据定义 int x, y, m; // 定义变量x存储已购水笔数量y存储已付金额m存储5支笔的应付金额3.输入数据 // 三、数据输入 cinxy; // 从标准输入读取小明已购买的水笔数量和已付金额4.数据计算 // 四、数据计算 m y / x * 5; // 根据单价y/x计算出购买5支笔的应付金额5.输出结果 // 五、输出结果 coutm; // 输出小明购买5支笔应付的金额return 0; // 程序正常结束返回值为0完整代码如下
#includebits/stdc.h
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知小明买的水笔的支数(x)和他付给老板的金额(y)。// 未知买 5 支水笔应该付给老板的金额(m)。// 关系m y / x * 5 即单价乘以5支笔的数量// 二、数据定义 int x, y, m; // 定义变量x存储已购水笔数量y存储已付金额m存储5支笔的应付金额// 三、数据输入 cinxy; // 从标准输入读取小明已购买的水笔数量和已付金额// 四、数据计算 m y / x * 5; // 根据单价y/x计算出购买5支笔的应付金额// 五、输出结果 coutm; // 输出小明购买5支笔应付的金额return 0; // 程序正常结束返回值为0
}问题1320. 时钟旋转
类型基本运算、整数运算 题目描述
时钟上面的时针从 m 时走到 n 时旋转了多少度m≤n且 m 和 n 都是1∼12之间的整数。 输入
2 个整数 m 和 n。
输出
1 个整数代表时针旋转的度数。
样例
输入
1 4输出
901.分析问题
已知2 个整数 m 和 n。未知时针从m时走到n时旋转了多少度关系圆是360度钟表被分成12份因此每份30度 。
2.定义变量
m起始时刻单位小时假设为整点。n结束时刻单位小时假设为整点。result时针从 m 时到 n 时旋转的角度单位度待计算。 //二、数据定义 int m,n,result; 3.输入数据
从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值。 //三、数据输入 cinmn;4.数据计算
计算时针从 m 时到 n 时旋转的角度即 (n - m) 小时对应的旋转角度。每小时时针旋转 30 度因此总旋转角度为 30 度 * (n - m)。 //四、数据计算 result360/12*(n-m);5.输出结果
将计算得到的时针旋转角度 result 输出到标准输出。 //五、输出结果 coutresult;return 0;完整代码如下
#include bits/stdc.h
using namespace std;int main() {// 一、分析问题// 已知2 个整数 m 和 n分别代表起始和结束时刻假设为整点。// 未知时针从 m 时走到 n 时旋转了多少度// 关系圆是360度钟表被分成12份对应12小时因此每小时对应的旋转角度为 360 度 / 12 30 度// 二、数据定义// 定义整型变量// m起始时刻单位小时假设为整点// n结束时刻单位小时假设为整点// result时针从 m 时到 n 时旋转的角度单位度待计算int m, n, result;// 三、数据输入// 从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值cin m n;// 四、数据计算// 计算时针从 m 时到 n 时旋转的角度即 (n - m) 小时对应的旋转角度// 每小时时针旋转 30 度因此总旋转角度为 30 度 * (n - m)result 360 / 12 * (n - m);// 五、输出结果// 将计算得到的时针旋转角度 result 输出到标准输出cout result;// 程序执行完毕返回 0 表示正常结束return 0;
}问题1323. 扩建花圃问题
类型整数运算、整数运算 题目描述
梅山小学有一块长方形花圃花圃的长宽都是整数长 m 米宽未知。 在修建校园时花圃的长增加了 n 米此时发现增加出来的面积有 s 平方米。 请编程计算出原来花圃的面积是多少平方米4.2.19
输入
3个整数分别是 m、n、s。
输出
一个整数原来花圃的面积数。
样例
输入
8 3 18输出
481.分析问题
已知花圃长 m 米,花圃的长增加了n米此时发现增加出来的面积有s平方米。未知原来花圃的面积数a。关系根据增加面积算出花圃宽度ws/n;然后算出现在的花圃面积数 。
2.定义变量
声明并定义了五个整型变量分别表示花坛长度m、长度增加量n、新增面积s、原花坛宽度w和原花坛面积a。 //二、数据定义 int m,n,s,w,a; 3.输入数据
通过cin从标准输入读取花坛长度m、长度增加量n和新增面积s的值。 //三、数据输入 cinmns;4.数据计算
根据给定的新增面积s和长度增加量n计算出原花坛的宽度w公式为 w s / n。之后利用原花坛宽度w和长度m计算原花坛的面积a公式为 a w * m。 //四、数据计算 ws/n;aw*m;5.输出结果
使用cout将计算得到的原花坛面积a输出到标准输出。 //五、输出结果 couta;return 0; 完整代码如下
#include bits/stdc.h
using namespace std;int main() {// 一、分析问题// 已知花圃长 m 米花圃的长增加了 n 米此时发现增加出来的面积有 s 平方米。// 未知原来花圃的面积数 a// 关系根据增加面积算出花圃宽度 w s / n然后算出现在的花圃面积数// 二、数据定义// 定义整型变量// m花坛原长度单位米// n花坛长度增加量单位米// s因长度增加而新增的面积单位平方米// w花坛原宽度单位米待计算// a原花坛面积单位平方米待计算int m, n, s, w, a;// 三、数据输入// 从标准输入接收用户输入的花坛原长度 m、长度增加量 n 和新增面积 s 的值cin m n s;// 四、数据计算// 计算原花坛宽度 w根据题意新增面积等于原宽度乘以长度增加量即 s w * n// 变换公式得 w s / nw s / n;// 计算原花坛面积 a根据题意面积等于原长度乘以原宽度即 a m * wa w * m;// 五、输出结果// 将计算得到的原花坛面积 a 输出到标准输出cout a;// 程序执行完毕返回 0 表示正常结束return 0;
}问题1462. 小明的游泳时间
类型整数运算 题目描述
伦敦奥运会要到了小明在拼命练习游泳准备参加游泳比赛。 这一天小明给自己的游泳时间做了精确的计时本题中的计时都按 24 小时制计算它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分。 请你帮小明计算一下它这天一共游了多少时间呢小明游的好辛苦呀你可不要算错了哦。
输入
一行内输入 4 个整数分别表示a,b,c,d 。
输出
一行内输出 2 个整数 e 和 f 用空格间隔依次表示小明这天一共游了多少小时多少分钟。其中表示分钟的整数 f应该小于 60 。
样例
输入
12 50 19 10输出
6 201.分析问题
已知从 a 时 b 分一直游泳到当天的 c 时 d 分。未知一共游了多少时间呢关系先将时间转换成分计算后再换算成时分输出 。
2.定义变量
定义变量a开始时、b开始分、c结束时、d结束分、e游泳总时数、f游泳总分数均为整型。 //二、数据定义 int a,b,c,d,e,f; 3.输入数据
从标准输入如键盘接收用户输入的开始时间和结束时间时分。 //三、数据输入cinabcd; 4.数据计算 //四、数据计算 int total_minutes (c * 60 d) - (a * 60 b); // 计算游泳总分钟数e total_minutes / 60; // 计算游泳总时数 e整除f total_minutes % 60; // 计算游泳总分数 f余数5.输出结果
输出游泳总时数 e 和总分数 f。 //五、输出结果 coute f;return 0;完整代码如下
#include bits/stdc.h // 包含标准输入输出库以及其他常用头文件
using namespace std; // 使用 std 命名空间简化代码int main() { // 主函数开始// 一、分析问题// 已知从 a 时 b 分一直游泳到当天的 c 时 d 分// 未知一共游了多少时间呢// 关系先将时间转换成分进行计算再将结果换算成时分输出// 二、数据定义 int a, b, c, d, e, f; // 定义变量a开始时、b开始分、c结束时、d结束分、e游泳总时数、f游泳总分数均为整型// 三、数据输入cin a b c d; // 从标准输入如键盘接收用户输入的开始时间和结束时间时分// 四、数据计算 int total_minutes (c * 60 d) - (a * 60 b); // 计算游泳总分钟数e total_minutes / 60; // 计算游泳总时数 e整除f total_minutes % 60; // 计算游泳总分数 f余数// 五、输出结果 cout e f; // 输出游泳总时数 e 和总分数 freturn 0; // 主函数结束返回值为 0 表示程序执行成功
}三、总结
通过本次学习你不仅巩固了C语言的基础还进一步拓展了对常量、标识符、整型变量的理解更重要的是通过解决实际问题提升了程序设计思维和编码技能。记住编程不仅是技术的堆砌更是逻辑思维与问题解决的艺术。每一道题目的解决都是向NOI奖台迈进的坚实一步。保持好奇心勤于实践相信不久的将来你将在信息学的舞台上绽放光彩。继续加油未来的编程之星
四、感谢
如若本文对您的学习或工作有所启发和帮助恳请您给予宝贵的支持——轻轻一点为文章点赞若觉得内容值得分享给更多朋友欢迎转发扩散若认为此篇内容具有长期参考价值敬请收藏以便随时查阅。
每一次您的点赞、分享与收藏都是对我持续创作和分享的热情鼓励也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇共同攀登知识的高峰