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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
C语言编程常见问题解答. t/ u7 b* P6 K0 V7 R
【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波
" s+ S; X1 _& u- T" q' y4 R3 s' I& `. t【出版社】清华大学出版社! t& b3 c# U3 e/ c' C# J6 q7 Q0 O$ \
2 T7 o6 k( F% P: h. b. n

3 T: O- }& Y7 |" W* i/ R" q  V  第l章  C语言& k' L3 b  ~* D
  1. 1   什么是局部程序块(local block)?  * c, P: F; [% R( e+ O2 Z
  1. 2   可以把变量保存在局部程序块中吗?  ! L6 W$ g2 U, x# z9 K
  1. 3   什么时候用一条switch语句比用多条if语句更好?
/ ^6 f8 f$ C) k# ^. U  1. 4   switch语句必须包含default分支吗?" ^/ w) ^6 N( i) l& I# b
  1. 5   switch语句的最后—个分支可以不要break语句吗? " R0 U$ _& ~1 O' a; Z3 f
  1. 6   除了在for语句中之外,在哪些情况下还要使用逗号运算?, F# A2 ^6 u  }$ n) h
  1. 7   怎样才能知道循环是否提前结束了?  
* [+ v! t" y( Z/ |- j  1. 8   goto,longjmp()和setjmp()之间有什么区别?
* F$ Q3 I4 d" B8 m/ m: Y! K' |  1. 9   什么是左值(lvaule)?  
) X0 V! c2 D6 v6 g* ]+ e  1. 10  数组(array)可以是左值吗?  
3 j4 K( D) d! f4 @, D" [) m  1. 11  什么是右值(rvaule)?  % J3 W( c, `' v5 _: S, p. ?
  1. 12  运算符的优先级总能保证是“自左至右”或“自右至左”的顺序吗?  ( S2 v( H6 `$ L$ o" C
  1. 13  ++var和var++有什么区别?  
+ Y) ~% i# A" j% s  1. 14  取模运算符(modulusoperator)“%”的作用是什么?  
# \4 R" `$ g4 n# y4 K2 W                    5 n# w& W. D& m  v. @5 @# c8 D1 X
  第2章  变量和数据存储* c5 a/ B. p- R  s) u/ o( B& P
  2. 1  变量存储在内存(memory)中的什么地方?  
# b: p% S; m* H( F. v( ]  ]$ ]( \2 c  2. 2  变量必须初始化吗?+ @% J: p) O# v  @
  2. 3  什么是页抖动(pagethrashing)?  
6 x$ J- K* l. i' Q  2. 4  什么是const指针?* i3 l! G8 o! R: Y, b
  2. 5  什么时候应该使用register修饰符?它真的有用吗?
2 U" M) b; W* g6 [2 `1 b  2. 6  什么时候应该使用volatile修饰符?  
# E& i  C! ^# a! {: }  2. 7  一个变量可以同时被说明为const和volatile吗? ; P2 G0 E0 J3 ~8 g( a) _9 e5 o
  2. 8  什么时候应该使用const修饰符?3 e+ G# M7 F7 w- e! n
  2. 9  浮点数比较(floating—point comparisons)的可靠性如何?* H" u4 g$ ?4 G; Y1 R
  2. 10 怎样判断一个数字型变量可以容纳的最大值?  ; g$ r2 `" G, d$ ^6 {% v
  2. 11 对不同类型的变量进行算术运算会有问题吗?  % C6 w: m1 X5 @0 Y
  2. 12 什么是运算符升级(operator promotion)?9 B/ }" J2 R) f4 H
  2. 13 什么时候应该使用类型强制转换(typecast)?  
+ x9 C8 t- c/ k, }  2. 14 什么时候不应该使用类型强制转换(typecast)? 9 C- N6 q! W. Q# s, |
  2. 15 可以在头文件中说明或定义变量吗?  9 E+ z4 H1 i, {* F# m9 x# @" X; V
  2. 16 说明一个变量和定义一个变量有什么区别?  ; W2 Z) r4 D7 s
  2. 17 可以在头文件中说明static变量吗?  
1 G% s! ]# v& B. ?" p6 ~  2.18 用const说明常量有什么好处?  % _- C" ]; e) h# z% u* Y
  第3章  排序与查找5 ^/ R0 o% {( `+ p' f4 c! _
  排 序
& j# T+ s7 z% P  查 找/ U( h: e8 J# X4 a1 n8 y  c
  排序或查找的性能+ y" \. w; S! c8 y
  3.1  哪一种排序方法最方便?
# }( W6 v; ?2 Q  3.2  哪一种排序方法最快?: ~1 j' S, h1 h( E) ^  E6 S3 V+ z
  3.3  当要排序的数据集因太大而无法全部装入内存时,应怎样排序?  
2 {5 f3 |/ S, s+ W7 d  3.4  哪一种查找方法最方便?4 v( t* a1 U+ u) a7 R
  3.5  哪一种查找方法最快?8 Z- r$ N$ b3 ?0 D: ~
  3.6  什么是哈希查找?& N* B! o( p8 x
  3.7  怎样对链表进行排序?
1 ^$ I# O& T8 o  3.8  怎样查找链表中的数据?
4 ?( j/ S' K+ S4 l  ?( I% R  第4章  数据文件% g9 ]" G/ ]) N! {+ \- N
  4.1  当errno为一个非零值时,是否有错误发生?  # y& g5 Q  A, h) Q
  4.2  什么是流(stream)?
* A& U4 f1 }2 A" _8 W  4.3  怎样重定向—个标准流?
6 L3 Z$ G% w& }  4.4  怎样恢复一个重定向了的标准流?" k1 x3 m) A+ e; R. g
  4.5  stdout能被强制打印到非屏幕设备上吗?
7 U0 X( W  z9 E, L1 M" K  4.6  文本模式(text mode)和二进制模式(binary mode)有什么区别?  
3 g9 t- k( N3 Y# ?  4.7  怎样判断是使用流函数还是使用低级函数?$ s+ x. ?! ^& E7 V
  4.8  怎样列出某个目录下的文件?! g( g/ r9 V& O! Y9 w+ d0 g
  4.9  怎样列出—个文件的日期和时间?
, T$ o) x0 `4 m7 P  4.10 怎样对某个目录下的文件名进行排序?  % z. m; _- z6 M2 h2 z) N
  4.1l 怎样判断一个文件的属性?  " P% _3 b7 v1 I1 ]4 X5 b5 U9 R
  4.12 怎样查看PATH环境变量?
% j1 J6 t9 a6 d/ Z3 q4 t8 l# k7 j  4.13 怎样打开一个同时能被其它程序修改的文件?  $ w% V* \3 A4 K* K0 t) A9 W
  4.14 怎样确保只有你的程序能存取一个文件?  
  s! L% I( x" v1 @6 i" F; s  4.15 怎样防止其它程序修改你正在修改的那部分文件内容?  
% P+ ^. `4 _- m! F  4.16 怎样—次打开20个以上的文件?
! P2 a7 b9 B4 x  4.17 怎样避开"Abort,Retry,Fail"消息?
- ^. F5 k. P6 \  4.18 怎样读写以逗号分界的文本?  
) F, @' i: ^# b# T  第5章  编译预处理; N/ V4 w% F$ R" W7 W# f
  5.1  什么是宏(macro)?怎样使用宏?    f. e6 p7 q$ \+ a; }0 C' T
  5.2  预处理程序(preprocessor)有什么作用?  8 b1 V' V; d) g8 {$ v  w4 s. \
  5.3  怎样避免多次包含同—个头文件?0 E/ j; {0 d1 A1 R( e
  5.4  可以用#include指令包含类型名不是“.h”的文件吗?
/ ^$ Z2 C4 F! ^3 Q3 i9 _  5.5  用#define指令说明常量有什么好处?) p$ z$ D) n. D/ Z3 K9 v
  5.6  用enum关键字说明常量有什么好处?
1 f. a) B+ ]- P- D& J, C5 L  5.7  与用#define指令说明常量相比,用enum关键字说明常量有什么好处?1 c0 m3 ]" M  j/ x( ~* ?
  5.8  如何使部分程序在演示版中失效?
& V1 o3 i$ U: q- H  5.9  什么时候应该用宏代替函数?
# P3 [9 C0 y1 b9 D5 L' o  5.10 使用宏更好,还是使用函数更好?
4 d, n! [% v' A, E4 c  5.11 在程序中加入注释的最好方法是什么?
- R3 |" i: b; Q, z  5.12 #include<file>和#include“file”有什么不同?
9 ~4 P2 Q5 Y: h% Y  5.13 你能指定在编译时包含哪一个头文件吗?
% \% k- w* |0 I  ^1 h9 ^7 ]  5.14 包含文件可以嵌套吗?
$ T7 _% W! }, d; e% C2 @7 d+ W  5.15 包含文件最多可以嵌套几层?  5 @; _0 t- a) |( X
  5.16 连接运算符“##”有什么作用?
# A; o+ g0 ^9 D- d; ?" f- {% {$ P  5.17 怎样建立对类型敏感的宏?  $ b/ g, a5 L$ E3 H) ~# k
  5.18 什么是标准预定义宏?  : i  y  F  u) z
  5.19 怎样才能使程序打印出发生错误的行号?
