C博客作业03--函数

这个作业属于哪个班级 C语言--网络2011/2012
这个作业的地址 C博客作业03--函数
这个作业的目标 学习如何设计函数、C语言基本数据类型
姓名 王博

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

image-20201129123940254

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

1.1 函数定义、调用、声明

函数的定义:函数类型+函数名+输入值

例:int sum(int num1,int num2)

函数调用: 函数名+输入值sum=sum(a,b)定义时定义了多少个变量在调用时就必须输入多少个变量。

声明:当函数体在main函数前时不需要额外定义,当函数体在main函数后时需在main函数前定义函数。

例:

#include<stdio.h>
int sum(int sum1,int sum2)
{
...
}
int main()
{
...
}
#include<stdio.h>
int sum(int sum1,int sum2);
int main()
{
...
}
int sum(int sum1,int sum2)
{
...
}

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

全局变量:在所有函数外部定义的变量,它的作用域默认是整个程序。

局部变量:它的作用域仅限于函数内部, 离开该函数后就是无效的;main 函数中定义的变量也是局部变量,只能在 main 函数中使用;同时,main 函数中也不能使用其它函数中定义的变量。main 函数也是一个函数,与其它函数地位平等。

静态局部变量:用static声明的局部变量,在函数调用结束后不消失而保留原值,在下一次该函数调用时,该变量已有值。

1.3 C数据类型及注意点

1.3.1.整型变量

  • int类型
    取值范围(16位):-32768~32767(-2^15— 2^15-1)
    转换说明:%d
  • short int(或简写为short)
    取值范围(16位):-32768~32767(-2^15— 2^15-1)
    转换说明:%d
    -long int(或简写为long)
    取值范围(16位):取值范围(16位)-2147483648~2147483648(-2^31— 2^31-1)
    转换说明:%ld
  • long long int(简写为long long)
    取值范围(16位):-9223372036854775808~:9223372036854775807-(2^63— 2^63-1)
    换说明:%lld
  • unsigned+声明语句表示无符号类型(即非负数)
    转换说明:%u (十进制无符号整数 )l和u能一起用(%lu)

1.3.2.浮点数

  • 单精度float
    取值范围:10^-37 —10^37
    转换说明:%f
  • 双精度double
    取值范围:(2^63— 2^63-1)
    转换说明:%f
  • 指数计数法
    xen(或xEn)[中间没空格]
    eg:1.2e(E)10=1.2*10^10
    转换说明:%e(%E)

1.4 C运算符

1.4.1优先级1级

结合方向 左结合(自左至右)

( ) 圆括号

[ ] [1] 下标运算符

-> 指向结构体成员运算符

. 结构体成员运算符 [1] (请注意它是一个实心圆点)

1.4.2优先级2级

结合方向 右结合(自右至左)单目运算符

! 逻辑非运算符
按位取反运算符

++ 自增运算符

-- 自减运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址与运算符

sizeof 长度运算符

1.4.3优先级3级

结合方向 左结合 双目运算符

* 乘法运算符

/ 除法运算符

% 取余运算符

1.4.4优先级4级

结合方向 左结合 双目运算符

+ 加法运算符

- 减法运算符

1.4.5优先级5级

结合方向 左结合 双目运算符

<< 左移运算符

>> 右移运算符

1.4.6优先级6级

结合方向 左结合 双目运算符

<、<=、>、>= 关系运算符

1.4.7优先级7级

结合方向 左结合 双目运算符

== 等于运算符 (判断)

!= 不等于运算符(判断)

1.4.8优先级8级

结合方向 左结合 双目运算符

& 按位与运算符

1.4.9优先级9级

结合方向 左结合 双目运算符

^ 按位异或运算符

1.4.10优先级10级

结合方向 左结合 双目运算符

| 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。

1.4.11优先级11级

结合方向 左结合 双目运算符

&& 逻辑与运算符

1.4.12优先级12级

结合方向 左结合 双目运算符

|| 逻辑或运算符

1.4.13优先级13级

结合方向 右结合 三目运算符

? : 条件运算符

1.4.14优先级14级

结合方向 右结合 双目运算符

= 赋值运算符

+ = 加后赋值运算符 如s+=1表示s=s+1

- = 减后赋值运算符 如s-=1表示s=s-1

* = 乘后赋值运算符

/ = 除后赋值运算符

% = 取模后赋值运算符

< <= 左移后赋值运算符

>>=右移后赋值运算符

&= 按位与后赋值运算符

^=按位异或后赋值运算符

|= 按位或后赋值运算符

1.4.15优先级15级

结合方向 左结合

, 逗号运算符

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

2.1.模块流程图



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

void OperateMenu();//游戏操作界面
void GradeOneMenu();//一年级
int RandomNumber(int grade);//生成随机数
char RandomCharacters(int grade);//生成运算符
void AnswerJudgment(double answer, double RightKey);//判断答案对错并且回复
void GradeTwoMenu();//二年级
void GradeThreeMenu();//三年级

生成随机数:生成时先输入难度等级,从而生成一到三位整数

生成运算符:生成时先输入难度等级,由1-3分别是 “-”和“+”、“*”、“/”。

判断答案对错并且回复:根据判断对错随机输出相应的回复鼓励。

2.2.1.全局变量

未设定全局变量QWQ。

2.2.2 菜单相关函数

void OperateMenu();//游戏操作界面
void GradeOneMenu();//一年级
void GradeTwoMenu();//二年级
void GradeThreeMenu();//三年级





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


输入3;

输入

y

-3

输出

小朋友你做对了, 继续加油(太快了没截到图)

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

1.可以将函数的定义放在一个头文件中,有利于查找。
2.把主要函数与次要函数分离,避免一页代码太长导致编程困难。
3.在设计程序时对于有重复内容的问题,或者是关联性的问题,可根据(如本题中的年级)其相同点向旁发散,避免定义的变量过多。而写函数也可以简化重复性问题。
4.一定要注意变量和函数的命名,不然会导致代码看不懂(过一段时间后)。
5.对代码多进行注释,有利于他人理解,以及自己后续的工作。

代码提交

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

posted @ 2020-11-29 20:22  2011王博  阅读(177)  评论(1编辑  收藏  举报