第2章 简单C语言程序设计
合集下载
C语言程序设计教案第2章4 -6

(2)表达式的名称和运算结果是由优先级最低的运算符决定的。
(3)关系或逻辑表达式的值只有两个:真(非零)和假(零)。
(4)分析复杂表达式时,应先找优先级别最高的运算符,同时,注意”()”的优先级别很高,它往往可以改变表达式的运算次序。通过分析复杂表达的运算逻辑,推导出短路原则。
(5)编写一个输出复杂表达式的值及每个参与变量的值的程序。预估程序结果,然后与实验结果对比,从而深入理解短路原则及表达式的运算规律。
【问题】ppt中的程序有哪些错误
【实践】基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现
授课阶段总结
本节内容以实践为主,以当前所学的知识点,学生可以组织起一个逻辑上相对完整的程序,所以本小节以程序设计思维的训练为重点内容。首先,引导学生设计一个可以进行人机交互的界面—编写一个计算器的菜单,通过选择进行计算,把第一章的计算语句copy到适当的位置(增量开发)。然后,运用本章的知识点,设计具有一定的容错能力和设计技巧(强制类型转换与归一化处理)的学生成绩分档程序。两个例子都用到了本章所介绍的if和switch嵌套句型。
2.4 应用实例(1学时)
教学内容
(1)计算器程序设计。
(2)强制类型转换。首先讲解数据类型之间的转换规则,然后讲解转换的方法及用途。
(3)学生成绩档案管理—成绩等级划分。
讲解思路
(1)本小节主讲设计思想,所以每一个例题都必须有流程图来表达设计思想,通过讲解流程图帮学生梳理思路。然后,把对编程实现时用到技巧及难点进行讲解。
(2)掌握switch多路选择语句,在解决问题时,能够正确选择switch和if语句。
(3)掌握选择语句的流程图的算法描述方法
重点:if选择结构和switch选择结构。
(3)关系或逻辑表达式的值只有两个:真(非零)和假(零)。
(4)分析复杂表达式时,应先找优先级别最高的运算符,同时,注意”()”的优先级别很高,它往往可以改变表达式的运算次序。通过分析复杂表达的运算逻辑,推导出短路原则。
(5)编写一个输出复杂表达式的值及每个参与变量的值的程序。预估程序结果,然后与实验结果对比,从而深入理解短路原则及表达式的运算规律。
【问题】ppt中的程序有哪些错误
【实践】基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现
授课阶段总结
本节内容以实践为主,以当前所学的知识点,学生可以组织起一个逻辑上相对完整的程序,所以本小节以程序设计思维的训练为重点内容。首先,引导学生设计一个可以进行人机交互的界面—编写一个计算器的菜单,通过选择进行计算,把第一章的计算语句copy到适当的位置(增量开发)。然后,运用本章的知识点,设计具有一定的容错能力和设计技巧(强制类型转换与归一化处理)的学生成绩分档程序。两个例子都用到了本章所介绍的if和switch嵌套句型。
2.4 应用实例(1学时)
教学内容
(1)计算器程序设计。
(2)强制类型转换。首先讲解数据类型之间的转换规则,然后讲解转换的方法及用途。
(3)学生成绩档案管理—成绩等级划分。
讲解思路
(1)本小节主讲设计思想,所以每一个例题都必须有流程图来表达设计思想,通过讲解流程图帮学生梳理思路。然后,把对编程实现时用到技巧及难点进行讲解。
(2)掌握switch多路选择语句,在解决问题时,能够正确选择switch和if语句。
(3)掌握选择语句的流程图的算法描述方法
重点:if选择结构和switch选择结构。
C语言程序设计(谭浩强版)第二章

