这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C语言博客作业03--函数 |
这个作业的目标 | 学习如何设计函数、C语言基本数据类型 |
姓名 | 陈佳桐 |
0.展示PTA总分
1.本章学习总结(4分)
1.1 函数定义、调用、声明
函数定义:
函数类型 函数名(形式参数表) /*函数首部*/
{
对变量的定义
进行运算 /*函数实现过程(函数体)*/
返回运算结果
}
注意:
1.函数首部后面不加分号。
2.形参表的各个形参之间用逗号隔开。(形参1,形参2,......形参n)
3.函数的形参数量可以是一个,也可以是多个,或者没有形参。
函数调用:
函数名(实际参数表)
volume=cylinder( radius, height);
注意:
1.C语言的执行,首先从主函数main()开始,如果遇到函数调用,主函数暂停,先执行函数。
2.函数结束后通过return x 将结果返回到主函数调用处。
函数声明:
函数类型 函数名(形式参数表);
注意:
1.以分号结束。
2.函数先定义后调用,自定义函数放在主调函数后面,需要进行函数声明。
1.2 全局、局部变量、静态局部变量
全局变量:
定义在函数外,不属于任何函数的变量。
对作用范围内所有函数起作用。
常定义于第一个函数的前面
局部变量:
定义在函数内部的变量,避免函数间的干扰。
定义在复合语句的开头处,仅在复合语句中有限使用。
形参是局部变量,形参的改变不会影响到实参。
静态局部变量:
局部变量,保存着上次函数调用时候的值。
仅第一次调用时赋初值,未赋初值,系统自动赋0。
1.3 C数据类型及注意点
每个数据类型特点及其相关知识的扩展。如浮点误差、字符型数据输入问题等等
基本数据类型:整型,字符型,实型。
整型:不存在小数部分的数据类型。
无符号整型数据:不带符号的整数(零和正整数)
有符号整型数据:储存单元最高位为符号位。
1.4 C运算符
1.算数运算符:
单目运算符:一个操作数
双目运算符:两个操作数
单目 | 双目 |
---|---|
++ -- + - | + - * / % |
2.赋值运算符
把一个表达式的值赋给一个变量。
变量=表达式。
3.关系运算符
4.逻辑运算符
逻辑非 !
逻辑与 &&
逻辑或 ||
学习体会:
A.函数的知识对于之后更高难度的编程学习有着基础作用,必须认真落实。
B.通过定义和调用函数,可以简化问题,降低代码量。
C.函数是一个综合性问题,学习函数意味着步入更深层次。
2.综合作业(6分):小学生口算表达式自动生成系统
2.1.模块流程图
一年级模块流程图
2.2.函数功能及全局变量介绍
2.2.1.全局变量
变量名,作用。
int getnumber(int grade);//生成随机数
int getsymbol(int grade);//生成随机符号
int judgeproblem(int grade);//判断特殊情况
int sumnumber();//判断正确率
void OperateMenu();//游戏操作界面
void GradeOneMenu();//一年级
2.2.2 菜单相关函数
文字介绍函数功能、思路,截图函数代码。
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include"expression"
void OperateMenu()//游戏操作界面
{
char option;
int i;
int temp;
system("cls");//清屏
do
{
system("cls");
printf("******************************************
");
printf("1.一年级口算
");
printf("2.二年级口算
");
printf("3.三年级口算
");
printf("4.退出系统
");
printf("******************************************
");
printf("请输入您的选择:");
scanf(" %c", &option);
switch (option)
{
case '1':
system("cls");
GradeOneMenu();
//GradeOneMenu();
break;
case '2':
system("cls");
GradeTwoMenu();
break;
case '3':
system("cls");
GradeThreeMenu();
break;
case '4':
printf("
谢谢您的参与!
");
Sleep(500);
exit(0);
default:
printf("您输入不对,只能输入1,2,3,4,请重输!
");
Sleep(500);
}
} while (!(option >= '1' && option <= '4'));
}
2.2.2 出题相关函数
文字介绍函数功能、思路,截图函数代码。
生成随机数函数
{
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include"expression"
int getnumber(int grade)//生成随机数
{
int number;
switch (grade)
{
case 1:number = 1 + rand() % 99;break;
}
}
生成随机符号函数
int getsymbol(int grade)
{
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include"expression"
char op; // 存放随机数符号
int Judgenumber=0 ;
Judgenumber = rand() % 2; //奇数和偶数情况
switch (Judgenumber)
{
case 0: op = '+'; break;
case 1: op = '-'; break;
} //仅用于一年级
return op;
}
判断特殊情况的函数
int judgeproblem(int grade)
{
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include"expression
int Betnumber = 0;
if(op == '-' && number1 < number2) //一年级减法不涉及负数
{
number1 = Betnumber;
number1 = number2;
number2 = Betnumber;
}
while (op == '+' && number1 + number2 >= 100) //一年级加法不超过100
{
number1 = rand() % 99 + 1;
number2 = rand() % 99 + 1;
} //保证加法的数值
}
2.3.运行结果截图,测试用例。
2.4.大作业中编程技巧总结
srand((unsigned)time(NULL));
让随机数真正做到随机。