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

Posted juechen333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言计算机二级/C语言期末考试 刷题相关的知识,希望对你有一定的参考价值。

在空闲时间整理了一些C语言计算机二级和C语言期末考试题库

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

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

系列文章:

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

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

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

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

目录

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

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

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

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

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

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


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

第1题

若有定义:char c='\\010';则变量c中包含的字符个数为【1】.

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

1

第2题

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

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

1

第3题

C语言中的标识符只能由3种字符组成,它们是【1】、【2】和【3】.

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

字母

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

无序

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

数字

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

无序

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

下划线

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

无序

第4题

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

#include<stdio.h>
void main()

	int i = 010, j = 10;
	printf("%d,%d\\n", ++i, j--);

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

9,10

第5题

若s是int型变量,且s=6,则下面表达式的值是【1】.

s%2+(s+1)%2

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

1

第6题

若输入字符串:abcde<回车>,则以下while循环体将执行 【1】 次.

while((ch = getchar()) == 'e')
printf("*");

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

0

第7题

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

void main()

	int a = 4, b = 3, c = 5, t = 0;
	if (a < b) t = a; a = b; b = t;
	if (a < c) t = a; a = c; c = t;
	printf("%d %d %d\\n", a, b, c);

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

5 0 3

第8题

c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.

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

循环

第9题

下面程序的输出是【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

第10题

下列程序的输出结果是【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

第11题

按内存排列顺序, 数组char a[2]中的所有元素是a[1]和【1】.

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

a[0]

第12题

求字符串长度的库函数是【1】,只写函数名即可.

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

strlen

第13题

若有以下定义和语句:

int a[4] =  0,1,2,3 , * p;
p = &a[2];

则*--p的值是【1】.

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

1

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

第1题

一个C程序中至少有一对大花括号.

答案:Y

第2题

7&&3+12的值是13.

答案:N

第3题

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

答案:N

第4题

for(i=0;i<9;i++)能控制循环10次.

答案:N

第5题

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

答案:Y

第6题

将函数的返回值类型说明成空值型(void),则调用时不可做表达式用.

答案:Y

第7题

变量根据其作用域的范围可以分作局部变量和全局变量.

答案:Y

第8题

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

答案:N

第9题

static char s[]; s="China"; 是正确的.

答案:N

第10题

char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl".

答案:N

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

第1题

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

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

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

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

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

答案:A

第2题

C语言程序的基本单位是().

A:函数

B:过程

C:子程序

D:子例程

答案:A

第3题

C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().

A:必须为字母

B:必须为下划线

C:必须为字母或下划线

D:可以是字母,数字和下划线中任一字符

答案:C

第4题

若int a=3,则执行完表达式a-=a+=a*a后,a的值是().

A:-15

B:-9

C:-3

D:0

答案:D

第5题

判断char型变量cl是否为小写字母的正确表达式是().

A:'a'<=cl<='z'

B:(cl>=a)&&(cl<=z)

C:('a'>=cl)||('z'<=cl)

D:(cl>='a')&&(cl<='z')

答案:D

第6题

若k为int型变量,则以下程序段的执行结果是().k=-8567;  printf("|%06D|\\n",k);

A:格式描述符不合法,输出无定值

B:输出为|%06D|

C:输出为|0-8567|

D:输出为|-8567|

答案:B

第7题

若x=2,y=3则x&y的结果是().

A、0

B、2

C、3

D、5

答案:B

第8题

若有如下语句,则程序段().

int x = 6;
do 

	printf("%d\\n", x -= 2);
 while (--x);
A:输出的是1

B:输出的是4和1

C:输出的是3和0

D:是死循环

答案:B

第9题

int a=1,b=2,c=3;

if(a>c)b=a;a=c;c=b;则c的值为().

A:1

B:2

C:3

D:不一定

答案:B

第10题

以下语句中,循环次数不为10次的语句是().

A:for(i=1;i<10;i++);

B:i=1;doi++;while(i<=10);

C:i=10;while(i>0)--i;

D:i=1;m:if(i<=10)i++;goto m;

答案:A

第11题

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

main()

	int num = 0;
	while (num <= 2)
	
		num++;
		printf("%d,", num);
	
A:0,1,2

B:1,2,

C:1,2,3,

D:1,2,3,4,

答案:C

第12题

C语言中 while 和 do-while 循环的主要区别是().

A:do-while 的循环体至少无条件执行一次

B:while的循环控制条件比 do-while的循环控制条件更严格

C:do-while 允许从外部转到循环体内

D:do-while 的循环体不能是复合语句

答案:A

第13题

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

A:自动(auto)

B:静态(static)

C:外部(extern)

