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章 Windows
3 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
2016-11-5 11:30 上传
点击文件名下载附件
下载积分: 威望 -5
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