补充练习第六章函数.docx
《补充练习第六章函数.docx》由会员分享,可在线阅读,更多相关《补充练习第六章函数.docx(9页珍藏版)》请在冰点文库上搜索。
补充练习第六章函数
补充练习第六章函数
第六章函数
一、单项选择题
1.C语言的程序是从______开始执行的。
A.程序的第一条语句B.程序的第一个函数
C.程序的main()函数D.包含文件中的第一个函数
2.函数定义的缺省类型为_______。
A.voidB.doubleC.intD.char
3.在C语言程序中,说法正确的是______。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用都不可以嵌套
D.函数的定义和函数的调用都可以嵌套
4.函数调用语句si(v1+v2,(v3+v4+v5),v6)含有_____个参数。
A.3B.4C.5D.6
5. C语言规定,函数返回值的类型是由_______。
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
6. 以下正确的函数定义形式是_______。
A.doublefun(intx,inty)B.doublefun(intx;inty)
C.doublefun(intx,inty);D.doublefun(intx,y);
7. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是___。
A.地址传递B.单向值传递
C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式
8. 若用数组名作为函数调用的实参,传递给形参的是_______。
A.数组的首地址B.数组第一个元素的值
C.数组中全部元素的值D.数组元素的个数
9. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_______。
A.autoB.staticC.externD.register
10. 在一个C源程序文件中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要使用的存储类别是_______。
A.autoB.staticC.externD.register
11. 若调用一个函数,且此函数中没有return语句,则该函数_______。
A.没有返回值B.返回若干个系统默认值
C.能返回一个用户所希望的的函数值D.返回一个不确定的值
12. C语言规定,程序中各函数之间_______。
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
13. 如果函数的类型和return语句中表达式的值的类型不一致,则_______。
A.返回值的类型以函数类型为准B.返回值的类型不能确定
C.返回值的类型以return语句中表达式的值的类型为准D.编译不通过
14. 如果在一个函数中的复合语句中定义了一个变量,则该变量_______。
A.只在该复合语句中有效B.在该函数中有效
C.在本程序范围内均有效D.为非法变量
二、填空题:
1.在C语言中,一个函数一般由________________和________________两个部分组成。
2.函数的嵌套定义是指______________________________________________。
函数的嵌套调用是指______________________________________________。
3.“用之则建,用完则撤”是________存储的最大优点,以节省存储空间。
4.C程序在________函数中结束整个程序的运行。
5.凡不要求带回函数值的函数,一般应定义为________类型。
6.若外部变量定义在main函数之后,则应在main函数引用该外部变量之前,用________进行外部变量说明。
7.全局变量的有效范围为_________________________________________。
8.如果在同一个源文件中,外部变量与局部变量同名,则在______________范围内,外部变量不起作用。
三、判断题
1.函数说明指的是在程序中设定一个函数模块。
()
2.形参只有在被调用时才分配存储空间。
()
3.在C的函数中,最好使用全局变量。
()
4.在调用函数时,实参传值给形参,调用结束时,形参值传给实参。
()
5.所有函数定义都是并行的,相互独立的。
()
6.函数的隐含存储类型是extern。
()
7.形参可以是常量、变量或表达式。
()
8.函数调用可以作为一个函数的形参。
()
9.C语言规定,形参应与其对应的实参类型一致。
()
10.定义函数时,形参的类型说明可以放在函数体内。
()
四.程序阅读题
1.阅读下列程序,写出程序的输出结果。
#include
main()
{inta=2,i;
for(i=0;i<3;i++)printf("%d",f(a));
}
f(inta)
{staticintb,c;
b++;c++;return(a+b+c);
}
该程序的输出结果是:
。
2.阅读下列程序,写出程序的输出结果。
#include
fan(inta,intb)
{intc;
c=a>b?
a++:
++b;return(c);
}
main()
{intx=3,y=1,z,r;
z=fan(x,y);r=fan(y,x);printf("%d,%d",z,r);
}
该程序的输出结果是:
。
3.阅读下列程序,写出程序的输出结果。
#include
longfunc(intx)
{longp;
if(x==0||x==1)return
(2);
p=x*func(x-1);return(p);
}
main()
{printf("%ld\n",func(4));}
该程序的输出结果是:
。
4.阅读下列程序,写出程序的输出结果。
#include
voidnum()
{externintx,y;inta=15,b=10;
x=a-b;y=a+b;
}
intx,y;
main()
{inta=7,b=5;
x=a+b;y=a-b;num();
printf(“%d,%d\n”,x,y);
}
该程序的输出结果是:
。
5.阅读下列程序,写出程序的输出结果。
#include
func(intarray[][4],intm)
{inti,j,k=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)if(array[i][j]return(k);
}
main()
{staticinta[3][4]={{1,13,5,7},{2,4,26,8},{10,1,3,12}};
intm=10;
printf(“\nthevalueis%d\n”,func(a,m));
}
该程序的输出结果是:
。
五.程序填充题
1. 用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大两岁,求第五位学生的年龄。
递归公式如下:
age
(1)=10,age(n)=age(n-1)+2(n>1)
#include
age(intn)
{intc;
if(n==1)c=10;
elsec=;
return(c);
}
main()
{intn=5;
printf(“age:
%d\n”,);
}
2. 选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
sub(intk,intn)
{inta1,a2;
a2=;a1=k-;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{printf(“%d”,k);;return(n);}
elsereturn(-1);
}
main()
{intn=0,k,m;
for(k=10;k<=99;k++)
{m=sub(k,n);
if(m!
=-1)n=m;
}
printf(“\nn=%d”,n);
}
3. 计算10名学生1门课成绩的平均分。
floataverage(floatarray[10])
{inti;floataver,sum=array[0];
for(i=1;;i++)sum+=;
aver=sum/10;return(aver);
}
main()
{floatscore[10],aver;inti;
printf(“\ninput10scores:
”);
for(i=0;i<10;i++)scanf(“%f”,&score[i]);,,
aver=;printf(“\naveragescoreis%5.2f\n”,aver);
}
第六章
一.单项选择题
1.C 2.C 3.B 4.A 5.D 6.A 7.B 8.A 9.A 10.B
11.D 12.A 13.A 14 A
二.填空题
1.函数首部 函数体
2.在定义一个函数时,其函数体内又包含另一个函数的完整定义
在调用一个函数的过程中,又调用另一个过程
3. 动态 4. main() 5. void
6. extern 7. 从定义变量的位置开始到本源文件结束
8. 局部变量的作用
三.判断题
1.╳ 2.√3.╳ 4.╳ 5.√6.√ 7.╳ 8.╳ 9.√10.╳
四.程序阅读题
1. 468 2. 3,4 3. 48
4. 5,25 5. the value is 31
五.程序填空题
1. age(n-1)+2 age(5) 2. k/10 10*a2 n++
3. i<10 array[i] average(score)