计算机二级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