模拟题7函数Word格式文档下载.docx
《模拟题7函数Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《模拟题7函数Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
B)3,4,7
C)5,2,7
D)2,5,7
(4)有以下程序
#defineP3
#defineF(intx){return(P*x*x);
{
%d\n"
F(3+5));
A)192
B)29
C)25
D)编译出错
(5)若程序中定义了以下函数
doublemyadd(doublea,doubleB)
{return(a+B);
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是
A)doublemyadd(doublea,B);
B)doublemyadd(double,double);
C)doublemyadd(doubleb,doubleA);
D)doublemyadd(doublex,doubley);
(6)有以下程序
charfun(charx,chary)
{if(x<
y)returnx;
returny;
main()
{inta='
9'
b='
8'
c='
7'
;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
程序的执行结果是
A)函数调用出错
B)8
C)9
D)7
(7)有以下程序
voidf(intv,intw)
{intt;
t=v;
v=w;
w=t;
{intx=1,y=3,z=2;
if(x>
y)f(x,y);
elseif(y>
z)f(y,z);
elsef(x,z);
printf(“%d,%d,%d\n”,x,y,z);
执行后输出结果是
A)1,2,3
B)3,1,2
C)1,3,2
D)2,3,1
(8)若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是
A)调用可以作为独立的语句存在
B)调用可以作为一个函数的实参
C)调用可以出现在表达式中
D)调用可以作为一个函数的形参
(9)有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
A)fun(inty,doublem);
B)k=fun(10,12.5);
C)fun(x,n);
D)voldfun(n,x);
(10)有以下程序
fun(inta,intb)
{if(a>
b)return(a);
elsereturn(b);
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
r);
A)3
B)6
C)8
D)12
(11)在一个C程序中
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
(12)有以下程序
intfl(intx,inty)
{returnx>
}
intf2(intx,inty)
{inta=4,b=3,c=5,d,e,f;
d=f1(a,b);
d=f1(d,c);
e=f2(a,b);
e=f2(e,c);
f=a+b+c-d-e;
%d,%d,%d\n"
d,f,e);
A)3,4,5
B)5,3,4
C)5,4,3
D)3,5,4
(13)有如下程序
voidf(intx,inty)
if(x<
y){t=x;
x=y;
y=t;
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
a,b,c);
D)4,3,5
(14)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A)void
B)int
C)float
D)double
(15)有以下程序
floatfun(intx,inty)
{return(x+y);
{inta=2,b=5,c=8;
printf(“%3.0f\n”,fun(int)fun(a+c,b),a-c));
A)编译出错
B)9
C)21
D)9.0
(16)若有以下程序
#include<
stdio.h>
voidf(intn);
{voidf(intn);
f(5);
voidf(intn)
{printf("
n);
则以下叙述中不正确的是
A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C)对于以上程序,编译时系统会提示出错信息:
提示对对f函数重复说明
D)函数f无返回值,所以可用void将其类型定义为无值型
(17)以下函数值的类型是
fun(floatx)
{floaty;
y=3*x-4;
A)int
B)不确定
C)void
D)float
(18)以下所列的各函数首部中,正确的是
A)voidplay(var:
Integer,varb:
Integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
(19)以下程序的输出结果是
A)0
B)29
C)31
D)无定值
fun(intx,inty,intz)
{z=x*x+y*y;
{inta=31;
fun(5,2,a);
printf(“%d”,a);
(20)有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5);
该函数调用语句中,含有的实参个数是
B)4
C)5
D)有语法错
(21)有如下程序
intrunc(inta,intb)
{return(a+b);
main0
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
该程序的输出的结果是
A)12
B)13
C)14
D)15
(22)以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
(23)有以下程序
viodfun(inta,intb,intc)
{a=456;
b=567;
c=678;
{intx=10,y=20,z=30;
fun(x,y,z);
%d,/%d\n"
c,d);
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
(24)有以下程序
#include"
atdio.h"
intabc(intu,intv);
main()
{inta=24,b=16,c;
c=abc(a,b);
printf('
c);
ntabc(intu,intv)
{intw;
while(v)
{w=u%v;
u=v;
v=w}
returnu;
A)6
B)7
D)9
(25)以下说法中正确的是
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
(26)请读程序:
#include<
func(inta,intb)
{intc;
c=a+b;
returnc;
{intx=6,y=7,z=8,r;
r=func(x--,y==,x+y),z--);
r);
上面程序的输出结果是
A)11
B)20
D)31
二、填空题
(1)有以下程序
intsub(intn){return(n/10+n%10);
{intx,y;
scanf("
%d"
&
x);
y=sub(sub(sub(x)));
y);
若运行时输入:
1234<
回车>
,程序的输出结果是【1】。
(2)通过函数求f(x)的累加和,其中f(x)=x2+1
Thesum=%d\n"
SunFun(10));
SunFun(intn)
intx,s=0;
for(x=0;
x<
=n;
x++)s+=F(【2】);
returns;
F(intx)
{return【3】);
(3)函数fun的功能是计算xn
doublefun(doublex,intn)
{inti;
doubley=1;
for(i=1;
i<
i++)y=y*x;
主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:
m=a4+b4-(a+B)3。
实现这一计算的函数调用语句为【4】。
(4)以下sum函数的功能是计算下列级数之和。
S=1+x+x2/2!
+x3/3!
+........+xn/n!
请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
doublea,b,s;
【5】
for(i=1;
i++)
{a=a*x;
b=b*i;
s=s+a/b;
(5)以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
intfun(intn)
{intn=0,f=1,i;
for(i=1;
i<
i++)
{m+=i*f;
f=【6】;
returnm;
m=%d\n"
【7】);
(6)请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【8】
(double,double);
{doublex,y;
%1f%1f"
x,&
y);
%1f\n"
max(x,y));
doublemax(doublea,doubleb)
{return(a>
b?
a:
b):
(7)若有以下程序
intf(intx,inty)
{return(y-x)*x;
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
d);
执行后输出的结果是【9】。
(8)以下程序运行后的输出结果是[10]。
voidfun(intx,inty)
{x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d,”,x,y);
{intx=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
(9)函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include“math.h”
doublepi(longn)
{doubles=0.0;
longi;
i++)s=s+[11];
return(sqrt(6*s));
(10)下面程序的输出是【12】。
unsignedfun6(unsignednum)
{unsignedk=1;
do{
k*=num%10;
num/=10;
}while(num);
return(k);
{unsignedn=26;
fun6(n));
(11)下面pi函数的功能是根据以下的公式,返回满足精度ε要求的π值。
doublepi(doubleeps)
{doubles=0.0,t=1.0;
intn;
for(【13】;
t>
eps;
n++)
{s+=t;
t=n*t/(2*n+1);
return(2.0*【14】);
答案:
01)B 02)D 03)A 04)D 05)A
06)D 07)C 08)D 09)C 10)D
11)B 12)C 13)D 14)B 15)B
16)C 17)A 18)C 19)C 20)A
21)D 22)D 23)A 24)C 25)C
26)C
(1)10
(2)x(3)x*x+1(4)fun(a,4)+fun(b,4)-fun(a+b,3);
(5)a=1.0;
b=1.0;
s=1.0;
(6)-f(7)fun(10)
(8)doublemax(9)9(10)3,2,2,3
(11)1.0/(i*i)(12)12
(13)n=1(14)s