尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C语言第二章
一.变量1.做计算printf(1213%d,1213);2.算找零printf(100-23%d,100-23);3.为什么要引入变量每次计算时都需要输入数字繁琐4.引入change函数int price0; printf(请输入金额元:); scanf(%d,price); int change100-price; printf(找您:%d元\n,change);5.输出printf和输入scanf在终端进行6.int price0解释定义了一个类型是int名称是price初始值是0的变量7.变量定义变量类型变量名称egint price; int amount; int price,amount;8.变量的名称标识符由数字字母下划线组成数字不能开头一些关键字不能作为变量名称egint二.变量的赋值与初始化1.int price0;和price0的区别int price0;定义了一个类型为int名称为price初始值为0的变量price0是一个式子指把0的值赋给price2.赋值和数学意义的区别数学中ab的值a和b的值相等是关系静态计算机中ab指把b的值赋给a是动作动态3.初始化十一2有系统说明赋值发生在变量定义的时候称为初始化egint price0int price是定义变量0是赋值注意c语言不强调在变量定义时做初始化但在变量第一次被使用前需要做初始化egint change100-price;变量出现在右边4.如果没有初始化#include stdio.h int main() { int i; int j; ji10; printf(%d\n,j); return 0; }这里看课讲的是终端显示乱码但是我用的devc终端显示10终端输出奇怪的结果是因为因为没有对进行第一次参与计算的变量进行初始化导致变量i和j用的是内存的东西而输出10的原因可能是内存里面是105.变量初始化格式变量类型变量名称初始值egint price0;int amount100;多变量定义eg:int price0,amount100;6.表达式是赋值运算符有运算符的式子就叫表达式egprice0change100-price7.c99和ansic的区别//c99 int price0; printf(请输入金额元); scanf(%d,price); int change100-price; printf(找您%d元,change);//ansic int price0; int change100-price; printf(请输入金额元); scanf(%d,price); int change100-price; printf(找您%d元,change);ansic所有的变量定义都在前列,c99的变量定义可以在程序中间8.scanf函数scanf(%d,price);要求scanf这个函数读入下一个整数读到的结果赋值给变量price三.变量输入scanf1.如何让程序读入用户输入的数字int a0; int b0; scanf(%d %d,a,b); printf(%d %d\n,a,b);scanf(%d %d,a,b);中“”里面的内容是要读取你要输入的东西交给后面的两个变量格式和终端输入的数字一致不管printf格式这是输出后的东西你需要在输入时做相同的格式2.egscanf(%d %d,a,b); scanf(%d,%d,a,b); scanf(price%d %d,a,b); scanf(%d %d\n,a,b);//这里的\n不是换行而是你要输入\n四.变量和常量1.常量int change100-price;中100是常量直接写在程序的称为直接量literal2.定义一个常量const int AMOUNT100c99AMOUNT是金额const int AMOUNT100; int price0; printf(请输入金额元:); scanf(%d,price); int changeAMOUNT-price; printf(找您:%d元\n,change);const int AMOUNT100;定义了一个类型const int名称AMOUNT初始值100的常量在第一次使用AMOUNT前赋值是初始化有两个好处1知道这是金额2便于检查3.const修饰符放在int前给变量加一个不变的属性表示这个变量一旦初始化就不能修改4.如果对AMOUNT进行修改AMOUNT90;int price0; AMOUNT90; printf(请输入金额元:);AMOUNT是一个只读的变量不能被赋值5.如果想修改100怎么办const int AMOUNT100;修改为int amount100后面加scanf因为const通常和大写AMOUNT一起int amount100; int price0; printf(请输入金额元); scanf(%d,price); printf(请输入面值); scanf(%d,amount); int changeamount-price; printf(找您%d元,change);终端操作空格或者回车6.scanf怎么放多个变量int a0; int b0; printf(请输入两个整数); scanf(%d %d,a,b); printf(%d%d%d\n,a,b,ab);scanf里面两个%d用空格终端操作空格或者回车如果输入了字符串怎么办输出内存的数字八.浮点数整数运算的结果只有整数部分不然用浮点数1.英尺英寸换算米一个外国人身高5尺7寸用米表示printf(身高英尺和英寸:); int foot; int inch; scanf(%d %d,foot,inch); printf(身高是%f米,(footinch/12)*0.3048);但是实际计算结果是57/12*0.30481.70182.为什么会出现这个问题因为c语言在进行整数运算时会去掉小数点往小的去掉printf(%d,12/5);终端2printf(%d10/3*3);终端9由此看出c语言在进行整数运算时候对每个步骤都会去掉小数点3.解决方案2个110是整数10.0是浮点数用10.0代替printf(%d,10.0/3*3);错误原因%d格式化占位符用于输出int整形数据10.0/310.0是浮点数字面量运算结果是double双精度浮点数修改把%d修改为%fprintf(%f,10.0/3*3);4.浮点数浮点数指带小数点的数值浮点指小数点乱动定点数指小数点不动但在c语言遇不到5.改进printf(身高是%f米,((inchfoot/12.0)*0.3048));printf(身高英尺和英寸:); int inch; int foot; scanf(%d %d,inch,foot); printf(身高是%f米,(inchfoot/12.0)*0.3048);浮点数和整数运算时c语言会把整数换成浮点数结果也是浮点数所以写成%f米这里我感觉很奇怪printf(%f,(footinch/12)*0.3048);c语言在进行整数和浮点数运算时候c语言会把整数换成浮点数结果也是浮点数foot和inch和12是整数0.3048是浮点数那结果也是浮点数用%f但是结果是整数运算的1.5把12换成12.0结果是正确的ai学习结果是inch/12先执行了整数除法导致精度丢失2double关键字整数和浮点数运算浮点数只需要转换inch或foot成浮点数即可让结果是浮点数double是双双精度浮点数表示浮点数类型float意思是单浮点printf(身高英尺和英寸:); double foot; double inch; scanf(%lf %lf,foot,inch); printf(身高是%f米,(footinch/12.0)*0.3048);scanf输入时用lf6.数据类型整数intprintf(%d,…)scanf(%d,…)带小数的数doubleprintf%f,…)scanf(%lf,…)九.表达式1.一个表达式是一系列运算符和算子的结合用来计算一个值amountx*(10.033)*(10.033)*(10.033);total57;countcount1;value(min/2)*LastValue;2.运算符和算子运算符进行运算的动作…算子参与运算的值常数、变量、一个方法的返回值3.计算时间差计算某小时某分钟到某小时某分钟的时间差设置四个变量相减但是由于可能出现借位情况都换算为分钟后再做取余int hour1,minute1; int hour2,minute2; scanf(%d %d,hour1,minute1); scanf(%d %d,hour2,minute2); int t1hour1*60minute1; int t2hour2*60minute2; int t3t2-t1; printf(时间差是%d小时%d分钟,t3/60,t3%60);十.运算符优先级1.写一个程序求平均值int a,b; scanf(%d %d,a,b); double c(ab)/2.0; printf(%d和%d的平均值%f\n,a,b,c);2.运算符优先级表格单目运算符可以理解为不需要括号的正数和负数优先级运算符运算结合关系举例1单目不变自右向左a*b1-单目取负自右向左a*-b2*乘自左向右a*b2/除自左向右a/b2%取余自左向右a%b3加自左向右ab3-减自左向右a-b4赋值自右向左ab3.赋值运算符赋值也是运算也有结果a6的结果是a被赋予的值也就是6ab6——ab64.嵌入式运算符int a6; int b; int c1(ba);不利于阅读容易产生错误5.结合关系一般自左向右单目-和赋值自右向左resultab3c;result2;result(resultresult*2)*6*(result3result);第三行是嵌入式赋值不要写十一.交换变量1.怎么用c语言交换两个变量的值如果用ab;ba;的话b的值赋给aa的值就等于ba的值赋给bb的值就等于b2.怎样交换变量想象两杯水怎么交换引入一个空杯子用一个没有赋值的变量作为中介进行int a3; int b4; int t; ta; ab; bt; printf(a%d,b%d,a,b);这里有个疑问c语言中变量在第一次使用前变量出现在右边不是定义变量需要对这个变量进行初始化但是bt没有让t进行初始化编译为什么没有出错ai学习后了解赋值写入不需要ta;读取使用值必须int ct;定义变量不需要但推荐int t;3.调试点击需要进行断点的代码行数-生成断点-调试下一步光标移至变量可查看当前变量值无法调试工具-编译选项-设定编译器配置-debug工具-编译选项-代码生成/优化-连接器-产生调试信息-yes环境配置-浏览debug变量-鼠标十二.复合赋值和递增递减1.复合赋值五个算数运算符-*/%和复制号结合为复合赋值运算符-*/%total5;totaltotal5;两个运算符之间不要有空格2.做复合赋值时注意括号total(sum100)/2;totaltotal(sum100)/2;total*sum12;totaltotal*(sum12);total/126;totaltotal/(126);3.递增递减运算符是递增运算符--是递减运算符都是单目运算符(一个算子),这个算子必须是变量作用是让这个变量加1或减1countcount1countcount1;4.前缀后缀--变量前缀形式变量--后缀形式a的值是a1以前的值a的值是加了1以后的值a的值都加1在前先1再使用在后先使用再1int a10; printf(a%d,a); printf(a%d,a); printf(a%d,a); printf(a%d,a);5.表达式和运算和表达式的值表达式运算表达式的值count给count加1count原来的值count给count加1count1以后的值count--给count减1count原来的值--count给count减1count-1以后的值不要组合到表达式复杂
RELATED

