这里的程序是<C语言实用程序设计100例>一书中的。书上的程序是在TurboC上编译运行的,可能是用到的函数库GCC没有,我在GCC下无法编译。二级的题目没有用到更多的库,所以就拿来练习C语言。
1 | k7 z. ?- `5 d+ r
5 P' b. [& k, g7 X9 J 对于用math.h的程序,需要在编译的时候指定函数库的位置,可以使用如下选项:
' L7 Q/ h: }3 I6 s
gcc filename.c -o file -lm
* ^3 a* M5 C, W9 U% B5 t, e# S
6 G: i3 h; ~# R$ b
我开始使用的时候不知道加入libm.a,出现下面这样的错误:
3 h f, }9 @6 a* x% G/tmp/cc0aXH26.o: In function `main':14.c

.text+0x14d):对‘sqrt’未定义的引用
6 R9 z0 C: w+ E+ N$ x; ?collect2: ld 返回 1
8 i/ `9 c+ H" n$ r0 Y
" T. R$ G: C }% C, N8 v& p( ^ 然后看到<linux程序设计>这本书的前几章,才知道如何编译它。我买了<linux c编程>这本书,发现大段抄了<linux程序设计>原书第2版,所以看过的就不要再买这本书了,我也正打算卖掉.
$ ?. f' Z8 i, U' c# p( g* I
. f$ F' O! L2 o) c, b" f4 h- J
* J& D' j& p4 n/ M/ F
源码使用vi编写,是UTF8,Windows需要用word或是IE打开,方法是IE--查看,编码,自动选择.
7 \* }0 ]4 Y ]( @: X
! X( o- b+ V, e1 |: @
用来考试的朋友注意一下,TurboC中的int大小为16位,而GCC下int大小为32位,所以为了部分程序在linux下按原意运行,我修改了部分程序的代码,比如”字节分开存储"中的unsigned int改为unsigned short int,用TurboC编译的话可以改回int。
0 s0 A |4 u* X" r* L2 u & g/ @1 c5 h8 _% n, T
我不知道在linux如何使程序非缓冲输入,所以38题有些错误。
" B3 f7 O7 r5 ?8 m
3 T1 Y+ L( z9 E( [! l index程序是这50道题目的目录,linux下可以直接./index打开,如果屏幕显示不下,可以使用管道将程序连接到more,命令如下:
+ H1 \ B& k0 B5 h+ t: J4 S+ l; L./index | more
6 v0 N9 b* o: p+ w7 o% kwindows下可以编译index.c查看目录。
# `+ y8 t: X2 x# D6 E( {2 \
6 g( j: b1 K5 S4 L 顺便说一下,在linux使用vi+gcc编写编译连接短小的代码实在是太效率了,超过任何IDE.
8 g3 `3 i% u) j6 z
3 s+ m' ]# g" j' D0 F' {5 w
可以稍微配置一下vim,使它编辑C时更好使用,我只在原来的基础上多设置了两个选项,即色彩高亮和显示行号。
8 J4 h, m4 @2 A! {% P& z( U% A1 S
3 F$ \ R! G! w- \
设置行号显示::set nu/set nonu
3 W+ ~$ W# H6 [; c设置色彩高亮::syntax on/syntax off
, ~+ s3 j2 H* m6 f; S- M& D; \
9 g* h' a5 q$ N& f6 X+ H& Y1 w) G
如果想使它们成为默认,可以编辑/etc/vim/vimrc,加入set number和syntax on
0 E9 t+ X: j& U
: M8 h; U' U+ ~/ N
源码下载:[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]
+ L! D2 Y Q# Z$ `% {% k
. ?9 Q* J/ i, D" m8 E+ t或到我的博客交流下载: [url="http://kaka.lupaworld.com"]http://kaka.lupaworld.com[/url]