当前位置:   article > 正文

C语言计算机二级/C语言期末考试 刷题(五)_若有定义charc='\010

若有定义charc='\010

收集了一些经典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】.

  1. #include<stdio.h>
  2. void main()
  3. {
  4. int i = 010, j = 10;
  5. printf("%d,%d\n", ++i, j--);
  6. }

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

9,10

第5题

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

s%2+(s+1)%2

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

1

第6题

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

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

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

0

第7题

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

  1. void main()
  2. {
  3. int a = 4, b = 3, c = 5, t = 0;
  4. if (a < b) t = a; a = b; b = t;
  5. if (a < c) t = a; a = c; c = t;
  6. printf("%d %d %d\n", a, b, c);
  7. }

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

5 0 3

第8题

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

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

循环

第9题

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

  1. #include<stdio.h>
  2. fun(int x)
  3. {
  4. static int a = 3;
  5. a += x;
  6. return(a);
  7. }
  8. void main()
  9. {
  10. int k = 2, m = 1, n;
  11. n = fun(k);
  12. n = fun(m);
  13. printf("%d", n);
  14. }

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

6

第10题

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

  1. #define MIN(x,y) (x)<(y)?(x):(y)
  2. void main()
  3. {
  4. int i, j, k;
  5. i = 10; j = 20;
  6. k = 2 * MIN(i, j);
  7. printf("%d\n", k);
  8. }

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

20

第11题

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

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

a[0]

第12题

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

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

strlen

第13题

若有以下定义和语句:

  1. int a[4] = { 0,1,2,3 }, * p;
  2. 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题

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

  1. A:构成C程序的基本单位是函数
  2. B:可以在一个函数中定义另一个函数
  3. C:main()函数必须放在其它函数之前
  4. D:所有被调用的函数一定要在调用之前进行定义

答案:A

第2题

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

  1. A:函数
  2. B:过程
  3. C:子程序
  4. D:子例程

答案:A

第3题

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

  1. A:必须为字母
  2. B:必须为下划线
  3. C:必须为字母或下划线
  4. D:可以是字母,数字和下划线中任一字符

答案:C

第4题

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

  1. A:-15
  2. B:-9
  3. C:-3
  4. D:0

答案:D

第5题

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

  1. A:'a'<=cl<='z'
  2. B:(cl>=a)&&(cl<=z)
  3. C:('a'>=cl)||('z'<=cl)
  4. D:(cl>='a')&&(cl<='z')

答案:D

第6题

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

  1. A:格式描述符不合法,输出无定值
  2. B:输出为|%06D|
  3. C:输出为|0-8567|
  4. D:输出为|-8567|

答案:B

第7题

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

  1. A、0
  2. B、2
  3. C、3
  4. D、5

答案:B

第8题

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

  1. int x = 6;
  2. do
  3. {
  4. printf("%d\n", x -= 2);
  5. } while (--x);
  1. A:输出的是1
  2. B:输出的是41
  3. C:输出的是30
  4. D:是死循环

答案:B

第9题

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

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

  1. A:1
  2. B:2
  3. C:3
  4. D:不一定

答案:B

第10题

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

  1. A:for(i=1;i<10;i++);
  2. B:i=1;do{i++;}while(i<=10);
  3. C:i=10;while(i>0){--i;}
  4. D:i=1;m:if(i<=10){i++;goto m;}

答案:A

第11题

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

  1. main()
  2. {
  3. int num = 0;
  4. while (num <= 2)
  5. {
  6. num++;
  7. printf("%d,", num);
  8. }
  9. }
  1. A:0,1,2
  2. B:1,2,
  3. C:1,2,3,
  4. D:1,2,3,4,

答案:C

第12题

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

  1. A:do-while 的循环体至少无条件执行一次
  2. B:while的循环控制条件比 do-while的循环控制条件更严格
  3. C:do-while 允许从外部转到循环体内
  4. D:do-while 的循环体不能是复合语句

答案:A

第13题

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

  1. A:自动(auto)
  2. B:静态(static)
  3. C:外部(extern)
  4. D:寄存器(register)

答案:A

