编程习题.docVIP

  • 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)

1亿VIP精品文档

相关文档