C语言计算机二级/C语言期末考试 刷题(十)函数专题

收集了一些经典C语言计算机二级和C语言期末考试题库

整理不易,大家点赞收藏支持一下

祝大家计算机二级和期末考试都高分过

系列文章:

C语言计算机二级/C语言期末考试 刷题(一)

C语言计算机二级/C语言期末考试 刷题(二)

C语言计算机二级/C语言期末考试 刷题(三)

C语言计算机二级/C语言期末考试 刷题(四)

C语言计算机二级/C语言期末考试 刷题(五)

C语言计算机二级/C语言期末考试 刷题(六)

C语言计算机二级/C语言期末考试 刷题(七)

C语言计算机二级/C语言期末考试 刷题(八)

C语言计算机二级/C语言期末考试 刷题(九)

C语言计算机二级/C语言期末考试 刷题(十)函数专题

C语言计算机二级/C语言期末考试 刷题(十一)数据类型及输入输出专题

C语言计算机二级/C语言期末考试 刷题(十二)数组专题一

C语言计算机二级/C语言期末考试 刷题(十三)数组专题二

C语言计算机二级/C语言期末考试 刷题(十四)指针专题


目录

一、填空   共15题 (共计15分)

二、判断   共10题 (共计10分)

三、单选   共20题 (共计20分)

四、程序填空   共2题 (共计15分)

五、程序改错   共2题 (共计20分)

六、程序设计   共2题 (共计20分)


一、填空   共15题 (共计15分)

第1题

以下程序的输出结果是【1】 .

 #include <stdio.h>

 fun()

 {  static  int a=0;

    a+=2;  printf("%5d",a) ;

 }

 void main()

 {  int cc;

    for(cc=1;cc<4;cc++)

      fun();

    printf("\n");

 }

=======(答案1)=======

2    4    6

第2题

C语言变量按其作用域分为【1】 和【2】 .

=======(答案1)=======

全局变量

=========或=========

{{无序}}

=======(答案2)=======

局部变量

第3题

静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是

 在【2】时进行的.

=======(答案1)=======

编译

=======(答案2)=======

函数调用

第4题

下面程序的运行结果是【1】

 #include<stdio.h>

 int a=5;int b=7;

 void main()

 {  int a=4,b=5,c;

    c=plus(a,b);

    printf("A+B=%d\n",c);

 }

 plus(int x,int y)

 {  int z;

    z=x+y;

    return(z); 

}

=======(答案1)=======

A+B=9

第5题

在一个被调用的函数内部调用另一个函数的调用方式称为【1】 .在一个函数内部直接或间接调用该函数成为函数【2】 的调用方式.

=======(答案1)=======

嵌套调用

=======(答案2)=======

递归调用

第6题

若输入60和13,下列程序运行结果为【1】.

#define   SURPLUS(a,b)    ((a)%(b))

main()

{   int a,b;

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

     printf("%d\n",SURPLUS(a,b));

}

=======(答案1)=======

8

第7题

下列程序的输出结果是【1】 .

 #include<stdio.h>

 int t(int x,int y,int cp,int dp)

 {  cp=x*x+y*y;

    dp=x*x-y*y;

  }

 void main()

 {  int a=4,b=3,c=5,d=6;

    t(a,b,c,d);

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

  }

=======(答案1)=======

56

第8题

下面程序的输出是【1】 .

 #include<stdio.h>

 fun(int x)

 {  static int a=3;

    a+=x;

    return(a);

  }

 void main()

 {  int k=2,m=1,n;

    n=fun(k);

    n=fun(m);

    printf("%d",n);

 }

=======(答案1)=======

6

第9题

若x和y都是double型变量,且x初值为3.0,y初值为2.0,则表达式pow(y,fabs(x))的值为【1】.

=======(答案1)=======

8.000000

第10题

