- 146
- 0
- 约2.47千字
- 约 4页
- 2017-08-12 发布于江苏
- 举报
编程习题
请将答案填在答题卡内
答题卡
一、选择题 1 2 3 4 5 6 7 C A B A or B(两个一样) D A B 二、填空题 1 2 3 4 5 6 7 2 5 int t0,t1,t?; n1 t0 +t1 t int p=1 8 9 10 11 12 13 14 p*=m int s=0 s+=power(i,k) g=4,g=3,k=6 7,-13
第十章
一、选择题
1.要调用数学函数时,在#include 命令行中应包含 ( )。
A.”stdio.h” B.”string.h” C.”math.h” D.”ctype.h”
2.对于以下递归函数f,调用f(4),其返回值为 ( )。
int f(int n)
{ if (n) return f(n - 1) + n;
else return n;
}
A.10 B.4 C.0 D.以上均不是
3.执行下列程序:
#define MA(x, y) ( x*y )
i = 5;
i = MA(i, i + 1) – 7;
后变量i 的值应为 ( )。
A.30 B.19 C.23 D.1
4.宏定义“#define DIV(a, b) a/b”,经DIV(x + 5, y - 5) 引用,替换展开后是 ( )。
A.x + 5 / y - 5 B.x + 5 / y – 5
C.(x + 5) / (y - 5) D.(x + 5) / (y - 5);
5.定义带参数的宏“#define JH(a,b,t) t = a; a = b; b = t”,对两个参数a、b 的值进行交换,下列表述中哪个是正确的 ( D )。
A.不定义参数a 和b 将导致编译错误 B.不定义参数a、b、t 将导致编译错误
C.不定义参数t 将导致运行错误 D.不需要定义参数a、b、t 类型
6.执行下面程序,正确的输出是 ( A )。
int x = 5, y = 7;
void swap ( )
{ int z ;
z = x ; x = y ; y = z ;
}
int main(void)
{ int x = 3, y = 8;
swap ( ) ;
printf ( %d , %d \n, x , y ) ;
return 0 ;
}
A.3, 8 B.8, 3 C.5, 7 D.7, 5
7.下面说法中正确的是 ( B )。
A.若全局变量仅在单个C 文件中访问,则可以将这个变量修改为静态全局变量,以降低模
块间的耦合度
B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低
模块间的耦合度
C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑变量
生命周期问题
D.静态全局变量使用过多,可那会导致动态存储区(堆栈)溢出
二、填空题
1.执行完下列语句段后, i 值为 ( 2 )。
int i;
int f(int x)
{ static int k = 0;
x += k++;
return x;
}
i=f(f(1));
2.执行完下列语句段后, i 的值为 ( 5 )。
int i;
int f(int x)
{ return ((x0)? f(x-1)+f(x-2):1);
}
i=f(3);
3.下列程序段A 与B 功能等价,请填写程序段B 中相应语句。
程序段A:
int f( int n )
{ if(n=1)
return n;
else
return f(n-1)+f(n-2);
}
程序B:
int f( int n )
{ ( 3 int t0,t1,t?; )
t0=0; t1=1; t=n;
while ( (4)n1 ) {
t = (5)t0+t1 ;
t0 = t1;
t1 = t;
n - -;
}
return (6)t ;
}
4.下面程序用于计算 f(k , n)=1k+2k+…+nk ,其中power(m , n )求mn。请填写程序中相应
语句。
# include stdio.h
int power(int m , int n)
{ int i ;
int p=1 (7) ;
for( i=1 ; i=n ; i++)
(8)p*=m ;
return p ;
}
int f(int k , int n)
{ int i ;
(9) int s=0 ;
for( i=1 ; i=n ; i++)
(10)s+=power(i,
原创力文档

文档评论(0)