C语言上机考试3之欧阳科创编.docx

上传人:b****8 文档编号:10393651 上传时间:2023-02-10 格式:DOCX 页数:60 大小:29.57KB
下载 相关 举报
C语言上机考试3之欧阳科创编.docx_第1页
第1页 / 共60页
C语言上机考试3之欧阳科创编.docx_第2页
第2页 / 共60页
C语言上机考试3之欧阳科创编.docx_第3页
第3页 / 共60页
C语言上机考试3之欧阳科创编.docx_第4页
第4页 / 共60页
C语言上机考试3之欧阳科创编.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

C语言上机考试3之欧阳科创编.docx

《C语言上机考试3之欧阳科创编.docx》由会员分享,可在线阅读,更多相关《C语言上机考试3之欧阳科创编.docx(60页珍藏版)》请在冰豆网上搜索。

C语言上机考试3之欧阳科创编.docx

C语言上机考试3之欧阳科创编

一、单项选择

1.

时间:

2021.02.05

创作:

欧阳科

2.题号:

4889

以下函数调用语句中,实参的个数是().

exce((v1,v2),(v3,v4,v5),v6);

A、3

B、4

C、5

D、6

//(v1,v2)是一个逗号表达式,(v3,v4,v5)也是一个逗号表达式

答案:

A

3.题号:

4093

关于return语句,下列正确的说法是().

A、可以在同一个函数中,出现多次

B、在主函数和其他函数中,均可出现

C、必须在每个函数中,出现

D、只能在除主函数之外的函数中,出现一次

//只能执行其中的一个的return语句。

并且函数遇到return语句,结束函数的执行。

答案:

A

4.题号:

4535

数组名作为实参数传递给函数时,数组名被处理为().

A、该数组的首地址

B、该数组的元素个数

C、该数组中各元素的值

D、该数组的长度

答案:

A

5.题号:

4525

在C语言的函数中,下列正确的说法是().

A、数组名不能作形参

B、可以有也可以没有形参

C、形参必须是变量名

D、必须有形参

答案:

B

6.题号:

4083

以下正确的函数定义形式是().

A、doublefun(intx,inty)

B、doublefun(intx;inty)//错在分号

C、doublefun(intx,y);//错在形参y没有类型

D、doublefun(intx,inty);//错在函数头后没有分号

答案:

A

7.题号:

4232

C语言程序中,必须有的函数是().

A、main()

B、#include"stdio.h"

C、scanf

D、printf

答案:

A

8.题号:

4048

下面对函数的叙述,正确的是().

A、函数中无论是否有return语句,都能返回正确值

B、函数中没有return语句,说明不带回值

C、函数不能嵌套定义

D、函数的返回值是通过return语句获得的

答案:

C

9.题号:

4073

在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().

A、传递方式由用户指定

B、由实参传给形参,再由形参传回实参

C、地址传递

D、单向值传递

答案:

D

10.题号:

5119

下列关于函数的叙述中正确的是().

A、每个函数都可以单独运行

//主函数可以单独运行。

其它的函数都需要被调用才能被执行。

B、在一个函数内部可以定义另一个函数//不可以嵌套定义

C、每个函数都可以被单独编译

D、每个函数都可以被其他函数调用(包括main()函数)//不包括主函数

答案:

C

11.题号:

4787

设函数的调用形式如下:

f((x1,x2),(y1,y2,y3)),则函数有()个形参.

A、5

B、3

C、2

D、4

答案:

C

12.题号:

4901

在C语言中,形参的缺省存储类是().

A、static

B、register

C、auto

D、extern

答案:

C

13.题号:

4507

C语言规定,在一个源程序中,main()函数的位置.

A、必须在最开始

B、必须在系统调用的库函数的后面

C、可以任意

D、必须在最后

答案:

C

14.题号:

4847

以下叙述中,正确的是().

A、main()可作为用户标识符,用以命名任意一个函数作为主函数

B、C语言程序将从源程序中,第一个函数开始执行

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

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

答案:

D

15.题号:

5137

以下函数的类型是

fff(floatx)

{

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

}

//函数返回值省略。

默认为int型。

A、void类型

B、int类型

C、与参数x的类型相同

D、无法确定

答案:

B

16.题号:

4403

C语言规定,在一个C程序中,main()函数的位置().

A、可以在任意位置

B、必须在程序的最后

C、必须在程序的开始

D、必须在系统调用的库函数之后

答案:

A

17.题号:

