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语言期末考试 刷题(十四)指针专题


目录

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

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

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

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

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

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


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

第1题

C语言中的字符变量用保留字【1】来说明.

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

char

第2题

c语言表达式   5>2>7>8   的值是【1】.

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

0

第3题

int x=2,y=3,z=4; 则表达式x+y&&z的值为【1】.

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

1

第4题

int x=2;z=-x+++1; 则x的值为【1】.

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

3

第5题

已知x=3,y=2,则表达式x*=y+8的值为【1】.

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

30

第6题

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

    if (a>c) 

          b=a;

    a=c;

    c=b;

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

2

第7题

若先后输入country和side,则下列程序运行结果为【1】.

main()
{   
    char s1[40],s2[20];
    int i=0,j=0;
    scanf("%s",s1);
    scanf("%s",s2);
    while(s1[i]!='\0') i++;
    while(s2[j]!='\0')   s1[i++]=s2[j++];
    s1[i]='\0';
    printf("%s\n",s1);
}

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

countryside

第8题

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

  s=7;

  do  s -= 2;

  while (s==0);

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

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

5

第9题

以下do-while语句中循环体的执行次数是【1】.

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

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

3

第10题

若所用变量均已正确定义,则执行下面程序段后的 值是【1】.

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

        printf("YES");

   printf("\n");

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

YESYES

第11题

设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【1】.

   for(i=0,j=10; i<=j; i++,j--)
         k=i+j;

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

10

第12题

设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】.

    for (x=0,y=0; y!=123&&x<3; x++)

         scanf ("%d",&y);

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

3

第13题

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

 #include "stdio.h"
 void main()
{   
    int a;
    for(a=0;a<10;a++);
    printf("%d",a);
}

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

10

第14题

以下程序计算数n的阶乘.

