




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 语言基础 C 程序实例1 includeusingnamespacestd intmain cout Hello n cout WelcometoC n return0 运行结果 Hello WelcometoC C 字符集 C 字符集是C 程序中可以使用的基本符号大小写的英文字母 A Z a z数字字符 0 9特殊字符 例如空格 C 词法记号 类似单词 关键字C 预定义的单词标识符程序员声明的单词 它命名程序正文中的一些实体文字在程序中直接使用符号表示的数据操作符用于实现各种运算的符号分隔符如 用于分隔各个词法记号或程序正文空白符空格 制表符 TAB键产生的字符 换行符 Enter键所产生的字符 和注释的总称 C 字符集类似英语的字母或者汉语的笔画 C 的词法符号类似英语的单词或汉语的字 C 程序类似英语的十四行诗或者汉语的诗词歌赋 C 字符集 词法符号 程序关系 C 词法记号 关键字 关键字又称保留字 是C 预定义的单词关键字是C 中具有固定意义的一批英文单词或其缩写 有专门的用途 用在固定的位置 不能移作它用 C 中共有74个关键字 保留字 每一个都有自己的故事 C 常用关键字及分类 C 词法记号 标识符 构成规则 以大写字母 小写字母或下划线 开始 由大写字母 小写字母 下划线 或数字0 9组成 注意事项标识符区分大小写标识符长度任意 取决于操作系统 提倡使用 见名知义 的标识符避免使用系统已定义的标识符 系统保留字 例 判断下面哪些是合法的标识符 MyFile 94Salary Salary94 Salary94 amount amount void f3 5 Num of Student C 程序实例2 includeusingnamespacestd intmain constintPRICE 30 intnum total floatv r h num 10 total num PRICE cout total endl r 2 5 h 3 2 v 3 14159 r r h cout v endl return0 数据类型 数据类型告诉我们存储单元中的数据的形式 及可以对存储单元中的数据执行哪些操作 C 的数据类型可以分为基本类型 构造类型 指针类型 空类型 void 四个大类 基本数据类型 类型修饰符 C 还允许在基本数据类型前加上类型修饰符 来更具体地表示数据类型 C 的类型修饰符包括 signed有符号unsigned无符号short短型long长型 说明 1 表中带 的部分表示是可以省略的 如short int 可以写为shortint或简写为short 二者的含义是相同的 2 四种修饰符都可以用来修饰整型 用signed修饰的类型的值可以为正数或负数 用unsigned修饰的类型的值只能为正数 3 用short修饰的类型 其值一定不大于对应的整数 用long修饰的类型 其值一定不小于对应的整数 C 的构造类型是基本类型的组合 包括数组 结构体和联合体等指针类型是对基本类型或构造类型的地址进行操作的一种数据类型 空类型 void 是什么也没有的一种特殊数据类型 仅用在有限的一些情况下 通常用作无返回值函数的返回类型 有时也被归类到基本类型 常量 在C 语言中 数据分为常量和变量两大类 由于程序中的数据是有类型的 所以常量和变量都是有类型之分的 常量按照不同的数据类型可以分为 字符型常量 整型常量 浮点型常量 以及字符串常量等 程序是根据程序中常量的书写格式来区分它是哪种类型常量的 整型常量 在程序中书写整型常量时 没有小数部分 用户可根据需要分别可以用十进制 八进制和十六进制的形式书写 十进制格式 由数字0至9和正 负号组成 书写时直接写出数字 如 123 516 1000等 八进制格式 以数字0开头的数字 0至7 序列 0111 010007 0177777等 十六进制格式 以0 x或0X开头的数字 数字0至9 字母A至Z 序列 如0 x78AC 0 xFFFF等 浮点型常量 只能用十进制来表示 可以用小数或指数形式表示 不分单精度和双精度类型 如 34 5 345 1 5e 3 字符型常量 1 用一对单引号括起来的一个字符 单引号只是字符与其他部分的分割符 不是字符的一部分 并且 不能用双引号代替单引号 在单引号中的字符不能是单引号或反斜杠 如 a A 合法的字符常量 非法的字符常量 A 不代表字符常量 2 另一种表示字符常量的方法是使用转义字符 C 规定 采用反斜杠后跟一个字母来代表一个控制字符 具有新的含义 C 中常用的转义字符 字符串常量 用一对双引号括起来的一个或多个字符的序列称为字符串常量或字符串 字符串以双引号为定界符 双引号不作为字符串的一部分 如 Hello GoodMorning Isay Goodbye 字符串中的字符数称为该字符串的长度 在存储时 系统自动在字符串的末尾加以字符串结束标志 即转义字符 0 符号常量 常量也可用一个标识符来代表 称为符号常量 如 definePRICE30intmain cout PRICE endl return0 使用符号常量应注意以下几个方面 1 它不同于变量 在作用域内其值不能改变和赋值 如 在上例中如再用PRICE 40 这一语句进行赋值则是错误的 2 符号常量名一般用大写 而变量名用小写 以示区别 在程序中的常量有以下三种表示方法 1 在程序中直接写入常量 词法记号中的文字 如 200 3 4E 10 A 1 0 x120 045 5 35 1000l 2 利用 define定义宏常量 符号常量 一般格式 define宏名常数如 definePI3 14 s 2 PI r 程序中常量的表示方法 3 利用const定义正规常数 常变量 格式 const数据类型标识符常量名 常量值 说明 const必须放在被修饰类型符和类型名前面 数据类型是一个可选项 用来指定常数值的数据类型 如果省略了该数据类型 那么编译程序认为它是int类型如 constinta 10 表示定义了一个初始值为10的整型常量 它在程序中不可改变 但可用于表达式的计算中 1 变量的概念及特点程序中的变量是用于保存程序运算过程中所需要的原始数据 中间运算结果和最终结果的 因此 每一变量就相当于一个容器 对应着计算机内存中的某一块存储单元 变量的值具有以下两个特点 1 一充即无 即将一个新数据存放到一个变量中时 该变量中原来的值消失 变量的值变成了新值 如 执行完语句inti i 10 i 20 后i的值为20 而不是10 变量 2 取之不尽 可将某个变量的值与程序中的其它数据进行各种运算 在运算过程中 如果没有改变该变量的值时 那么 不管用该变量的值进行多少次运算 其值始终保持不变 如 语句inti j k i 10 j i 10 k i j 5 其中 i的值可无限制地多次使用 但它的值始终保持值10 因为在程序中没有改变变量i的值 2 定义变量 变量声明 程序中的每一变量 都要先定义 后使用 定义变量一般有以下三种格式 数据类型标识符变量名 数据类型标识符变量名 初始化值 数据类型标识符变量名1 初始值1 变量名2 初始值2 如 chara 定义字符型变量ainti 1000 定义整型变量i i的初始值为1000 floata 2 b 3 c 定义浮点型变量a b c 且a b的初始值分别为2 3 3 定义变量的位置在程序中的不同位置采用不同的变量定义方式 决定了该变量具有不同的特点 变量的定义一般可有以下三种位置 1 在函数体内部在函数体内部定义的变量称为局部变量 这种局部变量只在进入定义它的函数体时起作用 离开该函数体后该变量就消失 被释放 即不再起作用 因此 不同函数体内部可以定义相同名称的变量 而互不干扰 如 voidfunc1 inty y 2 voidfunc2 inty y 100 2 形式参数当定义一个有参函数时 函数名后面括号内的变量 统称为形式参数 如 intis in char a charb while a if a b return1 elsea return0 3 全局变量 在所有函数体外部定义的变量 其作用范围是整个程序 并在整个程序运行期间有效 如 intcount 定义count变量是全局变量voidfunc1 voidfunc2 intmain count 10 func1 voidfunc1 inttemp temp count func2 printf countis d count 输出10 voidfunc2 intcount for count 1 count 5 count putchar 变量小结 变量有 三要素 变量名 标识符 要正确 有意义 变量的类型 C 支持的数据类型变量的值 可变 在某一时刻是一个确定值 变量要 先说明后使用 变量在一个函数中不能被定义两次程序中的变量一定要赋初值 初始化 inta 3 a 3 cin a变量名一般要以小写字母开头 且见名知义 算术运算符和算术表达式算术运算符就是对数据进行算术运算 如 加 减 乘 除等 是在程序中使用最多的一种运算符 C 的算术运算符如表所示 运算符和表达式 C 的算术运算符 1 x 3 x 2 x 3 x 2 x 53 14 sqrt r b b 4 0 a c 算术运算符注意事项 算术运算符 有整除和一般除法两种功能 如果两个操作数都是整数 的功能就是整除 否则就是一般除法 例如 3 2 13 2 0 1 53 0 2 1 5a 与 a a 与 a a 的功能是 a的值增1 a 的值是a增加前的值 a的功能是 a的值增1 a的值是a增加后的值 a可以用作左值 即能放在赋值号的左边 赋值运算符和赋值表达式赋值运算符的功能将某个数据的值赋给某个变量 格式 变量名赋值运算符表达式说明 1 被赋值的目标 即赋值运算符左边的量必须是变量 而不能是常量或表达式 2 C 中的赋值运算符表 3 要注意区分赋值运算符 与数学上的 等号 间的区别 关系运算符和关系表达式关系运算符就是对两个量之间进行比较的运算符 由关系运算符将两个表达式连接形成的运算式子是关系表达式 一个关系表达式的值是一个逻辑值 当为真时 值为1 为假时 值为0 如 假设a 1 b 20 c 3 则a b表达式成立 其值为1b c表达式不成立 其值为0 a b c表达式成立 其值为1 逻辑运算符和逻辑表达式逻辑运算符是对两个逻辑量间进行运算的运算符 注意 1 C或C 中在给出一个逻辑表达式的最终计算结果值时 用1表示真 用0表示假 但在进行逻辑运算的过程中 凡是遇到非零值时就当真值参加运算 遇到0值时就当假值参加运算 如 inta 10 b 15 c 14 则 a 6 b c 的值为1 真 2 在逻辑表达式的求值过程中 并不是所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的值时 才执行该运算符 a则表达式i i 0 i 的值为0 假 该表达式运算结束后 变量i的值为0 而不是1 a b c只要a为真 就不必须判断b和c 只有a为假 才判别b a和b都为假才判别c 如 inti 1 j 则表达式i i i 的值为1 真 运算结束后 变量i的值为2 而不是4 intn 3 m 6 if n 4 对于数学上的表示多个数据间进行比较的表达式 在C 中要拆写成多个条件并用逻辑运算符连接形成一个逻辑表达式 如 在数学上 要表示一个变量a的值处于 1和 9之间时 可以用 9 9 a 9 a 1 的形式 条件运算符在C 中只提供了一个三目运算符 即条件运算符 其一般形式为 表达式1 表达式2 表达式3条件运算的规则是 首先判断表达式1的值 若其值为真 非0 则取表达式2的值为整个表达式的值 若其值为假 0 则取表达式3的值为整个表达式的值 如 若a 3 b 4 则条件表达式a b a b的值为4 条件表达式可以嵌套 x y greatthan x y equalto lessthan 它等价于 x y greatthan x y equalto lessthan 在条件表达式中 如果后面两个表达式的值类型相同 均为左值 则该条件表达式的值为左值表达式 intx 5 longa b x a b 1 x x a 2 error x和a不同类型 x 2 1 a 3 error 1非左值 位运算符1 位运算符及其运算规则所谓位运算符是指能进行二进制位运算的运算符 C 提供的位运算符 位运算的运算规则为 1 按位与 两个运算量相应的位都是1 则该位的结果值为1 否则为0 2 按位或 两个运算量相应的位只要有一个是1 则该位的结果值为1 否则为0 3 按位异或 两个运算量相应的位不同 则该位的结果值为1 否则为0 4 按位取反 将运算量的每一位取反 5 按位左移 将操作数中的每一位向右移动指定的位数 移出的位被舍弃 空出的位补0或补符号位 例子 如 a 5 b 6 则 a000001010000010100000101b 00000110 00000110 00000110 0000011000000100000001110000001111111001即 a b 4 a b 7 a b 3 b 249 2 复合位运算符位运算符与赋值运算符结合可以形成复合位运算符 逗号运算符 逗号运算符的运算优先级是最低的 一般形式为 表达式1 表达式2 表达式N在计算逗号表达式的值时 按从左至右的顺序依次分别计算各个表达式的值 而整个逗号表达式的值和类型是由最右边的表达式决定 如 有语句inta 3 b 4 则表达式a b a b的值为9 再如 设有inti 则表达式i 1 i 2 i 1 i 4的值为6 该运算符的功能是将某一数据从一种数据类型向另一种数据类型进行转换 其使用的一般形式 数据类型标识符 表达式 数据类型标识符 表达式如 inti 2 floata b a float i 将变量i的类型强制转换为浮点型 并将其值赋给变量ab float i 将变量i的类型强制转换为浮点型 并将其值赋给变量b 强制类型转换运算符 每个运算符都有自己优先级和结合性 当一个表达式中包含多个运算符时 要确定运算的结果 必须首先确定运算的先后顺序 即运算符的优先级和结合性 C 中运算符的优先级和结合性如表2 11所示 运算符的优先级与结合性 C 中运算符的优先级和结合性 输出流对象输出数据的语句格式为 cout 数据1 数据2 数据n 说明 1 cout是系统预定义的一个标准输出设备 一般代表显示器 是输出操作符 用于向cout输出流中插入数据 2 cout的作用是向标准输出设备上输出数据 被输出的数据可以是常量 已有值的变量或是一个表达式 数据的输出cout 3 可以在cout输出流中插入C 中的转义字符 如 cout Inputthevalueofa n cout a 表示输出完字符串Inputthevalueofa 后 在下一行输出变量a的值 4 可以将多个被输出的数据写在一个cout中 各输出项间用 操作符隔开即可 但要注意cout首先按从右向左的顺序计算出各输出项的值 然后再输出各项的值 如 cout valueofa a valueofb b Theresultis sqrt a a b b 再如 设变量i的值为10 则cout i i i 的输出结果为 12 11 10 5 一个cout语句也可拆成若干行书写 但注意语句结束符 只能写在最后一行上 如 对于上面的语句也可写成如下形式 cout valueofa 注意行末无分号 a valueofb b Theresultis sqrt a a b b 在此处书写分号 6 在cout中 实现输出数据换行功能的方法 既可使用转义字符 n 也可使用表示行结束的流操作endl 如 cout ThisisfirstLine n Thisissecondline 上面语句可等价地写为 cout ThisisfirstLine endl Thisissecondline 7 在cout中还可以使用流控制符控制数据的输出格式 I O流的常用控制符 设置域宽 所谓域宽就是被输出数据所占的输出宽度 单位是字符数 设置域宽可以使用流控制符setw n 和cout的方法cout width n 其中n为正整数 表示域宽 但是 cout width n 和setw n 二者都只对下一个被输出的数据有作用 若一个输出语句内有多个被输出的数据 而要保持一定格式域宽时 需要在每一输出数据前加上cout width n 或setw n 此外 当参数n的值比实际被输出数据的宽度大时 则在给定的域宽内 数据靠右输出 不足部分自动填充空格符 若被输出数据的实际宽度比n值大时 则数据所占的实际位数输出数据 设置域宽的参数n不再起作用 例cout流控制符setw的使用 includeusingnamespacestd intmain inta 21 b 999 cout setw 3 a setw 4 a setw 5 a endl cout width 3 cout b cout width 4 cout b return0 其输出结果是 21 21 21 程序中第一个cout的输出结果999 999 设置域内填充字符 在默认情况下 当被输出的数据未占满域宽时 会自动在域内靠左边填充相应个数的空格符 但我们也可以设置在域内填充其他的字符 方法是利用cout的fill方法cout fill c 或setfill c cout fill c 上和setfill c 可以对所有被输出的数据起作用 例在例2 2的基础上增加域内填充字符的功能 includeusingnamespacestd intmain inta 21 b 999 cout fill 设置域内填充字符为 字符cout setw 3 a setw 4 a setw 5 a endl cout setw 3 b setw 4 b setw 5 b endl cout fill 将域内填充字符改为 字符cout setw 3 a b setw 4 a b setw 5 a b endl return0 其输出结果是 21 21 21 程序中第一个cout的输出结果 未占满域宽的部分填充 字符 999 999 999 程序中第二个cout的输出结果10201020 1020 程序中第三个cout的输出结果 未占满域宽的部分填充 字符 设置输出数据的进位计数制 在默认情况下 被输出的数据按十进制格式输出 但可以使用流控制符hex和oct控制数据的输出格式为十六进制和八进制 一旦设置成某种进位计数制后 数据的输出就以该种数制为主 可利用流控制符dec将数制重新成十进制 inta 21 b 999 cout setw 3 setfill hex a endl cout setw 3 b endl cout setw 3 setfill oct b endl cout setw 3 b setw 4 b setw 5 b endl cout setw 3 setfill dec a endl cout setw 3 b setw 4 b setw 5 b endl 程序的输出结果为 15 以十六进制格式输出数据3e7 25 以八进制格式输出数据1747 21 以十进制格式输出数据999 设置浮点数的输出格式 对于浮点数 既可以用小数格式输出 也可以用指数格式输出 这可以分别通过setiosflags ios fixed 和setiosflags ios scientific 来控制 例已知圆的半径r 6 779 计算并输出圆的周长和面积 要求分别用指数和小数两种格式输出 includeusingnamespacestd constdoublepi 3 14159 intmain doubler 6 779 c s c 2 0 pi r 计算圆的周长s pi r r 计算圆的面积 以指数格式输出圆的面积和周长cout 圆周长 指数 为 setiosflags ios scientific c endl cout 圆的面积 指数 为 s endl 以小数输出圆的面积和周长cout 圆的周长 小数 为 setiosflags ios fixed c endl cout 圆的面积 小数 为 setiosflags ios fixed s endl 程序的输出结果如下 圆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电工技师设备维护总结范文
- 护理信息化管理培训心得体会
- 北辰少儿口才培训课件
- 耐火配混料工作业指导书
- 粉尘安全知识培训目的课件
- 疟疾培训课件
- 米山健康知识培训课件
- 2025名师工作室数字化教学计划
- 情报关联深度挖掘-洞察及研究
- 行政公文写作规范模板正式文件格式及处理流程
- 物业客服管理知识培训课件
- 2025海南省老干部服务管理中心招聘事业编制人员6人(第1号)考试备考题库及答案解析
- 居民体重管理核心知识课件
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 2025至2030中国公安行业发展趋势分析与未来投资战略咨询研究报告
- 口腔医疗风险管理实施方案
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 【MOOC】理解马克思-南京大学 中国大学慕课MOOC答案
- 夹芯彩钢复合板吊顶施工方案
- 高二物理培优计划
- 初中英语阅读理解100篇
评论
0/150
提交评论