c语言博客作业03--函数

| 这个作业属于哪个班级 |


| ---- | ---- | ---- |
| 这个作业的地址 |
| 这个作业的目标 | 学习如何设计函数、C语言基本数据类型 |
|姓名|张静雯|

0.展示PTA总分(0----2)

1.本章学习总结(4分)

整理这两周学习主要知识点,并能对每个知识点介绍简单案例或语法。不要截图ppt,自己文字书写。知识点包含:

1.1 函数定义、调用、声明

1.1.1函数定义

函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。

  • 库函数:由C语言系统直接提供定义,可以直接调用
  • 自定义函数:需要用户自己定义
    ==自定义函数的一般形式
函数类型 函数名 (形式参数表)/*函数首部*/
{
   函数实现过程           /*函数体*/
}

函数名:函数整体的称谓
函数类型:函数结果返回的类型一般与return语句中的表达式的类型一致。
形参表:函数计算所要用到的有关已知条件,格式:(类型1 形参1,类型2 形参2,...类型n 形参n)
函数的形参可以是多个或者没有
函数的首部不能加括号,他和函数体一起构成完整的函数定义

1.1.2函数的调用

函数调用的一般形式:

函数名(实际参数表)

对于实现计算功能的函数,函数调用常常出现在两种情况

  • 赋值语句
    a=valuea(i)
  • 输出函数的实参
    printf("%d",aluea( i))

注意:retunrn语句只能返回一个值
形参不会影响实参的值

1.1.3函数声明

函数类型 函数名(参数表)

函数调用前一定要定义和声明

1.2 全局、局部变量、静态局部变量

1.2.1全局变量

  • 定义:定义在函数外而不属于任何函数的变量。
  • 作用范围:从定义开始到程序所在的文件结束,他对作用范围内的所有函数起作用。
  • 优点:解决多个函数间的变量共用
    一般情况下把全局变量定义在函数的最前面,即第一个函数的前面

1.2.2局部变量

  • 定义:定义在函数内部的变量
  • 作用范围:局限于所在函数的内部
  • 优点:避免了各个函数之间的变量互相干扰
    全局变量可以解决函数多结果返回的问题,但全局变量更多的用于多函数间的全局变量表示。

1.2.3静态局部变量

定义格式:

static 类型名 变量表

特征:
1.变量定义时没有赋初值,系统将自动赋初值为零
2.赋初值只在第一次调用的时候起作用,以后调用都按前一次保留的值使用。

1.3 C数据类型及注意点

每个数据类型特点及其相关知识的扩展。如浮点误差、字符型数据输入问题等等

1.3.1整型与整型常量

整型常量的表示

进制 首数字 组成
十进制 不能是0 +,-,0~9
八进制 0 +,-,0~7
十六进制 0x或者0X +,-,09,af,A~f

1.3.2字符型与字符型常量

1.字符型
在内存中占用一个字节,用于储存它的ASCII码
==整型变量和字符型变量的定义和值都可以相互交换
2.字符型常量

  • ASCII字符集
  • 转义字符
    | 字符 | 含义 |
    | ---- | ---- |
    | \n | 换行 |
    |\t|横向跳格|
    |\|反斜杠|
    |"|双引号|
    |'|单引号|
    |\ddd|1~3位八进制整数所代表的字符|
    |\xhh|1~2位十六进制所代表的的字符|

1.3.3实型和实型常量

1.实型
实数类型又称浮点型,指存在小数部分的数

  • 单精度浮点型:float %f
  • 双精度浮点型:double %lf
    2.实型常量
    表示方法:
  • 浮点表示法:实数由正号负号和0~9和小数点组成,必须要有小数点,小数点后面必须至少有一个数字
  • 科学计数法:实数由正号负号和0~9和字母E组成,E是指数的标志,E之前要有数据,E之后的指数只能是整数
    使用浮点数的时候考虑是否产生浮点误差

1.3.4例题

1.3.4.1展示题目

1.3.4.1展示提交列表

分析错误原因

由于最低有效位的限制,浮点数的表示法存在精度丢失的问题,,可以在输入的时候扩大有效位,加0.0000001

正确案例

1.4 C运算符

1.5学习体会

通过分装函数可以减少代码的重复,在接下来的编程中我会尽可能的使用函数,加大熟练度

2.综合作业(6分):小学生口算表达式自动生成系统

口算题参考网站