D:寄存器(register)

答案:A

第14题

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

A:
double fun(int x, int y)

	z = x + y; return z;


B:
fun(int x, y)

	int z; return z;


C:
fun(x, y)

	int x, y; double z; z = x + y; return z;


D:
double fun(int x, int y)

	double z; z = x + y; return z;

答案:D

第15题

C语言程序中,当调用函数时().

A:实参和虚参各占一个独立的存储单元

B:实参和虚参可以共用存储单元

C:可以由用户指定是否共用存储单元

D:计算机系统自动确定是否共用存储单元

答案:A

第16题

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

A:该数组的长度

B:该数组的元素个数

C:该数组的首地址

D:该数组中各元素的值

答案:C

第17题

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

A:int

B:float

C:double

D:不确定

答案:C

第18题

以下能对二维数组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

第19题

若char a[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是().

A:gets(a);

B:scanf("%s", a);

C:for (i = 0; i < 10; i++)a[i] = getchar();

D:a = getchar();

答案:D

第20题

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

A :4个字节

B : 5个字节

C : 6个字节

D : 7个字节

答案:C

第21题

char a[10];不能将字符串"abc"存储在数组中的是().

A:strcpy(a,"abc");

B:a[0]=0;strcat(a,"abc");

C:a="abc";

D:int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

答案:C

第22题

下列字符数组长度为5的是().

A:char  a[] =  'h', 'a', 'b', 'c', '\\0' ;

B:char b[] =  'h', 'a', 'b', 'c', 'd', '\\0' ;

C:char    c[10] =  'h', 'a', 'b', 'c', 'd' ;

D:char   d[6] =  'h', 'a', 'b', 'c', '\\0' ;

答案:A

第23题

若有说明 int *p,m=5,n;以下正确的程序段是().

A:p=&n;scanf("%d",&p);

B:p=&n;scanf("%d",*p)

C:scanf("%d",&n);*p=n;

D:p=&n;*p=m;

答案:D

第24题

若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是().

A:p1=&m;p2=&p1

B:p1=&m;p2=&n;*p1=*p2;

C:p1=&m;p2=p1;

D:p1=&m;*p2=*p1;

答案:C

第25题

若有int *p,a; p=&a,下列说法不正确的是().

A:&*p==&a

B:*&a==a

C:(*p)++==a++

D:*(p++)==a++

答案:D

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

第1题

功能:输出9*9口诀。
#include<stdio.h>
main()

	int i, j, result;
	printf("\\n");
	for (i = 1; 【 ? 】; i++)
	
		for (j = 1; j < 10; 【 ? 】)
		
			result = i * j;
			printf("%d*%d=%-3d", i, j, 【 ? 】);
		
		printf("\\n");
	

答案:

=======(答案1)=======
i<10
=========或=========
10>i

=======(答案2)=======
j++
=========或=========
++j
=========或=========
j=j+1

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

第2题

功能:用等分法在有序的循环数组中,找到最小元素的位置。
#include <stdio.h>
int cyclic_min(int x[], int n)

	int left = 0;
	int right = n - 1;
	int mid;
	while (【 ? 】)
	

		mid = (left + right) / 2;
		if (x[mid] < x[right])
			【 ? 】;
		else
			【 ? 】;
	
	return left;


void main(void)

	int x[] =  20, 23, 28, 35, 39, 40, 42, 8, 10, 15, 17, 19 ;
	int n = sizeof(x) / sizeof(int);
	int loc, i;
	printf("\\nFind Cyclic Minimum");
	printf("\\n===================");
	printf("\\n\\nGiven Array Sorted in Cyclic Fashion :\\n");
	for (i = 0; i < n; i++)
		printf("%3d", x[i]);
	loc = cyclic_min(x, n);
	printf("\\n\\nMinimum is located at x[%d] = %d", loc, x[loc]);

答案:

=======(答案1)=======
left < right
=========或=========
right>left

=======(答案2)=======
right = mid

=======(答案3)=======
left  = mid + 1
=========或=========
left  = 1+mid

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

第1题

题目:函数fun的功能是:求1到20的阶乘的和。
     请改正程序中的错误,使它能得出正确的结果。
fun()

	int n, j;
	float s = 0.0, t = 1.0;
	for (n = 1; n <= 20; n++)
	
		t = 1;
		for (j = 1; j <= n; j++)
			t = t * j;
		s + t = s;
	
	printf("jiecheng=%d\\n", s);


main()

	fun();

答案:

=======(答案1)=======
s=s+t;
=========或=========
s+=t;

=======(答案2)=======
printf("jiecheng=%f\\n",s);

第2题

功能:求1到10的阶乘的和。
#include <stdio.h>
main()

	int i;
	float s = 0;
	float fac(int n);
	for (i = 1; i < 10; i++)
		s = fac(i);
	printf("%f\\n", s);


float fac(int n)

	int y = 1;
	int i;
	for (i = 1; i <= n; i++)
		y = y * i;
	return;

答案:

=======(答案1)=======
for(i=1;i<=10;i++)
=========或=========
for(i=1;10>=i;i++)
=========或=========
for(i=1;i<11;i++)
=========或=========
for(i=1;11>i;i++)

=======(答案2)=======
s=s+fac(i);
=========或=========
s+=fac(i);
=========或=========
s=fac(i)+s;

=======(答案3)=======
float y=1.0;
=========或=========
float y=1;

=======(答案4)=======
return y;
=========或=========
return(y);
=========或=========
return (y);

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

第1题

题目:编程输出1~200之间所有能被12整除的整数。
要求:循环控制变量用i。
#include <stdio.h>                       
void main()

	/**********Program**********/



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

答案:

	int i;
	for (i = 1; i <= 200; i++)
	
		if (i % 12 == 0)
			printf("%d ", i);
	
	printf("\\n");

第2题

题目:编写程序,从键盘输入2个字符串,分别存入字符数组s和t中
     (数组大小为40),比较这两个字符串,如果两个字符串相同,
      直接输出"Two strings are equal.",否则将较大的字符串之
      后与较小的字符串和字符串"end."连接后存入字符数组r中
     (数组大小为100),输出连接后的字符串r。
提示:程序应包含头文件 <string.h>
/**********Program**********/





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

答案:

#include <stdio.h>
#include <string.h>             //1分
main()

	char s[40] = "", t[40] = "", r[100] = "";		//1分
	gets(s);										//1分
	gets(t);										//1分
	if (strcmp(s, t) == 0)							//1分(含puts)
		puts("Two strings are equal.");
	else if (strcmp(s, t) > 0)						//2分(含 分数)
	
		strcpy(r, s);								//1分
		strcat(r, t);								//1分
		strcat(r, "end.");							//1分
		puts(r);									//1分
	
	else
	
		strcpy(r, t);								//1分
		strcat(r, s);								//1分
		strcat(r, "end.");							//1分
		puts(r);									//1分
	

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

二级C语言考试选择真题分类练习讲解——C语言基本语法





全国计算机等级考试规定: 二级C语言合格条件为总分≥60分,且选择题得分≥20分。
本专辑课程是全国计算机等级考试二级《C语言》中选择题练习+精讲,由执教18年、全国计算机等级考试全科四级水平李亚飞老师讲授,对 二级C语言题库中的选择题目去重、归类精讲 ,可供考生反复学习练习,熟练掌握,顺利通过考试。
注:所有选择题均为单项选择,标准答案在文中以红色标记。
预祝大家顺利通过考试!





01

全国计算机等级考试二级C语言  选择题题库分类练习讲解

C语言基本语法【共41题】




1、不合法的十六进制数是()

A.oxff

B.0xabc

C.0X11

D.0x19



2、合法的八进制数是()

A.0

B.028

C.-077

D.01.0



3、VS 2010 C++中int类型变量所占字节数是()

A.2

B.4

C.8

D.16



4、以下叙述中正确的是()

A.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示

B.C程序由主函数组成

C.C程序由若干函数组成

D.C程序中只允许包含一个函数



5、以下叙述中正确的是()

A.a是实型变量,c允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值

B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式

C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值.b的值由原值变为0

D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3


1-5题视频讲解




6、若变量已正确定义并赋值,以下符合C语言语法的表达式是()

A.a=a+7;

B.a=7+b+c,a++

C.int(12.3%4)

D.a=a+7=c+b



7、可在C程序中用作用户标识符的一组标识符是()

A.as_b3、_123、If

B.voiddefineWORD

C.For-abccase

D.2cDOSIG



8、以下选项中不合法的用户标识符是()

A.A$

B.Dim

C.printf

D._123



9、以下选项中不合法的用户标识符是()

A.abc.c

B.file

C.Main

D.PRINT



10、以下选项中不正确的实型常量是()

A.2.607E-1

B.0.8103e 2

C.-77.77

D.456e-2


6-10题视频讲解




11、以下选项中正确的实型常量是()

A. 0

B. .871

C. 3.  1415

D. 0.329×102



12. 以下选项中正确的整型常量是()

A.12.

B.-20

C.1,000

D.4 5 6



13. 结构化程序设计不包括以下哪项()

A.顺序结构

B.选择结构

C.循环结构

D.模块结构



14.  语句:x++;执行后能使变量x中的值增1,下列选项中哪条赋值语句不属于同一功能()

A.++x;

B.x=x+1

C.x=1+x;

D.x+=1;



15.  abc为整型数,a=2b=3c=4则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是()

A.28

B.32

C.31

D.34


11-15题视频讲解




16. xy均为int型变量,x=1,y=2,则表达式1.0+x/y的值为()

A.

B.1.0

C.1.5

D.2




17. 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是()

   c=(a-=(b-5));

   c=(a%11)+(b=3);

A.

B.

C.3

D.




18.【单选题】C语言程序的基本单位是()

A.程序行

B.语句

C.函数

D.字符




19.C语言中,合法的长整型常数是( )

A.0L

B.4962710

C.0.054838743

D.2.1869e10




20. 设x和y均为int型变量,则以下语句的功能是( )

    x+=y;y=x-y;x-=y;

A.xy按从大到小排列

B.xy按从小到大排列

C.无确定结果

D.交换x和y中的值


16-20题视频讲解





21.【单选题】在C语言中,不正确的int类型的常数是( )

A.-012

B.0

C.037

D.0xAF




22. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )

