}
第四章函数习题
一、选择题
5.在一个源文件中定义的全局变量的作用域为A
全局变量默认(缺省)的作用域是D,但是不加“缺省”时的答案是A
A、文件的全部范围
B、本程序的全部范围
C、本函数的全部范围
D、从定义该变量的位置开始至本文件的结束
6.设函数声明语句中的参数表为(int&a,int&b,intC),函数体中a,b,C三个变量的值都发生变化;主函数中调用此函数的实参表为(x,y,z),调用函数语句执行后,以下叙述正确的是A。
A)变量x和y的值发生变化B)变量x和y的值不发生变化
C)变量x、y、z的值都发生变化D)只有变量z的值发生变化
7.变量的有效范围与其定义的位置有关,B,其作用域在整个源程序文件中都有效。
A、在第一个函数中定义的变量
B、在定义第一个函数之前所定义的变量
C、在主函数中定义的变量
D、在函数中定义的静态变量
9.判断两个字符串s1和s2是否相等,应当使用D
A、if(s1==s2)B、if(s1=s2)
C、if(strcmp(s1,s2))D、if(!
strcmp(s1,s2))(相等为0)
10.在程序执行过程中,该程序的某一个函数func()中说明的static型变量V有这样的特性:
B
A、V存在于func()被调用期间且仅能被func()所用
B、V存在于整个程序执行过程且仅能被func()所用
C、V存在于func()被调用期间且可被所有函数所用
D、V存在于整个程序执行过程且可被所有函数所用
二、填空题
1.执行下面程序共产生4行输出,第一行输出和最后一行输出分别是6及6。
#include
voidf(int);
voidmain()
{f(3);}
voidf(intn)
{staticints=5;
inta=5;
if(n!
=0)
{s++;a++;
cout<
f(n-1);
}
}
3.
3题
一、改正错误
1、A行处少一个分号“;”
2、在main前加void
二、运行结果
3,1,5
voidf(intb,intt)
{intm;
if(b{m=(b+t)/2;
cout<f(b,m-1);
f(m+1,t)//A
}
}
main()
{f(1,6);}
4题
一、改正错误
1、改main为voidmain
2、cout处多了一个(
二、运行结果:
程序正确,结果是
x=69
执行以上程序后,第一行的输出是,第二行的输出是,最后一行的输出是。
4.[程序](共2分)
#defineA3
main()
{
inta;
#defineB(a)((A+1)*a)
a=3*(A+B(5));
cout<<(“x=”<}
程序是否正确(是或否);若程序错,则原因是(或程序正确,则输出结果是):
。
6.[程序]
6题
一、改正错误:
改main为voidmain
二、运行结果:
6和10
intf(intx)
{
inty=1;
staticintz=1;
z+=z+y++;
return(z+x);
}
main()
{
cout<cout<}
执行以上程序后,第一和第二行的输出分别是和。
7.[程序]
#include
intm=10;
intf(intx,inty)
{
intm=5;
m+=x*y;
returnm;
}
voidmain()
{
inta=6,b=7;
cout<}
执行以上程序后,输出结果4。
8.voidf(inta)
{
if(a<0){
cout<<“-”;
a=-a;
}
cout<if((a=a/10)!
=0)f(a);
}
main()
{
inta=-3567;
f(a);
cout<<’\n’;
a=3456;
f(a);
cout<<“\n”;
}
执行以上程序后,输出结果的第一行是7654;第二行是-6543。
9题
一、改正错误
1、添加原型声明:
fun1(int,int);
二、运行结果
8和17
9.#include
voidmain()
{
intk=4,m=1,p;
p=fun1(k,m);cout<
p=fun1(k,m);cout<
}
fun1(intx,inty)
{
staticintm=0,i=2;
i+=m+1;
m=i+x+y;
returnm;}
问:
程序执行后输出的结果为,
10.voidmain()
10题
一、改正错误:
1、原型声明f(int);
运行结果
1、7和17
2、7和20
{intw=2,k;
for(k=0;k<3;k++)
{w=f(w);
cout<}
f(intx)
{inty=0;
/*static*/intz=3;
y++;z++;
return(x+y+z);
}
问题1:
执行程序后,输出的第一个数是____,最后一个数是____。
问题2:
如果把对static的注解改为static定义,输出的第一个数是____,最后一个数是____。
11.intfun(in