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

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

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

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

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);……}

B.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)

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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