4112

C语言规定,函数返回值的类型是().

A、由return语句中的表达式类型所决定

B、由调用该函数时的主调函数类型所决定

C、由调用该函数时系统临时决定

D、由定义该函数时所指定的数值类型决定

答案:

D

18.题号:

4804

以下所列的函数"首部"中,正确的是().()

A、voidplay(inta,b)

B、voidplay(inta,intb)

C、voidplay(a:

int,b:

int)

D、voidplay(aasint,basint)

答案:

B

19.题号:

4432

有以下函数定义:

intfun(doublea,doubleb)

{returna*b;}

若以下选项中,所用变量都已正确定义并赋值,错误的函数调用是().

A、z=fun(fun(x,y),fun(x,y));

B、z=fun(fun(x,y)x,y);

C、if(fun(x,y)){……}

D、fun(x,y);

答案:

B

20.题号:

5050

对于void类型函数,调用时不可作为().

A、if语句的成分语句

B、表达式

C、循环体里的语句

D、自定义函数体中的语句

//无返回值函数只能以语句形式调用。

不可以作为表达式或实参

答案:

B

21.题号:

4269

若使用一维数组名作函数实参,则以下正确的说法是().

A、必须在主调函数中,说明此数组的大小

B、实参数组类型与形参数组类型可以不匹配

C、实参数组名与形参数组名必须一致

D、在被调用函数中,不需要考虑形参数组的大小

答案:

A

22.题号:

4696

在C语言中,调用函数除函数名外,还必须有().

A、实际参数

B、()

C、函数预说明

D、函数返回值

答案:

B

23.题号:

4892

以下错误的描述是:

函数调用可以().

A、做为一个函数的实参

B、做为一个函数的形参

C、出现在一个表达式中

D、出现在执行语句中

//函数调用形式一共有三种:

独立语句形式。

表达式或函数的实参

答案:

B

24.题号:

4256

当调用函数时,实参是一个数组名,则向函数传送的是().

A、数组每个元素中的值

B、数组的首地址

C、数组的长度

D、数组每一个元素的地址

答案:

B

25.题号:

5014

若用数组名作为函数的实参,传递给形参的是().

A、数组的首地址

B、数组元素的个数

C、数组第一个元素的值

D、数组中,全部元素的值

答案:

A

26.题号:

4843

如果在一个函数中的复合语句中,定义了一个变量,以下正确的说法是().

A、该变量在本程序范围内均有效

B、该变量只在该复合语句中,有效

C、该变量在该函数中,有效

D、该变量在主函数中,有效

答案:

B

27.题号:

4319

C语言中,规定,程序中,各函数之间().

A、既允许直接递归调用也允许间接递归调用

B、允许直接递归调用不允许间接递归调用

C、不允许直接递归调用允许间接递归调用

D、不允许直接递归调用也不允许间接递归调用

答案:

A

28.题号:

5062

凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为().

A、自动(auto)

B、静态(static)

C、外部(extern)

D、寄存器(register)

答案:

A

29.题号:

4672

以下叙述中,正确的是().

A、构成C程序的基本单位是函数

B、main()函数必须放在其它函数之前

C、所有被调用的函数一定要在调用之前进行定义

D、可以在一个函数中,定义另一个函数

答案:

A

30.题号:

4236

全局变量的定义不可能在().

A、最后一行

B、文件外面

C、函数内部

D、函数外面

答案:

C

31.题号:

4754

以下对C语言函数的描述中正确的是().

A、C程序中有调用关系的所有函数必须放在同一个程序文件中

B、C函数既可以嵌套定义又可以递归调用//不可以嵌套定义

C、函数必须有返回值,否,则不能使用函数//函数返回值可以为void

D、C程序必须由一个或一个以上的函数组成

答案:

D

32.题号:

4045

在C语言中,变量的隐含存储类别是().

A、static

B、auto

C、无存储类别

D、extern

答案:

B

33.题号:

4578

若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是().

A、函数调用可以作为一个函数的形参

B、函数调用可以作为独立的语句存在

C、函数调用可以作为一个函数的实参

D、函数调用可以出现在表达式中,

答案:

A

34.题号:

4537

以下正确的函数声明语句是().

A、intadd(inta,intb)//少了分号。

不是语句。

B、doubleadd();

C、intadd(chara[][]);//数组第二维长度不可省略

D、charadd(chara,b);//b没有数据类型

答案:

B

35.题号:

4436