main()
{   
    int i,n;  long np;
    scanf("%d",&n);
    np=【1】;
    for(i=2;i<=n;i++)
        np=np*i;
    printf(("n=%d,n!=%ld\n",n,np);
}

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

1

第15题

static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为【1】.

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

6

第16题

若有以下数组a,数组元素:a[0]~a[9],其值为

  9  4  12  8  2  10  7  5  1  3

 该数组可用的最大下标值是【1】.

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

9

第17题

若有定义:char s[ ]="china";

则VC++系统为数组s开辟【1】个字节的内存单元.

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

6

第18题

程序运行结果是【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

第19题

在C程序中,指针变量的值增1,表示指针变量指向下

一个存储单元,指针变量中具体增加的字节数由系统

自动根据指针变量的【1】决定.

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

所指对象数据类型

第20题

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

 #include<stdio.h>

 void change(int k[ ]) 

 {  k[0]=k[5];  }

 void main()

 {  int

 x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

   while(n<=4)

   {  change(&x[n]);   n++;  }

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

       printf("%d ",x[n]);

    printf("\n");

 }

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

6 7 8 9 10

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

第1题

c程序总是从程序的第一条语句开始执行.

答案:N

第2题

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

答案:Y

第3题

语句scanf("%7.2f",&a);是一个合法的scanf函数.

答案:N

第4题

表达式 (j=3, j++) 的值是4.

答案:N

第5题

a=(b=4)+(c=6) 是一个合法的赋值表达式.

答案:Y

第6题

若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28.

答案:N

第7题

int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为3.

答案:N

第8题

若有int ⅰ=10, j=0;则执行完语句

if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11.

答案:N

第9题

while 和for循环都是先判断表达式的值,后执行循环体语句.

答案:Y

第10题

数组的特点是,数组元素排列有序且数据类型相同.

答案:Y

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

第1题

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

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

B:可以在一个函数中定义另一个函数

C:main()函数必须放在其它函数之前

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

答案:A

第2题

C语言执行程序的开始执行点是().

A:程序中第一条可以执行语言

B:程序中第一个函数

C:程序中的main函数

D:包含文件中的第一个函数

答案:C

第3题

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

A:#include "stdio.h"

B:main

C:printf

D:scanf

答案:B

第4题

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

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

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

C:函数必须有返回值,否则不能使用函数

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

答案:A

第5题

以下关于long、int和short类型数据占用内存大小的叙述中正确的是().

A:均占4个字节

B:根据数据的大小来决定所占内存的字节数

C:由用户自己定义

D:由C语言编译系统决定

答案:D

第6题

下列标识符中,不合法的C语言用户自定义标识符是().

A:printf

B:enum

C:_

D:sin

答案:B

第7题

下列字符序列中,是C语言保留字的是().

A:sizeof

B:include

C:scanf

D:sqrt

答案:A

第8题

以下标识符中,不能作为合法的C用户定义标识符的是().

A:putchar

B:_double

C:_123

D:INT

答案:A

第9题

以下正确的字符串常量是().

A:"\\\"

B:'abc'

C:OlympicGames

D:'A'

答案:A

第10题

若有说明语句:char c='\72';则变量c().

A:包含1个字符

B:包含2个字符

C:包含3个字符

D:说明不合法,c的值不确定

答案:A

第11题

下列变量说明语句中,正确的是().

A:char:a b c;

B:char a;b;c;

C:int x;z;

D:int x,z;

答案:D

第12题

char a[]="This is a program.";输出前5个字符的语句是().

A:printf("%.5s",a);

B:puts(a);

C:printf("%5s",a);

D:a[5*2]=0;puts(a);

答案:A

第13题

printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式().

A:从左起输出该字符串,右补空格

B:按原字符长从左向右全部输出

C:右对齐输出该字串,左补空格

D:输出错误信息

答案:B

第14题

putchar函数可以向终端输出一个().

A:整型变量表达式值

B:实型变量值

C:字符串

D:字符或字符型变量值

答案:D

第15题

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

float x=213.82631;

printf("%3d",(int)x);
A:213.82

B:213.83

C:213

D:3.8

答案:C

第16题

已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是().

A:A,B

B:A,68

C:65,66

D:65,68

答案:C

第17题

以下程序段的执行结果是().

double  x;x=218.82631; printf("%-6.2e\n",x);
A:输出格式描述符的域宽不够,不能输出

B:输出为21.38e+01

C:输出为2.2e+02

D:输出为-2.14e2

答案:C

第18题

C语言能正确处理的指数是().

A:8.5e4288

B:e-32

C:123000000000

D:4.5e-5.6

答案:C

第19题

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

A:552

B:144

C:264

D:-264

答案:D

第20题

先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是().

A:c='a';

B:c="a";

C:c="97";

D:C='97'

答案:A

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

第1题

功能:将一个字符串中下标为m的字符开始的全部字符复制成为另
     一个字符串。
#include<stdio.h>
void strcopy(char* str1, char* str2, int m)
{
	char* p1, * p2;
	【 ? 】;
	p2 = str2;
	while (*p1)
		【 ? 】;
	【 ? 】;
}

main()
{
	int m;
	char str1[80], str2[80];
	gets(str1);
	scanf("%d", &m);
	【 ? 】;
	puts(str1);
	puts(str2);
}

答案:

=======(答案1)=======
p1= str1 + m

=======(答案2)=======
*p2++=*p1++
=========或=========
*(p2++)=*(p1++)
=========或=========
*p2=*p1,p2++,p1++
=========或=========
*p2=*p1++,p2++
=========或=========
*p2++=*p1,p1++

=======(答案3)=======
*p2='\0'
=========或=========
*p2=0
=========或=========
*p2=NULL

=======(答案4)=======
strcopy(str1,str2,m)

第2题

功能:下面的程序是求1!+3!+5!+……+n!的和。
#include <stdio.h>
main() {
	long int f, s;
	int i, j, n;
	【 ? 】;
	scanf("%d", &n);
	for (i = 1; i <= n; 【 ? 】)
	{
		f = 1;
		for (j = 1; 【 ? 】; j++)
			【 ? 】;
		s = s + f;
	}
	printf("n=%d,s=%ld\n", n, s);
}

答案:

=======(答案1)=======
s=0

=======(答案2)=======
i+=2
=========或=========
i=i+2
=========或=========
i++,i++

=======(答案3)=======
j<=i
=========或=========
i+1>j
=========或=========
i>=j
=========或=========
j<i+1

=======(答案4)=======
f = f * j
=========或=========
f*=j

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

第1题

功能:利用二维数组输出如图所示的图形。

        *******

         *****

          ***

           *

          ***

         *****

        *******
#include <stdio.h>
#include <conio.h>
#define N = 7
main()
{
	char a[N][N];
	int i, j, z;
	for (i = 0; i < N; i++)
		for (j = 0; j < N; j++)
			a[i][j] = ;
	z = 0;
	for (i = 0; i < (N + 1) / 2; i++)
	{
		for (j = z; j < N - z; j++)
			a[i][j] = '*';
		z = z + 1;
	}
	z = 0;
	for (i = (N + 1) / 2; i < N; i++)
	{
		z = z - 1;
		for (j = z; j < N - z; j++)
			a[i][j] = '*';
	}

	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
			printf("%d", a[i][j]);
		printf("\n");
	}
}

