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

这篇具有很好参考价值的文章主要介绍了C语言计算机二级/C语言期末考试 刷题(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

目录

一、填空,共20题 (共计20分)

二、单选   共25题 (共计25分)

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

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

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


一、填空,共20题 (共计20分)

第1题 (1.0分)

若有以下定义,则计算表达式 y+=y-=m*=y 后的y值是【1】.

     int m=5,y=2;

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

-16

第2题 (1.0分)

在C语言中,格式化输入操作是由库函数 【1】完成的,格式化输出操作是由库函数【2】完成的.

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

scanf

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

printf

第3题 (1.0分)

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

 #include<stdio.h>
 void main()        
{  
    int y=3,x=3,z=1;
    printf("%d%d\n",(++x,y++),z+2);  
}

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

33

第4题 (1.0分)

int x=2,y=3,z=4;

则表达式x+y&&(x=y)的值为【1】.

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

1

第5题 (1.0分)

下列程序的输出是【1】

main()
{
     int a=011;
     printf("%d\n",++a);
}

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

10

第6题 (1.0分)

下面程序段中循环体的执行次数是【1】 .

 a=10;
 b=0;
 do{
    b+=2;
    a-=2+b;
}while(a>=0);

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

3

第7题 (1.0分)

a=3,b=2,c=1;时,执行以下程序段后 a=【1】.

   if(a>b)
        a=b;
   if(b>c)
         b=c;
   else
         c=b;
   c=a;

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

2

第8题 (1.0分)

若所用变量都已经正确定义,请填写以下程序段的输出结果【1】.

s=7;
while ( --s );
s -= 2;
printf("%d\n",s);

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

-2

第9题 (1.0分)

C语言的三种基本结构是【1】结构、选择结构、循环结构.

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

顺序

第10题 (1.0分) 

下列程序的运行结果为【1】.

#include "stdio.h"
main()
{
    int x=2,y=4,z=40;
    x*=3+2;
    x=y=z;
   pritnf("%d\n",x);
}

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

40

第11题 (1.0分)

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

#include<stdio.h>
int func(int a,int b)
{
    return(a+b); 
}

void main()
{
    int x=2,y=5,z=8,r;
    r=func(func(x,y),z);
    printf("%d\n",r); 
}

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

15

第12题 (1.0分)

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

#include<stdio.h>
double sub(double x,double y,double z)
{
    y-=1.0;
    z=z+x;
    return z; 
}

void main()
{
    double a=2.5,b=9.0;
    printf("%f\n",sub(b-a,a,a));
}

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

9.000000

第13题 (1.0分)

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

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

可以

第14题 (1.0分)

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

#define MIN(x,y) (x)<(y)?(x):(y)
void main()
{
    int i,j,k;
    i=10;j=20;
    k=2*MIN(i,j);
    printf("%d\n",k);
}

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

20

第15题 (1.0分)  

有如下程序:

 #include<stdio.h>
 int max(int x,int y)
 {
    int z;
    if(x>y)   z=x;
    else      z=y;
    return(z);
 }

 void main()
 {
    int a=3,b=5;
    printf("%d\n",max(a,b));
 }

运行结果为【1】 .

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

5

第16题 (1.0分)

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

 void f(int b[])
 {
    int i;
    for(i=2;i<6;i++)
       b[i]*=2; 
}

 void  main()
 {
    int a[10]={1,2,3,4,5,6,7,8,9,10},i;
    f(a);
    for(i=0;i<10;i++)
       printf("%d,",a[i]);
 }

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

1,2,6,8,10,12,7,8,9,10,

第17题 (1.0分)

C语言中,数组元素的下标下限为【1】.

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

0

第18题 (1.0分)

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

 #define N 20
 fun(int a[],int n,int m)
 {
    int i,j;
    for(i=m;i>n;i--)
         a[i+1]=a[i];
 }

 void main()
 {  
    int i,a[N]={1,2,3,4,5,6,7,8,9,10};
    fun(a,2,9);
    for(i=0;i<5;i++)
       printf("%d",a[i]);
}

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

1 2 3 4 4

第19题 (1.0分)

程序运行结果是【1】.

main()
{
    int oddadd(int pt[],int n);
    static int a[10]={1,2,3,4,5,6,7,8,9,10};
    int total;
    total=oddadd(a+1,9);
    printf("%d\n",total);
}

oddadd(int pt[],int n)
{
    int i,sum=0;
    for(i=0;i<n;i+=2)
        sum=sum+pt[i];
    return(sum);
}

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

30

第20题 (1.0分)

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

 #include<stdio.h>
 void main()
 {
    char s[ ]="abcdef";
    s[3]='\0';
    printf("%s\n",s);
}

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

abc

二、单选   共25题 (共计25分)

第1题 (1.0分)

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

A:#include "stdio.h"

B:main

C:printf

D:scanf

答案:B

第2题 (1.0分)

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

A:C语言比其他语言高级

B:C语言可以不用编译就能被计算机识别执行

C:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D:C语言出现的最晚,具有其他语言的一切优点

答案:C

第3题 (1.0分)

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

A:C语言程序总是从第一个定义的函数开始执行

B:在C语言程序中,要调用的函数必须在main()函数中定义

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

D:C语言程序中的main()函数必须放在程序的开始部分

答案:C

第4题 (1.0分)

一个C语言程序总是从()开始执行的.

A:主过程

B:主函数

C:子程序

D:主程序

答案:B

第5题 (1.0分)

一个C语言程序是由().

A:一个主程序和若干子程序组成

B:函数组成

C:若干过程组成

D:若干子程序组成

答案:B

第6题 (1.0分)

以下数据中,不正确的数值或字符常量是().

A:8.9e1.2

B:10

C:0xff00

D:82.5

答案:A

第7题 (1.0分)

设a为整型变量,初值为12,执行完语句 a+=a-=a*a 后,a的值是().

A:552

B:144

C:264

D:-264

答案:D

第8题 (1.0分)

下列四个选项中,均是C语言关键字的选项是().

A:auto   enum    include

B:switch  typedef   continue

C:signed  union   scanf

D:if  struct   type

答案:B

第9题 (1.0分)

下列程序段的输出结果为().

int a=7,b=9,t;

t=a*=a>b?a:b;

printf("%d",t);
A:7

B:9

C:63

D:49

答案:C

第10题 (1.0分)

下列语句的结果是().

main()
{
    int j;
    j=3;
    printf("%d,",++j);
    printf("%d",j++);
}
A:3,3

B:3,4

C:4,3

D:4,4

答案:D

第11题 (1.0分)

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

#include <stdio.h>
void main( )
{
    int a =-1,b =4,k;
    k =(++a<0)&&!(b--<= 0);
    printf(" %d%d%d \n",k,a,b);
}
A:104

B:103

C:003

D:004

答案:D

第12题 (1.0分)

下列程序的运行结果是().

#include<stdio.h>
void main()
{ 
    int x=8;
    for(;x>0;x--)
    {
        if(x%3)
        {
            printf("%d,",x--);
            continue;
        }
        printf("%d,",--x);
    }
}
A:7,4,2

B:8,7,5,2

C:9,7,6,4

D:8,5,4,2

答案:D

第13题 (1.0分)

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

#include<stdio.h>
void main()
{
    int x=10,y=10,i;
    for(i=0;x>8;y=++i)
        printf("%d %d",x--,y);
}
A:10 19 2

B:9 87 6

C:10 99 0

D:10 109 1

答案:D

第14题 (1.0分)

以下不正确的 if 语句形式是().

A:if(x>y&&x!=y);

B:if(x==y) x+=y;

C:if(x!=y) scanf("%d",&x) else scanf("%d",&y);

D:if(x<y) {x++;y++;}

答案:C

第15题 (1.0分)

以下程序中,while循环的循环次数是().

main()
{
    int i=0;
    while(i<10)
    {
        if(i<1)   continue;
        if(i==5)  break;
        i++;
    }
}
A:1

B:4

C:6

D:死循环,不能确定次数

答案:D

第16题 (1.0分)

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

A:全局变量的作用域一定比局部变量的作用域范围大

B:静态(static)类别变量的生存期贯穿于整个程序的运行期间

C:函数的形参都属于全局变量

D:未在定义语句中赋初值的auto变量和static变量的初值都是随机值

答案:B

第17题 (1.0分)

C语言中的函数().

A:可以嵌套定义

B:不可以嵌套调用

C:可以嵌套调用,但不能调用自己

D:嵌套调用和调用自己均可

答案:D

第18题 (1.0分)

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

A:宏替换是在程序编译时进行的

B:函数调用是在程序编译时进行的

C:宏替换时,如果实参是表达式,应先求表达式的值,再替换

D:函数调用时,如果实参是表达式,应将表达式的值传递给形参

答案:D

第19题 (1.0分)

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

A:float型

B:int型

C:long型

D:double型

答案:B

第20题 (1.0分)

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

A:地址传递

B:单向值传递

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

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

答案:B

第21题 (1.0分)

设有数组定义:char array[ ]="China";,则数组array所占的空间为().

A:4个字节

B:5个字节

C:6个字节

D:7个字节

答案:C

第22题 (1.0分)

假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,

则数组x在内存中所占字节数是().

A:3

B:6

C:10

D:20

答案:D

第23题 (1.0分)

以下能对二维数组a进行正确初始化的语句是().

A:int a[2][]={{1,0,1},{5,2,3}};

B:int a[][3]={{1,2,3},{4,5,6}};

C:int a[2][4]={{1,2,3},{4,5},{6}};

D:int a[][3]={{1,0,1}{},{1,1}};

答案:B

第24题 (1.0分)

以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置.     

程序运行后的输出结果是().

#include<stdio.h>
void reverse(int a[ ],int n)
{
    int i,t;
    for(i=0;i<n/2;i++)
    {
        t=a[i];
        a[i]=a[n-1-i];
        a[n-1-i]=t;
    }
}

void main()
{
    int b[10]={1,2,3,4,5,6,7,8,9,10};
    int i,s=0;
    reverse(b,8);
    for(i=6;i<10;i++)
        s+=b[i];
    printf("%d\n",s);
}
A:22

B:10

C:34

D:30

答案:A

第25题 (1.0分)

下列程序执行后的输出结果是().

#include<stdio.h>
void main()
{
    char arr[2][4];
    strcpy(arr,"you");  
    strcpy(arr[1],"me");
    arr[0][3]='&';
    printf("%s\n",arr);
}
A:you&me

B:you

C:me

D:err

答案:A

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

第1题 (5.0分)

说明:下面程序的功能是打印出所有的“水仙花数”,请填写
      程序所缺内容。
注:水仙花数是指一个三位数的各位数字的立方和是这个数本身。
#include"stdio.h"

void f(int n)
{
	int i, j, k;
	i = n / 100;
	/***********SPACE***********/
	j = 【 ? 】;
	k = n % 10;
	/***********SPACE***********/
	if (【 ? 】)
	{
		printf("%5d\n", n);
	}
}

void main()
{
	void f(int n);
	int i;
	for (i = 100; i < 1000; i++)
		f(i);
}

答案:

=======(答案1)=======
n/10%10
=========或=========
(n/10)%10

=======(答案2)=======
i*100 + j*10 + k == i*i*i + j*j*j + k*k*k
=========或=========
n== i*i*i + j*j*j + k*k*k
=========或=========
i*i*i + j*j*j + k*k*k ==n

第2题 (10.0分)

功能:将十进制数转换成十六进制数。
#include <stdio.h>
#include "string.h"
void c10_16(char p[], int b)
{
	int j, i = 0;
	/***********SPACE***********/
	while (【 ? 】)
	{
		j = b % 16;
		if (j >= 0 && j <= 9)
		/***********SPACE***********/
			【 ? 】;
		else p[i] = j + 55;
		b = b / 16;
		i++;
	}
	/***********SPACE***********/
	【 ? 】;
}

main()
{
	int a, i;
	char s[20];
	printf("input a integer:\n");
	scanf("%d", &a);
	c10_16(s, a);
	/***********SPACE***********/
	for (【 ? 】; i >= 0; i--)
		printf("%c", s[i]);
	printf("\n");
}

答案:

=======(答案1)=======
b>0
=========或=========
0<b
=========或=========
b!=0
=========或=========
0!=b
=========或=========
b

=======(答案2)=======
p[i]= j + '0'
=========或=========
p[i]= j + 48
=========或=========
*(p+i)= j + '0'
=========或=========
*(p+i)= j + 48

=======(答案3)=======
p[i]='\0'
=========或=========
p[i]=0
=========或=========
p[i]=NULL
=========或=========
*(p+i)='\0'
=========或=========
*(p+i)=0
=========或=========
*(p+i)=NULL

=======(答案4)=======
i=strlen(s)-1
=========或=========
i=-1+strlen(s)

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

第1题 (10.0分)

题目:下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因
      子(即所有为素数的因子)。
例如:若输入整数2310,则应输出:2,3,5,7,11。
#include<conio.h>
#include<stdio.h>
int IsPrime(itn n)
{
	int i, m;
	m = 1;
	for (i = 2; i < n; i++)
		if!(n % i)
		{
			m = 0;
			break;
		}
	return(m);
}

main()
{
	int j, k;
	printf("\nPlease enter an interger number between 2 and 10000: ");
	scanf("%d", &k);
	printf("\nThe prime factor(s) of %d is(are): ", k);
	for (j = 2; j < k; j++)
		if ((!(k % j)) && (IsPrime(j)))
			printf("%4d,", j);
	printf("\n");
}

答案:

=======(答案1)=======
IsPrime(int n)

=======(答案2)=======
if(!(n%i))

第2题 (10.0分)

题目:下列给定程序中,函数fun的功能是:求出数组中的最大数和次最大数,并把最
      大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。
#include<conio.h>
#include<stdio.h>
#define N 20

void fun(int a, int n);
{
	int i, m, t, k;
	for (i = 0; i < 2; i++)
	{
		m = 0;
		for (k = i + 1; k < n; k++)
			if (a[k] > a[m])
				m = k;
		t = a[i];
		a[i] = a[m];
		a[m] = t;
	}
}

int main()
{
	int b[N] = { 11,5,12,0,3,6,9,7,10,8 }, n = 10, i;
	system("CLS");
	for (i = 0; i < n; i++)
		printf("%d ", b[i]);
	printf("\n");
	fun(b, n);
	for (i = 0; i < n; i++)
		printf("%d ", b[i]);
	printf("\n");
}

答案:

=======(答案1)=======
void fun(int *a, int n)
=========或=========
void fun(int a[], int n)

=======(答案2)=======
m=i;

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

第1题 (10.0分)

题目:请编写函数fun,该函数的功能是:求出二维数组周边元素之和,
      作为函数值返回。二维数组中的值在主函数中赋予。

例如:若二维数组中的值为:                  
                          1 3 5 7 9                       

                          2 9 9 9 4                

                          6 9 9 9 8                

                          1 3 5 7 0
      则函数值为61。

注意:请勿改主动函数main和其他函数中的任何内容,
      仅在函数fun的花括号中填入你编写的若干语句。
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define M 4
#define N 5

int fun(int a[M][N])
{
	/**********Program**********/


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

void main()
{
	int aa[M][N] = { {1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0} };
	int i, j, y;
	system("CLS");
	printf("The original data is :\n ");
	for (i = 0; i < M; i++)
	{
		for (j = 0; j < N; j++)
			printf("%6d ", aa[i][j]);
		printf("\n ");
	}
	y = fun(aa);
	printf("\nThe sun: %d\n ", y);
	printf("\n ");
}

答案:

int i, j, sum = 0;
for (i = 0; i < M; i++)
	for (j = 0; j < N; j++)
		if (i == 0 || i == M - 1 || j == 0 || j == N - 1)
			sum = sum + a[i][j];
return sum;

第2题 (10.0分)

题目:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
      输入一个正整数 n,输出 2/1+3/2+5/3+8/5+……前n项之和,保留2位小数。
     (该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)

输入输出示例:括号内是说明
输入
3        (repeat=3)
1        (n=1)
5        (n=5)
20       (n=20)

输出
sum = 2.00           (第1项是2.00)
sum = 8.39           (前5项的和是8.39)
sum = 32.66          (前20项的和是32.66)
#include <stdio.h>
void main()
{
	int i, n;
	int repeat, ri;
	double denominator, numerator, sum, temp;
	scanf("%d", &repeat);
	for (ri = 1; ri <= repeat; ri++)
	{
		scanf("%d", &n);
		/**********Program**********/



		/**********  End  **********/
		printf("sum = %.2f\n", sum);
	}
}

答案:

numerator = 2;
denominator = 1;
sum = 0;
for (i = 1; i <= n; i++)
{
	sum = sum + numerator / denominator;
	temp = numerator;
	numerator = numerator + denominator;
	denominator = temp;
}

若有错误或疑问,欢迎评论区留言讨论。文章来源地址https://www.toymoban.com/news/detail-655672.html

到了这里,关于C语言计算机二级/C语言期末考试 刷题(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机二级考试C语言】C输入&输出

    当我们提到 输入 时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到 输出 时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供

    2024年01月21日
    浏览(28)
  • 【计算机二级考试C语言】C程序结构

    在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。 C 程序主要包括以下部分: 预处理器指令 函数 变量 语句 表达式 注释 让我们看一段简单的代码,可以输出单词 \\\"Hello World\\\": 实例: 接下来我们讲解一下上

    2024年01月23日
    浏览(38)
  • 【计算机二级考试C语言】C共用体

    共用体 是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 为了定义共用体,您必须使用  union  语句,方式与定义结构类似

    2024年01月18日
    浏览(34)
  • 【计算机二级考试C语言】C基本语法

    我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。 C 程序由各种令牌组成,令牌可以是、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌: 这五个令牌分别是: 在 C 程序中,分号是语句结束符。也就是

    2024年01月18日
    浏览(35)
  • 【计算机二级考试C语言】C预处理器

    C 预处理器 不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。

    2024年01月23日
    浏览(33)
  • 2020年3月全国计算机等级考试真题(C语言二级)

    2020年3月全国计算机等级考试真题(C语言二级) 第1题 有以下程序 void fun1 (char*p) {      char*q;     q=p;     while(*q!=\\0)   {       (*Q)++; q++;   } } main() {   char a[]={\\\"Program\\\"},*p;   p=a[3];   fun1(p);   printf(\\\"%sn\\\",a);  } 程序执行后的输出结果是 A. Prphsbn B. Prohsbn C. Progsbn D. Program 正确

    2024年02月12日
    浏览(29)
  • 2019年9月全国计算机等级考试真题(C语言二级)

    2019年9月全国计算机等级考试真题(C语言二级) 第1题 1、“商品”与“顾客”两个实体集之间的联系一般是 A. 一对一 B. 一对多 C. 多对一 D. 多对多 正确答案:D 第2题 定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)则该关系的主键为 A. C# B. S# C. S#,C# D. S#,C#,G 正确答

    2024年02月12日
    浏览(31)
  • 2017年9月全国计算机等级考试真题(C语言二级)

    2017年9月全国计算机等级考试真题(C语言二级) 第1题 有以下程序 #include stdio.h void fun (int a, int b) {     int t;     t=a; a=b; b=t;   } main() {     int c[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, i;      for (i=0; i10; i+=2)     fun (c[i], c[i+1]);     for(i=0; i10; i++)     printf(\\\"%d,\\\", c[i]);     printf(\\\"n\\\"); } 程

    2024年02月12日
    浏览(28)
  • 2017年3月全国计算机等级考试真题(C语言二级)

    2017年3月全国计算机等级考试真题(C语言二级) 第1题 每个学校有一名校长,且不同学校的校长可以是同一人,则实体学校和实体校长间的联系是 A. 多对一 B. 多对多 C. 一对一 D. 一对多 正确答案:A 第2题 若有以下定义int x[10],*pt=x;则对x数组元素的正确引用是 A. *(x+3)

    2024年02月12日
    浏览(34)
  • 【NCRE 二级Java语言程序设计01】全国计算机等级考试初识

    📜 本专栏主要是分享自己备考全国计算机二级Java语言程序设计所学心得体会、所搜集的资料信息。虽然有 Java 语言相关基础,但是 Java 桌面编程、Applet 小程序编程根本没学过,因为咱不是搞这个的呀,学了它们也找不到这方面工作呀。但是对于考二级 Java 的小伙伴来说是必

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包