A.1

B.2

C.2.0

D.2.5




23. C语言中运算对象必须是整型的运算符是( )

A.%=

B./

C.=

D.<=



24、aint类型,且其值为3,则执行完表达式

        a+=a-=a*a后,a的值是 (  )

A.-3

B.9

C.-12

D.6




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

main()

{

  int a=3;

  printf("%d\n",(a+a-=a*a));

}

A.-6

B.12

C.0

D.-12


21-25题视频讲解





26.  设int x、y,且x=10,y=3,则以下语句的输出结果是( )

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

A.10,3

B.9,3

C.9,2

D.10,2



27.【单选题】以下选项中,与k=n++完全等价的表达式是( )

A.k=n,n=n+1

B.n=n+1,k=n

C.k=++n

D.k+=n+1



28.【单选题】以下非法的赋值语句是()

A.n=(i=2,++i);

B.j++;

C.++(i+1);

D.x=j>0;




29、下列关于单目运算符++--的叙述中正确的是()

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量





30. 设变量xfloat型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是()

A.x=x*100+0.5/100.0;

B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)/100.0;

D.x=(x/100+0.5)*100.0;


26-30题视频讲解



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

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号"{"和"}"只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分





32. 若以下选项中的变量已正确定义,则正确的赋值语句是()

A.x1=26.8%3;