已知year为整型变量,不能使表达式(year%4==0&&year%100!

=0)

||year%400==0的值为"真"的数据是().

A、1990

B、1996

C、2000

D、1992

答案:

A

36.题号:

5040

以下叙述中,不正确的是().

A、在一个函数内定义的变量只在本函数范围内有效

B、在一个函数内的复合语句中,定义的变量在本函数范围内有效//在复合语句内有效

C、函数中的形式参数是局部变量

D、在不同的函数中,可以使用相同的名字的变量

答案:

B

37.题号:

3986

函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().

A、实参与形参是双向传递//单向传递。

由实参单向赋值给形参

B、形参和实参可以同名

C、实参类型一定要在调用时指定

//偷换概念。

形参类型一定要在定义时给定。

调用时,与函数名和实参变量名有关。

与类型无关。

D、形参可以是表达式//形参必须为变量

答案:

B

二、判断题

==================================================

1.题号:

4018

函数的嵌套调用中,被调用函数执行完成后,均返回主函数.

//返回上一级调用函数

答案:

错误

2.题号:

4872

函数在说明时,可以不定义函数的形参名,只指定函数相应位置上形参的类型.

函数说明语句的三种形式:

intmax(inta,intb);//与用户自定义函数中的形参变量名一样

intmax(int,int);//省略形参变量名

intmax(intaa,intbb);//与用户自定义函数中的形参变量名不一样

答案:

正确

3.题号:

4204

函数中的形式参数是局部变量.

答案:

正确

4.题号:

4577

静态局部变量是在编译时被初始化的,故它只被赋初值一次.

答案:

正确

5.题号:

4846

gets函数是用来输入一个字符的函数.

//gets函数是用来输入一个字符串的。

它以回车键结束。

可以读入带空格的字符串。

答案:

错误

6.题号:

5028

静态局部变量在整个程序运行期间都不释放.

答案:

正确

7.题号:

4767

函数调用时,实参和形参在类型上应按位置与形参一一对应匹配;如果类型不匹配,通常编译器并不给出出错信息.

答案:

正确

8.题号:

4984

一个C程序只能由一个主函数组成

//一个程序可以由一个或多个函数组成。

但只能有一个主函数

答案:

错误

9.题号:

5013

C程序的基本组成单位是函数

答案:

正确

10.题号:

4587

C语言的函数可以嵌套定义

//可以嵌套调用。

不可以嵌套定义。

答案:

错误

11.题号:

4288

函数定义当中的函数类型是return语句中表达式的类型.

//若return后的表达式的类型和函数返回值类型不一致时。

系统自动将return后的类型//转换为函数返回值的类型。

答案:

正确

12.题号:

4442

C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.

答案:

正确

13.题号:

4989

C语言中return语句可以返回函数值.如果return语句后表达式的值与函数说明的类型不一致,则以return语句的表达式类型为准,系统将自行转换.

答案:

错误

14.题号:

4783

通过return语句,函数可以带回一个或一个以上的返回值.

//return语句只能带回一个值。

不能带回2个或多个值。

但地址传递可以。

答案:

错误

15.题号:

5084

若一个函数的返回类型为void,则表示其没有返回值.

答案:

正确

16.题号:

4175

在C语言中,不允许函数嵌套定义,但函数可以嵌套调用.

答案:

正确

17.题号:

4689

return语句可以在同一个函数中出现多次.

//但只能执行其中一个。

且调用函数结束。

答案:

正确

18.题号:

4351

所有定义在主函数之前的函数无需进行声明.

答案:

正确

19.题号:

4097

每次调用函数时,都要对静态局部变量重新进行初始化.

//静态变量可以由系统进行初始化。

也可以由用户进行初始化。

但只初始化一次。

生命//周期是程序运行的整个时间。

局部变量每次调用时都要进行初始化。

答案:

错误

20.题号:

4092

在不同的函数中可以使用相同名字的变量.

答案:

正确

21.题号:

4584

函数调用时,要求实参与形参的个数必须一致,对应类型一致.

答案:

正确

22.题号:

4055

C语言程序总是从main()函数开始执行.

答案:

正确

23.题号:

4161

没有初始化的整型静态局部变量的初值系统均默认为0.

答案:

正确

24.题号:

4349

在C语言的函数中,必须有形参.

答案:

错误

25.题号:

5108

在C语言中,函数可以嵌套定义,但不能嵌套调用.

答案:

错误

三、填空题

==================================================

1.题号:

4286

