考点一 宏定义
二级考试必考的大家必须明白宏替换只是原样替换
2007 年秋选择第 43 题
若程序中有宏定义行:则以下叙述中正确的是
宏定义行中定义了标志符 的值为整数
在编译程序对 源程序进行编译预处理时用 替换标志符
对 源程序进行编译时用 替换标志符
在运行时用 替换标志符
2007 年秋填空第 15 题
以下程序的输出结果是
!
"
#$%
&'(
')**!(+*执行的时候用 ! 替代 ,用 !"! 替代 ,所以 ')!"!*!"!*!
,-.%/01/'(
2
考点二 递归应用
2007 年秋选择第 42 题
有以下程序
3.%*,
&
..4(
.%))55))4*,)(
&
666.%78.(++递归调用
.%748.4(++递归调用
66,).".4(
2
2
#$%
&
用 5+5 原
文替代 N
(
.%98(666,-.%:01;(
2
程序运行的结果为
46669666<666!
2007 年春季选择第 16 题
以下程序的输出结果是
.(*=)
&6.())) --=(
6666666--=".(="7)(
2
#$()
&
6$)&49<!>?2(
,-.(“01;. ( $9 ) )(
2
2007 年春季选择第 40 题
3.(66*-)+*本函数的功能是:如果 能被 9 或 ! 整除,令 -)-) 除以 9 或除以 ! 的商,
否则—然后递归调用 .%778-*+
&-)(
6.(09)))-)+9(
6.(0!))) -)+!(
6.(778-)(
*-)-(
2
#$()
&#)?-(
6.(#8-)(
,-.(“01-;)(
2
程序运行后的输出结果是( )
A) 2 B) 1 C)3 D) 0
考点三 二维数组
2007 年秋选择第 31 题
若有定义语句:$9>(按在内存中的存放顺序,$ 数组的第 个元素是
递归调用:
3!=1&&3!=2 , 所 以 先 执 行 fun(3-
1,&f1) 和 fun(3-2,&f2) , 然 后 执 行
s=f1+f2.
递归调用:
3!=0, 所以 fun(a,3) 转换成 [0]+fun(&a[1],2),
2!=0, 所以 fun(&a[1],2) 继续转换成 a[1]+fun(&a[2],1)
1!=0, 所以 fun(&a[2],1) 继续转换成 a[2]+fun(&a[3],0)
最后 fun(&a[3],0) 返回 a[3], 所以
fun(a,3)=a[0]+a[1]+a[2]+a[3]
先把数组写成行列式:
1 4 3 2
8 6 5 7
3 7 2 5
4 8 6 1
根据蓝色的提示,我们知道程序
的目的是排序,而且是按列排
序,所以只需判断是从小到大还
是从大到小排序 , 问题就基本解
决了
注意指针数组 int *p[3] 和指向数组
的指针 (int *) p[3] 的区别
、$<666、$966、$96666、$<
2007 年秋选择第 33 题
若有定义语句,$49*,9(则以下语句中正确的是
,)$(666,)$(666,)8$4(666,)8$(
2007 年秋选择第 39 题
有以下程序
-@
3.%$-
&
$-(66A(
6.-%)(7(""
6.-%A)"(A(A""6+*比较字符串的首字符大小 ,并交换字符串的首字符*+
6.%A
&)()A(A)(2
2
#$%
&$-6!)&:B;;BB;;=C;;$$$$;;$$B;2(
.%!(
,-.%:001;<(
2
程序的运行结果是
、=C$$$$666、$$$$=C6666666、=$$B6666、$=$B
2007 年春季选择第 34 题
有以下程序
#$()
&$<<)&&<942&D>!?2&9?4!2&<D>22A'(
.-()(<("")
666666.-(A)(A9(A"")
66666666.-(')A"('<('"")
6666666666.($A$')&)$A($A)$'($')(2/*按列排序*/
666.-()(<(""),-.(“0;$A)(
2
程序运行后的输出结果是( )
)>!?66)D?966)<?!466)>4
2007 年春季选择第 35 题
有以下程序
#$()
&$<<)&&<942&D>!?2&9?4!2&<D>22'(
.-()(9("")
6666666.-(')"('<('"")
.($$'')
&)$($)$''($'')(2
.-()(<("") ,-.(“0;$)(
2
程序运行后的输出结果是( )
)>4666)><94666)4>666)49<>
考点四 字符串处理
2007 年秋选择第 30 题
有以下函数
$$$%$-*
&
$-*)(
E%*""(+*本行的作用是令指针指到 字符串的结束处后面,如*);$A@;则指针
在 @ 后面的字符串结束标记’1F处的后一个字符。*+
77(+*指针往前移一个字符,即指向’1F处 *+
--%7(+*返回 的位置减去 的位置, 的位置即* 字符串的开始位置 *+
2
以下关于 $$$ 函数的功能的叙述正确的是
求字符串 的长度 比较两个串的大小
将串 复制到串 66666666)求字符串 所占字节数
2007 年秋选择第 32 题
有以下程序
3.%$-**,
&
666"",(6,-.%:01;*,(+*, 是二重指针,," 相当于指向第二个字符串*+
2
#$%
&
$-*$)&: -@;;.-;;G3@;;@;2(
.%$(
2
程序的运行结果是
.-666.-666 -@666-@
2007 年秋选择第 35 题
有以下程序
.%$-+*本函数的作用是将字符串转化成数值*+
&
)(
E%*)FF88*)FF&)*"*7HF(""; 2
--%(
2
#$%
&
$-)&H>FFFF*FF<FF*FFFF*FFFF*F2(
,-.%:01;.%(
2
程序的运行结果是
666><666>666!
2007 年秋选择第 38 题
有以下程序
3.%$-*$-*
&E%*I)""(+*本行的目的是将指针移到 的结束标记’1F处 *+
E%*"")*""I)(+*本行的作用是将指针 当前所指的字符复制给 所指的位置,同时
两
个指针都往后移,直到 指向该字符串的结束标记处*+
2
#$%
&$-);$;$$);BB==CC;(
.%$$(6,-.%:001;$$(
2
程序的运行结果是
、$=CCBB==CC666666666、$BB==CC
、$==CCBB==CC66666666、$BB==CCBB==CC
2007 年春选择第 37 题
有以下程序 +*本题主要考查学生对常见字符串处理函数的掌握情况*+
-@