答案:

=======(答案1)=======
#define N 7

=======(答案2)=======
a[i][j]=' ';

=======(答案3)=======
z=z-1;
=========或=========
z--;
=========或=========
z=-1+z;

=======(答案4)=======
printf("%c",a[i][j]);

第2题

题目:下列给定程序中函数fun的功能是:
     计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
     其中x和y的值不相等,z和y的值不相等。

例如:当x的值为9,y的值为11,z的值为15时,函数值为-3.50。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define FU(m,n) ((m/n))
float fun(float a, float b, float c)
{
	float value;
	value = FU(a + b, a - b) + FU(c + b, c - b);
	Rteurn(Value);
}

main()
{
	float x, y, z, sum;
	printf("Input  x  y  z:  ");
	scanf("%f%f%f", &x, &y, &z);
	printf("x=%f,y=%f,z=%f\n", x, y, z);
	if (x == y || y == z)
	{
		printf("Data error!\n");
		exit(0);
	}
	sum = fun(x, y, z);
	printf("The result is : %5.2f\n", sum);
}

答案:

=======(答案1)=======
#define FU(m,n)  (m)/(n)

=======(答案2)=======
return (value);

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

第1题

题目:编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串中'a'到'z'26个
     小写字母各自出现的次数,并依次放在pp所指的数组中。

例如:当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:
      3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#include <stdio.h>
#include <string.h>
void fun(char* tt, int pp[])
{
	/**********Program**********/




	/**********  End  **********/
}
void main()
{

	char aa[1000];
	int bb[26], k;
	printf("\nPlease enter  a char string:");
	scanf("%s", aa);
	fun(aa, bb);
	for (k = 0; k < 26; k++)
		printf("%d ", bb[k]);
	printf("\n");
}

答案:

int i;
for (i = 0; i < 26; i++)
	pp[i] = 0;         /*初始化pp数组各元素为0*/
for (; *tt != '\0'; tt++)
if (*tt >= 'a' && *tt <= 'z')
pp[*tt - 'a']++;

第2题

#include <stdio.h>
double sum(int n)
{
	/**********Program**********/



	/**********  End  **********/
}
main()
{
	int n;
	scanf("%d", &n);
	printf("sum=%f\n", sum(n));
}

答案:

float s = 0;
int i, k = 1;
for (i = 1; i <= n; i++)
{
	s = s + k * 1.0 / i;
	k = -k;
}
return(s);

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

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

juechen333

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

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

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

打赏作者

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

抵扣说明:

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

余额充值