在函数中,需要返回一个结果时,可以使用_____语句.

答案:

空1:

return

2.题号:

4371

函数的_____调用是一个函数直接或间接地调用它自身.

答案:

空1:

递归

3.题号:

4333

C语言中,格式输入操作是由库函数_____完成的,格式输出操作是由库函数_____完成的.

答案:

空1:

scanf

空2:

printf

4.题号:

4373

C源程序中的主函数的名称必须是_____。

答案:

空1:

main

5.题号:

4601

下述函数的功能是_____。

voidfunc(inta[],intn)

{inti,j;

for(i=1;i

{for(j=i;j>0&&a[j]

{intt=a[j];

a[j]=a[j-1];

a[j-1]=t;

}

}

}

答案:

空1:

用冒泡法由小到大排序【或】冒泡法排序【或】排序【或】由小到大排序

6.题号:

4885

函数调用时的实参和形参之间的数据是单向的_____传递.

答案:

空1:

7.题号:

4690

如果函数不要求返回值,可用_____来定义函数为空类型.

答案:

空1:

void

四、程序设计

==================================================

1.题号:

7041

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:

函数fact(x)的功能是求x!

编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。

计算公式是:

组合数=m!

/(n!

.(m-n)!

)。

要求:

m不能小于n,

否则应有容错处理。

--------------------------------------------------

注意:

部分源程序给出如下。

请勿改动主函数

main和其它函数中的任何内容,仅在函

数fun的花括号中填入所编写的若干语句。

*********Begin**********和**********End**********不可删除

------------------------------------------------*/

#include"stdio.h"

longfact(intx)

//函数返回值一定要定义为long。

因为阶乘值增长的很快。

很容易超出int的范围

{

longy;//y是存放阶乘值的变量。

所以要定义为长整型long.

inti;

y=1;

for(i=1;i<=x;i++)

y=y*i;

returny;

}

main()

{

intm,n;

longzhsgs;

printf("请输入m和n:

\n");scanf("%d%d",&m,&n);

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

while(m

{

printf("m和n输入错!

请重新输入:

\n");

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

}

zhsgs=fact(m)/(fact(n)*fact(m-n));

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

printf("从%d个元素选%d个元素的组合数的个数是:

%d\n",m,n,zhsgs);

getch();

yzj();

}

yzj()

{

FILE*IN,*OUT;

intn;

inti;

longo;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("WriteFileError");

}

for(n=0;n<5;n++)

{

fscanf(IN,"%d",&i);

o=fact(i);

fprintf(OUT,"%ld\n",o);

}

fclose(IN);

fclose(OUT);

}

1.示例代码:

while(m

{

printf("m和n输入错!

请重新输入:

\n");

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

}

zhsgs=fact(m)/(fact(n)*fact(m-n));

2.题号:

6931

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:

对某一正数的值保留2位小数,并对第三位进行四舍五入。

注意:

部分源程序给出如下。

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

*********Begin**********和**********End**********不可删除

------------------------------------------------*/

#include"stdio.h"

#include"conio.h"

voidTestFunc();

floatfun(floath)

{

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

inti;//假设h=12.5489

i=(int)(h*1000)%10;//i=(int)(12.5489*1000)%10=12548%10=8

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;

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

}

voidmain()

{

floatm;

printf("Enterm:

");

scanf("%f",&m);

printf("\nTheresultis%8.2f\n",fun(m));

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

ints;

floatt;

floato;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

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

{

fscanf(IN,"%f",&t);

o=fun(t);

fprintf(OUT,"%8.2f\n",o);

}

fclose(IN);

fclose(OUT);

}

2.示例代码:

inti;

i=(int)(h*1000)%10;

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;

3.题号:

6993

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:

编写一个函数fun,它的功能是:

实现两个字符串的连接(不使用库函数strcat)。

例如,分别输入下面两个字符串:

FirstString--

SecondString

程序输出:

FirstString--SecondString

注意:

部分源程序存在文件prog.c中。

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

*********Begin**********和**********End**********不可删除

*/

#include

#include

#include

voidfun(charp1[],charp2[])

{

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

inti=0,j=0;

while((p1[i])!

='\0')

i++;//求字符串p1的长度。

while(p2[j]!

='\0')//遍历字符串p2

{

p1[i]=p2[j];//注意下标变化的不同。

i++;

j++;

}

p1[i]='\0';/**********End*****

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

当前位置:首页 > 高等教育 > 文学

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

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