资源描述
学习C语言程序设计需要掌握的基本算法
一、排序算法:(1)冒泡排序法(2)选择法(3)插入排序
二、查找算法:(1)顺序查找(2)二分查找(有序数列查找)
三、字符串操作(1)求串长(2)串连接(3)串拷贝(4)求子串(5)串比较
四、斐波那契数列(1)使用单变量(2)使用数组(3)使用递归函数
五、求最大数最小数算法(1)求最大数最小数(2)求最大数最小数所在的位置
六、杨辉三角形(1)使用一维数组(2)使用二维数组
七、倒序算法(1)倒序一个整数数组(2)倒序一个字符串
八、矩阵的操作(1)求最大数的行列下标(2)转置矩阵
几个典型的例子:
1、编程求1+2+3+4+.....+99+100,由此派生出,1*2*3*...,1/1+1/2+1/3,那么求:1-2+3-4+5....+99-100呢?
2、求1-100之间的所有素数
3、输入一组数将其倒序,判断回文数,
常见问题
1、循环语句while和do-while在什么情况下会有不同结果?
由于while语句先判断条件,再执行循环体;
do-while语句是先执行一次循环体再进行条件判断,
所以在循环条件已开始就不满足的情况下,
do-while会至少执行一次,而while语句一次也不执行。
2、函数的嵌套调用和递归调用有什么不同?
函数的嵌套调用是在函数调用中再调用其它函数,
函数的递归调用是在函数调用中再调用该函数自身。
3、函数中能套用函数吗
关于函数套用的问题,是这样的:
函数可以嵌套调用,即在函数调用中又调用函数;
但是函数不能嵌套定义,也就是用户定义一个自定义函数时,
不能在其中再定义一个用户函数。
4、循环语句的语句体一定要加大括号吗?
如果循环语句中要执行的语句体只有一条语句,可以不加大括号,
如果循环中要执行的语句超过一条,则一定要用大括号构成复合语句
5、程序流程图中的菱形框代表什么?
程序流程图中的菱形框代表分支结构或循环结构的条件判断,
应该具有两个分支出口,分别表示条件满足或条件不满足的时候程序的流向。
6、switch语句的最后一个分支可以不要break语句吗?
尽管switch语句的最后一个分支不一定需要break语句,但最好还是在switch语句的每个分支后面加上break语句,包括最后一个分支。这样做的主要原因是:你的程序很可能要让另一个人来维护,他可能要增加一些新的分支,但没有注意到最后一个分支没有break语句,结果使原来的最后一个分支受到其后新增分支的干扰而失效。在每个分支后面加上break语句将防止发生这种错误并增强程序的安全性。此外,目前大多数优化编译程序都会忽略最后一条break语句,所以加入这条语句不会影响程序的性能。
7、循环的三要素是什么?
写循环程序时需要注意循环变量的初值,循环条件和循环变量的增量,
这可以称为是循环的三个要素.
8、输入字符串时使用gets函数与scanf函数区别?
最大的区别:
gets函数在输入字符串时,可以输入空格,也就是说空格做为字符串的一部分输入。
而scanf函数不能输入空格,即遇到字空格时,认为字符串输入结束。
9、使用指针变量是为什么一定要赋值
通过指针操作变量是通过指针变量中存放的变量首地址来进行。
只有通过赋值操作才能将指针指向该变量的地址,
否则指针变量中的地址是不确定的。
10、Fibonacci数列的实现用单个的变量好还是用数组好?
个人认为,用单个的变量比较锻炼一个人的编程思维能力,而用数组实现程序更为简洁,易懂,并且可以对数据进行进一步的处理。
11、链表在C语言中的地位?
12、结构中成员的引用方法有多少种?
共有三种方式.
设已定义结构变量t,且指针pt已指向变量t,则引用方式有如下三种:
t.成员
(*pt).成员
pt->成员
13、指针的实质是什么
指针,实质就是地址
指针变量就是存放变量的地址的变量
14、使用文件一定要包含stdio.h的头文件吗
在C语言中,文件的使用通过文件指针引用,而文件指针的定义在头文件
"stdio.h"中,所以编写有关文件操作的程序时,应包含该头文件
展开阅读全文