; c. o# e) V; `, j6 V5 B  5.20 怎样才能使程序打印出发生错误的源文件名?
# y! S( o# H( \5 B; G: m  5.2l 怎样判断一个程序是用C编译程序环是用C++编译程序编译的?
: x8 z- @. a/ w3 [% u; z$ e  5.22 预处理指令#pragma有什么作用?
# i% J" M" k' J+ i' O6 E  5.23 #line有什么作用? # l! U: w$ Y& D/ o3 F5 x) m! U
  5.24 标准预定义宏_FILE_有什么作用?7 E) n" q( u0 C! M7 B: E7 |* A
  5.25 怎样在程序中打印源文件名?   y2 S- O, N" c: t4 s* m
  5.26 标准预定义宏_LINE_有什么作用? 8 }" x1 ^; Y6 r  f3 y! @) c
  5.27 怎样在程序中打印源文件的当前行号?
9 r' u; v% p; r' x) x/ Q  5.28 标准预定义宏_DATE_和_TIME_有什么作用?
- G9 h7 A$ i: `* l9 g  F) b0 Z* _  5.29 怎样在程序中打印编译日期和时间?  
  D: l" V* ?* y  o, N! J  5.30 怎样判断一个程序是否遵循ANSIC标准?% s: `! z, Z% P5 |
  5.31 怎样取消一个已定义的宏?