一、基本功能要求:
1.至少完成一个年级的口算题自动出题系统,尽量完成3个年级的出题设计。
2.注意每个年级运算数要求,运算数和运算符要随机生成
3.用户每选择一个难度级别后必须输入题目数量,能统计用户的正确率。用户每算一题,若错误,给出正确答案。 用户中途退出,不继续做题,需要有个提示操作可中途退出。

二、注意

  1. 请先画流程图理清数据处理流程,再进入代码编写。理清系统需要设计的模块。
    2.流程图中,对应一个模块内容,务必设计函数封装,不要把代码都放main或某一个函数中。独立功能代码块、重复功能代码块、各种异常情况要单独封装函数处理,让程序的扩展性更强。
  2. 软件界面必须友好,多加文字提示,能让用户自己当前做什么,接下来怎么做,每步操作可以退到主菜单界面。
    4.注意异常数据处理,如除0错误、不合法数据、临界数据,系统保证运行时候不崩溃。

三、进阶功能:
1.每个年级设计二级菜单,选择不同题型出题。不想做题可以返回主菜单。
2.混合运算比如2+3*4运算,注意考虑运算符优先级问题
3.可以设置答题时间,用户超过答题时间,提示不能继续做题,重新选抽题。请查阅C的时间函数。
以下为博客作业需要完成内容:

2.1.模块流程图

2.2.函数功能及全局变量介绍

介绍你用到核心函数接口及全局变量。

2.2.1.全局变量

int value1;//存放第一个随机数
int value2;//存放第二个随机数
int a;
char op[4]{ '+','-','*','/' };//存放产生的符号
int correctAnswer = 0;//统计正确答案的个数
int yuorAnswerNum = 0;//存放已答题的个数
int answerNum = 1;//统计答题个数

2.2.2 菜单相关函数

2.2.2.1分装不同年级的菜单





函数功能:主要作用是进入不同的年级,输出不同年级的操作界面,产生对应的算式,判断正误,操作结束后输出正答率和提示

2.2.2.2.输出计算前的提示词的函数

函数功能:随机生成一种提示,对操作者进行鼓励
函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出不同的鼓励的话

2.2.2.3答案正确的提示词函数


函数功能:当操作者回答正确时,随机输出一种表扬的话
函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出一种表扬的话

2.2.2.4答案错误的提示词函数

函数功能:当操作者回答错误时,随机输出一种鼓励的话
函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出一种鼓励的话

2.2.2.5不同正答率输出函数

函数功能:根据不同的正答率输出不同的提示词
函数思路:将正确率传入函数,用if_else_if语句从大到小判断正确率所处的范围,输出对应的提示,如果正确率高,则进行表扬,如果正确率低,则进行鼓励

2.2.2.6游戏操作界面


函数功能:输出函数的菜单,使操作者能选择不同年级的题目
函数思路:输出菜单页面,操作者输入对应年级,用switch case语句进入不同的年级题目菜单,用while语句判断操作者的输入是否合理,若不合理,进入循环,输出提示,重新展示菜单页面

2.2.3 出题相关函数

2.2.2.1产生随机式子的函数



函数功能:根据不同年级产生不同的式子
函数思路:传入该年级数,用switch case 进入不同年级的分支,产生两个相应范围的随机数;再用一个switch case 语句,进入不同年级的分支,随机产生相应等级的符号。判断式子是否合理,处理不合理的式子,输出该式子。由于随机数1和随机数2和符号使用的是全局变量,所以该函数调用结束后,随机数1和随机数2和符号被改变。

2.2.2.2运算答案的函数

函数功能:算出结果
函数思路:传入产生的数和运算符,用switch case语句判断运算类型,算出答案。

2.3.运行结果截图,测试用例。

2.3.1测试数据1:

年级1,回答题数5


2.3.1测试数据2

二年级 答题数:4

2.3.2测试数据3

三年级 答题数:10

2.4.大作业中编程技巧总结

2.4.1如何解决除法结果为小数的问题

通过用除数加上余数的方法,使结果一定为整数
实现代码如图:

2.4.2清屏函数

system("cls");

2.4.3延时函数

Sleep (500) ; 

注意第一个字母是大写,windows C语言中单位是毫秒(ms)。
就是到这里停半秒,然后继续向下执行。

2.3.2exit(0)与exit(1)

exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序
代码提交
请博客作业页面内容+口算系统的全部代码复制到一个word文档中。(记住,要复制过去,不能截图),文档保存好请提交课堂派的作业中。我们会用课堂派对你写的代码进行查重,请务必要独立完成。

posted @ 2020-11-30 21:35  min小王  阅读(284)  评论(1编辑  收藏  举报