1以下正确的函数定义是Word下载.docx

上传人:b****5 文档编号:17166802 上传时间:2022-11-28 格式:DOCX 页数:20 大小:25.99KB
下载 相关 举报
1以下正确的函数定义是Word下载.docx_第1页
第1页 / 共20页
1以下正确的函数定义是Word下载.docx_第2页
第2页 / 共20页
1以下正确的函数定义是Word下载.docx_第3页
第3页 / 共20页
1以下正确的函数定义是Word下载.docx_第4页
第4页 / 共20页
1以下正确的函数定义是Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

1以下正确的函数定义是Word下载.docx

《1以下正确的函数定义是Word下载.docx》由会员分享,可在线阅读,更多相关《1以下正确的函数定义是Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

1以下正确的函数定义是Word下载.docx

D.fun(x,y);

10.以下不正确的说法是()。

A.全局变量,静态变量的初值是在编译时指定的

B.静态变量如果没有指定初值,则其初值为0

C.局部变量如果没有指定初值,则其初值不确定

D.函数中的静态变量在函数每次调用时,都会重新设置初值

【答案】D

【说明】静态局部变量在其函数调用结束后仍然可以保留变量值。

11.以下任何情况下计算平方数时都不会引起二义性的宏定义是()。

A.#definePOWER(x)x*xB.#definePOWER(x)(x)*(x)

C.#definePOWER(x)(x*x)D.#definePOWER(x)((x)*(x))

12.以下正确的叙述是()。

A.C语言的预处理功能是指完成宏替换和包含文件的调用。

B.C语言的预处理指令只能位于C源程序文件的首部。

C.凡是C源程序中行首以“#”标识的控制行都是预处理指令。

D.C语言的编译预处理就是对源程序进行初步的语法检查。

【答案】B

13.C语言提供的预处理功能包括条件编译,其基本形式是:

#XXX标识符

程序段1

#else

程序段2

#endif

这里XXX可以是()。

A.define或includeB.ifdef或include

C.ifdef或ifndef或defineD.ifdef或ifndef

二、填空题

1.C语言函数返回类型的默认定义类型是。

【答案】整型

2.函数调用语句:

fun((a,B.,(c,d,e))实参个数为。

【答案】2

3.函数的实参传递到形参有两种方式:

和。

【答案】传值、传址

4.在一个函数内部调用另一个函数的调用方式称为。

在一个函数内部直接或间接调用该函数成为函数的调用方式。

【答案】嵌套调用递归

5.C语言变量按其作用域分为和;

按其生存期分为和。

【答案】全局变量局部变量动态变量静态变量

6.已知函数定义:

voiddothat(intn,doublex){…},其函数声明的两种写法为

和。

【答案】dothat(intn,doublex){…}dothat(int,double){…}

7.C语言变量的存储类别有,,和。

【答案】自动变量和寄存器变量静态外部变量静态局部变量外部变量

8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为。

【答案】自动

9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为。

【答案】静态全局变量

10.变量被赋初值可以分为两个阶段:

即和。

【答案】定义时赋值运行中赋值

11.下面程序的运行结果是。

#defineMAX(a,b)(a>

b?

a:

b)+1

main()

{intj=6,k=8,f;

printf("

%d\n"

MAX(j,k));

}

【答案】9

12.下面程序的运行结果是。

#defineA4

#defineB(x)A*x/2

{floatc,a=4.5;

c=B(a);

%5.1f\n"

c);

【答案】9.0

13.以下程序的输出结果是。

#include"

stdio.h"

#defineF(y)3.84+y

#definePR(A.printf("

%d"

(int)(A.)

#definePRINT(A.PR(A.;

