2022年自学考试《C语言程序设计》试题及答案8
【2.36】下面程序的输出结果是____。
int w=3;
main()
{int w=10;
printf('%dn',fun(5)*w);
}
fun(int k)
{if(k==0)return(w);
return(fun(k-1)*k);
}
A)360 B)3600 C)1080 D)1200
【2.37】下面程序的输出结果是____。
#include
funa(int a)
{int b=0;
static int c=3;
a=c++,b++;
return(a);
}
main()
{int a=2,i,k;
for(i=0;i<2;i++)
k=funa(a++);
printf('%dn',k);
}
A)3 B)0 C)5 D)4
【2.38】下面程序的输出结果是____。
#include
void num()
{extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
main()
{int a=7,b=5;
x=a-b;
y=a+b;
num();
printf('%d,%dn',x,y);
}
A)12,2 B)5,25 C)1,12 D)输出不确定
【2.39】下面程序的输出结果是____。
main()
{int a=2,i;
for(i=0;i<3;i++)
printf('%4d',f(a));
}
f(int a)
{int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
A)7 7 7 B)7 10 13 C)7 9 11 D)7 8 9
【2.40】下面程序的输出结果是____。
#include
try()
{static int x=3;
x++;
return(x);
}
main()
{int i,x;
for(i=0;i<=2;i++)
x=try();
printf('%dn',x);
}
A)3 B)4 C)5 D)6
【阅读程序题参考答案】
【2.36】参考答案:B
注释:函数fun进行了递归调用,实际进行的运算是5×4×3×2×1×3×10。主函数内说明的局部变量w屏蔽了外部变量w,所以在主函数中外部变量w是不可见的,在调用printf函数时表达式'fun(5)*w'中w的值是10。
【2.37】参考答案:D
注释:main函数三次调用了函数funa,在funa函数中的静态变量c仅在第一次调用时进行了初始化,再次调用时不再对静态变量赋初值。
【2.38】参考答案:B
注释:main函数和num函数中都说明了变量a和b,由于它们是内部变量,所以它们分别在说明它们的函数内有效。外部变量x和y在函数num之后被说明,而在num函数中又要引用它们,所以在num函数中用关键字'extern'说明变量x和y是一个外部变量,也就是通知计算机这两个变量在fun函数以外被说明,此处不是定义两个int型变量。
【2.39】参考答案:D
注释:函数f中的变量c是静态变量,仅在第一次调用函数f时它被初始化为3,第二次调用函数f时c的值是4,第三次调用函数f时c的值是5。
【2.40】参考答案:D
热门推荐:
自考有疑问、不知道如何选择主考院校及专业、不清楚自考当地政策,点击立即了解》》
推荐阅读: