第四次博客——函数
PTA总分展示
本章学习总结
定义一个函数我们需要确定三部分内容:
(1). 函数的返回值类型
(2). 函数的名称
(3). 函数的参数
函数类型 函数名(形式参数表)//:函数首部
{
函数实现过程//:函数体
}
- 函数声明的作用如下:
(1). 使编译器正确处理返回值
(2). 使编译器可以检查输入参数的数目
(3). 使编译器检查输入参数的类型,如果类型不正确,则对类型进行隐式转换
函数类型 函数名(参数表);
- 函数调用的作用如下:
(1). 用实参向形参传递数据
(2). 为获得数据的参数和函数中为声明的变量分配临时存储空间
(3). 中断当前正在运行的上级调用函数,将程序流程转到被调用函数的入口处
函数名 (实际参数表)//:实际参数可以是常量、变量和表达式
全局、局部变量、静态局部变量
全局:具有文件作用域的变量
静态:具有静态存储期或内部链接属性
局部:具有函数或块作用域的变量
• 局部变量:函数或块作用域的变量
• 静态局部变量:函数或块作用域,静态存储期
• 全局变量:具有文件作用域的变量
c语言类型及注意点
整型变量
- int类型
取值范围(16位):-32768~32767(-2^15— 2^15-1)
转换说明:%d - short
取值范围(16位):-32768~32767(-2^15— 2^15-1)
转换说明:%d - long
取值范围(16位):取值范围(16位)-2147483648~2147483648(-2^31— 2^31-1)
转换说明:%ld
浮点数
- 单精度float
取值范围:10^-37 —10^37
转换说明:%f - 双精度double
取值范围:(2^63— 2^63-1)
转换说明:%f
字符型数据输入问题
1、字符型数据(单个数据的输入)
(1). scanf输入,遇到回车,空格,tab键会记录进去,使得一个字符的内容变为空格这类的字符
解决:
(1). getchar();处理一个字符。%c赋值抑制符,跳过一个字符,读入但不存储。
(2). 跳过多个空白字符在格式传中的 %c之前加上空格或者在%d之后加上空格
2. 字符数组与字符串
通常用一个字符数组来存储一个字符串。字符串和普通字符数组的区别在于字符串末尾有一个空字符'\0'. 空字符不计入字符串有效字符,也不计入总长度。
c运算符
- 算术运算符:+ - * / %
优先级:* / % 》 + - 结合:从左往右
注:%只对整型数据 int%int
注:int / int =int
char-(char)->char
char-(int)->int -(float/double)->double (可提高精度) - 位运算符: &(按位与)--------->有假则假
|(按位或)--------->有真则真
^(异或 )--------------->(0^1=1)
~(取反)--------------->0101——>1010 - 判定运算符: > < >= <= != !(非)
结果:逻辑值 真1 假0
1>2的结果为0 2>1的结果为1 - 自增自减运算符:++ --
i++ ++i 或 i-- --i (i的值必须是变量)
前自增、减: ++i --i (i)先自增/自减,(结果)再取(i)值
后自增、减: i++ i-- (结果)先取(i)值,(i)再自增/减
小学生口算表达式自动生成系统
函数功能及全局变量介绍
void OperateMenu();//游戏操作界面
void GradeOneMenu();//一年级
void GradeTwoMenu();//二年级
void GradeThreeMenu();//三年级
int GetOperands(int grade);//生成随机操作数
char GetOperator(int grade);//生成随机运算符
void PutExpression(int num1, int op, int num2);//输出表达式的函数
int GetAnswer(int num1, char op, int num2);//计算正确函数
void Compliment();//输出夸奖的话
void Encouragement();//输出鼓励的话
全局变量
int RightNumber = 0;//计算正确题目的个数
int WrongNumber = 0;//计算错误题目的个数
int QustionNum = 0;//储存题目数量
菜单相关函数
.运行结果截图,测试用例。
大作业中编程技巧总结
- 应该学会去注释一些代码,这样可以使代码更清楚,明白,也便于理解。
- 运用srand((unsigned)time(NULL)),产生随机数。
- 多注意一些细节,因为代码很长,不容易找出错误,因为有错,调试了很长时间,最后发现是自己是一些细节错误。