C语言I博客作业11

一、本周教学内容&目标

第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。

二、本周作业头

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 http://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095
我在这个课程的目标是 掌握各种类型函数的定义、调用和申(声)明,动态函数,静态函数的运用与区别,理解局部变量和全局变量的异同
这个作业在那个具体方面帮助我实现目标 函数调用,定义函数与声明函数的区别,局部变量和全局变量的区别及用法
参考文献 百度,c语言程序设计,CSDN

三、本周作业

1.PTA实验作业

1.1 题目名1

6-1 统计某类完全平方数。本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

int IsTheNumber ( const int N );

1.1.1数据处理

数据表达:定义了a,n等整形变量m通过赋值得到。
数据处理:运用了数组a[10]={0}; 定义num的长度为10,因为传入的整数的每位数可能是0~~9,而不是传入数的位数.
while (m > 0)语句遍历N的每一位上的数字,在相应的数组中自加 如果有一个数组元素等于2 说明至少有2个位上的数相同.
流程结构:

Begin
int n1,n2;
for ( i←n1; i<←n2; i++ );
if ( IsTheNumber(i) 
cnt++;
cnt+←;
else
return 0;
int n ←(int)sqrt(N*1.0);
    int m = n * n;
        if(m == N)
        int a[10]
        i = m % 10;
    a[i]++;
        else
        return 0;

1.1.2实验代码截图

C语言I博客作业11_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
666 676 cnt = 1 666为三个数字相等的数,可却不是某个数的平方数所以cnt = 1,这个N值为676=pow*(26,2).
0 10 cnt = 1 0到10之间只有10的平方数符合条件,说明个位数的平方数不可能有两个位数相等。
105 500 cnt = 6 符合题目要求,程序正确。

1.1.4 PTA提交列表及说明

编译错误:对于代码还是有不注意的时候把while打错,%,/搞混淆。
部分正确:sample 全是3位数,全是4位数,我是没理解题目意思把while语句中的条件写成了m<0,这样的话题目就没有意义没考虑4位数的情况,而且m不能等于0因为等于0包括负数,cnt = 0.

1.2 题目2

6-2 统计各位数字之和是5的数,本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和
函数接口定义:

int is( int number );
void count_sum( int a, int b );

1.2.1 数据处理

数据表达:定义sum,item整形函数
数据处理:运用while语句,if语句void count_sum( int a, int b )定义。
流程结构:

Begin
int sum,item;
while(number!←0)
item=number%10;
number=number/10;
sum=sum+item;
if(sum←←5)
    return 1;
    else
    return 0;
end;

1.2.2实验代码截图

C语言I博客作业11_第2张图片
C语言I博客作业11_第3张图片

1.2.3 造测试数据

输入数据 输出数据 说明
104 999 C语言I博客作业11_第4张图片 符合题目要求,程序正确
-104 999 C语言I博客作业11_第5张图片 负数也符合题目要求
-104 104 C语言I博客作业11_第6张图片 任何实数都符合程序

1.2.4 PTA提交列表及说明

C语言I博客作业11_第7张图片

编译错误:取余错误,item我没有取余

2.代码互评

同学代码截图:C语言I博客作业11_第8张图片

自己代码截图:C语言I博客作业11_第9张图片

我们都运用数组来定义num的长度为10,因为传入的整数的每位数可能是0~~9,而不是传入数的位数,同时用while语句来判断是否是某个数的平方数,且有位数相等。

同学代码截图:C语言I博客作业11_第10张图片

自己代码截图:C语言I博客作业11_第11张图片

我们都用while语句中遍历N的每一位上的数字,在相应的数组中自加 如果有一个数组元素等于2 说明至少有2个位上的数相同。

3.学习总结

3.1 学习进度条

周数/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第三周(10/08-10/12) 14小时 约150行 if-else函数 定义函数,for循环
第四周(10/14-10/18) 16小时 约250行 for循环 %lf,%f,%2f的区别
第五周(10/23-10/26) 20小时 约300行 定义函数的调用。while语句 定义函数的运用
第六周(10/30-11/01) 25小时 约400行 分支结构的熟悉与理解 分支结构的运用
第七周(11/05-11/07) 30小时 约480行 switch语句,多分支结构的熟悉与理解 多分支结构的运用
第八周(11/12-11/15) 25小时 约520行 whlie do-whlie语句熟悉与理解 while do-whlie的区别和用途
第九周(11/19-11/21) 25小时 约600行 break、continue的使用 , 熟悉使用循环的嵌套 使用循环的多次嵌套
第十周(11/26-11/28) 25小时 约620行 穷举法 手写代码,分析代码
第十一周(12/03-12/06) 24小时 约500行 局部变量和全局变量的区别及用法 函数调用和声明

3.2 累积代码行和博客字数

C语言I博客作业11_第12张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

C语言I博客作业11_第13张图片

3.3.2 学习体会
本周学习了函数及他的作用,怎样去确定函数还有定义函数的调用与声明,而两者的区别是函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。
函数的定义
函数的定义是一个完整的函数单元:
包含函数类型、函数名、形参及形参类型、函数体等
在程序中,函数的定义只能有一次
函数首部与花括号间不加分号
函数的声明
函数声明只是对编译系统的一个说明:
函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。
不包含函数体(或形参)
调用几次该函数就应在各个主调函数中做相应声明
函数声明是一个说明语句,必须以分号。还学习了局部函数与全局函数在函数中的使用及区别,还有动态与静态函数的存储及他们的存活期。

你可能感兴趣的:(C语言I博客作业11)