! r) x: W$ g0 m( V5 J( Q5 q  5.32 怎样检查一个符号是否已被定义?  , S6 X' \+ t9 j; b
  5.33 C语言提供哪些常用的宏?
! R* Q. m+ b& ]3 H0 }3 Y' S% i) }    第6章  字符串操作# k) Q+ C! C* o: s6 E# u
  6.l  串拷贝(strcpy)和内存拷贝(mEMCpy)有什么不同?它们适合于在哪种情况下使用?, Y) i7 v; v, m$ R2 W" ^3 f0 o
  6.2  怎样删去字符串尾部的空格?# d. f* t- a  e, q
  6.3  怎样删去字符串头部的空格?/ j% U# y( b6 o5 W( g  v- R
  6.4  怎样使字符串右对齐?
8 A6 e' x% }  L6 [  6.5  怎样将字符串打印成指定长度? . s  A+ @! n3 n( a
  6.6  怎样拷贝字符串的一部分? ; `2 w5 R# u1 ^# a
  6.7  怎样将数字转换为字符串? # L0 m5 z' ?5 c
  6.8  怎样将字符串转换为数字? 2 V: [& o3 a4 y  s/ A
  6.9  怎样打印字符串的一部分?
) i$ b5 ~2 t/ y/ E* p: z  6.10 怎样判判断两个字符串是否相同?" q# ]" _! M, @9 v4 z6 |
   第7章  指针和内存分配2 W7 l8 l2 c, E. N/ u, k6 {* C4 J; z% t
  7.1  什么是间接引用(indirection)? , `) P+ O9 ]& X" f
  7.2  最多可以使用几层指针?  5 T/ @1 N' D, _4 ^8 g( x% v
  7.3  什么是空指针?  - p- ?9 `- ]6 F; W$ {$ [, q
  7.4  什么时候使用空指针?8 L4 E5 z$ D/ b  K5 A
  7.5  什么是void指针?
1 \( X; F& h2 T2 E8 W  7.6  什么时候使用void指针?
! e5 E; I0 }6 o/ U5 A  7.7  两个指针可以相减吗?为什么? + s# }$ Q! M* L- _! R
  7.8  把一个值加到一个指针上意味着什么?# q8 Y& _5 b- d3 _$ _" J$ f1 U
  7.9  NULL总是被定义为0吗?  
$ J8 I- j6 |' V+ r  7.10 NULL总是等于0吗?  
! G2 D9 q. W$ x* \  7.11 用指针作if语句的条件表达式意味着什么?
# h. z  F7 I- L/ K8 x  7.12 两个指针可以相加吗?为什么?+ O* P/ a" t( H5 h
  7.13 怎样使用指向函数的指针?
7 U( V# }# I# w/ p3 F/ F  7.14 怎样用指向函数的指针作函数的参数?' B( |/ f1 W' C- H; `9 ?
  7.15 数组的大小可以在程序运行时定义吗?0 E* F! e$ u. H
  7.16 用malloc()函数更好还是用calloc()函数更好?) l; Z) r6 |; V+ S$ M3 b1 S* S0 W
  7.17 怎样说明一个大于64KB的数组?% F: B" r1 S5 ~0 Q: c2 [
  7.18 far和near之间有什么区别?
) ~9 ~9 J* I# D1 i) M6 t- i  7.19 什么时候使用far指针?
+ {6 I4 ?/ [; Q4 s  7.20 什么是栈(stack)?  $ p9 k' J, z7 m' w$ q7 |5 i
  7.21 什么是堆(heap)?3 i2 f; H* B5 ]3 M# a0 z
  7.22 两次释放一个指针会导致什么结果?
" }% \8 u% I/ C7 \. f  7.23 NULL和NUL有什么不同?4 U! H, X5 b, x: v% n. r1 w& G) z
  7.24 为什么不能给空指针赋值?什么是总线错误、内存错误和内存信息转储?
/ O/ P8 w0 p# ?  W  7.25 怎样确定一块已分配的内存的大小?
# V- ]" P( {5 A7 \  7.26 free()函数是怎样知道要释放的内存块的大小的? # ]$ \- ]) i5 A# f- Z$ q' M  o: L
  7.27 可以对void指针进行算术运算吗?  
, p8 C3 j# ^3 b9 T! k, `2 K4 K! z  7.28 怎样打印一个地址?7 n" v) O) {9 J0 M# X6 c
  第8章  函数
( g( H* [: ~8 D0 ~, q  8.1  什么时候说明函数?  3 X6 a6 Z+ S* n" {6 U0 `
  8.2  为什么要说明函数原型?
' L& G/ c2 \7 B2 g/ B+ r  8.3  一个函数可以有多少个参数? 4 L+ b. u- q( A- E" L: F
  8.4  什么是内部函数?  
# z2 d, T5 i; d  @  8.5  如果一个函数没有返回值,是否需要加入return语句?
8 X, z& x% l' R. L  8.6  怎样把数组作为参数传递给函数?  
& E- F4 B- R4 T2 q3 `. B% f  8.7  在程序退出main()函数之后,还有可能执行一部分代码吗?
. C! ~  d# X; @4 a0 D" d  S  8.8  用PASCAL修饰符说明的函数与普通C函数有什么不同?
. a% o4 {8 L7 P  8.9  exit()和return有什么不同? .
) R- u% j9 O' {$ N" u  第9章  数组: z0 `6 q! Q; h( R5 k0 L
  9.1  数组的下标总是从0开始吗?  
" P/ }% G, f: Q1 q% q1 D6 `  9.2  可以使用数组后面第—个元素的地址吗?  . n7 n* [' Y3 R; Z2 r4 V
  9.3  为什么要小心对待位于数组后面的那些元素的地址呢?  " v# [7 j8 w0 C9 p
  9.4  在把数组作为参数传递给函数时,可以通过sizeof运算符告诉函数数组的大小吗?  
$ o  w' q, Z( [, u. Y  9.5  通过指针或带下标的数组名都可以访问数组中的元素,哪一种方式更好呢?' K6 H4 p. F! d
  9.6  可以把另外一个地址赋给一个数组名吗?  : j9 \  [) v4 m5 _8 n- F
  9.7  array_name和&array_name有什么不同?  
" y: ?  a9 U5 z. |; _, y  9.8  为什么用const说明的常量不能用来定义一个数组的初始大小?  2 i- W; t0 W* u. S  z
  9.9  字符串和数组有什么不同?
3 j6 n: q6 q# ?' I  第10章  位(bit)和字节(byte)4 }  g; }+ n+ v/ m2 g' @1 g
  10.1  用什么方法存储标志(flag)效率最高?
, F* R8 I) D( k1 X1 w" Q/ z$ d  10.2  什么是“位屏蔽(bit masking)”?
( A% l" {7 |" h+ x  10.3  位域(bit fields)是可移植的吗?, U, e8 }; f3 ?0 u6 s3 Q1 W
  10.4  移位和乘以2这两种方式中哪一种更好?
% ?4 i7 P0 U- J- H  }  10.5  什么是高位字节(high-order byte)和低位字节(low-order byte)? , M4 J" H. X7 Z( M: N) P, ]; F3 o. v
  10.6  16位和32位的数是怎样存储的?
7 z- k& S1 @8 h) ~9 ]+ H3 T    ! w& Q4 P2 ~: A9 ?
  第11章  调试( [6 K" L. b$ C+ D9 j5 p
  11.1  如果我运行的程序挂起了,应该怎么办?
- ^0 G) u8 D: y6 A$ X  11.2  如何检测内存漏洞(leak)?$ i& c; s( s6 s+ n
  11.3  调试程序的最好方法是什么?6 B; ]* ]9 o# \, W( D& }
  11.4  怎样调试TSR程序?
/ r( g, \2 w( Y% f  K( e/ G  11.5  怎样获得一个能报告条件失败的程序?
5 \7 C  j: M6 N; W  第12章  标准库函数) w- p2 v' H; M8 c
  12.1  为什么应该使用标准库函数而不要自己编写函数?& K" q- `+ S% I2 Q/ U' S/ M- t
  12.2  为了定义我要使用的标准库函数,我需要使用哪些头文件? 3 _3 _$ ^+ l  Y  Q
  12.3  怎样编写参数数目可变的函数?# N' z2 W& Q+ O0 _& E( S. K
  12.4  独立(free—standing)环境和宿主(hosted)环境之间有什么区别? . Q7 D+ E5 K2 X& y; V
  12.5  对字符串进行操作的标准库函数有哪些?
1 t9 {0 @+ Y( C: y7 m  12.6  对内存进行操作的标准库函数有哪些?: w8 T, t0 r3 x4 ?' O9 V4 O. u: Q
  12.7  怎样判断一个字符是数字、字母或其它类别的符号?  Z2 _. t, Y" S
  12.8  什么是“局部环境(locale)”?
7 ~: ?' y1 I6 j3 s+ `3 W  12.9  有没有办法从一个或多个函数中跳出?
% ?4 c: D# {3 l$ [5 O" T- S  12.10 什么是信号(signal)?用信号能做什么?
; Y! A& U) f1 ~0 f0 ?' }3 y  12.11 为什么变量名不能以下划线开始?% a' t( ^& y" G, c6 K& {
  12.12 为什么编译程序提供了两个版本的malloc()函数?( _, J4 a' R; {7 v- h. o/ v
  12.13 适用于整数和浮点数的数学函数分别有哪些?  
+ _2 a9 D" D. M0 E: y+ c  12.14 什么是多字节字符(multibyte characters)?  
6 \* M7 g6 P2 m" c, B; z4 f: K  12.15 怎样操作由多字节字符组成的字符串?
# h/ N& h7 \  d( T+ v  第13章  时间和日期+ J9 W1 V( w, K
  13.1  怎样把日期存储到单个数字中?有这方面的标准吗?5 ]3 n: D' ]2 m  r8 N
  13.2  怎样把时间存储到单个数字中?有这方面的标准吗?
6 o/ O) A& D) p6 B; X8 |+ T) b- d6 a: B  13.3  为什么定义了这么多不同的时间标准?
: W3 h# e. D) y9 D1 H  13.4  存储日期的最好方法是哪一种?( W. g2 Q! Z) f* `
  13.5  存储时间的最好方法是哪一种?6 i  @. p. p  f3 X+ h
  第14章  系统调用
& h) ?$ o  v: G6 f  14.1  怎样检查环境变量(environment variables)的值?5 K. i$ d  ^2 ]/ |
  14.2  怎样在程序中调用DOS函数?
# m  Q- f* W, S# e8 ^3 t  14.3  怎样在程序中调用BIOS函数?
! }% V1 \2 C, d/ ]" B. P& d  14.4  怎样在程序中存取重要的DOS内存位置?
  _/ W. G4 w+ s8 \9 u* y% p* B  14.5  什么是BIOS?
