收集了一些经典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分)
第1题
以下程序的输出结果是【1】 .
#include
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
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
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
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
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
int x=3;
void incre();
void main()
{ int i;
for(i=1;i
=======(答案1)=======
26
第15题
函数的定义不可以嵌套,但函数的调用【1】嵌套.
=======(答案1)=======
可以
第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
第1题
全局变量的定义不可能在().
A:函数内部
B:函数外面
C:文件外面
D:最后一行
答案:A
第2题
如下程序的运行结果为().
#include
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
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 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
第1题
功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
#include
#include
#include
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
#include
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
第1题
功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数
返回二分之一的圆面积。
例如:输入圆的半径值:19.527 输出为:s = 598.950017。
#include
#include
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
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);
第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
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
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;
若有错误或疑问,欢迎评论区留言讨论。