奇妙的输出结果。并且,处理出错的方法
不应是中断程序的执行,而应是返回一个
表示错误或错误性质的值,以便在更高的
抽象层次上进行处理。
算法设计的原则
4.高效率与低存储量需求
通常,效率指的是算法执行时间; 存储量指的是算法执行过程中所需 的最大存储空间, 两者都与问题的规模有关。
算法设计的原则
算法的时间复杂度
第二章 程序的灵魂——算法
2.1 算法的概念 2.2 算法的简单举例
2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法
算法的概念
计算机应用: 提取数学模型—设计算法— 编程—测试—应用
程序设计=数据结构+算法
数据结构:对数据的描述 算法:对操作的描述 除此之外程序设计还包括:程序设计方法, 和程序设计语言
怎样表示一个算法
例4的伪代码表示法如下 开始 读入整数n 置sum的初值为0 置k的初值为1 执行下面的操作: 如果k为奇数,置item=1/k 如果k为偶数,置item=-1/k sum=sum+item 直到k>n 打印sum的值 结束
算法设计的原则
算法设计的原则
设计算法时,通常应考虑达到以下目标: 1.正确性 2.可读性 3.健壮性 4.高效率与低存储量需求
从算法中选取一种对于所研究的问题 来说是 基本操作 的原操作,以该基 本操作 在算法中重复执行的次数 作 为算法运行时间的衡量准则。
结构化程序设计方法
采用结构化算法写成的计算机程序是结构 化程序。要编写出结构化程序,经常采用 的方法是结构化程序设计方法。这种方法 的基本思路是: 把给定的问题按层次(纵方向)、分阶段 (横方向)分解为一系列易于编程解决的 小问题,然后对应着这些分解的小问题, 设计结构化的算法,最后采用语言将算法 描述出来。这样一种程序设计方法就是结 构化程序设计方法。
不应是中断程序的执行,而应是返回一个
表示错误或错误性质的值,以便在更高的
抽象层次上进行处理。
算法设计的原则
4.高效率与低存储量需求
通常,效率指的是算法执行时间; 存储量指的是算法执行过程中所需 的最大存储空间, 两者都与问题的规模有关。
算法设计的原则
算法的时间复杂度
第二章 程序的灵魂——算法
2.1 算法的概念 2.2 算法的简单举例
2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法
算法的概念
计算机应用: 提取数学模型—设计算法— 编程—测试—应用
程序设计=数据结构+算法
数据结构:对数据的描述 算法:对操作的描述 除此之外程序设计还包括:程序设计方法, 和程序设计语言
怎样表示一个算法
例4的伪代码表示法如下 开始 读入整数n 置sum的初值为0 置k的初值为1 执行下面的操作: 如果k为奇数,置item=1/k 如果k为偶数,置item=-1/k sum=sum+item 直到k>n 打印sum的值 结束
算法设计的原则
算法设计的原则
设计算法时,通常应考虑达到以下目标: 1.正确性 2.可读性 3.健壮性 4.高效率与低存储量需求
从算法中选取一种对于所研究的问题 来说是 基本操作 的原操作,以该基 本操作 在算法中重复执行的次数 作 为算法运行时间的衡量准则。
结构化程序设计方法
采用结构化算法写成的计算机程序是结构 化程序。要编写出结构化程序,经常采用 的方法是结构化程序设计方法。这种方法 的基本思路是: 把给定的问题按层次(纵方向)、分阶段 (横方向)分解为一系列易于编程解决的 小问题,然后对应着这些分解的小问题, 设计结构化的算法,最后采用语言将算法 描述出来。这样一种程序设计方法就是结 构化程序设计方法。
C语言程序设计(李圣良)章 (2)

}
第2单元 顺序和选择结构程序设计
图2-6 例2-6程序运行结果 注意,长整型的数据输出使用“%ld”或“%Ld”,在 Visual C++ 6.0系统中,“%d”、“%ld”控制结果一样,但 在Turbo C中则要严格区分。 (4) %mld:按照指定宽度输出长整型数据。
第2单元 顺序和选择结构程序设计
第2单元 顺序和选择结构程序设计
以上介绍了常用的几种格式符,归纳如表 2-1 所示。
第2单元 顺序和选择结构程序设计
2.1.2 输出语句printf函数 对于一个有意义的程序来说,应该有一个或多个输出,也
就是至少要有一个输出,将程序的结果进行输出。所谓输出, 是指从计算机向外部输出设备(显示器、打印机、磁盘等)输出 数据。一般默认的标准输出设备是显示器。
C语言本身并不提供专门的输入输出语句,C语言中的输入 输出操作是调用专门的输入输出函数来完成的。输入输出函数 的有关信息存放在文件“stdio.h”中,“stdio.h”是标准输 入输出库的头文件,其中包含了所有的标准输入输出函数的有 关信息。因此,在使用这些函数前,必须有“# include <stdio.h>”编译预处理命令,否则系统会提示出错信息 “error C2065:'printf':undeclared identifier”。
{ 语句 1; 语句 2; … 语句 n;
} 例如: { t=x;
x=y; y=t; }
第2单元 顺序和选择结构程序设计
4. 控制语句 控制语句是C语言程序中用来控制程序流程的语句。在C语 言中可具体划分为9种程序流程控制语句。 条件判断语句:if,switch。 循环语句:do…while,while,for。 转向语句:break,continue,goto,return。 以上9种控制语句具体的应用将在后续单元中进行详细讲 解。
第二章C语言基础-语句-编写简单的C程序