" \, v0 F5 h: s% g! A7 o  14.6  什么是中断?+ E7 h" ?9 f# u3 h. X9 F7 K+ n
  14.7  使用ANSI函数和使用BIOS函数,哪种方式更好?  
* f/ `( e/ }3 s- K  14.8  可以通过BIOS把显示模式改为VGA图形模式吗?
) k+ t  t! n2 [+ Z  B2 W, [; w  ^  14.9  运算符的优先级总能起作用吗(从左至右,从右至左)?
+ S0 M/ c9 O- V( P: m  B  14.10 函数参数的类型必须在函数头部或紧跟在其后说明吗?为什么?
& V) o9 T* o5 F' B  14.11 程序应该总是包含main()的一个原型吗?
4 m9 k' U1 z4 j/ d- D! k: Q! V7 ~  14.12 main()应该总是返回一个值吗?
3 I( P" e7 }  {  14.13 可以通过BIOS控制鼠标吗?  / _1 q% }" A7 }4 w5 [5 X
  第15章 可移植性
' a7 ]! ^0 g% l3 h  15.1  编译程序中的C++扩充功能可以用在C程序中吗?  & X% C5 m& B) |  i; s9 @9 k' W
  15.2  C++和C有什么区别?0 S: b; [  `5 R. \" ~" V0 {% ~
  15.3  在C程序中可以用“∥”作注释符吗?  # O* S/ g7 ~3 R" j& J% T6 l
  15.4  char,short,int和long类型分别有多长?3 c4 G( @  v6 u. R
  15.5  高位优先(big-endian)与低位优先(little—endian)的计算机有什么区别?5 Y/ l* b0 t8 d; P6 r# t
  
$ j* l6 d0 r: g: X7 s& O! c5 W  第16章 ANSI/ISO标准
/ l3 E/ d6 H5 b4 a  16.1  运算符的优先级总能起作用吗?
3 k# M4 X, J) ^/ Z7 w4 ^  16.2  函数参数类型必须在函数参数表中或紧跟其后的部分中说明吗?2 ?# k- K1 N, R$ n- y
  16.3  程序中必须包含main()的原型吗?  # P) _- E% d# V4 z& ?: R; z
  16.4  main()应该总是返回一个值吗?  ) B3 ~0 ^5 T8 S' G. X) w
  第17章  用户界面——屏幕和键盘
) y( n/ j9 I+ C' Y1 m  17.1  为什么直到程序结束时才看到屏幕输出?
) U  b4 Q% L' P3 S" |  17.2  怎样在屏幕上定位光标?5 y: g: f& m1 X
  17.3  向屏幕上写数据的最简单的方法是什么?
