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

|这个作业属于哪个班级|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("******************************************\n");
		printf("1.一年级口算\n");
		printf("2.二年级口算\n");
		printf("3.三年级口算\n");
		printf("4.退出系统\n");
		printf("******************************************\n");
		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("\n谢谢您的参与!\n");
			Sleep(500);
			exit(0);
		default:
			printf("您输入不对,只能输入1,2,3,4,请重输!\n");
			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));
让随机数真正做到随机。

posted @ 2020-11-30 23:00  落叶满长安  阅读(207)  评论(1编辑  收藏  举报