Q1:目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。

A1:

1.函数的嵌套调用和递归调用。

知识点可以理解,但对于复杂题目,一是不能一时间想到用函数的递归或调用,二是不能熟练写出关键部分。

如汉诺塔问题,思维抽象化,步骤复杂,自己想不到。

2.数组的各种排序方法。

看样例代码的时候会吃力,对一些条件表达式琢磨很久,对思想的精髓记得不牢固,在要写出这些排序函数时,会不知从何下手。

如冒泡排序法中的趟数问题,想着想着就绕晕了。

3. 二维数组和指针数组。

对于概念各自的性质意义和他们之间的区别,还是不太理解。

如不理解二维数组的&a,&a[0]是同一个地址值,及他们的含义。

4.不是重点的知识点掌握不熟练。

如共用体和枚举类型。

Q2:从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。

A2:

(1)题目大意:给定两个整型数组,本题要求找出不是两者共有的元素。

(2)解题思路:

1.设置另一个数组c[m+n]存储数组a[m],b[n]中不相同的元素 ; 

2.依次找出a[m]中不同于b[n]的元素存储在c[m+n]中,和b[n]中不同于a[m]的元素存储在c[m+n]中;

3.输出数组c[m+n]

(3)代码思路:

输入数组a[m],b[n]→将a[m]中与b[n]不相同且与c[m+n]中已存在的元素不同的元素c[m+n]存入中→将b[n]中与a[m]不相同且与c[m+n]中已存在的元素不同的元素存入c[m+n]中→输出c[m+n]

(4)核心技术总结:

利用双重循环,筛出两数组中不同的元素之一后,再用一层循环,看是否和第三个数组有重复,此过程重复两遍。

(5)问题及解决:

核心技术的思考及突破,通过询问同学解决