: R+ S  ?4 _! ?' O  17.4  向屏幕上写文本的最快的方法是什么?" e9 X, ~2 K& r( ~! \( ?
  17.5  怎样防止用户用Ctr+Break键中止程序的运行?  + A1 l. t2 m7 I  J1 X) s
  17.6  怎样才能只得到一种特定类型的数据,例如字符型数据?
5 m" |& i" @! G& L1 [; B  17.7  为什么有时不应该用scanf()来接收数据?  . [4 ?3 j8 ]9 @5 X9 ]6 S
  17.8  怎样在程序中使用功能键和箭头键?
9 y" b# N5 {0 P& }# _, F; l6 d  17.9  怎样防止用户向一个内存区域中输入过多的字符?
2 F; L7 ]: Y1 L* J6 L5 |6 M3 B, T  17.10 怎样用0补齐一个数字?' h* h2 Q, R, l, T% \
  17.11 怎样才能打印出美元一美分值?
! P( t3 G0 m0 l1 u  17.12 怎样按科学记数法打印数字?
" V6 C7 B; t+ l/ F* F9 ]/ Z* h  17.13 什么是ANSI驱动程序?8 m% {* A; m- O5 E: u1 Y- O1 H
  17.14 怎样通过ANSI驱动程序来清屏?  0 Z+ x" q) g" y% ]: @3 H
  17.15 怎样通过ANSI驱动程序来存储光标位置?    g: C; h# x! S# s
  17.16 怎样通过ANSI驱动程序来恢复光标位置?  8 Y" V+ R. b* l0 H: S
  17.17 怎样通过ANSI驱动程序来改变屏幕颜色?  : V* P, s' w, y' e. u- p4 Z/ L
  17.18 怎样通过ANSI驱动程序来写带有颜色的文本?  