表达式pow(2.8,sqrt(fabs(x))值的数据类型为【1】.

=======(答案1)=======

double

第11题

从函数的形式上看,函数分为无参函数和【1】两种类型.

=======(答案1)=======

有参函数

第12题

下列程序执行后输出的结果是【1】 .

 #include<stdio.h>

 int d=1;

 void fun(int p)

 {  int d=5;

    d+=p++;

    printf("%d",d);

  }

 void main()

 {  int a=3;

    fun(a);

    d+=a++;

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

 }

=======(答案1)=======

84

第13题

C语言变量的存储类别有【1】 ,【2】 ,【3】 和【4】 .

=======(答案1)=======

auto

=========或=========

自动

=========或=========

自动变量

=========或=========

{{无序}}

=======(答案2)=======

static

=========或=========

静态

=========或=========

静态变量

=========或=========

{{无序}}

=======(答案3)=======

register

=========或=========

寄存器

=========或=========

寄存器变量

=========或=========

{{无序}}

=======(答案4)=======

extern

=========或=========

外部

=========或=========

外部变量

=========或=========

{{无序}}

第14题

以下程序的输出结果是【1】 .

 #include<stdio.h>

 int x=3;

 void incre();

 void main()

 {  int i;

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

  }

 void incre()

 {  static int x=1;

    x*=x+1;

    printf("%d",x);

 }

=======(答案1)=======

26

第15题

函数的定义不可以嵌套,但函数的调用【1】嵌套.

=======(答案1)=======

可以

二、判断   共10题 (共计10分)

第1题

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

答案:N

第2题

在程序中凡是以#号开始的语句行都是预处理命令行.

答案:Y

第3题

如果函数值的类型和return语句中表达式的值类型不一致时,则以函数类型为准.

答案:Y

第4题

sqrt(m)是求m平方的函数.

答案:N

第5题

C语言所有函数都是外部函数.

答案:N

第6题

C语言中函数调用的方式只有函数做表达式一种.

答案:N

第7题

在C语言的函数中,可以有也可以没有形参.

答案:Y

第8题

在C程序中 , 函数既可以嵌套定义 , 也可以嵌套调用.

答案:N

第9题

return语句必须在每个函数中都出现.

答案:N

第10题

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

答案:N

三、单选   共20题 (共计20分)

第1题

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

A:函数内部

B:函数外面

C:文件外面

D:最后一行

答案:A

第2题

如下程序的运行结果为().

        #include<stdio.h>

        f(int a)

        {  auto int b=0;

           static c=3;

           b=b+1;

           c=c+1;

           return(a+b+c);  }

        void main()

        {  int a=2,i;

           for(i=0;i<3;i++)

           printf("%d",f(a));  }
A:6 7 8

B:7 8 9

C:5 6 7

D:无输出结果

答案:B

第3题

C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是().

A:地址传递

B:单向值传递

C:由实参传给形参,再由形参传回给实参

D:由用户指定的传递方式

答案:B

第4题

在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是().

A:extern

B:register

C:auto

D:static

答案:D

第5题

以下程序的输出结果是().

        #include<stdio.h>

        fun(int a,int b,int c)

        {  c=a*b;  }

        void main()

        {  int c;

           fun(2,3,c);

           printf("%d\n",c);  }
A:0

B:1

C:6

D:无定值

答案:D

第6题

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

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

B:形式参数是局部变量

C:在函数内定义的变量只在本函数范围内有效

D:在函数内的复合语句中定义的变量在本函数范围内有效

答案:D

第7题

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

A:自定义函数体中的语句

B:循环体里的语句

C:if语句的成分语句

D:表达式

答案:D

第8题

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

A:double fun(int x,int y)

B:double fun(int x;int y)

C:double fun(int x,int y);

D:double fun(int x,y);

答案:A

第9题

用户定义的函数不可以调用的函数是().

A:非整型返回值的

B:本文件外的

C:main函数

D:本函数下面定义的

答案:C

第10题

将一个函数说明为static后,该函数将().

A:既能被同一源文件中的函数调用,也能被其他源文件中的函数调用

B:只能被同一源文件中的函数调用,不能被其他源文件中的函数调用

C:只能被其他源文件中的函数调用,不能被其他源文件中的函数调用

D:既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用

答案:B

第11题

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

A:自动(auto)

B:静态(static)

C:外部(extern)

D:寄存器(register)

答案:A

第12题

C语言允许函数类型缺省定义,此时函数值隐含的类型是().

A:float

B:int

C:long

D:double

答案:B

第13题

以下不正确的说法是:C语言规定().

A:实参可以是常量,变量或表达式

B:形参可以是常量,变量或表达式

C:实参可以为任何类型

D:形参应与其对应的实参类型一致

答案:B

第14题

以下正确的描述是:在C语言程序中().

A:函数的定义可以嵌套,但函数的调用不可以嵌套

B:函数的定义不可以嵌套,但函数的调用可以嵌套

C:函数的定义和函数的调用均不可以嵌套

D:函数的定义和函数的调用均可以嵌套

答案:B

第15题

为了使输出结果为:t=4,则给a和b输入的值应满足的条件是().

        void main()

        {  int s,t,a,b;

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

               s =1;t =1;

             if(a>0)

               s=s+1;

             if (a>b)

               t=s+1;

             else if(a==b)

                    t=5;

                 else

                    t=2*s;

             printf(" %d \n",t);}
A:a>b

B:a <b<0

C:0 <a < b

D:0 >a>b

答案:C

第16题

表达式18/4*sqrt(4.0)/8值的数据类型为().

A:int

B:float

C:double

D:不确定

答案:C

第17题

下面叙述中正确的是().

A:对于用户自己定义的函数,在使用前必须加以声明

B:声明函数时必须明确其参数类型和返回类型

C:函数可以返回一个值,也可以什么值也不返回

D:空函数在不完成任何操作,所以在程序设计中没有用处

答案:C

第18题

C语言中函数返回值的类型是由()决定的.

A:return 语句中的表达式类型

B:调用该函数的主调函数类型

C:调用函数时临时

D:定义函数时所指定的函数类型

答案:D

第19题

以下函数的类型是().

fff(float x)
{

  return 5;

}
A:与参数x的类型相同

B:void 类型

C:int类型

D:无法确定

答案:C

第20题

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

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

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

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

D:在定义该函数时所指定的函数类型所决定

答案:D

四、程序填空   共2题 (共计15分)

第1题

功能:计算并输出high以内最大的10个素数之和,high由主函数传
     给fun函数,若high的值为100,则函数的值为732。
#include <conio.h>
#include <stdio.h>
#include <math.h>
int fun(int high)
{
	int sum = 0, n = 0, j, yes;
	while ((high >= 2) && (【 ? 】))
	{
		yes = 1;
		for (j = 2; j <= high / 2; j++)
			if (【 ? 】)
			{
				yes = 0;
				break;
			}
		if (yes)
		{
			sum += high;
			n++;
		}
		high--;
	}
	【 ? 】;
}

main()
{
	printf("%d\n", fun(100));
}

答案:

=======(答案1)=======
n<10
=========或=========
10>n
=========或=========
n<=9
=========或=========
9>=n

=======(答案2)=======
high%j == 0
=========或=========
!(high%j)

=======(答案3)=======
return  sum
=========或=========
return  (sum)

第2题

题目:函数fun的功能是:计算如“图片1”的前n项之和。
     若x=2.5,n=15时,函数值为1.917914。   
#include<stdio.h>
#include<math.h>
double fun(double x, int n)
{
	double f, t;
	int i;
	f = 【 ? 】;
	t = -1;
	for (i = 1; i < n; i++)
	{
		t *= (【 ? 】) * x / i;
		/***********SPACE***********/
		f += 【 ? 】;
	}
	return f;
}

main()
{
	double x, y;
	x = 2.5;
	y = fun(x, 15);
	printf("\nThe result is :\n");
	printf("x=%-12.6f    y=%-12.6f\n", x, y);
}

答案:

=======(答案1)=======
1.0

=======(答案2)=======
-1

=======(答案3)=======
t

五、程序改错   共2题 (共计20分)

第1题

功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数
     返回二分之一的圆面积。

例如:输入圆的半径值:19.527 输出为:s = 598.950017。
#include <stdio.h>
#include <conio.h>
double fun(r)
{
	double s;
	s = 1 / 2 * 3.14159 * r * r;
	return r;
}
main()
{
	float x;
	printf("Enter x: ");
	scanf("%f", &x);
	printf(" s = %f\n ", fun(x));
}

答案:

=======(答案1)=======
float fun(float r)
=========或=========
double fun(float r)
=========或=========
double fun(double r)

=======(答案2)=======
s=1.0/2*3.14159* r * r;

=======(答案3)=======
return s;

第2题

功能:根据整型形参m,计算如下公式的值:
     y=1/2+1/8+1/18+...+1/2m*m
#include <stdio.h>
double fun(int m)
{
	double y = 0
	int i;
	for (i = 1; i < m; i++)
	{
		y = +1.0 / (2 * i * i);
	}
	return(y);
}

main()
{
	int n;
	printf("Enter n: ");
	scanf("%d", &n);
	printf("\nThe result is %1f\n", fun(n));
}

答案:

=======(答案1)=======

double y=0;

=======(答案2)=======

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

=======(答案3)=======

y+=1.0/(2*i*i);

六、程序设计   共2题 (共计20分)

第1题

功能:编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),
     其中d为1-9的数字。

例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函
     数中输入。
#include <stdio.h>
long int fun(int d, int n)
{
	/**********Program**********/




	/**********  End  **********/
}

main()
{
	int d, n;
	long sum, fun();
	printf("d=");
	scanf("%d", &d);
	printf("n=");
	scanf("%d", &n);
	sum = fun(d, n);
	printf("sum=%ld\n", sum);
}

答案:

long int s = 0, t = 0;
int i;
for (i = 1; i <= n; i++)
{
	t = t + d;
	s = s + t;
	d = d * 10;
}
return s;

第2题

功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。

注意:n的值不大于1000。

例如:n的值为855时,应输出704。
#include <stdio.h>
int fun(int n)
{
	/**********Program**********/





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

}

void main()
{
	printf("s=%d\n", fun(855));
}

答案:

int s = 0, i;
for (i = 2; i < n; i++)
	if (n % i == 0)s = s + i;
return s;

若有错误或疑问,欢迎评论区留言讨论。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

juechen333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值