本次作业所属课程 | C语言程序设计|| |
本次作业要求 | |
我在这个课程的目标是 | 学会自主编程 |
本次学习在哪些具体方面帮组我实现目标 | 搞懂递归 |
参考文献 | C primer plus第六版 |
一、基础题
1、单选题
- x + 5 / y - 5
- (x + 5 / y – 5)
- (x + 5) / (y - 5)
- (x + 5) / (y - 5);
- 不定义参数a和b将导致编译错误
- 不定义参数a、b、t将导致编译错误
- 不定义参数t将导致运行错误
- 不需要定义参数a、b、t类型
void fun(int x)
{
static int y;
……
return;
}
int z;
void main( )
{
int a,b;
fun(a);
……
}
- x,y
- x,y,z
- a,b,z
- a,b,x,y,z
- 静态变量
- 动态变量
- 外部变量
- 内部变量
- 若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度
- 若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度
- 设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑变量生命周期问题
- 静态全局变量使用过多,可那会导致动态存储区(堆栈)溢出
- 自动(auto)
- 静态(static)
- 外部(extern)
- 寄存器(register)
- extern
- register
- auto
- static
- 既能被同一源文件中的函数调用,也能被其他源文件中的函数调用
- 只能被同一源文件中的函数调用,不能被其他源文件中的函数调用
- 只能被其他源文件中的函数调用,不能被同一源文件中的函数调用
- 既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用
总结:这个预习题还是有点难,翻书都翻了好久,还百度了几个。
2、编程题
题目一:汉诺塔问题
1)实验代码
#include<stdio.h> void hanio(int n,char x,char y,char z); int main () { int n; char x,y,z; scanf("%d\n",&n); scanf("%c %c %c ",&x,&y,&z); hanio(n,x,y,z); } void hanio(int n,char x,char y,char z) { if(n==1) { printf("%d: %c -> %c\n",n,x,y); } else { hanio(n-1,x,z,y); printf("%d: %c -> %c\n",n,x,y); hanio(n-1,z,y,x); } }
2)设计思路
3)本题调试过程中遇到的问题及解决办法
这题按照书上的代码修改的,改了那个输出样例,错了几次就对了
4)运行结果截图
题目二:估值一亿的AI核心代码
难度太大,放弃了
题目三:八皇后问题
不会写,答案都懒得搜了
二、挑战题
算了吧,基础题都搞不完还挑战题
三、预习题
请举实例解释以下几个概念:数组指针,指针数组,指针函数,函数指针,二级指针,单向链表。(无实例不给分)
数组指针:指向数组首元素的地址的指针,其本质为指针。例如:int (*p)[4]
指针数组:如果数组的各个元素都是指针类型,用于存放内存地址,那么这个数组就是指针数组。例如:char*color[5]。
函数指针:函数指针可以像一般函数一样,用于调用函数、传递参数
例如:
int func(int x); /* 声明一个函数 */
void (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
答案来源链接:https://baike.sogou.com/v7627909.htm?fromTitle=%E5%87%BD%E6%95%B0%E6%8C%87%E9%92%88
二级指针:指向指针的指针。例如:int*p=&a; int**pp=&p;
单向链表:单向链表是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 通过指针连接起来,但是只能单向遍历的内存块。
例如:
struct stu_node { int data; /*数据域*/ struct stu_node *next; //指向下一个结点的指针 };
答案来源链接:https://baike.sogou.com/v10718780.htm?fromTitle=%E5%8D%95%E5%90%91%E9%93%BE%E8%A1%A8
四、学习进度条
时间 | 这周所花时间 | 代码行数 | 学到的知识简介 | 目前比较迷惑的问题 |
第一周 | 5小时 | 80 | 初步了解数组 | 数组的引用 |
第二周 | 6小时 | 200 | 指针的了解 | 完全没听懂老师上课在讲什么,继续努力 |
第三周 | 7小时 | 200 | 文件与数组的使用 | 没看到代码运行后文件的内容发生改变 |
第四周 | 9小时 | 120 | 冒泡法,选择排序法 | 冒泡法不会 |
第五周 | 9小时 | 120+ | 字符型数组 | 把代码改成文件格式 |
第六周 | 4小时 | 130左右 | 指针 | 指针的调用 |
第七周 | 6小时+ | 200 | 指针与数组 | 指针与数组的连续有点模糊 |
第八周 | 10小时 | 200+ | 一些新的函数 | 结构那块有点迷 |
第九周 | 4小时 | 120 | 自己定义结构变量 | 如何灵活的使用结构解决问题 |
第十周 | 2小时 | 0 | 无 | 无 |
第十一周 | 6 | 60 | 递归 | 递归不怎么会 |
五、累积博客字数及代码行数
六、结对编程感想
这次作业太难,都写不出,完全不是人多加起来就能写得出来的
总结:作业难度太大