* D2 P; O- ~( K  17.19 怎样通过ANSI驱动程序来移动光标?  . k5 U5 w7 Y2 N; I# N( l0 p; u
  第18章  程序的编写和编译
4 s/ b7 W  g$ e1 k! ?* s. K  18.1  程序是应该写成一个源文件还是多个源文件?
/ n  c8 C6 l' l9 \  18.2  各种存储模式之间有什么区别?! X! j$ P( X* j5 P; T, h
  18.3  最常使用的存储模式有哪些?
/ a7 R8 }" U1 r( B' m# G  18.4  应该使用哪种存储模式?2 v* I1 K6 f1 Z; O
  18.5  怎样生成一个".COM"文件?8 m2 n' Q7 p' p  Q
  18.6  ".COM"文件有哪些地方优于".EXE"文件?  
1 L# A# V5 j# Q- g5 N! X# s  18.7  当一个库被连接到目标上时,库中的所有函数是否都会被加到一个".EXE"文件中?/ C1 w+ r7 `' g4 k& `/ [/ e
  18.8  可以把多个库函数包含在同一个源文件中吗?
6 c6 h0 y/ p" Q  18.9  为什么要建立一个库?5 r3 `6 X3 C* s% C
  18.10 如果一个程序包含多个源文件,怎样使它们都能正常工作?
  ^2 b7 u( ?; N" @  18.11 连接过程中出现"DGROUP:group exceeds 64K"消息是怎么回事?  
* R& w% Y* K( j/ F6 f/ Q+ h  18.12 怎样防止程序用尽内存?0 u. V7 y4 v+ g5 w1 Y
  18.13 如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢?3 a6 `% x' v- V# H' n8 h' H
  18.14 怎样才能使DOS程序获得超过640KB的可用内存呢?  % P$ `7 d, {! q+ Q$ h* I
  18.15 近程型(near)和远程型(far)的区别是什么?5 @$ o8 m' q0 I* U1 _+ [
  第19章编程风格和标准; ]. S$ j1 [) W# |( e5 ^
  19.1  可以在变量名中使用下划线吗?; `( k9 L. \4 o, g: [5 R+ Z% @
  19.2  可以用变量名来指示变量的数据类型吗?
: h* d4 L) q  U1 L) w  19.3  使用注释会影响程序的速度、大小或效率吗?- I4 M: K8 k- p4 @6 k" N* \
  19.4  使用空白符会影响程序的速度、大小或效率吗?
1 V$ |" m5 u0 Y  O9 u& V4 O+ ]) z  19.5  什么是骆驼式命名法?  e3 @* S5 u" ?# N) i" k: D# i
  19.6  较长的变量名会影响程序的速度、大小或效率吗?% i3 U+ e; F& u1 `: j% w. d0 p
  19.7  给函数命名的正确方法是什么?4 m  c% n% V9 n
  19.8  使用大括号的正确方法是什么?
4 D6 [8 x0 ]7 C! _1 w  19.9  一个变量名应该使用多少个字母?ANSI。标准允许有多少个有效字符?4 [, d% c, l6 p  y# I
  19.10 什么是匈牙利式命名法?应该使用它吗?
. s$ j; u, O# ]8 a# ^. J5 H9 w7 p/ x  19.11 什么是重复处理(iterative processing)?* F9 J, F. {% b" z& [+ Z( T; A, z
  19.12 什么是递归(recursion)?怎样使用递归?  
6 @/ H: x9 h8 L: g+ |! f* u  19.13 在C语言中,表示真和假的最好方法是什么? 0 x4 d& X$ x: y* H  g
  19.14 空循环(null loops)和无穷循环(infinite loops)有什么区别?  
; _/ p* ]% T+ c% E' W  19.15 continue和break有什么区别?  
+ L% @. k1 ], Q+ f" I8 o  第20章  杂项(Miscellaneous)" t+ l; a0 N4 |4 ^& m3 |; P$ c
    1 N& y# Q1 Z7 @" `! a' d) V
  20.1  怎样获得命令行参数?
( J5 ]6 Y5 ~0 b) x  20.2  程序总是可以使用命令行参数吗?- n. J8 H5 J, Y. L( M) o8 x
  20.3“异常处理(exception handling)”和“结构化异常处理(structured exception handling)”有什么区别?1 n& V; a, |6 L! B4 d
  20.4  怎样在DOS程序中建立一个延时器(delay timer)?  9 b3 L4 z4 N8 f
  20.5  Kernighan和Ritchie是谁?  
  n& P% ^4 K/ H8 S  20.6  怎样产生随机数?9 c3 a  N' u% t- K8 I
  20.7  什么时候应该使用32位编译程序?