C 语 言 程 序 设 计
putchar函数
调用格式为: putchar(表达式); 功能:将指定表达式的值所对应的字符输出到标准输出设备上
参数 字符变量 字符常量 数值常量 转义序列 函数 putchar(c) putchar(‘#') putchar('5') putchar('\n') 效果 显示字符变量 c 的内容 显示字符# 显示字符# 显示数字 5 在光标位置插入回车
关键是如何分离个位、十位、百位数字? 关键是如何分离个位、十位、百位数字?
ቤተ መጻሕፍቲ ባይዱ
153 153 % 10 = 3 153 / 100 = 1 153 - 1*100 = 53 53 / 10 = 5
C 语 言 程 序 设 计
#include <stdio.h> main() { int x, b0, b1, b2, sum; x = 153; b2 = x / 100; /*计算百位数字 计算百位数字*/ 计算百位数字 b1 = (x - b2 * 100) / 10; /*计算十位数字 计算十位数字*/ 计算十位数字 b0 = x % 10; /*计算个位数字 计算个位数字*/ 计算个位数字 sum = b2 + b1 + b0; printf("b2=%d, b1=%d, b0=%d, sum=%d\n", b2, b1, b0, sum); }
C 语 言 程 序 设 计
任务三
#include <stdio.h> void main() { int n1; char n2; float n3; scanf("%d%c%f",&n1,&n2,&n3); printf("n1=%f,n2=%c,n3=%f\n",n1,n2); } (1)键盘如何输入? )键盘如何输入? 如何输入? (2)修改 )修改scanf(“%d%f%c”,&n1,&n3,&n2);如何输入? “ ” 如何输入
C语言程序设计教程第2章程序流程

画出
流程图
算法
确定
程序结构
变量类型
程序语句
(7)调试
调试
C语言程序设计
第二章 程序设计和程序结构
良好的程序编写风格会大大缩 短调试过程,附录4介绍了C语言程 序的一般书写风格,附录11介绍了 一些常见的错误。
C语言程序设计
第二章 程序设计和程序结构
2.1.2 算法
在实际的编程过程中要注意:
1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法
第二章 程序设计和程序结构
本章概述
2.3程序结构 2.1程序设计与算法 2.4流程图及程序例子 2.2流程图
C语言程序设计
第二章 程序设计和程序结构
本章概述
• 本章主要介绍了C语言的程序结构、 流程图的绘制和程序设计的过程。 • 学习目标: • 1、理解程序的开发、设计过程 • 2、掌握C语言程序结构
C语言程序设计
第二章 程序设计和程序结构
其中最后一行的“Press any key to
continue”是VC6.0自动添加在每个
程序运行结果后面的一句提示信息,它
表示当程序执行结束时,操作者可以按
任意键返回到编辑界面。在后面的程序 运行结果中,将不再给出这一信息。
C语言程序设计
第二章 程序设计和程序结构
scanf("%d",&num1);
printf("Input the 2nd integer number: "); scanf("%d",&num2); sum=num1+num2; printf("sum=%d\n",sum); }
C语言程序设计
流程图
算法
确定
程序结构
变量类型
程序语句
(7)调试
调试
C语言程序设计
第二章 程序设计和程序结构
良好的程序编写风格会大大缩 短调试过程,附录4介绍了C语言程 序的一般书写风格,附录11介绍了 一些常见的错误。
C语言程序设计
第二章 程序设计和程序结构
2.1.2 算法
在实际的编程过程中要注意:
1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法
第二章 程序设计和程序结构
本章概述
2.3程序结构 2.1程序设计与算法 2.4流程图及程序例子 2.2流程图
C语言程序设计
第二章 程序设计和程序结构
本章概述
• 本章主要介绍了C语言的程序结构、 流程图的绘制和程序设计的过程。 • 学习目标: • 1、理解程序的开发、设计过程 • 2、掌握C语言程序结构
C语言程序设计
第二章 程序设计和程序结构
其中最后一行的“Press any key to
continue”是VC6.0自动添加在每个
程序运行结果后面的一句提示信息,它
表示当程序执行结束时,操作者可以按
任意键返回到编辑界面。在后面的程序 运行结果中,将不再给出这一信息。
C语言程序设计
第二章 程序设计和程序结构
scanf("%d",&num1);
printf("Input the 2nd integer number: "); scanf("%d",&num2); sum=num1+num2; printf("sum=%d\n",sum); }
C语言程序设计
C语言程序设计 第2章 顺序结构与分支结构程序设计