第14题

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

  1. A:
  2. double fun(int x, int y)
  3. {
  4. z = x + y; return z;
  5. }
  6. B:
  7. fun(int x, y)
  8. {
  9. int z; return z;
  10. }
  11. C:
  12. fun(x, y)
  13. {
  14. int x, y; double z; z = x + y; return z;
  15. }
  16. D:
  17. double fun(int x, int y)
  18. {
  19. double z; z = x + y; return z;
  20. }

答案:D

第15题

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

  1. A:实参和虚参各占一个独立的存储单元
  2. B:实参和虚参可以共用存储单元
  3. C:可以由用户指定是否共用存储单元
  4. D:计算机系统自动确定是否共用存储单元

答案:A

第16题

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

  1. A:该数组的长度
  2. B:该数组的元素个数
  3. C:该数组的首地址
  4. D:该数组中各元素的值

答案:C

第17题

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

  1. A:int
  2. B:float
  3. C:double
  4. D:不确定

答案:C

第18题

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

  1. A:int a[2][] = { {1,0,1},{5,2,3} };
  2. B:int a[][3] = { {1,2,3},{4,5,6} };
  3. C:int a[2][4] = { {1,2,3},{4,5},{6} };
  4. D:int a[][3] = { {1,0,1} {},{1,1} };

答案:B

第19题

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

  1. A:gets(a);
  2. B:scanf("%s", a);
  3. C:for (i = 0; i < 10; i++)a[i] = getchar();
  4. D:a = getchar();

答案:D

第20题

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

  1. A :4个字节
  2. B : 5个字节
  3. C : 6个字节
  4. D : 7个字节

答案:C

第21题

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

  1. A:strcpy(a,"abc");
  2. B:a[0]=0;strcat(a,"abc");
  3. C:a="abc";
  4. D:int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

答案:C

第22题

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

  1. A:char  a[] = { 'h', 'a', 'b', 'c', '\0' };
  2. B:char b[] = { 'h', 'a', 'b', 'c', 'd', '\0' };
  3. C:char    c[10] = { 'h', 'a', 'b', 'c', 'd' };
  4. D:char   d[6] = { 'h', 'a', 'b', 'c', '\0' };

答案:A

第23题

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

  1. A:p=&n;scanf("%d",&p);
  2. B:p=&n;scanf("%d",*p)
  3. C:scanf("%d",&n);*p=n;
  4. D:p=&n;*p=m;

答案:D

第24题

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

  1. A:p1=&m;p2=&p1
  2. B:p1=&m;p2=&n;*p1=*p2;
  3. C:p1=&m;p2=p1;
  4. D:p1=&m;*p2=*p1;

答案:C

第25题

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

  1. A:&*p==&a
  2. B:*&a==a
  3. C:(*p)++==a++
  4. D:*(p++)==a++

答案:D

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

第1题

功能:输出9*9口诀。
  1. #include<stdio.h>
  2. main()
  3. {
  4. int i, j, result;
  5. printf("\n");
  6. for (i = 1; 【 ? 】; i++)
  7. {
  8. for (j = 1; j < 10; 【 ? 】)
  9. {
  10. result = i * j;
  11. printf("%d*%d=%-3d", i, j, 【 ? 】);
  12. }
  13. printf("\n");
  14. }
  15. }

答案:

  1. =======(答案1)=======
  2. i<10
  3. =========或=========
  4. 10>i
  5. =======(答案2)=======
  6. j++
  7. =========或=========
  8. ++j
  9. =========或=========
  10. j=j+1
  11. =======(答案3)=======
  12. result

第2题

功能:用等分法在有序的循环数组中,找到最小元素的位置。
  1. #include <stdio.h>
  2. int cyclic_min(int x[], int n)
  3. {
  4. int left = 0;
  5. int right = n - 1;
  6. int mid;
  7. while (【 ? 】)
  8. {
  9. mid = (left + right) / 2;
  10. if (x[mid] < x[right])
  11. 【 ? 】;
  12. else
  13. 【 ? 】;
  14. }
  15. return left;
  16. }
  17. void main(void)
  18. {
  19. int x[] = { 20, 23, 28, 35, 39, 40, 42, 8, 10, 15, 17, 19 };
  20. int n = sizeof(x) / sizeof(int);
  21. int loc, i;
  22. printf("\nFind Cyclic Minimum");
  23. printf("\n===================");
  24. printf("\n\nGiven Array Sorted in Cyclic Fashion :\n");
  25. for (i = 0; i < n; i++)
  26. printf("%3d", x[i]);
  27. loc = cyclic_min(x, n);
  28. printf("\n\nMinimum is located at x[%d] = %d", loc, x[loc]);
  29. }