7 |9 _& Q% I6 t& O( E! h. q2 w  20.8  怎样中断一个Windows程序?1 l6 P+ u, \; n8 P# y
  20.9  为什么要使用静态变量?
6 q# K6 j( v( c7 J8 s; j  20.10 怎样在一个程序后面运行另一个程序?0 E5 o, f; a$ C/ G% c
  20.11 怎样在一个程序执行期间运行另一个程序?! K3 X% z3 X3 u& W& s
  20.12 怎样把数据从一个程序传给另一个程序?
  I2 _$ S% o$ o2 z6 A+ u; T  20.13 怎样判断正在运行的程序所在的目录?5 f5 P! j# l3 j, R- R8 u8 M
  20.14 怎样找到程序中的重要文件(数据库,配置文件,等等)?
9 T8 E! C/ v9 z4 z: ]! W( W  20.15 本书的有些例子程序有许多缺陷,为什么不把它们写得更好?8 [; E+ L8 t9 l: E6 h, A& l9 N
  20.16 怎样使用Ctr+Break失效?) e; k1 d' f' m4 C# d) [
  20.17 可以使热启动(Ctrl+Alt+Delete)失效吗?  
, v! z. K3 z1 E4 }  20.18 怎样判断一个字符是否是一个字母?1 e" S+ z* S: O/ o, D
  20.19 怎样判断一个字符是否是一个数字?8 B8 a2 H7 Z& A. e/ U1 H4 J6 ^
  20.20 怎样把一个十六进制的值赋给一个变量?
