这里的程序是<C语言实用程序设计100例>一书中的。书上的程序是在TurboC上编译运行的,可能是用到的函数库GCC没有,我在GCC下无法编译。二级的题目没有用到更多的库,所以就拿来练习C语言。
/ f/ R3 B$ K% ]# |! U 3 C( i: Z( _9 n/ B" J9 x0 q3 B
对于用math.h的程序,需要在编译的时候指定函数库的位置,可以使用如下选项:
- T: v, `. M- N% x* T ]
gcc filename.c -o file -lm
' K, r! U8 G# B' @2 z, @9 l8 r
* I( R" v2 ^8 X- o3 O8 `3 ~ 我开始使用的时候不知道加入libm.a,出现下面这样的错误:
$ @. D1 ^( r- d7 }, ~4 P/tmp/cc0aXH26.o: In function `main':14.c

.text+0x14d):对‘sqrt’未定义的引用
% l9 B" I. n6 O8 a9 @4 s0 \collect2: ld 返回 1
% z- z6 M5 r% \9 r 7 r P0 A1 b3 V/ i& B- F$ r
然后看到<linux程序设计>这本书的前几章,才知道如何编译它。我买了<linux c编程>这本书,发现大段抄了<linux程序设计>原书第2版,所以看过的就不要再买这本书了,我也正打算卖掉.
$ l$ B( o; d; V) P* i. i+ F2 T
* M) J9 o- a `
- `& j# N) q9 A$ }1 E5 ~ 源码使用vi编写,是UTF8,Windows需要用word或是IE打开,方法是IE--查看,编码,自动选择.
+ Q7 `3 k) B( [8 J 5 R* {' [* o4 p8 w! `9 S( M4 V& ?% u1 d
用来考试的朋友注意一下,TurboC中的int大小为16位,而GCC下int大小为32位,所以为了部分程序在linux下按原意运行,我修改了部分程序的代码,比如”字节分开存储"中的unsigned int改为unsigned short int,用TurboC编译的话可以改回int。
. |6 j @. u X) V 1 K2 x% g! q5 O. _ H
我不知道在linux如何使程序非缓冲输入,所以38题有些错误。
2 H6 z; [; D1 x) K 6 @) \( o( b& b1 F! E4 ~' G
index程序是这50道题目的目录,linux下可以直接./index打开,如果屏幕显示不下,可以使用管道将程序连接到more,命令如下:
0 T' f0 R! p& w4 _8 a4 e* Z* K! ]
./index | more
m8 X2 ]2 b2 ^6 O' f6 z
windows下可以编译index.c查看目录。
* X. e/ h* O2 ^0 K! e# Y
* E. ]9 [1 P2 T6 Z' B m' R/ O 顺便说一下,在linux使用vi+gcc编写编译连接短小的代码实在是太效率了,超过任何IDE.
) F! `0 t: u0 X4 T1 V7 N" M
3 E, P) z9 ~1 `6 l! w+ w! I" K. p9 d 可以稍微配置一下vim,使它编辑C时更好使用,我只在原来的基础上多设置了两个选项,即色彩高亮和显示行号。
) y" ^0 K2 `3 y- J9 ^' \* [
X( I0 ?# B0 S/ ]) m! z0 K设置行号显示::set nu/set nonu
: i/ i! Q% P+ v, v0 O R3 o' p
设置色彩高亮::syntax on/syntax off
2 n$ h. Z Y, X" N
7 k6 s' ]+ f& a5 D [ 如果想使它们成为默认,可以编辑/etc/vim/vimrc,加入set number和syntax on
% [, A9 f( \! j( _$ Z( Q( O, G9 x( ~: e
# d3 f% r; W: W4 m1 T源码下载:[url="http://blog.lupaworld.com/job.php?action=download&pid=&tid=3267&aid=1822"]http://blog.lupaworld.com/job.php?action=download&pid=&tid=3267&aid=1822[/url]
$ W: i s4 M4 S& `* V
2 r4 Y' [* s4 _; S) A1 C或到我的博客交流下载: [url="http://kaka.lupaworld.com"]http://kaka.lupaworld.com[/url]