第5章习题Word文档格式.docx
《第5章习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《第5章习题Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
fun1(x,y);
A、1
B、1.6
C、2
D、语法错
6、以下程序执行后输出结果是()。
intf(intx,inty)
{return(y-x)*x;
{inta=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
d;
A、3
B、8
C、9
D、6
7、设有宏定义和语句
#defineP(x,y)x/y
#definePP(a,b)a*b
intc=P(2+3,2+3)+PP(2+3,2+3);
则变量C的值是()。
A、26
B、17
C、17.5
D、31
8、若有定义intk=3,以k+1作为参数,对下列宏定义进行宏展开,则最终结果不为7的是()。
A、#defines(x)x*x
B、#defines1(x)(x)*(x)
C、#defines2(x)(x*x)
D、#defines4(x)(x*(x))
9、下列编译预处理指令没有语法错误的是()。
A、#defineN3=
B、#include“iostream.h”;
C、#definePI=3.14159
D、include”iostream.h”
10、在下面的函数声明中,存在着语法错误的是()。
A、voidA(inta,int)
B、voidB(int,int)
C、voidC(int,int=5)
D、intD(intx;
inty)
11、在程序中,函数声明语句正确位置是()。
A、随便任何位置
B、不包含在另一函数中的任何位置
C、该函数使用前的任何位置
D、该函数使用前的任何位置,但包含在另一函数中
12、下面保留字中不能作为函数的返回类型的是()。
A、void
B、int
C、new
D、long
13、设有函数定义F(int&
i),变量定义intn=10,则下面调用正确的是()。
A、F(20)
B、F(10+n)
C、F(n)
D、F(&
n)
14、在一个函数中定义的静态变量的作用域为()。
A、本程序的全部范围
B、本函数的全部范围
C、从定义该变量的位置开始到本文件结束
D、以上说法都不正确
15、对于下面几个函数函数:
voidf(intx){…}//1
intf(inty){…}//2
intf(inti,intj){…}//3
floatk(intx){…}//4
()是重载函数。
A、4个全部
B、1和4
C、2和3
D、3和4
16、以下描述正确的是()。
A、函数定义可以嵌套,函数调用也可以嵌套
B、函数定义不可以嵌套,函数调用可以嵌套
C、函数定义不可以嵌套,函数调用也不可以嵌套
D、函数定义可以嵌套,函数调用不可以嵌套
17、以下描述正确的是()。
A、调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参
B、函数既可以嵌套定义,又可以递归调用
C、函数必须有返回值,否则不能被调用
D、函数只能调用同一个源程序文件中定义的其他函数
18、以下描述正确的是()。
A、函数中,return后面一定要有表达式
B、函数中,不可以有多条return语句
C、函数返回值一定要通过return语句返回
D、return语句是函数中不可缺少的语句
19、在C++语言程序中,当调用函数时,()。
A、实参和形参各占一个独立的存储单元
B、实参和形参可以共用存储单元
C、可以由用户指定是否共用存储单元
D、计算机系统自动确定是否共用存储单元
20、有函数定义如下
f(inta){returna++;
并有定义floatf=5.88;
charc=”d”;
则以下不合法的函数调用语句是()。
A、f(2,3);
B、f(f);
C、f((2,3));
D、f(c);
21、有函数定义f(inta,intb){returna++;
}则以下对函数f的原型说明不正确的是()。
A、f(inta,intb)
B、f(int,int);
C、f(ints,inty);
D、f(ints,int);
22、若有函数调用语句f(g(x,y),z=x+y,(x+y))中,实参的个数是()。
B、4
C、5
23、关于下列叙述正确的是()。
voidf(inta){…}//1
intf(inta,intb){…}//2
intf(intb){…}//3
A、1和2是重载函数
B、1和3是重载函数
C、都是重载函数
D、都不是重载函数
24、下列叙述正确的是()。
A、一个include可以用于包含一个或多个文件
B、编译预处理命令必须以#开始
C、使用include包含的文件一定要以.h为后缀
D、程序执行时,宏展开只作替换,而不含计算过程
25、下列编译预处理命令正确的是()。
A、#defineMUL(inta,intb)a*b
B、#include”iostream.h”
C、#defineMUL(inta)a*b
D、#include“iostream.h”,”math.h”
26、以下程序的输出结果是()。
#include<
iostream.h>
#defineT(x,y)(x)<
(y)?
(x):
(y)
{inti,j,k;
i=10;
j=15;
k=10*T(i,j);
k<
endl;
A、15
B、100
C、10
D、150
27、以下程序的运行结果是()。
intfunc(inta,intb)
{staticintm,i=2;
i+=m+1;
m=i+a+b;
returnm;
{intk=4,m=1,p;
p=func(k,m);
p<
’,’;
A、8,17
B、8,16
C、8,20
D、8,8
二、填空题
1、若自定义函数要求返回一个值,则应在该函数体中有一条( )语句;
若自定义函数要求不返回值,则应在该函数定义时加一个类型符( )。
2、静态整型变量的缺省初值为( )。
3、函数的调用方式分为( )、( )、( )。
4、在一个函数的定义或者声明前加上关键字( )时,该函数就声明为内联函数。
5、程序第一行的结果是( ),第二行的结果是( )。
voidfun(intx,inty)
{intt;
t=x;
x=y;
y=t;
”x=”<
x<
’\t’<
”y=”<
y<
’\n’;
{inta=4,b=5;
fun(a,b);
”a=”<
a<
”b=”<
b<
6、以下程序输出的第一行是( ),第二行的结果是( )。
voids(inta,int&
b)
{intt=a;
a=b;
b=t;
{intx=500,y=1000;
s(x,y);
7、程序的输出的结果是( )。
voidfun()
{staticinta=0;
a+=2;
{intc;
for(c=1;
c<
3;
c++)
fun();
8、以下程序的输出的第一行是( ),第三行的结果是( )。
voidfn(int&
x)
{staticinty=10;
x+=y;
y+=x;
”,”<
{inty=1;
fn(y);
9、程序运行的结果是( )。
intx=100;
{intx=200;
x+=:
:
x;
{intx=500;
:
x+=x;
10、以下程序的运行结果( )。
voidf1(intn)
{cout<
n%10;
if(n/10)f1(n/10);
voidf2(intn)
{intj=n%10;
if(n/10)f2(n/10);
j;
{f1(1234);
f2(1234);
11、程序运行结果是( )。
intm(inta,intb);
intm(inta,intb,intc);
m(15,85,42);
intm(inta,intb)
{returna;
intm(inta,intb,intc)
{intt=m(a,b);
returnt;
12、下列程序第一行的结果是( ),第二行的结果是( )。
intf(inta)
{staticfloatb=2;
returnb+=a/b;
{for(inti=3;
i<
5;
i++)cout<
f(i)<
13、下列程序运行后第一行至第三行分别是( )、( )、( )。
intm=10;
voidfun(intn)
{m+=m;
if(n<
=1)cout<
m<
else{fun(n-1);
m+=m;
{fun(3);
fun(5);
14、下列程序运行结果是( )。
intfun2(int,int);
intfun1(inta,intb)
intfun2(inta,intb)
{intx=8,y=6;
15、假定输入10个字符“abcdefghij”,写出下列程序运行的结果为( )。
voidFun(int);
{Fun(10);
voidFun(inta)
{charch;
if(a<
=1)
{cin>
>
ch;
else{cin>
Fun(a-1);
16、下列程序第一行的结果是(),第二行的结果是()。
intx=10;
intf()
{intx=30;
{intx=20;
17、下列程序的输出结果是()。
intfib(intn)
{if(n>
1)return(fib(n-1)+fib(n-2));
elsereturn2;
fib(5);
18、该程序的输出结果是()。
intm(inta);
intc=5;
c+m(15,42);
intm(inta)
{intc=1;
returnc+=a;
{intc=2;
returnm(m(:
c+=a+b+c));
19、该程序第一行结果是(),第二行结果是(),第三行结果是()。
voidm();
inta=10;
{for(inti=0;
2;
i++)m();
voidm()
{staticinta=1;
a+=:
a;
a+=a;
return;
20、该程序的输出结果是()。
{if(a==0||a==1)returna=1;
returna+m(a-1)+m(a-2);
m
(2)<
21、该程序的输出结果是()。
intfun(intnum)
{intk=1;
do{
k*=num%10;
num/=10;
}while(num);
returnk;
{intn=26;
fun(n);
22、设有以下定义语句
#defineN3
#defineY(n)((N+1)*n)
则执行语句“z=Y(5+1);
”后,z的值为( )。
23、该程序的输出结果是()。
#defines(x)x+1,x
{inta=5;
(s(a));
24、该程序的输出结果是( )。
#definePI3.14;
{intarea=PI
area;
25、该程序的输出结果是()。
#defineP(y)3.14+y
#definePR(a)cout<
(int)a
{intx=2;
PR(P(5)*x;
)
26、若有宏定义:
#defineT(x,y)x*y/4
则表达式T(3+4,4+4)的值为()。
27、若有宏定义:
#defineT(x,y)x+y
inta=T(3,4)*T(3,5)
;
则变量a的初值为()。
28、下列程序输出的第一行是( ),第二行是( )。
intf1(intn)
{n+=2;
returnn*n;
intf2(int&
{intm=5,n=3;
m=f1(n);
’,’<
n<
m=f2(n);
29、下列程序输出的第二行是( ),第三行是( )。
#include<
inta=5;
voidmain()
{inta=10,b=20;
{inta=0;
for(inti=1;
6;
i++)
{a+=i;
b+=a;
}
30、完善程序,下面程序用递归算法计算a的平方根,计算平方根的迭代公式如下:
iosteam.h>
math.h>
doublemysqrt(doublea,doublex0)
{doublex1,y;
x1=____________;
if(fabs(x1-x0)>
0.00001)y=mysqrt(________);
elsey=x1;
returny;
{doublex;
”Enterx:
”<
cin>
”Thesqrtof”<
mysqrt(x,1.0)<
31、完善程序,以下程序的功能是:
求三角函数sinx的近似值。
求sinx的近似值的计算公式如下:
其中x的值为弧度,当输入的x的值为度数时,要求出sinx的近似值,必须将度数转换为弧度。
转换公式如下:
,要求计算精度达到0.000001。
doublesin(doublex,doubleeps)
{doubleterm,sum,y;
intn=1;
y=x*x;
term=______;
sum=0;
while(fabs9term)>
=eps}
{sum+=________;
n++;
term=term*y/_______;
term=-1;
return_________;
{doublex,y;
”输入x的值(角度)”;
while(x>
360)x-=360;
y=3.1415926*x/180;
”度数为:
”其中sin值为:
sin(y,1e-6)<