C++练习第3章函数Word格式文档下载.docx
《C++练习第3章函数Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++练习第3章函数Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
Bfloatfun(inta,intb)
{……}
{……x=fun(i,j);
……}
Cfloatfun(int,int);
Dmain()
floatfun(inti,intj);
……x=fun(i,j);
……
4.在函数中如果不说明变量的存储类型,则默认的存储类型是__________。
Aauto
Bstatic
Cextern
Dregister
5.使用sin(x),必须包括的头文件为_______。
Aiostream.h
Bmath.h
Cstdlib.h
Dstring.h
B
6.有以下程序:
iostream.h>
charfun(charx,chary)
if(x<
y)returnx;
returny;
voidmain()
inta='
9'
b='
8'
c='
7'
;
fun(fun(a,b),fun(b,c))<
endl;
程序的执行结果是________。
A函数调用出错
B8
C9
D7
7.变量生存期是指_____________。
A变量定义
B程序的运行期间
C变量在内存中分配存储单元到被释放期间
D可执行代码的生存期
C
8.函数的返回值的类型由_________决定。
A调用该函数的主调函数类型
Breturn语句中的表达式类型
C定义函数时所指定的返回值类型
D调用函数时临时决定
9.以下程序的输出结果是__________。
#include<
voidmain()
{intx=1,y=3;
x++<
"
,"
{intx=0;
x+=y*2;
x<
y<
}
y;
A1,6,3,1,3
B1,6,3,6,3
C1,6,3,2,3
D1,7,3,2,3
11.下列说法不正确的是____。
A函数必须有返回值
B函数的返回值是通过return语句返回到主调函数的。
Creturn语句后的括号可要可不要
D有函数值的函数,它返回的函数值的类型是确定的
12.
二.填空题
1.阅读程序,写出运行结果。
#include<
inta=5;
voidfun(intb)
staticinta=10;
a+=b++;
cout<
a;
}
voidmain()
intc=20;
fun(c);
a+=c++;
a<
3025
2.变量一般需要先赋初值再参与运算,__1__变量没有赋初值时,将由系统自动置为0。
1:
静态
3.函数内定义的动态变量在__1__时才生成。
函数调用或调用
4.从用户使用的角度看,函数可以分为__1__和__2__。
系统函数或库函数或标准函数
2:
用户自定义函数或自定义函数或用户定义函数
5.若有宏定义:
#defineF(a,b)a-b
#defineG(a,b)(a+b)
程序执行语句中有如下语句:
a=6;
b=4;
cout<
F(a,b)*F(a,b)<
G(a,b)*G(a,b)<
G(a,b)/F(a,b)<
endl;
则输出的3个数据按次序分别是:
__1__、
__2__、
__3__。
-22
100
3:
-3
6.题自定义函数f()的功能是:
对给定的参数N,求s=1*1+2*2+…+N*N.请补充程序中空格处所缺的语句。
(注:
严格按空格的顺序号依次书写每空的答案)。
longf(intN)
{
longs;
inti;
__1__;
for(i=1;
i<
=N;
i++)
s=__2__;
returns;
s=0
s+i*i
7.完成以下代码,实现求数列:
前n项之和,n由主函数中给定。
doublesum_s(intn);
voidmain()
doubles;
intn;
pleaseinputintegern:
cin>
>
n;
s=sum_s(n);
s="
s<
//sum_s函数求数列的前n项之和
doublesum_s(intn)
doublet=1,s=1;
for(i=1;
i<
i++)
{__1__;
//递推关系t=(t+1)/t
s=s+t;
return(s);
若键盘输入n值为5,则前n项之和为__2__。
t=(t+1)/t
s=7.76667
8.若一自然数等于其所有真因子(能够整除该数,且小于该数的正整数)之和,则称该自然数为完全数。
例如,6的真因子有1,2,3,且,6=1+2+3;
因此6为完全数。
完成以下代码,实现求[2,1000]之内的完全数个数和最大的完全数,其中,变量n用于存放完全数个数,变量max用于存放最大完全数。
intis_complet(intx);
//函数is_complet(x)判断x是否为完全数,若"
是"
,则返回1
inti,n,max;
n=0;
for(i=2;
=1000;
if(is_complet(i)==1)
{n=n+1;
__1__;
}
n="
n<
max="
max<
intis_complet(intx)
intn,s=1;
for(n=2;
x;
n++)
if(x%n==0)__2__;
if(x==s)return1;
elsereturn0;
运行该程序,最大的完全数是:
max=i
s=s+n
496
9.完成以下程序,实现将十进制数1234转换为八进制数:
f(1234);
voidf(intn)
if(n>
=8)
f(__2__);
n%8;
voidf(int)或voidf(intn)或voidf(intn);
或voidf(int);
n/8或(n-n%8)/8或(int)(n/8)
10.若有函数定义:
floatf(intx,chary){…}。
将该函数声明为内置函数的语句为__1__。
inlinefloatf(int,char);
或inlinefloatf(int,char)或inlinefloatf(intx,chary);
或inlinefloatf(intx,chary)
11.
三.问答题
intfunc(unsignedcharx)
intcountx=0;
while(x)
{
countx++;
x=x&
(x-1);
returncountx;
voidmain()
func(255)<
8
2.写出以下程序的运行结果。
intfun(inta)
intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
main()
inti,a=5;
for(i=0;
3;
i++)
"
fun(a)<
010111212
3.阅读程序,写出运行结果。
a+=c++;
4.阅读程序,写出运行结果。
5.阅读程序,写出运行结果。
intd=1;
voidfun(intp)
intd=5;
d+=p++;
d;
inta=3;
fun(a);
d+=a++;
84
6.阅读以下程序:
inta=3,b=5;
max(inta,intb)
intc;
c=a>
b?
a:
b;
return(c);
inta=8;
max(a,b)<
写出其运行结果:
__1__。
max=8
7.阅读以下程序:
longfun(intn)
longf;
if(n<
0)cout<
0,inputerror"
elseif(n==0)f=1;
elsef=fun(n-1)*(n-1)+n;
return(f);
longy;
\ninputaintegernumber:
\n"
y=fun(n);
y="
若输入的n值为5,则运行结果为:
y=129
8.阅读以下程序:
intx;
voidfun()
intx=1;
if(x==1)
{
intx=2;
fun();
2
9.阅读以下程序:
intkk()
intx=4;
staticinty;
y=5;
x*=2;
y*=2;
return(x+y);
intj,s=0;
for(j=0;
j<
2;
j++)
s=kk();
写出当j=1时,程序运行时的输出结果:
s=18
10.阅读以下程序:
intm=13;
intfun(intx,inty)
intm=3;
return(x*y-m);
inta=7,b=5;
fun(a,b)/m;
写出运行结果。
2
11.阅读程序,写出运行结果。
四.编程题
11.编写一个自定义函数:
intf(intM,intN),f()的功能是:
对给定的正整数M和N,找出满足方程"
5x+6y=M"
的正整数解中x和y都是偶数的解。
要求:
若M和N不都是正整数,则结束函数并返回-1;
只有M和N都是正整数时,且x,y∈[1,N],才继续求解操作,并用二重循环进行求解:
(1)在函数中输出满足条件的正整数解x和y,
(2)使函数值返回满足条件的正整数解的组数。
intf(intM,intN);
{cout<
f(500,650)<
12.编写一个解“一百元买鸡”问题的自定义函数:
intf(intM,intN),其中M代表公鸡的单价(元/只),N代表母鸡的单价(元/只),价格由主调函数给定;
购鸡方案中要求总花费刚好为100元,且不允许全部购买公鸡或全部购买母鸡(即公鸡、母鸡只数都不能为0);
求解所有购鸡方案。
若M和N只要有一个以上参数无意义,则函数结束执行并返回-1值;
若M和N都有意义,则函数输出所有可能的购鸡方案,并返回方案的组数。
要求用二重循环实现。
(编号12)
f(15,20)<
13.编写一个自定义函数:
intf(longa[],intn,longx),f()的功能是:
对给定的含有n个元素的一维数组a及某个指定数x,查找数组a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最大的那个元素的下标;
若不存在,则函数值返回-1。
intf(longa[],intn,longx);
{longx=7;
longa[5]={3,5,2,7,9};
f(a,5,x)<
16.编写一个自定义函数:
intf(intN),f()的功能是:
对给定的正整数N,找出满足下列方程“3x+4y=N”的正整数解。
若N不是正整数,则结束函数并返回-1;
若N是正整数,则函数中输出找到的所有正整数解,并且使函数值返回解的组数。
用二重循环实现。
intf(intN);
f(160)<
17.编写一个解“鸡兔共笼”问题的自定义函数:
intf(intN),其中N代表动物的脚总数;
且笼中每种动物都至少有1只以上。
若N不符合实际,则结束函数并返回-1;
若N符合实际要求,则函数输出所有可能的鸡、兔数,并返回符合条件解的组数。
18.编写一个自定义函数:
intf(intM),f()的功能是:
对给定的正整数M,找出满足方程"
且x不超过100的正整数解。
若M不是正整数,则结束函数并返回-1;
若M是正整数时,则函数中输出所有的正整数解,并且使函数值返回正整数解的组数,要求使用一重循环。
intf(intM);
f(500)<
19.编写一个自定义函数:
7x+4y=M"
的正整数解中x是偶数且y是奇数的解。
只有M和N都是正整数时,且x,y∈[1,N],才继续求解操作,用二重循环进行求解:
(1)在函数中输出满足条件的正整数解x和y,
(2)并且使函数值返回满足条件的正整数解的组数。
20.编写一个自定义函数:
intf(charx,intN),f()的功能是:
对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。
比如,当c为'
*'
且N为5时,打印的图案如本题图所示。
且函数值返回1。
intf(charx,intN);
{f('
5);
21.编写一个自定义函数:
T'
22.编写一个自定义函数:
intf(intN),f()的功能是:
对给定的正整数N,打印一个N行N列的由'
A'
、'
B'
C'
以及空格'
'
符号组成的方阵图案。
比如,当N为5时,打印的图案如本题图所示。
{f(5);
23.编写一个自定义函数:
对给定的正整数N<
10,打印一个N行N列的由数字、字符'
P'
K'
、空格'
组成的方阵图案。
24.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间中不能被3整除的数之和。
请根据函数f的声明语句及其功能完成函数代码设计。
intf(intm);
intn;
cout<
pleaseentern"
cin>
f(n);
26.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间的偶数和。
main()
{intn;
27.无
28.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间的奇数和。
请根据函数f的声明语句及其功能完成f函数代码设计。
35.通过调用自定义函数f求有规律的数列{1,