一、顺序结构
(一)问题的引入
案例:微信普通红包
问题分析
数学分析:设x为单个红包的金额,y为红包个数,则红包总金额z的计算公式为z=x*y
编程思路:在C程序中,使用变量来记录运算过程中的数据。注意:变量在使用之前必须先定义
算法设计
流程图
(源代码)
#include<stdio.h>
int main(void)
{
int num,money,total;
printf("输入红包金额:");
scanf("%d",&money);
printf("输入红包个数:");
scanf("%d",&num);
total=money*num;
printf("红包总金额:%d元\n",total);
return 0;
}
(运行结果截图)
程序开发流程:
(二)语句的分类
语句是程序的组成元素,程序实现的功能也是通过执行语句来实现的。一个C语言程序包含一个或多个函数,而一个函数又由若干条语句组成。C语言规定语句必须以分号结尾。
从功能上分,C语言有以下4类语句:数据声明语句、表达式语句、控制语句和特殊语句。
1.数据声明语句
数据声明语句是描述数据属性的语句,一般位于一个函数的最前面。
例如:int money;
int money=10; //变量初始化
2.表达式语句
表达式语句是进行数据运算或处理的语句。
例如:total=money*num; 或 printf("请输入红包个数:");
3. 控制语句
控制语句可以完成一定的控制功能,常用于规定语句执行的顺序。i
例如:return 0;f语句、while语句、do-while语句、continue语句、break语句、switch语句等。
4.特殊语句
特殊语句包括空语句和复合语句。
二、表达式语句
(一)表达式
表达式:由运算符连接运算对象组成的式子。
(1)单个常量、变量及函数。
例:10 num sin(x)
(2)算数表达式
例:num*money
(3)赋值表达式
例:num=money=10
·变量的值在运算过程中可能会发生变化
(二)算数运算符
双目运算符:两个操作数参加运算的运算符
自增自减运算符
符号:++、--
作用:使变量值自加1或减1
种类:前置++i,--i ;后置++i,--i
例如:int i=5,j,k;//i=5,j=随机数,k=随机数
j=i++;//i=6,j=5,k=随机数
k=++i;//i=7,j=5,k=7
(三)赋值语句
赋值语句:由赋值表达式加英文分号构成的句子。
例:total=money*num;
int money=10,num=10;
注:变量在定义时不能连续赋初值
复合赋值语句
三、数据与数据类型
(一)常量与变量
常量:在程序运行过程中其值保持固定不变
例:3 2.58 ‘A’
#define PI 3.14
变量:在程序运行过程中其值会发生变化
例:num=10;
num=num+5;
(二)整型变量与整型常量
例1:计算使用共享单车的费用
问题描述:小明每天骑共享单车上下班,单程骑车时间为20分钟,要求输入小明平均每月上班天数,计算小明一年使用共享单车的总费用。(共享单车个人用户收费标准为:1元/小时,不满1小时按1小时结算)
算法设计:
(源代码)
(运行结果截图)
(三)浮点型变量与浮点型常量
例2:孩子身高预测
问题描述:孩子的身高可以利用遗传因素即利用父母的身高进行预测。
女儿身高计算公式为:女儿成人时的身高=(父高*0.96+母高)/2
(注:此方法未考虑环境因素的影响)
算法设计:
(源代码)
(运行结果截图)
(四)字符型变量与字符型常量
字符变量类型
字符常量
ASCII表
转义字符
(五)变量类型的转换
自动类型转换
强制类型转换
例3:计算考生平均分
问题描述:已知某考生语文、数学、英语成绩分别为88,90,95,计算该考生考试的总成绩和平均分
算法设计:
(源代码)
(运行结果截图)
四、变量的存储
(一)变量与内存的关系
内存空间地址
(二)变量在内存中的表示形式
unsigned char型变量的取值范围
char型变量的取值范围
unsigned int型变量的取值范围
int型变量的取值范围
sizeof运算符的使用
五、指针变量
(一)指针变量定义
(二)指针变量赋值
(三)通过指针间接访问变量
(四)*的不同含义
例:微信红包指针程序代码
(源代码)
(运行结果截图)
六、顺序结构程序设计举例
(一)标准输入输出头文件#include<stdio.h>
(二)数学库头文件#include<math.h>
例1:计算三角形面积
算法设计:
(源代码)
(运行结果截图)
例2:计算银行贷款本息
算法设计:
(源代码)
(运行结果截图)
七、顺序结构常见错误
例1:编写程序实现两个整数交换
问题:变量未定义就使用
修改后:
(运行结果截图)
例2:编写程序计算a^b的值
问题1:未引入指定的头文件
问题2:变量未赋值就使用
修改后:
(运行结果截图)
例3:编写程序按格式打印字符串“OK”
问题:字符常量未加单引号
修改后:
(运行结果截图)
例4:生成一个1-20元之间的随机红包
问题:语句未加分号
修改后:
(运行结果截图)
该文章属于个人课后学习笔记,内容来源于知到智慧树共享课-C语言程序设计(上海电力大学)。