第十一周编程总结

本次作业所属课程

C语言程序设计||

本次作业要求

https://edu.cnblogs.com/campus/zswxy/MS/homework/2829

我在这个课程的目标是

学会自主编程

本次学习在哪些具体方面帮组我实现目标

搞懂递归

参考文献

C primer plus第六版

一、基础题

1、单选题

2-1、宏定义“#define DIV(a, b) a/b”,经DIV(x + 5, y - 5) 引用,替换展开后是()。 
2-2、定义带参数的宏“#define JH(a,b,t) t = a; a = b; b = t”,对两个参数a、b的值进行交换,下列表述中正确的是()。 
2-3、如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 ()。 
void fun(int x)
{  
    static int y;
    ……
    return;
}
int z;
void main( )
{   
    int a,b;
    fun(a);
    ……
}
2-4、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为( )。 
2-5、下面说法中正确的是()。 
2-6、凡是函数中未指定存储类别的局部变量,其隐含的存储类型为( )。 
2-7、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。 
2-8、将一个函数说明为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);
    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,x,y);
    }
    else
    {
        hanio(n-1,x,z,y);
        printf("%d: %c -> %c
",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

递归

递归不怎么会

五、累积博客字数及代码行数

 

六、结对编程感想

 这次作业太难,都写不出,完全不是人多加起来就能写得出来的

总结:作业难度太大

原文地址:https://www.cnblogs.com/wangweihanqq2001/p/10845805.html