6 e5 W( h1 l9 `8 M8 @' S# P6 [' K' F  20. 21 怎样把一个八进制的值赋给一个变量?
( I; i  p" X9 J) N  20.22 什么是二进制?0 Z8 R, \, e- }1 Q! Z
  20.23 什么是八进制?2 e: T) E7 h7 a
  20.24 什么是十六进制?
" _5 g+ Q8 I1 f7 y' V" W0 x  V  20.25 什么是换码符(escape characters)?
$ i( q, `- T! V! F# B& K( o( T% O5 [( d3 {: k
  第21章  Windows6 v: Z/ a1 a, u0 z
    : L/ h) T9 n8 V; T# o/ X* ?/ \
  21.1  可以在Windows程序中使用printf()吗?
" y' F. m4 G- j1 |: r. M  21.2  怎样在Windows程序中建立一个延时器?, o$ ~% J' o7 j1 |# U5 h# [
  21.3  什么是句柄?2 U1 o+ I; ?+ W
  21.4  怎样终止一个Windows程序?  " ^* a; j5 d0 D) X; F* H1 e- H
  21.5  什么是GDI?通过什么途径使用它?  
; C' \3 [  [2 N3 v  21.6  为什么windows.h很重要?
. [; _% N" ?! f  21.7  什么是Windows SDK?
- S% H( c. e# Q4 l8 o  21.8  在编写Windows程序时, Microsoft的Windows SDK是必需的吗?
4 O2 W# ^9 K! F8 q/ V( n- K9 i. K  21.9  Windows函数和标准DOS函数有什么区别?' m; b. C! l8 z
  21.10 什么是动态链接?6 L( @5 H( W+ n1 U
  21.11 HANDLE, HWND和HDC之间有什么区别?1 U1 Z  Z7 Z/ Z8 Z) A( C/ [
  21.12 Windows程序对于不同的编译程序是兼容的吗?/ v1 `4 h! i" i5 q5 i
  21.13 Windows总是保存和刷新程序的窗口吗?8 m' v' `1 E$ U" j. C
  21.14 怎样确定一个Windows程序的用户区的大小?# _0 x1 r' z/ f0 P& S
  21.15 什么是OEM键码?7 E' ], E, s) g' _
  21.16 Windows程序需要考虑OEM键码吗?6 a) F. S% Z  F9 p) }( f
  21.17 什么是虚拟键码?  ' ^6 f  B3 @# s  M$ \
  21.18 什么是死键?, K7 a5 m) c# p- ?! z7 ]
  21.19 插入标记(caret)和光标(cursor)有什么区别?) {$ Z  T' p  Q
  21.20 在程序用户区外点击鼠标能被捕获吗?
: o# ^3 Z9 ?) ]4 L1 T  21. 21 怎样创建一个活动的位图?$ O; s9 M0 x2 m( Z! p
  21.22 怎样在Windows程序中获得日期或时间?- _8 r8 l- F+ o, \
  21.23 怎样在Windows程序中更新标题条(title bar)?
# h2 c3 n$ c/ v1 Z7 G  21.24 怎样在Windows程序中获得系统颜色?
' }1 s8 h1 y+ K3 f+ J7 K  21.25 什么是系统颜色常量?
# F3 D' C" J1 a: n7 M  21.26 怎样创建自己的按钮和控件(control)?$ W# c' m3 M: e+ M$ f9 e2 l! A3 L
  21.27 什么是静态子窗口(static child windows)?
/ w1 e3 n/ H4 T0 E; F& k+ k  21.28 怎样创建窗口子类(window sbclassing)?
1 {2 w& R, Z, @  21.29 什么是编辑类(edit class)?
* A) }' D& f& @  {  21.30 什么是列表框类(listbox class)?+ c  L! W4 l& a; m
  21.31 怎样在Windows程序中分配内存?
2 \2 ]* T' V. k$ m/ ]* e  21.32 怎样在Windows程序中分配内存?! L. b- T9 s+ u) p
  21.33 模式(modal)对话框和非模式(modeless)对话框有什么区别?
7 p" l+ f; k) u2 @! X, s" R3 y+ ]0 K% S
  附 录  常用函数的包含文件

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

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

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!& y7 A. g  J# c2 @- c
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-10 19:02 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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