声明:这些题目都是从互联网上搜集而来,有些解法属于原创,有些解法属于网友
的智慧,从博客上找来的解法都会给出链接,论坛上的讨论就不给出链接了。
1. 不用中间变量,实现strlen函数。(strlen为C语言中求给字符串长度库函数)
int strlen(const char *str)
解法比较明显,不让用临时变量,那就用递归了。
2. 写一个函数,找出一个数组中第二大的数,复杂度o(n)
3. 输出一个形如下面的数字矩阵(N=4)
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
此题的关键是找出其数学规律。源代码如下:
4.输出如下蛇行整数矩阵
N = 3:
7 8 9
6 1 2
5 4 3
N = 4:
7 8 9 10
6 1 2 11
5 4 3 12
17 16 15 13
源代码实现:
5. 螺旋数字队列
21 22 ……
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
以数字1为原点,X轴向右为正,y轴向上为正,建立数轴
那么数字2的坐标为(1,0),数字9的坐标为(1,1),数字5的坐标为(-1,-1)
现在编程实现输入一点(x,y),输出这点在数轴上对应的值
解析:
1.通过计算给定点(x,y)的坐标先计算出此点所在的圈
2·计算这个圈四个角上的顶点的数值跟坐标
3·比较给定点与这四个顶点的坐标,根据这四个顶点的数值计算给定点的数值
源代码:
6. 写出atol的实现代码
7:写一个函数foo: (从Ponba的讨论组里看到这个题,觉得挺有意思的)
void foo(int i, int j)
{
... //
}
打印出i到j之间的所有整数。不用任何循环和递归语句。