好文档 - 专业文书写作范文服务资料分享网站

C语言程序的设计教程第四章练习试题解析

天下 分享 时间: 加入收藏 我要投稿 点赞

word格式

printf(\ p=func(k,m);

printf(\}

A.8,15 B.8,16 C.8,17 D.8,8 答案:C

解析:函数体内的静态局部变量不随函数的调用结束而销毁,而是一直存在。 26、以下程序的输出结果是( )。 int d=1;

int fun(int p) {

static int d=5; d+=p;

printf(\ return d; }

void main() {

int a=3;

printf(\}

A.6 9 9 B.6 6 9 C.6 15 15 D.6 6 15 答案:C

解析:首先调用fun(d),将全局变量d=1带入,此时fun()函数内的静态局部变量d的值

是1,d+=p后d的值是6,输出d的值,返回d的值; 然后调用fun(a+6),将局部变量a=3带入,此时fun()函数内的静态局部变量d的值是6,

d+=p后d赋值15,输出d的值,返回d的值。

27、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( )。 A.extern B.register C.auto D.static 答案:D

解析:static修饰全局变量时,表示该变量仅在本文件中可使用。 28、下列程序的输出结果是( )。 int b=2;

int func(int *a) {

.. ..

word格式

b += *a; return b; }

void main() {

int a=2, res=2; res += func(&a); printf(\}

A.4 B.6 C.8 D.10 答案:B

解析:func()函数中,对全局变量b自增a的值,func()函数返回4;res+=4,res赋值

为6。

29、请读程序: void main() {

int a=1,b=2,c=3; ++a; c+=++b; {

int b=4,c; c=b*3; a+=c;

printf(\ a+=c;

printf(\ }

printf(\}

该程序的输出是( )

A.first: 12,4,12 Second: 26,4,12 third: 4,3,6 B.first: 14,4,12 Second: 26,12,12 third: 26,3,4 C.first: 14,4,12 Second: 26,4,12 third: 26,3,6 D.first: 14,4,12 Second: 26,6,12 third: 26,4,6 答案:C 解析:程序运行到第6行时,a=2,b=3,c=6;程序运行到第10行时,a=14,局部变量b=4,

c=12;程序运行到第13行时,a=26,局部变量b=4,c=12;程序运行到第15行时,a=26,b=3,c=6。

30、以下程序运行后,输出结果是( )。 int d=1;

int fun(int p)

.. ..

word格式

{

int d=5; d+=p++;

printf(\}

int main() {

int a=3; fun(a); d+=a++;

printf(\}

A.84 B.99 C.95 D.44 答案:A

解析:fun()函数调用时代入局部变量a的值,fun()函数体内局部变量d自增3,输出d

的值,即8,fun()函数返回8,此时全局变量d的值不变。d+=a++后,全局变量d自增3,此时全局变量d的值是4,输出全局变量d的值。

31、以下程序的输出结果是( )。 int a, b; void fun() {

a=100; b=200; }

void main() {

int a=5, b=7; fun();

printf(\}

A.100200 B.57 C.200100 D.75 答案:B

解析:fun()函数改变的是全局变量的值,printf()函数输出的是局部变量的值,fun()函

数不会改变局部变量a、b的值。

多选题

1、在调用外部函数时,下列描述中正确的是( )(多选) A.只要有函数名,就能调用外部函数

.. ..

word格式

B.调用外部函数要包含外部函数所在的头文件 C.外部函数与调用者定义在同一个源文件下

D.在声明外部函数时,外部函数与原函数定义的返回值类型、函数名称和参数列表必须一致

答案:B,D

解析:外部函数调用时要包含其所在的头文件,当调用者声明了外部函数的原型,也可以

不用包含头文件

判断题

1、局部变量就是在函数内部声明的变量。 答案:true

解析:局部变量就是在函数内部声明的变量。

2、局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。 答案:true

解析:局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量

就会失去作用。

3、局部变量就是在函数内部声明的变量,它只在本函数内有效。 答案:true

解析:局部变量就是在函数内部声明的变量,它只在本函数内有效,也就是说,只能在本

函数内使用它。

4、局部变量只有当它所在的函数被调用时才会被使用,当函数调用结束时局部变量还会一直存在。

答案:false

解析:局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量

就会失去作用。

简答题

1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void func(int a, int b) {

printf(\}

void main() {

func(3,2); printf(\}

答案:5

解析:fun()是一个实现两个数相加的函数,在主函数中调用并传入值,得到两个数的和

.. ..

word格式

2、请阅读下面的程序,在空白处填写正确的代码,将函数的结果返回给调用者。 int func(int a, int b) {

int sum = 0; sum = a + b; ; }

void main() {

int sum = 0;

= func(3,2);

printf(\两个数相加的结果为%d\}

答案:return sum; sum ;

解析:return sum;return 将函数结果返回 sum ;主函数中sum接收函数返回的值

3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void main() {

int num = 100;

printf(“%d, %o, %x\\n”,num,num,num); }

答案:100 144 64

解析:printf()函数将十进制数100分别以十进制,八进制,十六进制形式输出。

4、请阅读下面的程序,当用户从键盘输入hello world时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void main() {

char str[256]; scanf(“%s”,str); printf(“%s\\n”,str); }

答案:hello

解析:输入hello world时,中间的空格对scanf()函数来说是终止符,后面的内容无法

读取。

5、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。 用户从键盘输入两个整型数据,将两个数据相加输出。 void main() {

int a,b; ;

printf(“%d\\n”, );

.. ..

C语言程序的设计教程第四章练习试题解析

word格式printf(\p=func(k,m);printf(\}A.8,15B.8,16C.8,17D.8,8答案:C解析:函数体内的静态局部变量不随函数的调用结束而销毁,而是一直存在。26、以下程序的输出结果是()。intd=1;intfun(intp){
推荐度:
点击下载文档文档为doc格式
9ksur2t2wc2xc786b4a94zk8m0hvkq00ryx
领取福利

微信扫码领取福利

微信扫码分享