C语言编程入门之--第五章C语言基本运算和表达式-part1
导读:程序要完成高级功能,首先要能够做到基本的加减乘除。本章从程序中变量的概念开始,结合之前学的输出函数和新介绍的输入函数制作简单人机交互程序,然后讲解最基础的加减法运算,自制简单计算器程序练手。
5.1 变量
5.1.1 变量声明定义与赋值表达式
上一章讲了数据类型,数据类型要和变量结合在一起才能够在C语言程序中体现出它们的作用,一般的变量是这样定义的:
数据类型 变量名;
变量名可以是26个字母中的任意一个,也可以是非C语言关键词的单词或自定义字母组合,也可以加下划线等等,我们就先用简单字母来命名吧,比如声明一个整型的变量a,如下:
int a;
也可以定义多个变量,变量名之间用逗号隔开,最后加分号表示结束,如下:
int a,b,c,d;
也可以在定义变量的时候,直接赋值,这就要用上赋值表达式,如下:
int a = ;
赋值的意思就是赋予数值,也可以多个一起,如下:
int a = , b = , c = ;
当然也可以定义完变量后,再给变量赋值,如下:
int a;
a = ;
请注意,C语言中,规定变量定义必须是代码的最开始部分,比如以下在C语言不建议这么做,虽然刚才的方式用Dev-C++不会报错,但是不代表别的编译器不会报错,如下:
#include <stdio.h>
void main()
{
printf("hello world"); int a = ;
}
因为C语言的编译规则有多种,所以建议变量声明定义放在代码开始部分,以下比较规范,
注意:C语言编译标准随着时代的变迁做几次改变,如最开始的C89然后有C99以及最新的C11,后续文章讲解到编译规则的时候再剖析这部分。
#include <stdio.h>
void main()
{
int a = ; printf("hello world");
}
5.1.2 初识格式化输出
如何查看变量的值,可以用debug的办法(后续再讲解用Dev-C++上断点调试办法),也可以通过printf这个C库函数查看,代码如下,运行结果如图5.1,
#include <stdio.h>
void main()
{
int a = ; printf("a = %d", a);
}
图5.1 printf输出情况
可以看出输出为“a = 10”,在printf语句中,printf(“a = %d”, a);,其中“a = ”是要输出的字符串,就像之前输出“hello world”一样,写什么就输出什么,%d表示这段字符串后面输出的变量值,按照十进制整型输出,下面来点复杂的,然后再解释啥是格式控制符,代码如下,运行结果如图5.2,
#include <stdio.h>
void main()
{
int a = ;
int b = 'c'; printf("a = %d, a = %x, b = %d, b = %c", a, a, b, b);
}
图5.2 稍微复杂的printf输出
按照一个萝卜一个坑的原则,第一个“%d”对应一个输出“a”,第二个“%x”对应下一个输出选“a”,第三个“%d”对应“b”,最后一个“%c”对应“b”。请记住,一定要一一对应,否则会有意想不到的错误哦。
C语言有规定格式控制符,在输出函数printf(“”)的冒号“”里面,如果有百分号%号出现,下一个字母会有它独特的意义:
比如d,表示按照十进制格式输出,
比如x,表示按照十六进制格式输出,
比如c,表示按照单个字符格式输出。。。。。。当然还有很多,现在先介绍这些。
注意:字符一般会涉及ASCII码表,这部分知识怕初学者负担太重,放后面再介绍。
5.1.3 再来一个C库函数scanf以及格式化输入
屏幕显示的程序中的数据,叫做输出,敲键盘传入程序中的数据,叫做输入。输出函数一般用printf,输入函数一般用scanf。下面来写一段程序,程序大体思路是,先定义一个变量a,然后用输入函数scanf给a赋值(通过键盘敲的数值),最后通过输出函数printf在屏幕显示a的数值,代码如下:
#include <stdio.h> void main()
{
int a; scanf("%d", &a); printf("a = %d", a);
}
注意:scanf语句中,a前面有个字符是&,读者可以看看键盘上那一排数字键,对了就在数字7这里,键盘要输入&,可以通过按住键盘Shift键+数字键7,如图5.4,
图5.3 键盘
写好代码后,编译运行,发现控制台一片黑,如图5.3,
图5.4 控制台一片黑
可以看到有个光标在闪烁,请用键盘输入123试试看,然后再按下回车按键,结果如图5.4,
图5.5 运行结果
从结果上可以看出,输出的“a = ”加上刚才键盘输入的123一起在屏幕上显示出来,这就是最基本的输入输出函数的使用了。下面讲解这段程序:
scanf中,变量前面有个符号“&”想必让人产生了困扰,“&”符号叫做取地址符号,之前讲过内存存放数据的,每个数据都有它的地址,希望后续讲解指针的时候读者会有更清晰的了解。希望读者不用困扰,为什么不直接这么写:scanf(“%d”, a),而要这么写:scanf(“%d”, &a),差别在于是否有“&”,请先这么用着吧!
为了更加人性化,在scanf前添加一段printf提示即将输入的字符格式,再添加char型格式输入,下面一段代码会比之前稍微复杂那么一点点,
#include <stdio.h> void main()
{
int b;
char f; printf("please input int and char data with , to separate : ");
scanf("%d, %c", &b, &f); printf("b = %d, f = %c", b, f);
}
编译运行后,在提示语出现后,在冒号:后面输入400,k,运行结果如图5.5,
注意:在代码的scanf中,有用逗号,来隔开b和f的取值,所以在屏幕输入的时候,也要用逗号隔开整型和字符型,最后回车键显示结果。
图5.6 运行结果
这样整型类型的b就被赋值400,字符f就被赋值‘k’了。对于整型读者可以赋值不同的数值大小,请记住这些类型的取值是有上下限制的,如果超过可能会有意想不到的后果,可以在第四章查看表4.1找到基本数据类型的取值限制,至于字符可以输入26个字母中的一个,或者一些标点符号等等,当然也能赋值具体的整数值。
C语言编程入门之--第五章C语言基本运算和表达式-part1的更多相关文章
- C语言编程入门之--第五章C语言基本运算和表达式-part2
5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序. 注意:stdin是输 ...
- C语言编程入门之--第五章C语言基本运算和表达式-part3
5.3 挑几个运算符来讲 常用的运算符除了加减乘除(+-*/)外,还有如下: 注意:以下运算符之间用逗号隔开,C语言中也有逗号运算符,这里不讲逗号运算符. 1. 赋值运算符 =,+=,*= 2. 一 ...
- C语言编程入门之--第五章C语言基本运算和表达式-part4
5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...
- C语言编程入门之--第四章C语言基本数据类型
导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型.数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了.本章从二进制的基本概念开始,然 ...
- C语言编程入门之--第六章C语言控制语句
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...
- C语言编程入门之--第三章编写第一个C语言程序
第三章 编写第一个C语言程序 导读:一般学一门计算机语言的第一堂上机课(“上机”顾名思义,上了计算机),就是往屏幕输出“hello world”,本章也不例外. 1.1 Hello,World! 这一 ...
- C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类)
上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用. CFile类概述 如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作.这些 ...
随机推荐
- 深度优先(DFS)和广度优先(BFS)
深度优先(Depth-First-Search)和广度优先(Breadth-First-Search)是我们遍历图的两种方式,它们都属于穷举法,用来系统的遍历图中的所有顶点 关于如何再一个有向图/无向 ...
- 【Mysql】索引简介
本文口味:番茄炒蛋,预计阅读:10分钟. 博客又停更了两个月,在这期间,对人生和世界多了许多思考.在人生的不同阶段,会对生活和世界有着不一样的认知,而认知的改变也会直接反应在行为模式之中. 对于生活的 ...
- JVM内存结构解析
月初的时候个人网站到期了,不想再折腾重新建站了,以后还是来第三方博客写文章吧,可以省去很多问题.之前写的文章也不是很多,备份懒得做了,从头开始吧.博文仅仅是用来记录和学习总结,如有错误之处请帮忙指正! ...
- VB非常见知识总结
1.VB.Net设置Excel中单元格字体 sheet.Range(sheet.Cells(row, stp), sheet.Cells(row, stp)).Font.Name = "Wi ...
- MySql中的SHOW INDEX 查出的结果列代表的意义
MySQL SHOW INDEX语法的实际操作用法以及其实际查看索引状态(语法)的具体内容的描述,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱. INDEX FROM tbl_nam ...
- Logstash : 从 SQL Server 读取数据
有些既存的项目把一部分日志信息写入到数据库中了,或者是由于其它的原因我们希望把关系型数据库中的信息读取到 elasticsearch 中.这种情况可以使用 logstash 的 jdbc input ...
- ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分
一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...
- 用Python玩数据-笔记整理-第一章-练习与测试
编程题: 简单的输入输出:编程实现输入姓.名的提示语并接受用户输入,并单独显示姓.名和全名,执行效果如下所示: Input your surname:ZHANG Input your firstnam ...
- 【CYH-02】NOIp考砸后虐题赛:成绩:题解
这道题挺送水了吧... 两种做法. 其实空间都不需要那么大,我来提交界面一看一堆MLE的,于是还是良心的放开了时限. 这么简单,就不做解释了. 下面放出几种代码. 代码: 两个数组: #include ...
- 个人永久性免费-Excel催化剂功能第77波-专业图表制作辅助之批量维护序列点颜色及数据标签
2018年最后一天工作日完成第77波,7是代表完美,2个7,双重的完美,Excel催化剂的2018年从始至终共77波都充满着完美接近极致的功能体验.感谢各位一路相随,陪伴成长.最后一波,再次让数据分析 ...