找回密码
 注册
关于网站域名变更的通知
查看: 495|回复: 3
打印 上一主题 下一主题

C语言编程常见问题解答.chm

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-11-5 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
C语言编程常见问题解答( M$ a5 V) B* |! C5 G  _
【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波6 w$ X4 c" ]0 N6 Y
【出版社】清华大学出版社) T/ l. p1 A9 d# M+ E! v4 m; f

% h5 {, o; @, \9 M, J0 Q4 |1 g3 V# J4 R& |! D% R
  第l章  C语言
+ L! e# d% c' h9 E% J  1. 1   什么是局部程序块(local block)?  6 ~! a" X& ?, Y4 n6 M, a9 ]
  1. 2   可以把变量保存在局部程序块中吗?  1 }2 c; a& D4 [3 E, s& ^/ C7 O5 A
  1. 3   什么时候用一条switch语句比用多条if语句更好?6 ~/ G8 n' ~1 G; d- f! M5 G
  1. 4   switch语句必须包含default分支吗?
, N2 Y0 N; B, t8 _2 x  1. 5   switch语句的最后—个分支可以不要break语句吗?
) f8 U  U- Z+ F/ Q  E  1. 6   除了在for语句中之外,在哪些情况下还要使用逗号运算?$ d1 X+ a* ^5 q) y- ]
  1. 7   怎样才能知道循环是否提前结束了?  
5 L& l% j- k! E% i" R  1. 8   goto,longjmp()和setjmp()之间有什么区别?/ d0 w  c9 H: a0 M; n  T( C
  1. 9   什么是左值(lvaule)?  
8 _% D4 J( I0 }2 I  1. 10  数组(array)可以是左值吗?  
  V4 d2 u' H2 G$ [  1. 11  什么是右值(rvaule)?  0 S# x4 k" X( b. r# S( D0 S9 l3 G5 r  v
  1. 12  运算符的优先级总能保证是“自左至右”或“自右至左”的顺序吗?  8 [5 u+ Y+ I" Y
  1. 13  ++var和var++有什么区别?  " p& [1 Z' Z% [, {
  1. 14  取模运算符(modulusoperator)“%”的作用是什么?  
& ?1 l- ^/ [3 m! w: @% `' `" Z                    1 q) R, d" Y/ x/ r# Q
  第2章  变量和数据存储
& M% e2 z2 ]: K; I* E  2. 1  变量存储在内存(memory)中的什么地方?  # W6 I( k& X% [; L. }
  2. 2  变量必须初始化吗?! D7 R( e. S. p; N4 [4 x+ r
  2. 3  什么是页抖动(pagethrashing)?  
) K& J. l6 `, ]" M8 R  2. 4  什么是const指针?; X' ^) l) z# t/ b' R
  2. 5  什么时候应该使用register修饰符?它真的有用吗?' Y; e2 f7 r0 }) C% O* R
  2. 6  什么时候应该使用volatile修饰符?  : b; ?( }0 d  |6 X
  2. 7  一个变量可以同时被说明为const和volatile吗?
& I# m6 m6 z* }7 A/ d  2. 8  什么时候应该使用const修饰符?
7 e1 Y) M9 H5 k) U' |9 T* Q  2. 9  浮点数比较(floating—point comparisons)的可靠性如何?
: z6 M9 K9 ?9 V& f( L$ E5 O  2. 10 怎样判断一个数字型变量可以容纳的最大值?  7 @* k/ G) M& G* S9 r( o0 ]
  2. 11 对不同类型的变量进行算术运算会有问题吗?    y. K6 J, H  s" {# p2 j
  2. 12 什么是运算符升级(operator promotion)?: t8 q: P# X% y% D; i$ f: K0 [
  2. 13 什么时候应该使用类型强制转换(typecast)?  & L& T) f$ t/ C, B/ U6 h
  2. 14 什么时候不应该使用类型强制转换(typecast)?
; g& I; ?' D# }/ |/ Y  2. 15 可以在头文件中说明或定义变量吗?  
7 C/ d. Q, p  m$ P  2. 16 说明一个变量和定义一个变量有什么区别?  
0 `( }; J; P3 m" l/ O) H# _' j1 t  2. 17 可以在头文件中说明static变量吗?  * ?! F* f2 Y6 n8 r
  2.18 用const说明常量有什么好处?  1 Y+ V5 W2 ]8 ^' U0 W
  第3章  排序与查找, g" W- C. L) N
  排 序
) a4 u0 v- ~+ |  [  查 找
" }, }4 {" F- s7 X  r  排序或查找的性能, R* r6 }# N! v1 L6 r0 U
  3.1  哪一种排序方法最方便?
