EDA365电子论坛网

标题: C语言编程常见问题解答.chm [打印本页]

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

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

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


作者: Pang8343569    时间: 2016-11-5 15:08
学习了!3Q* Q1 o& V9 k: j; d* [3 E, r9 J

作者: yhg-lee    时间: 2016-11-7 10:49
学习了!3Q
作者: Gegu    时间: 2016-11-9 11:10
楼主分享精神可贵!
2 H! i8 Q! ]5 }# A$ Z0 N




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2