下列程序的输出结果 fun(int a,int b,int c) {c=a*b;} int main(void) {int c; fun(2,3,c); p

下列程序的输出结果 fun(int a,int b,int c) {c=a*b;} int main(void) {int c; fun(2,3,c); p,第1张

之所以是无法确定,是因为:

fun中的变量c虽然与主程序中的变量同名,但不是一个变量,而且是个临时变量,fun程序执行完后,这个变量也会被舍弃

主程序调用fun函数时,是将2赋值给fun的临时变量a,将3赋值给临时变量b,将主程序开设的变量的值(因为在主程序没有被赋过值所以取值不确定)赋值给临时变量c,这个赋值是单向的

函数fun执行完成后,丝毫也不会影响到主程序中的变量c的取值,因此答案是D

这道题考察的是概念:函数参数引用的是调用者(main函数)中变量的取值,调用完成后这些值不会返回给调用者的变量

也就是说在调用fun时,fun开设3个新的临时变量叫a,b,c,注意这3个变量与主程序中的a,b,c没有关系,然后将主程序中的a,b,c的值取出,对应赋值给fun开设的临时变量,然后fun倒腾临时变量的值,最后返回main函数时,这三个临时变量被舍弃,main函数中三个变量的值被用了一下而已,丝毫没有被 *** 作,所以它们的值没变,选4

1、 有如下程序

int func(int a,int b)

{ return(a+b)}

main()

{ int x=2,y=5,z=8,r

r=func((x-y),z)

printf("%d\n",r) }

该程序的输出结果是_____C_____。

A) 10 B) 13

C) 5 D) 15

2、 以下函数返回a数组中最小值所在的下标,在划线处应

填入的是________。

fun( int a[],int n)

{ int i,j=0,p

p=j

for(i=ji<ni++)

if(a[i]<a[p])_________D______

return (p) }

A) i=p B) a[p]=a[i]

C) p=j D) p=i

3、 以下说法中正确的是___C_____。

A) C语言程序总是从第一个定义的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义

C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分

4、 下面程序的输出是___B______。

int m=13

int fun(int x,int y)

{int m=3

return(x*y-m) }

main()

{int a=7,b=5

printf("%d\n",fun(a,b)/m) }

A) 1 B) 2

C) 7 D) 10

5、 以下函数func()的功能是:使具有n个元素的一维数组b的每个元素的值

都增加2,划线处应填入________。

func(int b[ ],int n)

{ int

for(i=0i<ni++) ____D______ }

A) b[i++]B) b[i]++

C) b[i+=2] D) b[i]+=2

6、 函数f的功能是:测定字符串的长度,空白处应填入________。

int f(char s[ ])

{ int i=0

while(s[i]!='\0') i++

return (____B____) }

main( )

{ printf("%d\n",f("goodbye!"))}

A) i-1 B) i

C) i+1 D) s

7、 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合

语句中定义了一个变量,则该变量____B____。

A) 为全局变量,在本程序文件范围内有效

B) 为局部变量,只在该函数内有效

C) 为局部变量,只在该复合语句中有效

D) 定义无效,为非法变量

8、 对以下程序,正确的说法是___B_____。

sub (char x,char y)

{ int zz=x%yreturn z}

main( )

{ int g=5,h=3,k

k=sub(g,h)

printf("%d\n",k) }

A) 实参与其对应的形参类型不一致,程序不能运行

B) 被调函数缺少数据类型说明,程序不能运行

C) 主函数中缺少对被调函数的说明语句,程序不能运行

D) 程序中没有错误,可以正常运行

9、 请读程序:

#include <stdio.h>

f(in b[ ], int n)

{ int i, r=0

for(i=0i<=ni++) r=r+b[i]

return r }

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9}

x=f(a, 3)

printf("%d\n",x) }

上面程序的输出结果是____B____。

A) 20 B) 14

C) 9D)5

10、 以下叙述中错误的是__A______。

A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

B) 在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C) 在C中,外部变量的隐含类别是自动存储类别

D) 在C中,函数中的静态变量可以赋初值,只在编译时赋一次初值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12102294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存