第 7 章 用函数实现模块化程序设计
习题与思考
2. 在 C 语言中,函数的隐含存储类别是_____A_____.
A)auto B)static C)extern D)无存储类别
要 点 分 析 : 本 习 题 考 察 变 量 的 存 储 类 别 。C语 言 规 定 , 如 不 指 定 变 量 的 存 储 类 别 , 系 统 默 认 为 自 动 类 型 的 , 即 auto 型 。
3. 以下所列的各函数首部中,正确的是_____C_____.
void play(var:Integer,var b:Integer)
void play(int a,b)
void play(int a,int b)
Sub play(a as integer,b as integer)
要 点 分 析 : 本 习 题 考 察 函 数 的 定 义 。 要 求 函 数 首 部 的 各 个 形 式 参 数 应 分 别 指 出 其 数 据 类 型 。
4. 以下程序的输出结果是_____C_____.
f u n ( i n t x , in t y , i n t z )
{ z =x*x+y*y ; }
vo i d main ( )
{ i n t a = 3 1 ;
f u n ( 5 , 2 , a ) ;
p r i n t f ( " % d " , a ) ; }
A)0 B)29 C)31 D)无定 值
要 点 分 析 :
本 习 题 考 察 形 参 和 实 参 的 关 系 。 函 数 一 旦 发 生 传 值 调 用 , 把 实 参 的 值
传 递 给 形 参 后 , 实 参 的 值 仍 保 留 原 值 。 5. 以下程序的输出结果是_____A_____.
f ( i n t b [ ] , i n t m , i n t n ) { i n t i , s = 0 ;
f o r ( i = m ; i < n ; i = i + 2 ) s = s + b [ i ] ;
r e t u r n s ; }
v o id m a i n ( )
{ i n t x , a [ ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ;
x = f ( a , 3 , 7 ) ; p r i n t f ( " % d \ n " , x ) ; }
A) 10 B) 18 C) 8 D) 15
要 点 分 析 : 本 习 题 考 察 数 组 做 函 数 的 参 数 , 此 时 实 参 为 数 组 名 , 形 参 数 组 不 再 重 新 分 配 存 储 空 间 , 形 参 数 组 共 占 实 参 数 组 所 在 的 存 储 空 间 。 数 组 做 函 数 参 数 是 学 生 出 错 误 比 较 多 的 知 识 点 。
7. 以下程序的输出结果是_____D_____.
i n t f ( )
{ s t a t i c i n t i = 0 ;
i n t s = 1 ;
s + =i ; i + + ;
r e turn s ; }
v o i d m ai n ( )
{ i n t i , a = 0 ;
f o r ( i = 0 ; i < 5 ; i + + ) a + = f ( ) ;
p r i n t f ( " % d \ n " , a ) ; }
A) 20 B) 24 C) 25 D) 15
要 点 分 析 :
本 习 题 考 察 静 态 局 部 变 量 。 静 态 局 部 变 量 的 值 在 调 用 结 束 后 仍 保 持 结
束 后 的 值 。 静 态 局 部 变 量 是 变 量 的 存 储 类 别 的 重 点 , 学 生应该 掌 握 并 应 用 。 8. 以下程序的功能是调用函数 fun 计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int f un ( i n t n )
{ i n t m = 0 , f = 1 , i ;
f o r ( i = 1 ; i < = n ; i + + )
{ m + = i * f ;
f = _____-f_____ ; }
r e t u r n m ; }
v o i d m a i n ( )
{ p r i n t f ( " m = % d \ n " , _____fun(10)_____ ) ; }
要 点 分 析 : 本 习 题 考 察 函 数 的 调 用 。 通 过 编 写fun函 数 求 得 累 加 和 。 9. 以下程序输出的最后一个值是_____120_____.
i n t f f ( i nt n )
{ s t a t ic i n t f = l