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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

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

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

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!- I( n3 k, m7 B' i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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