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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

* U$ `8 h5 k7 C  第21章  Windows
9 z" s7 X2 b. {2 Z) F* k/ \    * t" y- K! X) [% t: l
  21.1  可以在Windows程序中使用printf()吗?
8 ^! j" ?( h6 J, Z$ [0 S* h" Z  21.2  怎样在Windows程序中建立一个延时器?8 a; r1 O; V/ ?2 R+ {9 S0 L
  21.3  什么是句柄?
/ R! h9 B/ b0 h* N  21.4  怎样终止一个Windows程序?  . ~- l. H1 P" y' Z: J' E: X
  21.5  什么是GDI?通过什么途径使用它?  9 H8 m! |( r( P; N0 f# \' v
  21.6  为什么windows.h很重要?
. m8 ]  a6 c& ~9 v  21.7  什么是Windows SDK?; A+ ^0 ]" H! d9 K; X3 L+ l3 V; E
  21.8  在编写Windows程序时, Microsoft的Windows SDK是必需的吗?
# N2 c# q3 ]1 }% {  21.9  Windows函数和标准DOS函数有什么区别?
# N3 N1 M0 R0 s4 M: u$ Y9 R  21.10 什么是动态链接?
/ Y) V" x- }, E: M; l) o" V  21.11 HANDLE, HWND和HDC之间有什么区别?
5 b# X. _8 [: f  P6 m0 k  21.12 Windows程序对于不同的编译程序是兼容的吗?  O2 B( O4 a& A6 c; E& N
  21.13 Windows总是保存和刷新程序的窗口吗?
8 k$ [% X/ R5 h4 C! E  21.14 怎样确定一个Windows程序的用户区的大小?0 X' V3 A2 C4 _+ t
  21.15 什么是OEM键码?
% b, O+ ]4 p# _# }  _; f9 n  21.16 Windows程序需要考虑OEM键码吗?
" P* T, G. X5 N  21.17 什么是虚拟键码?  
  H* w. g4 r4 V. B, n1 @5 X1 `  21.18 什么是死键?
  |1 k2 q/ c6 y1 Q5 X  21.19 插入标记(caret)和光标(cursor)有什么区别?
. z) E/ c* g. |- R" d' D4 c: N  21.20 在程序用户区外点击鼠标能被捕获吗?4 S  p" ~. g" t1 L2 O
  21. 21 怎样创建一个活动的位图?
8 ~7 l' h& ^2 ^. N$ v9 ~9 O  21.22 怎样在Windows程序中获得日期或时间?. U7 Y; r  ]. L# w3 ]- P
  21.23 怎样在Windows程序中更新标题条(title bar)?
9 z3 }6 T2 T) k& l, m' O) l0 S  21.24 怎样在Windows程序中获得系统颜色?: q2 {% m, O& {. F& h% L
  21.25 什么是系统颜色常量?
9 q9 Q) @9 B3 J  21.26 怎样创建自己的按钮和控件(control)?" Q# N5 S6 e9 ?
  21.27 什么是静态子窗口(static child windows)?3 N( C8 z3 b' e9 W, e' |1 H8 o5 ~
  21.28 怎样创建窗口子类(window sbclassing)?
* V' P8 q5 C/ S  21.29 什么是编辑类(edit class)?
# Z) r7 F2 v8 L  I, [  21.30 什么是列表框类(listbox class)?
+ H# Z8 D3 ^0 r  21.31 怎样在Windows程序中分配内存?+ P" D# L" }# N7 Y% A9 H% e: @: D$ c9 g
  21.32 怎样在Windows程序中分配内存?( g3 [% s* \4 l1 e' ?& A9 o
  21.33 模式(modal)对话框和非模式(modeless)对话框有什么区别?
4 a8 Y. T6 S: e4 o) V" y+ x
! b4 [7 r6 P0 J3 ~: z  附 录  常用函数的包含文件

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

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

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!
7 Z- a1 f0 y* `* M+ H0 p$ P0 g- `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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