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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
C语言编程常见问题解答. F6 w8 Y, Z3 P  w9 R1 p1 t. Y
【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波
1 C, z( N2 W3 H! e' \% K【出版社】清华大学出版社# S5 ]. c0 Q. u9 f

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

, p* c- w5 r' }+ F7 @( M  附 录  常用函数的包含文件

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

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

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!
+ ~% J. k  J' F- N& x0 [* f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 04:38 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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