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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

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

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

该用户从未签到

4#
发表于 2016-11-9 11:10 | 只看该作者
楼主分享精神可贵!
, g) U" d6 X2 i# C1 k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 15:13 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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