计算机二级c语言考试真题及答案详解

  • 格式:docx
  • 大小:37.05 KB
  • 文档页数:5

计算机二级c语言考试真题及答案详解

一、单项选择题(每题2分,共40分)

1. 在C语言中,以下哪个选项是合法的整型常量?

A. 0x12

B. 0x12.3

C. 0x12L

D. 0x12.3L

答案:A

2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?

A. a

B. a<=b

C. a>b

D. a!=b

答案:C

3. 在C语言中,以下哪个选项是合法的字符串字面量?

A. "Hello, World"

B. 'Hello, World'

C. "Hello, World\n"

D. "Hello, World\0"

答案:A

4. 下列哪个函数不能正确计算数组元素的总和?

A. sum = 0; for(i=0; i

B. sum = 0; for(i=0; i

C. sum = 0; for(i=0; i

D. sum = 0; for(i=0; i

5. 在C语言中,以下哪个选项是合法的函数声明?

A. int add(int, int);

B. int add();

C. int add(int a, int b);

D. int add(a, b);

答案:C

6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?

A. a[10]

B. a[-1]

C. a[3.5]

D. a[3]

答案:D

7. 在C语言中,以下哪个选项是合法的指针声明?

A. int *ptr;

B. int *ptr[];

C. int ptr*;

D. int ptr[];

答案:A

8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?

A. x = x + 1;

B. x = 1 + x;

C. x = x++;

D. x = ++x;

答案:A

9. 在C语言中,以下哪个选项是合法的循环语句? A. for(;;)

B. while(1)

C. do {} while(0)

D. for(;;) {}

答案:D

10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?

A. a[5]

B. a[-1]

C. a[2.5]

D. a[2]

答案:D

11. 在C语言中,以下哪个选项是合法的switch语句?

A. switch(x) { case 1: break; }

B. switch(x) { default: break; }

C. switch(x) { case 1: case 2: break; }

D. switch(x) { case 1: default: break; }

答案:C

12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?

A. x++;

B. ++x;

C. x--;

D. --x;

答案:A

13. 在C语言中,以下哪个选项是合法的函数原型声明?

A. void func();

B. int func(int); C. void func(int a);

D. All of the above

答案:D

14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?

A. a & 2

B. a | 2

C. a ^ 2

D. All of the above

答案:D

15. 在C语言中,以下哪个选项是合法的宏定义?

A. #define PI 3.14159

B. #define PI 3.14159f

C. #define PI 3.14159L

D. All of the above

答案:A

二、编程题(每题30分,共60分)

1. 编写一个函数,计算并返回一个整数数组中所有元素的和。

```c

int sumArray(int arr[], int n) {

int sum = 0;

for (int i = 0; i < n; i++) {

sum += arr[i];

}

return sum;

}

```

2. 编写一个函数,实现字符串的反转。 ```c

void reverseString(char str[]) {

int len = 0;

while (str[len] != '\0') len++;

for (int i = 0