相关推荐

优化 PostgreSQL 的 25 条实战经验:从能跑到跑的稳

优化 PostgreSQL 的 25 条实战经验:从能跑到跑的稳

这些年跑过几个千万级、亿级数据量的生产系统后,我意识到一件事:大部分 PostgreSQL 性能问题,加 CPU 和内存是解决不了的。 真正管用的,是理解 PostgreSQL 的“思考方式”——它怎么做查询规划、怎么利用索引、怎么处理并发。 下面…

📅 2026/10/6 12:47:03
基于 RA8P1 的触摸屏演示工程

基于 RA8P1 的触摸屏演示工程

我们是全国大学生电子设计竞赛信息科技前沿专题赛的参赛队伍。本文是参赛作品中触摸显示部分整理出的学习例程:一个基于瑞萨 RA8P1 的触摸屏演示应用,驱动 ST7796 液晶屏(480320)与 FT6336 电容触摸屏。文章重点介绍 RA8P1 平台资…

📅 2026/10/5 14:35:33
【Kubernetes从入门到精通】第34篇:Pod健康检查——Liveness、Readiness和Startup探针

【Kubernetes从入门到精通】第34篇:Pod健康检查——Liveness、Readiness和Startup探针

上一篇【第33篇】Pod生命周期全解——从Pending到Terminating的每一步 下一篇【第35篇】Pod的优雅上下线——Graceful Shutdown和PreStop Hook 摘要 你在K8s上部署了一个Java服务,Pod显示Running,但客户端全部502——我猜你没配Readiness探针。Pod变成了…