putchar('

\n'

{intx=2;

PRINT(F(3)*x);

14.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。

{intx=2,y=3;

pow(x,y));

【答案】#include<

math.h>

15.下面程序的运行结果是。

{inta=10,b=20,c;

c=a/b;

#ifdefDEBUG

printf("

a=%d,b=%d"

a,b);

#endif

c=%d\n"

c);

【答案】c=0

16.下面程序的运行结果是。

#defineDEBUG

{inta=14,b=15,c;

a=%d,b=%d,"

【答案】a=14,b=15,c=0

三、程序阅读题

1.写出下面程序的运行结果。

func(inta,intB.

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

{intk=4,m=1,p1,p2;

p1=func(k,m);

p2=func(k,m);

%d,%d\n"

p1,p2);

【答案】8,17

2.写出下面程序的运行结果。

#defineMAX10

inta[MAX],i;

sub1()

{for(i=0;

i<

MAX;

i++)a[i]=i+i;

sub2()

{inta[MAX],i,max;

max=5;

for(i=0;

i++)a[i]=i;

sub3(inta[])

{inti;

i++)printf("

a[i]);

\n"

);

{sub1();

sub3(A.;

sub2();

【答案】

024*********

3.若输入的值是-125,写出下面程序的运行结果。

#include<

fun(intn)

{intk,r;

for(k=2;

k<

=sqrt(n);

k++)

{r=n%k;

while(!

r)

{printf("

k);

n=n/k;

if(n>

1)printf("

*"

r=n%k;

}

if(n!

=1)printf("

n);

{intn;

scanf("

&

n);

%d="

if(n<

0)printf("

-"

n=fabs(n);

fun(n);

-5*5*5

4.写出下面程序的运行结果。

inti=0;

fun1(inti)

{i=(i%i)*(i*i)/(2*i)+4;

i=%d\n"

i);

return(i);

fun2(inti)

{i=i<

=2?

5:

0;

{inti=5;

fun2(i/2);

fun2(i=i/2);

fun1(i/2);

i=5

i=2

i=4

5.写出下面程序的功能。

func(intn)

{inti,j,k;

i=n/100;

j=n/10-i*10;

k=n%10;

if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))

returnn;

return0;

for(n=100;

n<

1000;

n++)

if(n==func(n))printf("

【答案】输出100~1000之间的水仙花数

四、程序判断题

1.下面add函数是求两个参数的和;

判断下面程序的正误,如果错误请改正过来。

voidadd(inta,intb)

{intc;

c=a+b;

return(c);

【答案】错误

add(inta,intb)

2.下面函数fun的功能是:

将长整型数中偶数位置上的数依次取出,构成一个新数返回,例如,当s中的数为87653142时,则返回的数为8642;

longfun(longs)

{longt,sl=1;

intd;

t=0;

while(s>

0)

{d=s%10;

if(d%2=0)

{t=d*sl+t;

sl*=10;

s/=10;

}

return(t);

while(s<

{d=s/10;

{*t=d*sl+*t;

3.下面函数fun的功能是:

统计字符串s中各元音字母(即A,E,I,O,U)的个数,(字母不分大,小写)判断下面程序的正误,如果错误请改正过来。

fun(chars[],intnum[5])

{intk;

i=5;

for(k=0;

I;

num[i]=0;

s[k];

k++)

{i=-1;

switch(s)

{case'

a'

:

case'

A'

i=0;

case'

e'

E'

i=1;

i'

I'

i=2;

o'

O'

i=3;

u'

U'

i=4;

if(i>

=0)

num[i]++;

for(k=1;

=i;

num[k]=0;

s[k]='

\0'

;

switch(s)

i=5;

0)

4.函数fun的功能是:

根据整型形参m,计算如下公式的值:

y=1-1/2×

2-1/3×

3-…-1/m×

m

fun(intm)

{doubley=0,d;

intI;

for(i=100,i<

=m,i+=100)

{d=(double)i*(double)i;

y+=1.0/d;

return(y);

{doubley=1.0,d;

inti;

for(i=2,i<

=m,i+=1)

{d=(double)i*(double)i;

y-=1.0/d;

5.下面函数fun的功能是:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;

voidfun(chars[])

{inti,j;

for(i=0,j=0;

s[i]!

='

i++)

if(s[i]>

0'

&

s[i]<

9'

s[j]=s[i];

s[j]="

\0"

for(i=0,j=1;

&

s[i]<

{s[j]=s[i];

j++;

五、程序填空题

1.经典算法提示:

折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。

如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦然。

intsearch(inta[10],intm)

{intx1=0,x2=9,mid;

while(x1<

=x2)

{mid=(x1+x2)/2;

if(m<

a[mid])①;

elseif(m>

a[mid])②;

elsereturn(mid);

return(-1);

①x2=mid-1②x1=mid+1

2.del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填空使程序完整。

intdel(inta[10],intn,intx)

{intp=0,i;

while(x>

=a[p]&

p<

n)①;

for(i=p-1;

n;

i++)②;

return(n-1);

①a[p]='

②a[i]=a[i+1]

3.以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请填空使程序完整。

stdio.h>

①;

{floatx,y,z,f;

%f,%f,%f"

x,&

y,&

z);

f=fun(②);

f+=fun(③);

f=%d"

f);

floatfun(floata,floatb)

{return(a/b);

【答案】①#include<

②x+y,x-y③z+y,z-y

4.avg函数的作用是计算数组array的平均值返回,请填空使程序完整。

floatavg(floatarray[10])

floatavgr,sum=0;

for(i=1;

①;

sum+=②;

avgr=sum/10;

③;

①i<

=10②array[i]③return(avgr)

六、编程题

1.用递归法计算n!

可用下述公式表示:

①②③④。

n!

=1(n=0,1)

(n-1)!

(n>

1)

【参考程序】

longff(intn)

{longf;

n<

0,inputerror"

elseif(n==0||n==1)f=1;

elsef=ff(n-1)*n;

return(f);

longy;

\ninputainteagernumber:

y=ff(n);

%d!

=%ld"

n,y);

2.写两个整数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。

{intu,v,h,l;

pleaseinputtwonumbers:

%d,%d"

u,&

v);

h=hcf(u,v);

hcf=%d\n"

h);

l=lcd(u,v,h);

lcd=%d\n"

l);

hcf(u,v)

intu,v;

{inta,b,t,r;

if(u>

v)

{t=u;

u=v;

v=t;

a=u;

b=v;

while((r=b%a)!

{b=a;

a=r;

return(a);

lcd(u,v,h)

intu,v,h;

{return(u*v/h);

3.写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

{charstr0[100];

gets(str0);

fanxu(str0);

puts(str0);

fanxu(str1)

charstr1[100];

{inti,t,j;

charstr2[100];

strcpy(str2,str1);

t=strlen(str1);

for(i=0,j=t-1;

j>

-1;

i++,j--)

str1[i]=str2[j];

4.写一函数,输入一个十六进制数,输出相应的十进制数。

#include"

math.h"

intx;

intff(charshu[])

{inti=strlen(shu)-1,n;

intsum=0.0;

x=0;

n=i;

for(;

i>

i--)

{if(shu[n-i]>

=48&

shu[n-i]<

=57)sum=sum+(shu[n-i]-48)*pow(16,i);

elseif(shu[n-i]>

=65&

=90)sum=sum+(shu[n-i]-55)*pow(16,i);

=97&

=102)sum=sum+(shu[n-i]-87)*pow(16,i);

x=1;

returnsum;

{charshufu[100];

ints;

gets(shufu);

s=ff(shufu);

if(x)printf("

\ns(d)=%d\n"

s);

elseprintf("

Thenumberisnotox\n"

5.写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列。

intpaixu(x)

intx[];

{inti,j,t;

for(j=1;

j<

10;

j++)

i<

=9-j;

i++)

if(x[i]>

x[i+1]){t=x[i+1];

x[i+1]=x[i];

x[i]=t;

{inty[10];

inti;

y[i]);

paixu(y);

%5d"

y[i]);

6.写一函数,使给定的一个二维数组(3×

3)转置,即行列互换。

intzhuangzhi(intb[3][3])

3;

for(j=0;

=i&

3-i;

{t=b[i][j];

b[i][j]=b[j][i];

b[j][i]=t;

{inta[3][3];

inti,j;

a[i][j]);

{for(j=0;

%d"

a[i][j]);

zhuangzhi(a);

7.利用递归函数调用方式,将所输入的5个字符,以相

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1