B.1+2=x2;

C.x3=0x12;

D.x4=1+2=3;




33. 以下4组用户定义标识符中,全部合法的一组是()

A._main、Include、Sin

B.If、-max、turbo

C.txt、REAL、3COM

D.int、k_2、 _001





34. 下列选项中,不能用作标识符的是()

A._1234_

B._1_2

C.int_2_

D.2_int_




35.有以下程序

main()

{ int m=12,n=34;

  printf("%d%d",m++,++n);

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

}

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

A.12353514

B.12353513

C.12343514

D.12343513


31-35题视频讲解






36.【单选题】以下选项中,不能作为合法常量的是()

A.1.234e04

B.1.234e0.4

C.1.234e+4

D.1.234e0



37.【单选题】以下不能定义为用户标识符的是

A.Main

B._0

C._int

D.sizeof



38、以下选项中可作为C语言合法常量的是()

A.-80

B.-080

C.-8e1.0

D.-80.0e



39、以下不能正确计算代数式值的C语言表达式是()

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)



40、以下叙述中错误的是()

A.C语句必须以分号结束

B.复合语句在语法上被看作一条语句

C.空语句出现在任何位置都不会影响程序运行

D.赋值表达式末尾加分号就构成赋值语句



41、以下叙述中错误的是()

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到"见名知意"

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大、小写字母代表不同标识


36-41题视频讲解



关于版权声明


本文教学内容为李亚飞老师编辑、授课内容,任何个人或组织不得在未经许可的情况下复制、转录、编辑、传播视频中的任何内容。

         长按二维码

          关注李亚飞老师计算机学堂

             我们一起成长!


以上是关于C语言计算机二级/C语言期末考试 刷题的主要内容,如果未能解决你的问题,请参考以下文章

二级C语言考试选择真题分类练习讲解——C语言基本语法

(价值40元)C语言二级考试教程

计算机二级C语言上机考试编程题修改如何改文件数据拿分?

计算机二级c语言题型

求2011年九月以及以前的计算机二级考试C语言试题及答案、以及考试内容分析和解题技巧。记住只要C的。

计算机二级C语言考试中,后面三道大题需要自己修改或者填写里面的部分程序,考试的时候能不能修改好了之