, D  c" [4 Y  Y# M' U$ N  3.2  哪一种排序方法最快?7 V4 |8 E( o' c9 Q9 m! O- |
  3.3  当要排序的数据集因太大而无法全部装入内存时,应怎样排序?  
* J, @9 Z4 N1 \. m) a. R3 B+ z( ~  3.4  哪一种查找方法最方便?3 G* m( J  ]4 p' ?9 d* e: W
  3.5  哪一种查找方法最快?
# s- V+ @3 d. n* R/ Y' |  3.6  什么是哈希查找?$ x$ R! c& _; h  _! D4 {
  3.7  怎样对链表进行排序?
) o) `+ i6 g1 d, Q  3.8  怎样查找链表中的数据?
, k$ [/ H' f6 B: }  第4章  数据文件" p" s9 x+ j1 U: m( P4 O9 q
  4.1  当errno为一个非零值时,是否有错误发生?  
; O4 v' M% T* m# w5 U/ z3 N: e  4.2  什么是流(stream)?9 B0 A8 t% l! G9 _% J5 l+ A
  4.3  怎样重定向—个标准流?: x8 V4 I+ j& d
  4.4  怎样恢复一个重定向了的标准流?; K# c1 l+ j$ W6 n% @  H' W0 [
  4.5  stdout能被强制打印到非屏幕设备上吗?% U  I/ E  }5 k) C# F, z
  4.6  文本模式(text mode)和二进制模式(binary mode)有什么区别?  ! u& O9 x" ]# E6 D9 }1 v
  4.7  怎样判断是使用流函数还是使用低级函数?
/ C' G7 o2 y) U. |2 s$ e; v  4.8  怎样列出某个目录下的文件?
* r$ A* Y, s3 f; n, p  4.9  怎样列出—个文件的日期和时间?
' \! U* E+ x6 g  4.10 怎样对某个目录下的文件名进行排序?  
! f. r7 d9 @4 E6 z+ ~  4.1l 怎样判断一个文件的属性?  . P7 w+ }0 V4 G- G5 R# P0 @- |
  4.12 怎样查看PATH环境变量?: |) G- N5 D! F
  4.13 怎样打开一个同时能被其它程序修改的文件?  # y4 B, Q3 R$ @7 |' H( v3 D
  4.14 怎样确保只有你的程序能存取一个文件?  5 R6 [: h7 y1 f: X
  4.15 怎样防止其它程序修改你正在修改的那部分文件内容?  : R, k) P: W4 w
  4.16 怎样—次打开20个以上的文件?
3 {0 ~6 W" w" ^  h6 M  d  4.17 怎样避开"Abort,Retry,Fail"消息?: c& c. f1 x6 e3 N6 g( X9 Y; j
  4.18 怎样读写以逗号分界的文本?  9 V4 E( V7 q3 `( o
  第5章  编译预处理# Y$ f0 k8 l& U0 p& C& N( Z
  5.1  什么是宏(macro)?怎样使用宏?  
: \; |& O& e# _  5.2  预处理程序(preprocessor)有什么作用?  # D7 c# X8 T* ~: J1 D! T* P  R
  5.3  怎样避免多次包含同—个头文件?; I7 K" U/ {6 ?( [. `8 A8 Q
  5.4  可以用#include指令包含类型名不是“.h”的文件吗? / a- D. n4 d) |  B7 ~: M
  5.5  用#define指令说明常量有什么好处?
0 O. r+ Y  \, F% Y* R: q  5.6  用enum关键字说明常量有什么好处?
! d( z, @- ~4 K5 B& K" ~  5.7  与用#define指令说明常量相比,用enum关键字说明常量有什么好处?, D4 ^. k. c0 H& c; h
  5.8  如何使部分程序在演示版中失效?
* d% R; X- W; O8 q  N  5.9  什么时候应该用宏代替函数?
3 ]* N' a  }2 M! `; K( l  5.10 使用宏更好,还是使用函数更好?. z3 a1 [% R, G8 U
  5.11 在程序中加入注释的最好方法是什么?
2 Q& |, V% D  @( \, b  5.12 #include<file>和#include“file”有什么不同? ; c. h# V0 p& h' a* ^
  5.13 你能指定在编译时包含哪一个头文件吗? 5 }# V% S: X; b  j3 ]3 d
  5.14 包含文件可以嵌套吗? ' L6 n" A! [" f  j; ~
  5.15 包含文件最多可以嵌套几层?  : O1 {3 G4 Q+ V7 u
  5.16 连接运算符“##”有什么作用?
3 w9 M& m. Q: h8 C  5.17 怎样建立对类型敏感的宏?  
0 Z: z# I1 C2 Z3 C' H2 f  5.18 什么是标准预定义宏?  
0 f7 c7 V! S1 i) R1 @* v5 h  5.19 怎样才能使程序打印出发生错误的行号?   M  I% l( E" d, L7 L4 {4 c, Y
  5.20 怎样才能使程序打印出发生错误的源文件名?
3 G) I/ M) t0 B  5.2l 怎样判断一个程序是用C编译程序环是用C++编译程序编译的?
, @  \' r4 ~" m& a  5.22 预处理指令#pragma有什么作用?
; a7 a, P- k& k3 {! `+ x9 }) R7 v  5.23 #line有什么作用?
' m6 o8 X, ~/ c  5.24 标准预定义宏_FILE_有什么作用?6 L& d0 z4 D) t
  5.25 怎样在程序中打印源文件名? : Y; h+ f/ d4 O3 Q# C  t
  5.26 标准预定义宏_LINE_有什么作用? $ M1 X) i; K" M, L! o, E
  5.27 怎样在程序中打印源文件的当前行号? " D4 ?+ j, ~* s- k, O
  5.28 标准预定义宏_DATE_和_TIME_有什么作用?
& Y9 s- ]9 T/ `- M/ V  5.29 怎样在程序中打印编译日期和时间?  + Y- L# I5 t6 y3 e( [9 k4 k( V
  5.30 怎样判断一个程序是否遵循ANSIC标准?
5 P% _1 R- y, e) Z" e; E2 K  5.31 怎样取消一个已定义的宏?
$ g0 G! W1 j6 W6 ~# C5 K2 @( F& U  5.32 怎样检查一个符号是否已被定义?  
4 l3 |, I/ e0 y+ w0 O* p  o; \  5.33 C语言提供哪些常用的宏?
, X( m+ l$ b& H( r9 ?) t" b+ G    第6章  字符串操作
7 y& I* `# w. y2 ?, T  6.l  串拷贝(strcpy)和内存拷贝(mEMCpy)有什么不同?它们适合于在哪种情况下使用?7 g5 h. Q2 u& y' D% O6 \5 b8 Q" B
  6.2  怎样删去字符串尾部的空格?
! y4 F# A% r/ I* L) f1 a% [3 D  6.3  怎样删去字符串头部的空格?
& S0 W' f) q. I/ y% R  6.4  怎样使字符串右对齐?
/ r7 S' s6 y8 `% L" w; k9 W2 [  6.5  怎样将字符串打印成指定长度? # X2 e; \  Y* z# m
  6.6  怎样拷贝字符串的一部分?
2 F* @0 _% P- ]' H. s/ S  6.7  怎样将数字转换为字符串?
9 C9 E* Y3 g2 a! {  6.8  怎样将字符串转换为数字?
: O( p' d0 m! w- ~) J  6.9  怎样打印字符串的一部分?
; M1 |4 G* ^2 n2 T1 k8 ^$ x  6.10 怎样判判断两个字符串是否相同?
/ G8 U8 Q7 t5 c   第7章  指针和内存分配
5 {7 ~4 q( s$ f' J  X# _  7.1  什么是间接引用(indirection)?   h) o- w( _3 H2 j! Z/ U6 c/ W+ e. p
  7.2  最多可以使用几层指针?  - y0 m9 K1 H$ R& j% G( _; ~
  7.3  什么是空指针?  
1 b  \2 l0 ?- V! l& e  O1 u  7.4  什么时候使用空指针?5 f3 S+ f3 y% H0 b* H4 R. n
  7.5  什么是void指针?
0 Z, Q8 |& t& D4 e) @  7.6  什么时候使用void指针?
" d4 z# o) z0 E" k% j8 C) @! H! d5 C  7.7  两个指针可以相减吗?为什么?
9 m, T4 C& B& @* Y2 i  7.8  把一个值加到一个指针上意味着什么?
0 y0 O! y+ l& \  7.9  NULL总是被定义为0吗?  2 z$ ?* ]' M7 }! S
  7.10 NULL总是等于0吗?  
5 A- I- B6 N) ?0 N( V3 N6 ^. F/ f  7.11 用指针作if语句的条件表达式意味着什么?
; _" V- n+ i% F3 A: y4 G  7.12 两个指针可以相加吗?为什么?, o- Z  i  N! A
  7.13 怎样使用指向函数的指针?7 L$ K: n- C, y  P/ X! ?- N
  7.14 怎样用指向函数的指针作函数的参数?
9 j# A1 r) z8 B) @  7.15 数组的大小可以在程序运行时定义吗?
( A" e1 \% M9 P, w  7.16 用malloc()函数更好还是用calloc()函数更好?- ~5 Y+ O6 `/ ~' y$ @9 A4 R/ E+ A
  7.17 怎样说明一个大于64KB的数组?% }- H2 H4 C0 `0 u) t
  7.18 far和near之间有什么区别?) C* k  [$ b+ a' g
  7.19 什么时候使用far指针?
; s* u4 {5 b' b5 q& d7 Q  7.20 什么是栈(stack)?  
5 D7 i7 `* K; y: ~- E# e5 e8 K7 Q  7.21 什么是堆(heap)?
0 n9 E5 v) }- o8 Y' {, G0 u  7.22 两次释放一个指针会导致什么结果?0 Z8 m0 ~# I' e7 v
  7.23 NULL和NUL有什么不同?7 r1 k1 i( S2 D
  7.24 为什么不能给空指针赋值?什么是总线错误、内存错误和内存信息转储?
8 y8 @+ j. t4 `6 X0 l  7.25 怎样确定一块已分配的内存的大小?
0 p$ w" I: _2 {4 n" _  7.26 free()函数是怎样知道要释放的内存块的大小的? 4 ^) w0 `, H0 ^/ g' \
  7.27 可以对void指针进行算术运算吗?  2 m- U9 C, q7 Q$ f$ R, W
  7.28 怎样打印一个地址?
- Y' n" ^4 f: ~/ S  第8章  函数
0 s. T7 `6 k- G  8.1  什么时候说明函数?  
( S1 _  p6 J/ y4 }9 u2 X  8.2  为什么要说明函数原型?
1 k" x) W' v2 r7 S) @6 u1 e9 d8 v  8.3  一个函数可以有多少个参数?
$ l, Z7 ~0 V4 b$ J  8.4  什么是内部函数?  
8 O. \0 e1 R+ T( l# r# O3 z  8.5  如果一个函数没有返回值,是否需要加入return语句? ; ]. z6 l" i6 H8 V' v% B; {0 N
  8.6  怎样把数组作为参数传递给函数?  " B0 N% ?/ G8 [& I: `! t
  8.7  在程序退出main()函数之后,还有可能执行一部分代码吗? - Z1 W4 i6 X* H6 U  x9 b! z+ C
  8.8  用PASCAL修饰符说明的函数与普通C函数有什么不同?9 V; h( [$ I4 s( W, a  f8 F
  8.9  exit()和return有什么不同? ., z# p- R8 l- G- U
  第9章  数组' N% g# W3 R6 e2 p9 E
  9.1  数组的下标总是从0开始吗?  4 _* i" Y( d+ A9 P6 C! t
  9.2  可以使用数组后面第—个元素的地址吗?  
. ?" W+ Q0 E: L- {  9.3  为什么要小心对待位于数组后面的那些元素的地址呢?  8 a3 [0 l' `* W
  9.4  在把数组作为参数传递给函数时,可以通过sizeof运算符告诉函数数组的大小吗?  
0 Y5 p' @, r& b6 L- s( B2 ]* T  9.5  通过指针或带下标的数组名都可以访问数组中的元素,哪一种方式更好呢?# c- P- q4 _4 n
  9.6  可以把另外一个地址赋给一个数组名吗?  7 [9 r: U3 s  T$ q3 d% Y* `
  9.7  array_name和&array_name有什么不同?  ( h2 \# `& b8 H5 g: R2 ~
  9.8  为什么用const说明的常量不能用来定义一个数组的初始大小?  
& D/ X; t3 T: X: F7 z, G  I6 H  9.9  字符串和数组有什么不同?
/ f9 Q( c  x/ U; K$ I  第10章  位(bit)和字节(byte)
: y, X, s' ^# N2 \! T0 S  _" f/ l  10.1  用什么方法存储标志(flag)效率最高?
- S5 A. w5 B6 S/ D  10.2  什么是“位屏蔽(bit masking)”? ) a9 k, ~( o  `  E0 ^/ f
  10.3  位域(bit fields)是可移植的吗?
9 C* b: T( Q( X; ]6 C3 O  10.4  移位和乘以2这两种方式中哪一种更好?
6 W& }2 p. C* r" u. E  10.5  什么是高位字节(high-order byte)和低位字节(low-order byte)? ( r- M" L$ W- r: }$ Q) C9 w/ |
  10.6  16位和32位的数是怎样存储的?
% L4 |9 }, }/ }& c+ p    1 ?# E) b; {+ ~" d) ^+ j$ R# G1 Q
  第11章  调试
: O: p6 b) T7 d; G8 ~  11.1  如果我运行的程序挂起了,应该怎么办?
/ U. x3 z& j4 t  11.2  如何检测内存漏洞(leak)?
% ~. G: a% j$ d5 {$ I/ w# @  11.3  调试程序的最好方法是什么?1 Q8 {/ J, ?8 X: n
  11.4  怎样调试TSR程序?
  c' a7 O) i+ E- q" ]5 w  11.5  怎样获得一个能报告条件失败的程序?7 |4 y8 P5 I5 ^8 v$ Q0 v
  第12章  标准库函数, G- h+ I/ u- N) u0 V8 ~+ S
  12.1  为什么应该使用标准库函数而不要自己编写函数?
! i. |* b. F, Q. C* J; ?  12.2  为了定义我要使用的标准库函数,我需要使用哪些头文件?
0 V2 x; ^2 e- R) E. p! D  12.3  怎样编写参数数目可变的函数?3 n' N9 f' b# T/ G/ z3 `8 u
  12.4  独立(free—standing)环境和宿主(hosted)环境之间有什么区别?
5 `" `" t. X; f$ F  12.5  对字符串进行操作的标准库函数有哪些?! Y, [1 S3 M" U; z( b
  12.6  对内存进行操作的标准库函数有哪些?
# w. C( `' T- ^! d% u  12.7  怎样判断一个字符是数字、字母或其它类别的符号?
$ H! X* c1 f( N2 ~  12.8  什么是“局部环境(locale)”?
0 ^* a4 `3 N$ o, u9 _" T3 k  12.9  有没有办法从一个或多个函数中跳出?
# z. U9 k$ C2 y4 `5 F  12.10 什么是信号(signal)?用信号能做什么?
2 P- g% G+ y  I9 e  12.11 为什么变量名不能以下划线开始?5 X: d7 A! A% n4 n/ S1 a
  12.12 为什么编译程序提供了两个版本的malloc()函数?
( \' R* H) m) C5 w- {# U. T  12.13 适用于整数和浮点数的数学函数分别有哪些?  
2 A+ m' G! }- W0 e$ v  12.14 什么是多字节字符(multibyte characters)?  
1 p* I3 y+ f4 F$ i  12.15 怎样操作由多字节字符组成的字符串?
4 A; F6 X) |* h& e  }( O  第13章  时间和日期, |% l! N! C' N8 _1 h8 d2 a: E0 g$ ?
  13.1  怎样把日期存储到单个数字中?有这方面的标准吗?0 K4 E1 n1 b1 w) |
  13.2  怎样把时间存储到单个数字中?有这方面的标准吗?3 o4 f9 e( M& n! P! A! J$ y$ U( X. [
  13.3  为什么定义了这么多不同的时间标准?! S* b2 D+ X5 p: o0 Y: j, \
  13.4  存储日期的最好方法是哪一种?
4 Z, h' G* k6 c( f6 P3 X# _  13.5  存储时间的最好方法是哪一种?# b4 @: m; ?. z8 V! J
  第14章  系统调用
! j, k& r: b2 J& U  14.1  怎样检查环境变量(environment variables)的值?* Z+ x: Y6 M3 f* h  r3 A, G6 v
  14.2  怎样在程序中调用DOS函数?
5 a% f" d1 r  O# Z! c3 k7 B. R  14.3  怎样在程序中调用BIOS函数?+ |0 w/ _5 F; z6 d
  14.4  怎样在程序中存取重要的DOS内存位置?
5 u" s; @( K+ e0 ~. V3 d8 m  14.5  什么是BIOS?/ Z4 Q) A$ y: r7 m1 ?0 G
  14.6  什么是中断?  G) O. N: ]) T$ @# z5 b8 x9 w+ `1 R
  14.7  使用ANSI函数和使用BIOS函数,哪种方式更好?  
% f6 s8 z0 _, T  K# G  14.8  可以通过BIOS把显示模式改为VGA图形模式吗?
4 T# E& I; U9 ~! \" h  14.9  运算符的优先级总能起作用吗(从左至右,从右至左)?, r; m% x2 x8 S; n
  14.10 函数参数的类型必须在函数头部或紧跟在其后说明吗?为什么?, |; i* f+ a. F  D+ l) a
  14.11 程序应该总是包含main()的一个原型吗?
/ G  [+ |3 C+ F! I0 w: h$ S  14.12 main()应该总是返回一个值吗?/ ^7 c6 p/ T5 Q, t( g( X1 K4 A8 c
  14.13 可以通过BIOS控制鼠标吗?  
5 c# I6 J2 ~& I) f9 ^1 L. [+ {  第15章 可移植性9 n' a' I0 T8 Q
  15.1  编译程序中的C++扩充功能可以用在C程序中吗?  
% R  p5 k2 y& g  15.2  C++和C有什么区别?* B; T6 u# Y' B7 O
  15.3  在C程序中可以用“∥”作注释符吗?  9 j1 F' D; j6 |* w
  15.4  char,short,int和long类型分别有多长?
3 a4 J, H9 \  F1 K  15.5  高位优先(big-endian)与低位优先(little—endian)的计算机有什么区别?/ \2 D# t. ^2 e: _% Y  z' w5 x6 E
  
  t, x" ^- r# P' a  第16章 ANSI/ISO标准
' o4 k) i3 J: K1 I. T( k  16.1  运算符的优先级总能起作用吗?* o7 D- Z7 j% O! F% U% c
  16.2  函数参数类型必须在函数参数表中或紧跟其后的部分中说明吗?
) A2 y3 P: U: f  16.3  程序中必须包含main()的原型吗?  6 x/ J1 G* v/ k' b" D" Q! }; G% X
  16.4  main()应该总是返回一个值吗?  
, e, R; z. S! H2 Z  第17章  用户界面——屏幕和键盘
# j- r. b7 D5 Z% F& {- [& A, E6 t, V8 D  17.1  为什么直到程序结束时才看到屏幕输出?' I$ k- N5 k* i& Z6 g3 D" H
  17.2  怎样在屏幕上定位光标?
$ R. C2 F$ @% T  17.3  向屏幕上写数据的最简单的方法是什么?
* @+ `; {) E( t3 g: L1 i0 `% f5 i+ }  17.4  向屏幕上写文本的最快的方法是什么?
3 D0 s. g: H6 ?9 ?8 {6 o  17.5  怎样防止用户用Ctr+Break键中止程序的运行?  1 W2 n8 K$ Y) M4 X2 K( t
  17.6  怎样才能只得到一种特定类型的数据,例如字符型数据?
. }: g9 _6 b! z' t! }$ i6 L& B. n2 _  17.7  为什么有时不应该用scanf()来接收数据?  
1 P, ^7 u0 G3 I' u, w  17.8  怎样在程序中使用功能键和箭头键?% B& ~6 r: @9 y" q
  17.9  怎样防止用户向一个内存区域中输入过多的字符?
" L9 i8 N1 I) o: z8 z# Y; t! B  17.10 怎样用0补齐一个数字?$ p& \' v8 F  ]) Z- b2 x
  17.11 怎样才能打印出美元一美分值?$ ~6 q, |" v1 q0 g& q" e8 ]
  17.12 怎样按科学记数法打印数字?5 f6 |+ f: a( J" f% a7 [5 n7 `
  17.13 什么是ANSI驱动程序?9 _" j1 L) k( c' `
  17.14 怎样通过ANSI驱动程序来清屏?  1 @/ B2 F: N$ \3 u, H# S
  17.15 怎样通过ANSI驱动程序来存储光标位置?  ! @" `% U7 z: u, I, L
  17.16 怎样通过ANSI驱动程序来恢复光标位置?  $ q2 s6 p9 `+ V% t8 k& Y) A8 z; ]! l
  17.17 怎样通过ANSI驱动程序来改变屏幕颜色?  5 e# W1 `( c. F1 ~
  17.18 怎样通过ANSI驱动程序来写带有颜色的文本?  
. p! N  _) [3 q  e3 g/ o) H  17.19 怎样通过ANSI驱动程序来移动光标?  , P2 A% X/ Q1 }9 g. N+ h6 Z; Z
  第18章  程序的编写和编译) Q9 C: ], _; f
  18.1  程序是应该写成一个源文件还是多个源文件?# V( n. ]; Q/ v6 X! N
  18.2  各种存储模式之间有什么区别?
3 G; ^/ Q7 j9 I0 h6 H9 c! J  18.3  最常使用的存储模式有哪些?; g: o. l* Y0 E+ y6 f9 ?0 p
  18.4  应该使用哪种存储模式?
, i* d6 {% ^" D7 t- _! }  f) N, V4 s  18.5  怎样生成一个".COM"文件?: ?$ c# v. T& T8 B6 [. r. m) k
  18.6  ".COM"文件有哪些地方优于".EXE"文件?  8 t; R, L$ j, j' @. H. J1 L6 O
  18.7  当一个库被连接到目标上时,库中的所有函数是否都会被加到一个".EXE"文件中?
2 L& h; R' g: k/ j6 Y6 [  18.8  可以把多个库函数包含在同一个源文件中吗?
! B9 T6 v6 ?5 k" }' G  18.9  为什么要建立一个库?
8 Q9 i/ o& C% s9 p  18.10 如果一个程序包含多个源文件,怎样使它们都能正常工作?0 Y3 R* K1 k0 ^$ f
  18.11 连接过程中出现"DGROUP:group exceeds 64K"消息是怎么回事?  ' X0 W* K0 L/ e4 O$ c9 Z( f* ]9 u
  18.12 怎样防止程序用尽内存?
- |' l/ ?; G( K- \  k  18.13 如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢?
- V: _# K" |) c% b, D- k7 ~; Q  18.14 怎样才能使DOS程序获得超过640KB的可用内存呢?  0 C$ F, d" S" J7 c+ C6 j
  18.15 近程型(near)和远程型(far)的区别是什么?
/ i! p. Z& m/ H: G  第19章编程风格和标准
* }0 D  _& H  J0 l1 A  19.1  可以在变量名中使用下划线吗?
. D+ g4 Z+ A' k( I7 b  19.2  可以用变量名来指示变量的数据类型吗?7 |1 w; Z3 J6 J) o5 M/ t/ K
  19.3  使用注释会影响程序的速度、大小或效率吗?+ D8 A2 z, h  D8 F6 T. M
  19.4  使用空白符会影响程序的速度、大小或效率吗?7 Q  O% n% e  S5 F  B
  19.5  什么是骆驼式命名法?
( j: _! P( L, ]1 k6 u  19.6  较长的变量名会影响程序的速度、大小或效率吗?
( L* v7 k& K; c  19.7  给函数命名的正确方法是什么?
* M8 s6 F6 U9 }  19.8  使用大括号的正确方法是什么?& J: `" s9 v( o" d% C
  19.9  一个变量名应该使用多少个字母?ANSI。标准允许有多少个有效字符?) y" J7 L9 v9 w0 b( e, G
  19.10 什么是匈牙利式命名法?应该使用它吗?
' `, H5 z3 ]" n7 z* W! y7 e/ T  19.11 什么是重复处理(iterative processing)?% k7 e5 `7 y. E5 w# {8 m  r
  19.12 什么是递归(recursion)?怎样使用递归?  
: m1 [4 l8 k$ p" ~# C+ q2 J  19.13 在C语言中,表示真和假的最好方法是什么?
6 w8 _3 H* G# g  L  19.14 空循环(null loops)和无穷循环(infinite loops)有什么区别?  ) H" b+ M5 v9 D/ o: I
  19.15 continue和break有什么区别?  ) c* d9 {0 n" n- H9 d: N( ^
  第20章  杂项(Miscellaneous): R2 u4 E" S7 D3 `7 O
    1 P1 z* o8 m6 s  f$ s1 T
  20.1  怎样获得命令行参数?
( \: T1 d# @* p& |  20.2  程序总是可以使用命令行参数吗?
! K: H) h3 \+ B  20.3“异常处理(exception handling)”和“结构化异常处理(structured exception handling)”有什么区别?! }( c" _) i9 y: N9 ^. v% L
  20.4  怎样在DOS程序中建立一个延时器(delay timer)?  
7 l/ a! i( _) M7 n0 r  20.5  Kernighan和Ritchie是谁?  
( y! o7 {" z" j. ~8 K  20.6  怎样产生随机数?/ {1 G, ^- Q! I, ~
  20.7  什么时候应该使用32位编译程序?
& u- ?: u! ~2 O& K6 R1 s' A  20.8  怎样中断一个Windows程序?
+ U$ G) e& [! d+ M, C. {  20.9  为什么要使用静态变量?
; C' t5 }( b2 w  20.10 怎样在一个程序后面运行另一个程序?
; ^. R- K0 [, \" A' ?* ^  20.11 怎样在一个程序执行期间运行另一个程序?
: n: Q* I: I2 ^, [" p9 O8 ?  20.12 怎样把数据从一个程序传给另一个程序?
) ?' I- x2 X* B# D( X' ~3 j  20.13 怎样判断正在运行的程序所在的目录?% c5 i1 r4 ]8 |0 D" Y# }/ G, \
  20.14 怎样找到程序中的重要文件(数据库,配置文件,等等)?8 k7 u1 w2 I/ Q+ P5 E* E
  20.15 本书的有些例子程序有许多缺陷,为什么不把它们写得更好?
, B2 M- f: m! D5 k4 V# p  20.16 怎样使用Ctr+Break失效?2 v5 F9 y$ o( }( t# }
  20.17 可以使热启动(Ctrl+Alt+Delete)失效吗?    l  G/ c" S" k) A# |
  20.18 怎样判断一个字符是否是一个字母?
2 ~9 T7 c1 s( c$ }+ }! f  T$ m  ?  20.19 怎样判断一个字符是否是一个数字?
4 s$ T+ T+ ^9 ~4 h* a. b  20.20 怎样把一个十六进制的值赋给一个变量?
! y3 i% B/ ~8 L# S& }* {  20. 21 怎样把一个八进制的值赋给一个变量?- Z) Z; W. ]: ]6 G
  20.22 什么是二进制?; {& U  B/ M$ h) `
  20.23 什么是八进制?( f" s$ r* y$ ]; I8 R0 v
  20.24 什么是十六进制?0 W8 b. e( u2 O/ ^
  20.25 什么是换码符(escape characters)?; j- R$ `& M; I

$ ~: P  C$ p: j# I$ l- g* e: e! K. T- ^, i  第21章  Windows8 ^- n  r6 G$ t& O6 Q; ?
   
7 m. _& R- f& Y# {/ J: m  21.1  可以在Windows程序中使用printf()吗?
% \( P8 U  J: ?' D# Z  21.2  怎样在Windows程序中建立一个延时器?+ B, D3 i0 [0 M) L
  21.3  什么是句柄?( i6 l8 v9 i0 |) R" D  D! [
  21.4  怎样终止一个Windows程序?  
: P2 }" k& M$ @  21.5  什么是GDI?通过什么途径使用它?  
5 Q8 y% Z9 d1 ~1 _6 G' i) x1 y$ B. S  21.6  为什么windows.h很重要?
/ ~( m1 K' _* n# t; a/ B  21.7  什么是Windows SDK?' i6 S  A! h7 H$ S  S. ^
  21.8  在编写Windows程序时, Microsoft的Windows SDK是必需的吗?9 ]: ^+ H4 c* r6 p: X2 p4 N0 ]8 a
  21.9  Windows函数和标准DOS函数有什么区别?
2 E$ G. ]* s& M5 I% t* z  21.10 什么是动态链接?% j* T1 `- G/ z  M, o- t' C5 ~
  21.11 HANDLE, HWND和HDC之间有什么区别?" B6 Y7 x; |  N! m! O1 w
  21.12 Windows程序对于不同的编译程序是兼容的吗?1 k9 I% A. Z" G  c
  21.13 Windows总是保存和刷新程序的窗口吗?8 l& W% U# }& R4 c4 K
  21.14 怎样确定一个Windows程序的用户区的大小?5 i5 p, o" q. O- J% ?: ]. I/ p+ s
  21.15 什么是OEM键码?$ E7 g3 ^5 H2 k( T! ]: ^  p+ ?* s
  21.16 Windows程序需要考虑OEM键码吗?
  J; m! X  [' X* v' ]  21.17 什么是虚拟键码?  . G% K; h7 t  ~7 z% v& x& ?8 W. B
  21.18 什么是死键?
0 {7 M8 `) O7 U3 q# t3 R  21.19 插入标记(caret)和光标(cursor)有什么区别?
+ I" p# A/ H: V/ t: `" Z  21.20 在程序用户区外点击鼠标能被捕获吗?, K3 k9 X( t" |0 ]
  21. 21 怎样创建一个活动的位图?
' {6 k8 \/ C: p$ k6 O  21.22 怎样在Windows程序中获得日期或时间?  [9 W9 k( W9 b9 U* A7 c" k" N
  21.23 怎样在Windows程序中更新标题条(title bar)?2 f8 M9 E/ }- o+ @) c
  21.24 怎样在Windows程序中获得系统颜色?6 H7 j, Y; U' L1 a
  21.25 什么是系统颜色常量?" x0 ~: L" x9 Y, @- l
  21.26 怎样创建自己的按钮和控件(control)?
) N( k# o4 r) z+ F8 E2 R& {1 h  21.27 什么是静态子窗口(static child windows)?7 X& @7 f0 x, w0 S2 t& j
  21.28 怎样创建窗口子类(window sbclassing)?$ D) j$ h( L+ }: t/ b0 Q
  21.29 什么是编辑类(edit class)?& O4 l, T% ?% L1 g% C/ b
  21.30 什么是列表框类(listbox class)?
2 x: o" n5 e9 d" d# f  21.31 怎样在Windows程序中分配内存?+ L4 E- d# I# L" D5 n# Y( c
  21.32 怎样在Windows程序中分配内存?
- G. c, v1 p, p5 n  21.33 模式(modal)对话框和非模式(modeless)对话框有什么区别?' v9 o) e3 i- T5 C

/ Y( c0 g( d2 H+ z' L" d( m% {  附 录  常用函数的包含文件

C语言编程常见问题解答.rar

545.07 KB, 下载次数: 6, 下载积分: 威望 -5

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!
$ J5 M! I! U8 V9 E) j
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 23:30 , Processed in 0.187500 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表