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

上传人:b****8 文档编号:9132758 上传时间:2023-05-17 格式:DOCX 页数:17 大小:26.20KB
下载 相关 举报
C语言上机题库百科园第4章南信大.docx_第1页
第1页 / 共17页
C语言上机题库百科园第4章南信大.docx_第2页
第2页 / 共17页
C语言上机题库百科园第4章南信大.docx_第3页
第3页 / 共17页
C语言上机题库百科园第4章南信大.docx_第4页
第4页 / 共17页
C语言上机题库百科园第4章南信大.docx_第5页
第5页 / 共17页
C语言上机题库百科园第4章南信大.docx_第6页
第6页 / 共17页
C语言上机题库百科园第4章南信大.docx_第7页
第7页 / 共17页
C语言上机题库百科园第4章南信大.docx_第8页
第8页 / 共17页
C语言上机题库百科园第4章南信大.docx_第9页
第9页 / 共17页
C语言上机题库百科园第4章南信大.docx_第10页
第10页 / 共17页
C语言上机题库百科园第4章南信大.docx_第11页
第11页 / 共17页
C语言上机题库百科园第4章南信大.docx_第12页
第12页 / 共17页
C语言上机题库百科园第4章南信大.docx_第13页
第13页 / 共17页
C语言上机题库百科园第4章南信大.docx_第14页
第14页 / 共17页
C语言上机题库百科园第4章南信大.docx_第15页
第15页 / 共17页
C语言上机题库百科园第4章南信大.docx_第16页
第16页 / 共17页
C语言上机题库百科园第4章南信大.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

第四章

单选

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

#include

h〉

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

h〉

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〈stdio。

h>

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

h>

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

h>

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〈stdio.h>

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

h>

#include

h〉

#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〈m;n++)

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

fclose(wf);

return0;

}

【参考代码】

inti,k,j=0;

for(i=2;i〈m;i++){

for(k=2;k〈i;k++)

if(i%k==0)break;

if(k〈i)xx[j++]=i;

returnj;

程序改错

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

将十进制正整数m转换成

进制数,并按位输出.

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

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

注意:

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

试题程序:

*/

#include

#include

h>

/**********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〈stdio。

h〉

#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〈math。

h>

/**********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

h>

/**********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

h〉

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;

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

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2