📅 2026/10/8 21:47:45
MORE NEWS

更多资讯

📰

Python多态机制与动态类型系统解析

1. 多态的本质与Python实现机制多态(Polymorphism)是面向对象编程三大特性之一,它允许不同类的对象对同一消息做出不同的响应。在Python中,多态的实现与其他静态类型语言有着显著区别,这源于Python的动态类型系统和鸭子…

📰

Unity游戏音频工程化:跨平台音乐播放与发布实战指南

1. 项目概述:为什么一个“音乐播放”功能值得单独深挖在Unity项目里,很多人第一次加背景音乐时,拖个AudioClip进AudioSource、勾上Play On Awake,就以为万事大吉了。但真正上线前的测试阶段,问题才开始集中爆发&#x…

📰

GaussDB与MyBatis-Plus分页兼容性问题解决方案

1. 问题背景:当GaussDB遇上MyBatis-Plus分页最近在项目迁移到华为GaussDB时,团队遇到了一个棘手的问题——原本在MySQL上运行良好的MyBatis-Plus分页查询,在GaussDB环境下完全失效。控制台不断抛出SQL语法异常,日志里满是"ER…

📰

STM32F407+lwIP+FreeRTOS网口调试与socket实战

简介:面向STM32F407、LWIP与FreeRTOS的嵌入式网络控制学习资料,适合具备一定单片机基础、希望把实时操作系统与TCP/IP通信落到实际项目中的开发者。内容围绕点钻机下位机控制场景展开:以STM32F407为主控,借助FreeRTOS完成任务调度…

📰

新能源微电网与电动车协同调度建模与优化

1. 项目背景与核心挑战解析2026年认证杯数学建模B题将新能源园区中的微电网、电动车与建筑协同调度作为研究对象,这反映了当前能源系统智能化转型的前沿趋势。在实际园区运营中,这三者构成了典型的"发-储-用"闭环系统:光伏/风电等分…

📰

从完美主义到无可挑剔:一套可复制的高质量行动法

1. 从“完美主义”到“无可挑剔”:重新理解这个词我第一次认真琢磨“impeccable”这个词,不是因为词典,而是因为收到过一封邮件。那封邮件不长,但措辞、排版、附件命名、签名档甚至发送时间,都让人觉得发件人极其靠谱。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