答案:

  1. =======(答案1)=======
  2. left < right
  3. =========或=========
  4. right>left
  5. =======(答案2)=======
  6. right = mid
  7. =======(答案3)=======
  8. left  = mid + 1
  9. =========或=========
  10. left  = 1+mid

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

第1题

  1. 题目:函数fun的功能是:求120的阶乘的和。
  2.      请改正程序中的错误,使它能得出正确的结果。
  1. fun()
  2. {
  3. int n, j;
  4. float s = 0.0, t = 1.0;
  5. for (n = 1; n <= 20; n++)
  6. {
  7. t = 1;
  8. for (j = 1; j <= n; j++)
  9. t = t * j;
  10. s + t = s;
  11. }
  12. printf("jiecheng=%d\n", s);
  13. }
  14. main()
  15. {
  16. fun();
  17. }

答案:

  1. =======(答案1)=======
  2. s=s+t;
  3. =========或=========
  4. s+=t;
  5. =======(答案2)=======
  6. printf("jiecheng=%f\n",s);

第2题

功能:求110的阶乘的和。
  1. #include <stdio.h>
  2. main()
  3. {
  4. int i;
  5. float s = 0;
  6. float fac(int n);
  7. for (i = 1; i < 10; i++)
  8. s = fac(i);
  9. printf("%f\n", s);
  10. }
  11. float fac(int n)
  12. {
  13. int y = 1;
  14. int i;
  15. for (i = 1; i <= n; i++)
  16. y = y * i;
  17. return;
  18. }

答案:

  1. =======(答案1)=======
  2. for(i=1;i<=10;i++)
  3. =========或=========
  4. for(i=1;10>=i;i++)
  5. =========或=========
  6. for(i=1;i<11;i++)
  7. =========或=========
  8. for(i=1;11>i;i++)
  9. =======(答案2)=======
  10. s=s+fac(i);
  11. =========或=========
  12. s+=fac(i);
  13. =========或=========
  14. s=fac(i)+s;
  15. =======(答案3)=======
  16. float y=1.0;
  17. =========或=========
  18. float y=1;
  19. =======(答案4)=======
  20. return y;
  21. =========或=========
  22. return(y);
  23. =========或=========
  24. return (y);

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

第1题

  1. 题目:编程输出1200之间所有能被12整除的整数。
  2. 要求:循环控制变量用i。
  1. #include <stdio.h>                       
  2. void main()
  3. {
  4. /**********Program**********/
  5. /**********  End  **********/
  6. }

答案:

  1. int i;
  2. for (i = 1; i <= 200; i++)
  3. {
  4. if (i % 12 == 0)
  5. printf("%d ", i);
  6. }
  7. printf("\n");

第2题

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

答案:

  1. #include <stdio.h>
  2. #include <string.h>             //1分
  3. main()
  4. {
  5. char s[40] = "", t[40] = "", r[100] = ""; //1分
  6. gets(s); //1分
  7. gets(t); //1分
  8. if (strcmp(s, t) == 0) //1分(含puts)
  9. puts("Two strings are equal.");
  10. else if (strcmp(s, t) > 0) //2分(含{ }分数)
  11. {
  12. strcpy(r, s); //1分
  13. strcat(r, t); //1分
  14. strcat(r, "end."); //1分
  15. puts(r); //1分
  16. }
  17. else
  18. {
  19. strcpy(r, t); //1分
  20. strcat(r, s); //1分
  21. strcat(r, "end."); //1分
  22. puts(r); //1分
  23. }
  24. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/169761
推荐阅读
相关标签
  

闽ICP备14008679号