C语言博客05--指针
1.本章学习总结(2分)
1.1 思维导图
请以思维导图总结本周的学习内容。如下图所示:
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
描述本周学习感受,也可以在这里提出你不理解地方、对教师教学建议等等。
1.2.2 代码累计
在excel中画如下表格,保存好,复制到博客随笔。注意要累计所有代码量。
2.PTA总分(2分)
2.1截图PTA中函数题目集的排名得分
贴图展示。
2.2 我的总分:
填写本次题目集的总得分。
注意,请把PTA代码展示给批阅助教,并能完整回答助教问题,才能得满分。否则根据回答情况给分。
3.PTA实验作业(1分)
从PTA题目集中选1题你最满意的题目,题目选难度越大,分值越高。
3.1 PTA题目1
简要介绍题目
3.1.1 算法分析
以伪代码
方式描述算法思路。伪代码
注意文字+C语法方式描述,不要纯C代码或者C代码直接翻译,能做到看了伪代码就知道你的思路是如何。
3.1.2 代码截图
贴图展示代码,不要复制。
3.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述下调试程序碰到问题及解决办法
4.大作业(5分)
题目:实现小学四则运算。
在函数那章,我们已经实现小学四则运算这份作业,现在要求大家把之前设计函数升级改造,原来的函数大家都是用全局变量实现不同函数参数传递,这次作业要求改地址传递,减少全局变量的使用。
题目要求:
题目有3个难度级别,分别为:
- 第一级是1位数的一步加减乘除计算
- 第二级是2位数的2步加减运算
- 第三级是3位数的2步加减运算
改进内容:
- 1.构造字符数组存放算术表达式
不管哪个级别的算式,请都生成一个字符数组存放。不管用户选择哪个级别题目,都能在表达式生成函数中生成一个算术式子。具体函数接口
void CreateExp(char *exp,int level)
{
switch(level)
{
case 1:生成一位数一步加减式子,写入字符数组exp;
case 2:生成2位数2步加减式子,写入字符数组exp;
case 3:生成3位数2步加减式子,写入字符数组exp;
}
// 注意三位数随机数,应该也包含生成一位数,即用rand()%1000就可以。
}
- 2.表达式是否合法(选做)
对于不合法或者超出该级别小学生学习范围的表达式,视为不合法,需重造一个。不合法表达式体现有除数为0的表达式、1,2级别中出现不能整除的除法表达式或其他不合法情况
int IsExp(char *exp,int level)
{
}
- 3.表达式运算
根据字符表达式,能计算其结果。有能力同学深入研究表达式优先级。
int ComputeExp(char *exp)
{
}
这块代码可以参考这题做法:
#include <stdio.h>
int main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c = getchar();
if( c<='9'&&c>='0' )
m = 10*m + c - '0';//1
else
{
if( oldc == '+' )
sum += m;
else
sum -= m;
m = 0;//2
oldc = c;
}
} while(c!='=');
printf("sum=%d", sum);
return;
}
4.1.改造函数介绍
主要上述三个函数的改造说明
1.函数1
- 伪代码介绍函数思路
- 截图函数代码。
2.函数2
- 伪代码介绍函数思路
- 截图函数代码。
3.函数3
- 伪代码介绍函数思路
- 截图函数代码。
4.3 与原有函数代码比较
-
改造前函数1和改造后的函数1
文字说明2者不同及区别,优缺点。
-
改造前函数2和改造后的函数2
文字说明2者不同及区别,优缺点。
-
改造前函数3和改造后的函数3
文字说明2者不同及区别,优缺点。
-
等等
4.4 改进大作业总结
回顾两次作业编写过程,总结碰到问题及后续程序编写注意事项。
四则运算代码提交
请把写好的大作业代码,全部复制在一个word文档中。(记住,要复制过去,不能截图,截图则本次作业0
分),文档保存好请提交课堂派的作业中。我们会用课堂派对你写的代码进行查重,发现抄袭者,将公布名单,请务必要独立完成
。
评分注意事项。
- 注意用Markdown语法排版,否则倒扣1分。
- 变量名不规范,没注释,没缩进,括号不对齐,倒扣
5
分。 - 大作业必须演示给助教看。