- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章函数_
第五章 函数
一、单选题
1、请读程序:
#include stdio.h
int func(int a, int b)
{ int c;
c=a+b;
return c;
}
void main()
{ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(%d\n, r);
}
上面程序的输出结果是______。
A)11 B)20 C)21 D)31
答案:C
评析:本题的考查点是函数调用、自增、自减运算。
函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。
故本题答案为C。
2、请选出以下程序的输出结果______。
#include stdio.h
void sub(int *s,int y)
{ static int t=3;
y=s[t];t--;
}
void main()
{ int a[]={1,2,3,4},i, x=0;
for(i=0;i4;i++) {
sub(a,x);printf(%d,x);
}
printf(\n);
}
A)1234 B)4321 C)0000 D)4444
答案:C
评析:本题的考查点是函数的形参和实参的关系。
x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为0。
故本题答案为C。
3、下面程序的输出是______。
void main( )
{ int t=1;
fun( fun (t) );
}
int fun( int h)
{ static int a[3]={1,2,3};
int k;
for (k=0;k3;k++)a[k]+=a[k]-h;
for (k=0;k3;k++)printf(%d,,a[k]);
printf(\n);return(a[h]);
}
A)1,3,5, B)1,3,5, C)1,3,5, D)1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
答案:D
评析:本题的考查点是函数的反复调用。
在子函数fun()中,第一次执行使得a数组的3个元素的值都翻倍后减一,即为1,3,5;此时h的值为1,a[h]即a[1]的值3,返回作为fun()第二次执行的实参,函数第二次的执行使得各个数组元素的值分别变为-1,3,7。
故本题答案为D。
4、以下程序的输出结果是______。
void main( )
{ int w=5; fun(w); printf(\n); }
void fun(int k)
{ if(k0) fun(k-1);
printf(%d ,k);
}
A)5 4 3 2 1 B)0 1 2 3 4 5 C)1 2 3 4 5 D)5 4 3 2 1 0
答案:B
评析:本题的考查点是函数的递归调用。
函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0)。其中fun(5)是main函数调用的,其余是在fun函数中调用的。
故本题答案为B。
5、以下函数返回a所指数组中最小值所在的下标值。
fun(int *a,int n)
{ int i,j = 0,p;
p = j;
for( i = j; i n; j++)
if(a[i] a[p])______;
return(p);
}
在下划线处应填入的是______。
A)i=p B)a[p]=a[i] C)p=j D)p=i
答案:D
评
文档评论(0)