C语言上机题库百科园第4章南信大.docx

上传人:b****7 文档编号:23968749 上传时间:2023-05-23 格式:DOCX 页数:16 大小:24.85KB
下载 相关 举报
C语言上机题库百科园第4章南信大.docx_第1页
第1页 / 共16页
C语言上机题库百科园第4章南信大.docx_第2页
第2页 / 共16页
C语言上机题库百科园第4章南信大.docx_第3页
第3页 / 共16页
C语言上机题库百科园第4章南信大.docx_第4页
第4页 / 共16页
C语言上机题库百科园第4章南信大.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言上机题库百科园第4章南信大.docx

《C语言上机题库百科园第4章南信大.docx》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第4章南信大.docx(16页珍藏版)》请在冰豆网上搜索。

C语言上机题库百科园第4章南信大.docx

C语言上机题库百科园第4章南信大

第四章

单选

有以下程序,程序运行后的输出结果是()

#include

intfun(intx,inty)

{if(x!

=y)return((x+y)/2);

elsereturn(x);

}

intmain()

{inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

return0;

}

A.12B.6C.3D.8

有以下程序,程序运行的输出结果()

#include

intf(intx);

intmain()

{intn=1,m;

m=f(f(f(n)));printf(“%d\n”,m);

return0;

}

intf(intx)

{returnx*2;}

A.8B.4C.1D.2

有以下程序,程序执行后变量w中的值是()

#include

intfunl(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=funl(x);b=funl(y);return(int)(a+b);

}

intmain()

{doublew;w=fun2(1.1,2.0);……}

A.5.21B.0.0C.5.0D.5

有以下程序,程序运行后的输出结果是()

#include

intfun()

{staticintx=1;

x*=2;

returnx;

}

intmain()

{inti,s=1;

for(i=1;i<=3;i++)s*=fun();

printf("%d\n",s);

}

A.10B.64C.0D.30

有以下程序,程序运行后的输出结果是()

#include

intf(intx,inty)

{return((y-x)*x);}

intmain()

{inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf("%d\n",d);

}

A.10B.8C.7D.9

有以下程序,程序运行后的输出结果是()

#include

voidfun(intp)

{intd=2;p=d++;printf(“%d”,p);}

intmain()

{inta=1;

fun(a);printf(“%d\n”,a);

return0;

}

A.22B.21C.12D.32

有以下程序:

程序运行后的输出结果是()

#include

intf()

{staticintx=1;

x+=1;returnx;

}

intmain()

{inti,s=1;

for(i=1;i<=5;i++)s+=fun();

printf("%d\n",s);

return0;

}

A.21B.6C.120D.11

若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()

A.sqrt(fabs(pow(n,x)+exp(x,e)))

B.sqrt(fbs(pow(n,x)+pow(x,e)))

C.sqrt(fabs(pow(x,n)+exp(x)))

D.sqrt(abs(nx+ex))

以下关于return语句叙述中正确的是()

A.定义void类型的函数中可以有带返回值的return语句

B.没有return语句的自定义函数在执行结束时不能返回到调用处

C.一个自定义函数中必须有一条return语句

D.一个自定义函数中可以根据不同情况设置多条return语句

设有如下函数定义,若执行调用语句:

n=fun(3);,则函数fun总共被调用的次数是()

intfun(intk)

{if(k<1)return0;

elseif(k==1)return1;

elsereturnfun(k-1)+1;

}

A.2B.3C.5D.4

在一个C语言源程序文件中所定义的全局变量,其作用域为()

A.所在函数的全部范围

B.所在文件的全部范围

C.由具体定义位置和extern说明来决定范围

D.所在程序的全部范围

以下叙述正确的是()

A.C语言函数可以嵌套调用,例如:

fun(fun(x))

B.C语言程序是由过程和函数组成的

C.C语言函数不可以单独编译

D.C语言中除了main函数,其他函数不可以作为单独文件形式存在

以下程序的主函数中调用了在其前面定义的fun函数,则以下选项中错误的fun函数首部是()

#include

intmain()

{

doublea[15],k;

k=fun(a);

return0;

}

A.doublefun(double*a)

B.doublefun(doublea)

C.doublefun(doublea[])

D.doublefun(doublea[15])

以下说法不正确的是()

A.系统不允许用户重新定义标准库函数

B.标准库函数按分类在不同的头文件中声明

C.用户可以重新定义标准库函数

D.用户若需要调用标准库函数,调用前必须使用预编译命令将该函数所在文件包括到用户源文件中

下列叙述中正确的是()

A.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

B.main可作为用户标识符,用以命名任意一个函数作为主函数

C.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

D.C语言程序将从源程序中第一个函数开始执行

若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()

A.同名的实参和形参占同一存储单元

B.函数的形参和实参分别占用不同的存储单元

C.函数的实参和其对应的形参共占同一存储单元

D.形参只是形式上的存在,不占用具体存储单元

在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。

A.extern和register

B.auto和register

C.static和register

D.auto和static

设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是()

A.register

B.auto

C.auto或register

D.static

以下正确的函数定义形式是:

()

A.doublefun(intx,inty){}

B.doublefun(intx,y);{}