main() { char op;float x,y;
scanf("%f%c%f",&x,&op,&y); switch (op) { case '+' : printf("=%f\n",x+y); break;
case '-' : printf("=%f\n",x-y); break; case '*' : printf("=%f\n",x*y); break; case '/' : if (y!=0.0)
200,0,0
空语句
空语句是只有分号 ;的语句。示什么操作也不做。 从语法上讲,空语句也是一条语句。 在程序设计中,若某处在语法上需要一条语句,而实际上不需要 执行任何操作时就可以使用它。 例如,在设计循环结构时,有时用到空语句。
int i,s=0; for(i=1;i<=10;s=s+i++);
main() { int a;
scanf("%d",&a); switch(a) { case 3+8:printf("a==11");break; case 90: printf("a==90");break; case 'a': printf("a==97");break; case a>100:printf("a>100");break; default:printf("default"); } }
printf("%c\n",c); }
第二章 C语言程序设计

有符号 (signed) 整型变量 无符号 (unsigned) 基本整型(int) 短整型(short int) 长整型(long int)
例:整型数据的溢出。 main( ) { int a, b; a=32767; b=a+1;
printf(“%d,%d”,a,b);
}
返回
整型变量的定义
[unsigned][short][long] int <变量名1>, <变量名2>,……<变量名n>;
表达式1,表达式2……表达式n
说明:
1、逗号运算符的结合性为从左到右
2、所有运算符中,逗号运算符的优先级最低
练习题
执行下列语句后,a和b的值 分别为
int a, b; a=1+(b=2+7%-4-’A’)
练习题
执行下列语句后,a和b的值 分别为 -59,-60
int a, b; a=1+(b=2+7%-4-’A’)
练习题
一个C语言的源程序中,
(A)必须有一个主函数
。
(B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
练习题
1、编程实现,输入一个数,输出其 绝对值。 2、编程实现,输入a,b,c三个数, 输出其中最大者。
题 1、
Void Main()
{
int a, result; /*定义变量*/ scanf(“please input a number:%d”, &a); if (a>=0) result=a; else result=-a;
3、类型转换
例:
void main( )
{ float x, y;
例:整型数据的溢出。 main( ) { int a, b; a=32767; b=a+1;
printf(“%d,%d”,a,b);
}
返回
整型变量的定义
[unsigned][short][long] int <变量名1>, <变量名2>,……<变量名n>;
表达式1,表达式2……表达式n
说明:
1、逗号运算符的结合性为从左到右
2、所有运算符中,逗号运算符的优先级最低
练习题
执行下列语句后,a和b的值 分别为
int a, b; a=1+(b=2+7%-4-’A’)
练习题
执行下列语句后,a和b的值 分别为 -59,-60
int a, b; a=1+(b=2+7%-4-’A’)
练习题
一个C语言的源程序中,
(A)必须有一个主函数
。
(B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
练习题
1、编程实现,输入一个数,输出其 绝对值。 2、编程实现,输入a,b,c三个数, 输出其中最大者。
题 1、
Void Main()
{
int a, result; /*定义变量*/ scanf(“please input a number:%d”, &a); if (a>=0) result=a; else result=-a;
3、类型转换
例:
void main( )
{ float x, y;
C语言程序设计实训教程第2章 基础实验

19
(2)编写程序求出任一输入字符的 ASCII码。 提示:从键盘输入一个字符赋给字符变量,以 整型格式输出该变量。 (3)编写程序,由键盘任意输入 3个 1位整数 (第一个整数不为 0),将它们按输入顺序组合为 一个 3位数输出,如输入 2,5,8,则输出为258。 提示:输入 a,b,c3个整数,组合整数为 d =a﹡100 +b﹡10 +c。
(3)写一个函数,用“冒泡法”对输入的 10 个数字由小到大顺序排列,并输出。 提示: ①排序的函数名为 Sort。 ②排序前后的输入输出都应在主函数中完成。 ③使用数组作为函数参数。 ④使用“冒泡法”排序。
67
(4)写一函数,使给定的一个二维数组(5 ×5)转置,即行列互换。 提示: ①使用 5 ×5的二维数组存放数据。 ②矩阵转置的函数名为 Turn。 ③转置前后的输入输出都应在主函数中完成。 ④使用数组作为函数参数。
20
2.3
数据的输入和输出
1)实验目的 ①熟悉顺序结构的程序设计方法。 ②熟练使用 C 的赋值语句和各种表达式。 ③熟练掌握各种数据的输入、输出方法,能正 确使用各种格式转换符。
21
2)实验内容 程序验证性实验
22
23
24
25
程序填空性实验 程序功能:可以计算两个整数的商和余数。
26
程序设计性实验 (1)编写程序由键盘输入任意一个数字字符 (0 ~ 9),将其转换为数字输出。 提示:将该字符和“0”字符相减(字符的 ASCII码值相减)即得到数字。 (2)输入三角形三边长 a,b,c,求三角形 周长 l和面积 s。用 scanf()函数输入数据,printf ()函数输出计算结果,输出时要求有文字说明。
2)实验内容 程序验证性实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define
<立即数>
PI 3.1415926
编译预处理指令#define将PI定义成一个要被3.1415926取代 的符号,此时PI不是一个变量,而是3.1415926的别名。
注意:#difine语句不以分号结尾,可以位 于源代码的任何位置,它定义的常量只在后面 在编译开始之前,只要在程序的表达式中引用 PI,预处理 的源代码中有效。
不要引用未被初始化的变量,否
则结果会不可控制。
也不要将超出变量取值范围的值
赋给变量。
变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _
以外的任何特殊字符,如: %、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表 符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留 字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 a 与变量 A 是两个不同的变量
例2-1中程序的运行结果幵不令人满意,因为华氏温度
100,对应的摄氏温度应该为37.7777…,而不应该是37。
需要使用浮点型变量来存储带小数点的数,我们需要将 celsius, fahr声明为双精度浮点型
#include <stdio.h> int main( ) { double celsius, fahr; /*声明两个双精度浮点型变量*/ fahr=100.0; /*赋值运算*/ celsius=5*(fahr-32)/9; /*计算摄氏温度,并存入变量celsius*/ printf("fahr=%f, celsius=%f\n", fahr, celsius); }
第2章 简单C程序设计
第二章 简单C程序设计
C语言的数据类型、运算符 C语言的常量和变量 C语言的表达式 常用数学函数 格式化输入、输出函数
程序2-1 求华氏温度100F对应的摄氏温度
#include <stdio.h> int main( ) { int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%d\n“, fahr, celsius); return 0; 执行程序的输出结果为: }
浮点变量用来存储浮点数,浮点数包含的值带小数点, 也可以表示分数和整数。 浮点数在计算机中的表示,基于指数表示法,将分为 指数和尾数来存储。浮点变量根据数据表示范围和精 确度不同,有一下几种类型
float double 4个字节 (+/-)3.4E38 ,6位有效数字
8个字节
(+/-)1.7E308 ,15位有效数字
1GB=1024MB
int celsius, fahr; celsius = 5 * (fahr - 32) / 9;
变量是计算机里一块特定的内存,它由一个或多 个连续的字节组成。
每个变量都有一个名称,表示内存中的这个位置, 以便通过变量名读取该位置的数据或存储一个新数 值。 变量的值不是固定的,随时都可以改变,且次数 不限。
unsigned __int64
unsigned long long int
0至232-1, 0 至 + 4294967295
0至264-1,0至18445744073709551615
声明变量格式:<变量类型 > <变量名字> int celsius, fahr; 定义时初始化变量: int celsius, fahr=100; 定义后初始化变量: fahr=100; 。 给变量赋值,除了给一个直接的值以外,还可以通 过计算获得: celsius=5*(fahr-32)/9;
输出结果:
5500
输出结果的左边显示了 6 个空格
数据以十迚制整数格式输出,宽度占m列,数据 不足m列右补空格,超过m列按实际位数输出。 int salary = 5500; printf " ("%-10d %10d" , salary);
输出结果:5500
输出结果的右边显示了 6 个空格
printf(“fahr=%d , celsius=%d\n", fahr, celsius);
(+/-)1.7E308 ,15位有效数字
Long double
8个字节
课外作业:查阅资料,了解浮点数是如何存储的
内存
float
213.5671435568967
double
64位
16 位有效数字
flaot f_level = 213.5671435568967; 取值范围:10-308 至 10308 double d_level = 213.5671435568967;
int visitorCount = 150; printf (" %d" , visitorCount);
输出结果:150
数据以十迚制整数格式输出,宽度占m列,数据 不足m列左补空格,超过m列按实际位数输出。
int salary = 5500; printf ( %10d "" %10d "" , salary);
当处理不能为负的数据时,可以使用无符号类型, 所占内存与有符号型相同,但对正数的表示范围比 有符号型大一倍
unsigned short int
2个字节
5535
0至232-1, 0 至 + 4294967295
unsigned int unsigned long int
赋值运算符 = 赋值表达式:用 = 将一个变量和一个表达式连接起来的 式子
变量 = 表达式 = 的左边必须是一个变量, 例如: 称为“左值” fahr = 100; celsius = 5 * (fahr - 32) / 9; 计算赋值表达式的值:赋值表达式的值由右侧表达式的 值决定 改变变量的值:将赋值表达式的值存入左侧的变量
fahr=100, celsius=37
计算机执行程序时,数据都存储在内存中。 内存可以理解为一排井然有序的小开关,每个开关有 两个状态:开表示1,断表示0,所以每个开关表示一 个二迚制数,0或1,称为一个位(bit). 为管理方便,8个位为一组,称为一个字节(byte) 然后为所有字节从0开始编号,这个编号称为字节的 地址。 每台计算机都安装了一定数量的内存,内存通常以 1B=8bit MB为单位。 1MB=1024B
整数变量还分为几种不同的类型,以存储不同范围的整数
short int int long int
2个字节
4个字节 4个字节
-2-15至215-1 , -32768 至 +32767 -2-31至231-1,-2147438648 至 + 2147438647
-2-31至231-1,-2147438648至+2147438647
输出结果: 168.23
宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。
精度(精确到小数点后多少位)
常量是在程序中保持不变的量,分为:
立即数 符号常量(宏常量) const 常量 立即数 整型常量:如32、100 实型常量: 如1.23 123.567e5 字符常量: „a‟ 、 ‘2‟ 、 ‘\n‟ 字符串常量:“c program”
-2-63 至 263-1
__int64 long long int
8个字节
1、数据类型所占字节数,取决于所使用的编译器
2、short int 可以简写为short, long int可以简写为long 3、不同编译器对64位的支持不同,在VC中只支持__int64, gcc/g++支持 long long, windows平台的gcc/g++也支持__int64
数据类型 数据 数值 2.175 123 整型 非整型 9/12/2003 非数值 Africa char
int The quick brown fox 整型 非整型 float Jackie Chan short int double 数值 非数值 long int 999 9002.12 数据属于不同类别TRUE
内存
37 100
程序
存储 fahr
计算5 * (fahr - 32) / 9
编写程序时,通常使用变量 来存储数据,方便后面使用 这个数据或者修改这个数据 的值。
将值存储为celsius 输出fahr和celsius
内存变量用来存储数据,系统需要知道每个变量要 存储什么类型的数据,然后为每个变量分配一块足 够大的内存空间,用来该类型的数据
程序
指令
标识符 关键字 常量 运算符 分隔符 等
为使程序易于阅读和便于修改,可以给程序中经常使
用的常量定义一个有一定含义的名字。
常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值 防止意外的修改,增强程序的健壮性
格式:#define <符号常量名>
转换字符串 说明
%d %ld %c
将参数按整数形式转换输出,对应参数应是int 类型 将参数按长整数形式转换输出,对应参数是long型 输出一个字符,对应参数应该是一个字符
%s
%f
输出一个字符串,对应参数应该是一个字符串
将参数按带小数点数形式输出,对应参数应是 double 类型,默认情况下精确到 6 位小数
去VC下试试!
2.2.2 浮点数据的输出
float circumference = 78.53; 9.4786789; printf ("%f" , circumference);
<立即数>
PI 3.1415926
编译预处理指令#define将PI定义成一个要被3.1415926取代 的符号,此时PI不是一个变量,而是3.1415926的别名。
注意:#difine语句不以分号结尾,可以位 于源代码的任何位置,它定义的常量只在后面 在编译开始之前,只要在程序的表达式中引用 PI,预处理 的源代码中有效。
不要引用未被初始化的变量,否
则结果会不可控制。
也不要将超出变量取值范围的值
赋给变量。
变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _
以外的任何特殊字符,如: %、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表 符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留 字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 a 与变量 A 是两个不同的变量
例2-1中程序的运行结果幵不令人满意,因为华氏温度
100,对应的摄氏温度应该为37.7777…,而不应该是37。
需要使用浮点型变量来存储带小数点的数,我们需要将 celsius, fahr声明为双精度浮点型
#include <stdio.h> int main( ) { double celsius, fahr; /*声明两个双精度浮点型变量*/ fahr=100.0; /*赋值运算*/ celsius=5*(fahr-32)/9; /*计算摄氏温度,并存入变量celsius*/ printf("fahr=%f, celsius=%f\n", fahr, celsius); }
第2章 简单C程序设计
第二章 简单C程序设计
C语言的数据类型、运算符 C语言的常量和变量 C语言的表达式 常用数学函数 格式化输入、输出函数
程序2-1 求华氏温度100F对应的摄氏温度
#include <stdio.h> int main( ) { int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%d\n“, fahr, celsius); return 0; 执行程序的输出结果为: }
浮点变量用来存储浮点数,浮点数包含的值带小数点, 也可以表示分数和整数。 浮点数在计算机中的表示,基于指数表示法,将分为 指数和尾数来存储。浮点变量根据数据表示范围和精 确度不同,有一下几种类型
float double 4个字节 (+/-)3.4E38 ,6位有效数字
8个字节
(+/-)1.7E308 ,15位有效数字
1GB=1024MB
int celsius, fahr; celsius = 5 * (fahr - 32) / 9;
变量是计算机里一块特定的内存,它由一个或多 个连续的字节组成。
每个变量都有一个名称,表示内存中的这个位置, 以便通过变量名读取该位置的数据或存储一个新数 值。 变量的值不是固定的,随时都可以改变,且次数 不限。
unsigned __int64
unsigned long long int
0至232-1, 0 至 + 4294967295
0至264-1,0至18445744073709551615
声明变量格式:<变量类型 > <变量名字> int celsius, fahr; 定义时初始化变量: int celsius, fahr=100; 定义后初始化变量: fahr=100; 。 给变量赋值,除了给一个直接的值以外,还可以通 过计算获得: celsius=5*(fahr-32)/9;
输出结果:
5500
输出结果的左边显示了 6 个空格
数据以十迚制整数格式输出,宽度占m列,数据 不足m列右补空格,超过m列按实际位数输出。 int salary = 5500; printf " ("%-10d %10d" , salary);
输出结果:5500
输出结果的右边显示了 6 个空格
printf(“fahr=%d , celsius=%d\n", fahr, celsius);
(+/-)1.7E308 ,15位有效数字
Long double
8个字节
课外作业:查阅资料,了解浮点数是如何存储的
内存
float
213.5671435568967
double
64位
16 位有效数字
flaot f_level = 213.5671435568967; 取值范围:10-308 至 10308 double d_level = 213.5671435568967;
int visitorCount = 150; printf (" %d" , visitorCount);
输出结果:150
数据以十迚制整数格式输出,宽度占m列,数据 不足m列左补空格,超过m列按实际位数输出。
int salary = 5500; printf ( %10d "" %10d "" , salary);
当处理不能为负的数据时,可以使用无符号类型, 所占内存与有符号型相同,但对正数的表示范围比 有符号型大一倍
unsigned short int
2个字节
5535
0至232-1, 0 至 + 4294967295
unsigned int unsigned long int
赋值运算符 = 赋值表达式:用 = 将一个变量和一个表达式连接起来的 式子
变量 = 表达式 = 的左边必须是一个变量, 例如: 称为“左值” fahr = 100; celsius = 5 * (fahr - 32) / 9; 计算赋值表达式的值:赋值表达式的值由右侧表达式的 值决定 改变变量的值:将赋值表达式的值存入左侧的变量
fahr=100, celsius=37
计算机执行程序时,数据都存储在内存中。 内存可以理解为一排井然有序的小开关,每个开关有 两个状态:开表示1,断表示0,所以每个开关表示一 个二迚制数,0或1,称为一个位(bit). 为管理方便,8个位为一组,称为一个字节(byte) 然后为所有字节从0开始编号,这个编号称为字节的 地址。 每台计算机都安装了一定数量的内存,内存通常以 1B=8bit MB为单位。 1MB=1024B
整数变量还分为几种不同的类型,以存储不同范围的整数
short int int long int
2个字节
4个字节 4个字节
-2-15至215-1 , -32768 至 +32767 -2-31至231-1,-2147438648 至 + 2147438647
-2-31至231-1,-2147438648至+2147438647
输出结果: 168.23
宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。
精度(精确到小数点后多少位)
常量是在程序中保持不变的量,分为:
立即数 符号常量(宏常量) const 常量 立即数 整型常量:如32、100 实型常量: 如1.23 123.567e5 字符常量: „a‟ 、 ‘2‟ 、 ‘\n‟ 字符串常量:“c program”
-2-63 至 263-1
__int64 long long int
8个字节
1、数据类型所占字节数,取决于所使用的编译器
2、short int 可以简写为short, long int可以简写为long 3、不同编译器对64位的支持不同,在VC中只支持__int64, gcc/g++支持 long long, windows平台的gcc/g++也支持__int64
数据类型 数据 数值 2.175 123 整型 非整型 9/12/2003 非数值 Africa char
int The quick brown fox 整型 非整型 float Jackie Chan short int double 数值 非数值 long int 999 9002.12 数据属于不同类别TRUE
内存
37 100
程序
存储 fahr
计算5 * (fahr - 32) / 9
编写程序时,通常使用变量 来存储数据,方便后面使用 这个数据或者修改这个数据 的值。
将值存储为celsius 输出fahr和celsius
内存变量用来存储数据,系统需要知道每个变量要 存储什么类型的数据,然后为每个变量分配一块足 够大的内存空间,用来该类型的数据
程序
指令
标识符 关键字 常量 运算符 分隔符 等
为使程序易于阅读和便于修改,可以给程序中经常使
用的常量定义一个有一定含义的名字。
常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值 防止意外的修改,增强程序的健壮性
格式:#define <符号常量名>
转换字符串 说明
%d %ld %c
将参数按整数形式转换输出,对应参数应是int 类型 将参数按长整数形式转换输出,对应参数是long型 输出一个字符,对应参数应该是一个字符
%s
%f
输出一个字符串,对应参数应该是一个字符串
将参数按带小数点数形式输出,对应参数应是 double 类型,默认情况下精确到 6 位小数
去VC下试试!
2.2.2 浮点数据的输出
float circumference = 78.53; 9.4786789; printf ("%f" , circumference);