内容正文:
项目二 顺序结构程序设计
1
C语言程序设计基础
知识目标
掌握C语言基本字符、标识符、关键字
掌握C语言数据类型
掌握C语言常量、变量及其类型
掌握C语言运算符及表达式
掌握C语言顺序结构程序设计
掌握C语言的格式化输入和输出函数
技能目标
学会基本数据类型的表示方法
学会变量和常量的定义和初始化
学会运算符的运算规则及表达式
学会其它语句设计顺序程序设计
学会使用输入输出函数
思政目标
培养学生良好的程序设计职业道德
严肃严谨认真和实事求是的科学态度
2
任务5
——顺序程序结构设计
3
(1)printf函数的调用格式: printf(格式控制字符串,输出表列)
如:printf(“%d,%f,%c”,a,b,c);
(2)printf函数的功能
将输出表列中的各个表达式的值按格式控制字符串中对应的格式输出到标准输入/输出设备上。
(3)printf函数的返回值
该函数的返回值为输出字符的个数。
5.1格式化输出函数
顺序结构程序设计——基础篇
4
顺序结构程序设计——基础篇
格式转换说明符 功能描述
%d 输出一个十进制整数
%f 输出一个单精度实数
%lf 输出一个双精度实数
%e或%E 按指数格式输出一个实数
%c 输出一个字符
%s 输出一个字符串
%o 输出一个八进制整数
%x 输出一个十六进制整数
5
1)格式控制字符串是用双撇号括起来的字符串,它包括格式说明和普通字符两部分。
如printf(“a=%d
”,a),其中格式控制字符串为“a=%d
”,“%d”为格式说明字符,其他为普通字符。
2)输出表列由输出项组成,两个输出项之间用逗号分隔,输出项可以是常个数少于格式说明的个数时,输出结果将是不确定的;当输出项的个数多于格式说明的个数时,多出的输出项将不被输出。
3)普通字符按原样输出。
4)格式说明由%开头,后跟格式字符及修饰符。格式说明与输出表列输出项的个数是一致的,即一个输出项对应一个格式说明,格式说明的作用是使对应的输出项按指定的格式输出。
顺序结构程序设计——基础篇
6
(1)scanf函数的调用格式:scanf(格式控制字符串,地址表列)
(2)scanf函数的功能
通过标准输入/输出设备,按格式控制字符串中对应的格式为地址表列中的变量输入数据,存入变量的地址单元中。
(3)该函数的返回值为正确输入数据的个数。
5.2格式化输入函数
顺序结构程序设计——基础篇
7
顺序结构程序设计——基础篇
格式转换说明符 功能描述
%d 输入一个十进制整数
%f 输入一个单精度实数
%lf 输入一个双精度实数
%c 输入一个字符
%s 输入一个字符串
%o 输入一个八进制整数
%x 输入一个十六进制整数
%* 表示本输入项只是读入,不赋给相应变量
8
1)格式控制字符串是用双撇号括起来的字符串,它包括格式说明和普通字符两部分。
2)地址表列由输入项组成,两个输入项之间用逗号分隔,输入项一般由取地址运算符&和变量名组成,即&变量名。
如:scanf(“%d%d”,&x,&y);不能写成scanf(“%d%d”,x,y);
3)格式说明由%开头,后跟格式字符及修饰符,格式说明与地址表列中变量的个数是一致的,即一个变量对应一个格式说明,格式说明的作用是使对应的变量按指定的格式输入。
顺序结构程序设计——基础篇
9
(1)putchar函数的调用格式:putchar(c);
(2)putchar函数的功能:向标准输出设备上输出一个字符。
5.3字符输出函数
顺序结构程序设计——基础篇
10
(1)getchar函数的调用格式:ch=getchar();
(2)getchar函数的功能:从标准输入设备上读入一个字符。
5.4字符输入函数
顺序结构程序设计——基础篇
11
任务6
——变量与数据类型转换
进阶篇
12
(1)C语言中的变量有操作属性和存储属性两种属性。
操作属性:
由数据类型来决定,它规定了变量的存储空间的大小(即存储长度)、取值范围和所允许的操作。
存储属性:
由存储类别来决定,它决定了所定义的变量在哪里存放,即变量的存储机构是什么;何时为其分配存储空间,何时释放它的存储空间,即变量的生存周期;变量起作用的范围有多大,即变量的作用域。
顺序结构程序设计——进阶篇
13
(2)数据类型转换
1)自动类型转换
自动类型转换发生在不同数据类型的混合运算时,由编译系统自动完成。自动完成遵循以下规则。
若参与运算的类型不同,则先转换成统一类型,然后进行运算。
转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,会先把int转成long型后再进行运算。
所有浮点运算都是以双精度进行的,即使仅含float单精度运算的表达式,也要先转换成double型,再进行运算。
char型和short型参与运算时,必须先转换成int型。
顺序结构程序设计——进阶篇
14
在赋值运算中,赋值号两边的数据类型不同时,赋值号右边的类型将转换为左边的类型。如果右边的数据类型长度比左边长,将直接舍去一部分数据,导致降低精度。
char, short------->int------->unsigned------>long------>double
float
低 高
顺序结构程序设计——进阶篇
15
【例2-9】 10+’a’+a*g-c/e的值为多少?
【程序代码】
顺序结构程序设计——进阶篇
16
【运行结果】
顺序结构程序设计——进阶篇
17
1)强制类型转换
强制类型转换是通过类型转换运算来实现的。
其一般形式为:(类型说明符) (表达式)
其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。
顺序结构程序设计——进阶篇
18
【例2-10】 强制类型转换
【程序代码】
顺序结构程序设计——进阶篇
19
【运行结果】
顺序结构程序设计——进阶篇
20
$$