C.doublefun(intx;inty){}

D.doublefun(intx,inty);{}

在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()

A.称为函数的循环调用

B.C语言中不允许这样的递归调用

C.称为函数的间接递归调用

D.称为函数的直接递归调用

程序设计

/*请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如,输入17,则应输出46891012141516。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

#include

intfun(intm,intxx[])

{

/***************Begin************/

/***************End************/

}

intmain()

{

FILE*wf;

intm,n,zz[100];

printf("\nPleaseenteranintegernumberbetween10and100:

");

scanf("%d",&n);

m=fun(n,zz);

printf("\n\nThereare%dnon-primenumberslessthan%d:

",m,n);

for(n=0;n

printf("%4d\n",zz[n]);

wf=fopen("debug\\out.dat","w");

m=fun(21,zz);

for(n=0;n

fprintf(wf,"%d\n",zz[n]);

fclose(wf);

return0;

}

【参考代码】

inti,k,j=0;

for(i=2;i

for(k=2;k

if(i%k==0)break;

if(k

}

returnj;

程序改错

/*下列给定程序中,函数fun的功能是:

将十进制正整数m转换成

进制数,并按位输出。

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

请改正函数fun中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

#include

/**********ERROR**********/

voidfun(intm,intk);

{intaa[20],i;

for(i=0;m;i++)

{

/**********ERROR**********/

aa[i]=m/k;

m/=k;

}

for(;i;i--)

/**********ERROR**********/

printf("%d",aa[i]);

}

intmain()

{

intb,n;

printf("\nPleaseenteranumberandabase:

\n");

scanf("%d%d",&n,&b);

fun(n,b);

printf("\n");

return0;

}

【参考答案】

voidfun(intm,intk)

【参考答案】

aa[i]=m%k;

【参考答案】

printf("%d",aa[i-1]);

如当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。

符合此条件的累加值应为42,126,366,570,1010。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

#defineN20

intfun(intn,inta[])

/**********ERROR**********/

{inti,j,k,sum;

sum=0;

for(k=3,i=0;i

{sum=sum+k;

/**********ERROR**********/

if(sum%4=2)

a[j++]=sum;

}

/**********ERROR**********/

returnj-1;

}

intmain()

{

inta[N],d,n,i;

printf("\nEntern(4<=n<=50):

");

scanf("%d",&n);

d=fun(n,a);

printf("\n\nTheresult:

\n");

for(i=0;i

printf("\n\n");

return0;

}

【参考答案】

inti,j=0,k,sum;

【参考答案】

if(sum%4==2)

【参考答案】

returnj++;

returnj;

/*下列给定程序中,函数fun的功能是:

计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。

其中x和y不相等,z和y不等。

例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

#include

#include

/**********ERROR**********/

#defineFU(m,n)(m/n)

floatfun(floata,floatb,floatc)

{floatvalue;

value=FU(a+b,a-b)+FU(c+b,c-b);

/**********ERROR**********/

return(Value);

}

voidmain()

{floatx,y,z,sum;

printf("Inputxyz:

:

");

scanf("%f%f%f",&x,&y,&z);

printf("x=%f,y=%f,z=%f\n",x,y,z);

if(x==y||y==z)

{printf("Dataerror!

\n");

exit(0);}

sum=fun(x,y,z);

printf("Theresultis:

%5.2f\n",sum);

}

【参考答案】

#defineFU(m,n)(m)/(n)

#defineFU(m,n)((m)/(n))

【参考答案】

return(value);

returnvalue;

 

/*下列给定程序中,函数fun的功能是:

按如下递归公式求函数值。

例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

/**********ERROR**********/

intfun(n)

{

intc;

/**********ERROR**********/

if(n=1)

c=10;

else

c=fun(n-1)+2;

return(c);

}

voidmain()

{

intn;

printf("Entern:

");

scanf("%d",&n);

printf("Theresult:

%d\n\n",fun(n));

}

【参考答案】

intfun(intn)

【参考答案】

if(n==1)

if(1==n)

/*下列给定程序中,函数fun的功能是:

用递归算法计算斐波拉契级数列中第n项的值。

从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入7,该项的斐波拉契级数值为13。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

longfun(intg)

{

/**********ERROR**********/

switch(g);

{case0:

return0;

/**********ERROR**********/

case1;case2:

return1;

}

return(fun(g-1)+fun(g-2));

}

voidmain()

{

longfib;intn;

printf("Inputn:

");

scanf("%d",&n);

printf("n=%d\n",n);

fib=fun(n);

printf("fib=%d\n\n",fib);

}

【参考答案】

switch(g)

【参考答案】

case1:

case2:

return1;

/*请补充函数fun,函数fun的功能是求n的阶乘。

注意:

部分源程序给出如下。

试题程序:

*/

#include

longfun(intn)

{

/**********FILL**********/

if([1])

/**********FILL**********/

return(n*fun([2]));

/**********FILL**********/

return[3];

}

voidmain()

{

printf("10!

=%ld\n",fun(10));

}

【参考答案】

if(n>1)

if(1

【参考答案】

return(n*fun(n-1));

【参考答案】

return1;

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

当前位置:首页 > 经管营销 > 财务管理

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

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