全国计算机等级考试二级C语言模拟试题及答案一

合集下载

计算机二级c语言操作试题及答案

计算机二级c语言操作试题及答案

计算机二级c语言操作试题及答案一、单项选择题(每题1分,共10分)1. C语言中,用于定义变量的关键字是:A. varB. defineC. intD. type答案:C2. 下列选项中,不属于C语言中的基本数据类型是:A. intB. charC. floatD. string答案:D3. 在C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. ==答案:A4. 以下哪个选项是正确的C语言函数定义?A. int function(int x, int y) { return x + y; }B. int function(int x, int y) { return x - y; }C. int function(int x, int y) { return x * y; }D. All of the above5. 在C语言中,用于从标准输入读取一个字符的函数是:A. getchar()B. getc()C. scanf("%c", &c)D. All of the above答案:D6. 下列哪个选项是C语言中的合法常量?A. 100B. 1.23C. 'a'D. All of the above答案:D7. 在C语言中,用于声明一个指针变量的关键字是:A. ptrB. pointerC. int*D. var答案:C8. 下列哪个选项是C语言中的合法字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\nWorld"D. All of the above答案:A9. 在C语言中,用于计算数组中元素个数的运算符是:B. countofC. lengthofD. All of the above答案:A10. 下列哪个选项是C语言中的合法注释?A. // This is a single line commentB. /* This is a multi-line comment */C. /* This is a multi-line commentD. All of the above答案:A二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量的语句是:________。

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。

2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。

二、填空题1. 在C语言中,`________`关键字用于声明一个函数。

答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。

2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。

```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。

三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。

```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。

2. 编写一个C语言程序,实现将一个字符串反转。

```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。

全国计算机2级c试题及答案

全国计算机2级c试题及答案

全国计算机2级c试题及答案一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = {"Hello"};D. char str[6] = {"Hello"};答案:A2. 下列关于C语言中数组的描述,错误的是?A. 数组的索引从0开始。

B. 数组的大小在声明时必须确定。

C. 数组可以存储不同类型的数据。

D. 数组的元素在内存中是连续存储的。

答案:C3. 在C语言中,哪个关键字用于声明函数?A. classB. functionC. defD. int答案:D4. 以下哪个选项是C语言中的合法整数常量?A. 0x1AB. 01AC. 1.2E3D. 0b1010答案:A5. C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释*/答案:B6. 在C语言中,以下哪个选项是正确的二进制数表示?A. 0b1010B. 0x2AC. 0101D. 02A答案:A7. 以下哪个选项是C语言中的合法浮点数常量?A. 1.23B. .23C. 123.D. 1.23E+5答案:D8. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;};B. struct Student {int age;float height;};C. struct Student {int age;float height;} student1;D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p = 0;C. int *p = NULL;D. All of the above答案:D10. 以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include "stdio"D. #include <stdio>答案:A11. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159;D. #define PI 3.14159答案:A12. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)B. if x > 0C. if (x > 0) {// code}D. All of the above答案:C13. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (i = 0; i < 10; i++)C. for (int i = 0; i <= 10; i++)D. All of the above答案:A14. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. All of the above答案:D15. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. enum Color {0, 1, 2};D. All of the above答案:D16. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. All of the above答案:D17. 在C语言中,以下哪个选项是正确的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D18. 在C语言中,以下哪个选项是正确的类型转换?A. (int)xB. int(x)C. x(int)D. All of the above答案:A19. 在C语言中,以下哪个选项是正确的多文件程序结构?A. main.cB. main.hC. main.c and main.hD. All of the above答案:C20. 在C语言中,以下哪个选项是正确的内存分配方式?。

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

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

计算机二级c语言考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C3. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. 若有定义:int a = 5;,则执行以下语句后变量a的值是多少?```ca += (a / 2) + 1;```A. 8C. 6D. 5答案:B5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r+"B. "w+"C. "a+"D. "b+"答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. !=答案:A7. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. return答案:C8. 若有定义:char ch = 'A';,则执行以下语句后变量ch的ASCII 值是多少?```cch = ch - 'a' + 'A';```B. 97C. 66D. 98答案:A9. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A10. 下列哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. /* This is a comment */D. # This is a comment答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。

计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。

A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。

A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。

A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。

A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。

答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。

答案:return3. 在C语言中,用于计算字符串长度的函数是____。

答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。

答案:'\0'5. 当使用指针变量时,必须先对其进行____。

答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。

```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。

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

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

计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a; int b) { return a + b; }C. int add(int a, int b) { return a - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。

答案:scanf2. 在C语言中,用于输出的函数是___________。

答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。

答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。

答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。

计算机二级c考试题目及答案解析

计算机二级c考试题目及答案解析

计算机二级c考试题目及答案解析在计算机二级C语言考试中,考生需要掌握C语言的基本语法、数据结构、算法设计等知识。

以下是一套模拟试题及其答案解析,供考生参考。

1. 以下哪个选项是C语言中合法的整型常量?A. 0x1AB. 1.2E3C. 0123D. 0b1010答案:A解析:在C语言中,整型常量可以以十进制、八进制、十六进制或二进制的形式表示。

选项A中的0x1A是十六进制表示,是合法的整型常量。

选项B是浮点数,选项C是八进制表示,但前导0是多余的,选项D是二进制表示,但C语言标准中不支持以0b开头的二进制常量。

2. 若有以下C语言代码段:```cint a = 5, b = 10;float c = 12.5;double d = 1.5;```则下列哪个表达式的值是正确的?A. a + b + cB. a + b + dC. a + c + dD. b + c + d答案:B解析:在C语言中,当不同类型的数据进行运算时,会发生类型提升。

选项A中,a和b是整型,c是浮点型,整型会提升为浮点型,因此表达式的结果为浮点型。

选项B中,a和b是整型,d是双精度浮点型,整型会提升为双精度浮点型,因此表达式的结果为双精度浮点型。

选项C中,a是整型,c和d都是浮点型,整型会提升为浮点型,因此表达式的结果为浮点型。

选项D中,b是整型,c和d都是浮点型,整型会提升为浮点型,因此表达式的结果为浮点型。

只有选项B中的表达式结果类型与变量d的类型一致,因此选项B是正确的。

3. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A解析:strlen函数用于计算字符串的实际长度,不包括结尾的空字符。

strcpy函数用于复制字符串,strcat函数用于连接字符串,strcmp函数用于比较两个字符串是否相等。

4. 若有以下C语言代码段:```cint a = 10, b = 20;printf("%d %d", a, b);```则执行上述代码后,输出的结果是什么?A. 10 20B. 20 10C. 10D. 20答案:A解析:printf函数按照格式字符串中的格式说明符输出相应的变量值。

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的数据类型?A. 整型(int)B. 浮点型(float)C. 字符型(char)D. 所有选项都是答案:D2. 下列哪个函数用于计算两个数的和?A. max()B. min()C. sum()D. pow()答案:C3. 在C语言中,以下哪个关键字用于定义一个函数?A. ifB. whileC. returnD. void答案:D二、填空题1. 在C语言中,用于定义一个整型变量的关键字是________。

答案:int2. 字符串在C语言中是以________字符结尾的字符数组。

答案:'\0'3. C语言中,用于循环结构的关键字有________和________。

答案:for 和 while三、编程题1. 编写一个C语言程序,计算并输出1到100之间所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串的反转。

```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```以上是全国计算机等级考试二级C语言题库及答案的部分内容,涵盖了选择题、填空题和编程题。

计算机等级考试二级c语言习题答案

计算机等级考试二级c语言习题答案

计算机等级考试二级c语言习题答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B、C2. 以下哪个选项是C语言中整型常量的正确表示?A. 0x1AB. 1.5e2C. 0755D. 1.23f答案:A、C3. 若有以下定义:```cint a = 10, b = 20, c = 30;```则表达式 `a > b ? a : c` 的值是多少?A. 10B. 20C. 30D. 编译错误答案:C4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"\n"D. "Hello, World!"\"答案:A5. 以下哪个选项是C语言中正确的函数声明?A. int myFunction();B. void myFunction(int a);C. int myFunction(int);D. int myFunction();答案:C二、填空题1. 在C语言中,`sizeof(char)` 的值是 ________。

答案:12. 若有以下代码:```cint a = 10;printf("%d", a++);```输出的结果是 ________。

答案:103. 在C语言中,以下代码段的输出结果是什么?```cint x = 5;printf("%d", x++);```输出的结果是 ________。

4. 在C语言中,以下代码段的输出结果是什么?```cint x = 5;printf("%d", ++x);```输出的结果是 ________。

计算机二级c语言.考试题库及答案

计算机二级c语言.考试题库及答案

计算机二级c语言.考试题库及答案一、单项选择题(每题2分,共40分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释 */答案:B3. 以下哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D4. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A5. 以下哪个函数可以用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "r+"答案:D7. 在C语言中,以下哪个关键字用于声明一个函数?A. structB. voidC. intD. return答案:C8. C语言中,以下哪个选项是正确的数组声明方式?A. int array[5];B. int array[];C. int array[5] = {0};D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的字符串声明方式?A. char str[] = "Hello";B. char str[10] = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o'};D. All of the above答案:D10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针。

计算机二级c语言试题库及答案

计算机二级c语言试题库及答案

计算机二级c语言试题库及答案一、选择题1. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str[12] = "Hello, World!";C. char str = "Hello, World!";D. char str[] = {"Hello", "World!"};答案:A2. 下列哪个函数用于计算字符串的长度?A. strlen()B. strlength()C. length()D. size()答案:A3. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. structedC. structureD. type答案:A4. 以下哪个选项是正确的C语言函数声明?A. int function(int a, int b);B. int function(int, int);C. int function(int a; int b);D. int function(int a, int b)答案:A5. C语言中,以下哪个选项表示逻辑非运算符?A. &&B. ||C. !D. =答案:C二、填空题1. 在C语言中,使用________运算符可以将一个整数转换为一个字符。

答案:%c2. 以下代码段的输出结果是______。

```c#include <stdio.h>int main() {int a = 5;printf("%d", a++);return 0;}```答案:53. 以下代码段中,变量b的值是______。

```cint a = 10, b;b = a++;```答案:104. 在C语言中,使用________函数可以将浮点数转换为字符串。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

计算机二级C语言五套模拟卷及答案

计算机二级C语言五套模拟卷及答案

计算机二级C语言五套模拟卷及答案模拟试题一一、选择题(本大题30分,每小题2分)1.下列说法正确的是。

E) main函数必须放在C程序的开头F) main函数必须放在C程序的最后G) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的H) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。

A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型3.若有说明语句:char c= ‘\64’; 则变量C包含:。

A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定4.设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 35.C语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和\ D)**6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= 。

A)2 B)3 C)4 D)无结果8.下面有关for循环的正确描述是。

全国计算机等级考试二级c语言答案

全国计算机等级考试二级c语言答案

全国计算机等级考试二级c语言答案一、选择题(每题2分,共40分)1. C语言中,用于定义变量的关键字是:A. classB. varC. intD. define答案:C2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B3. 在C语言中,用于计算两个整数的和的运算符是:A. &&B. ||C. +=D. +答案:D4. 下列哪个选项是C语言中的逻辑运算符?A. %B. &&C. +D. /答案:B5. C语言中,用于定义一个整型数组的语句是:A. int array[];B. int [10] array;C. int array[10];D. int array=10;答案:C6. 在C语言中,用于输出字符串的函数是:A. printfB. scanfC. putsD. getc答案:C7. 下列哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A8. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:C9. 下列哪个选项是C语言中的循环结构?A. ifB. forC. switchD. break答案:B10. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A11. C语言中,用于声明一个指针变量的关键字是:A. pointerB. ptrC. *D. ref答案:C12. 下列哪个选项是C语言中的位运算符?A. &&B. ||C. &D. ^答案:D13. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. typeC. unionD. struct答案:A14. 下列哪个选项是C语言中的预处理指令?A. #includeB. includeC. defineD. ifdef答案:A15. 在C语言中,用于定义一个宏的预处理指令是:A. #includeB. #defineC. #ifdefD. #ifndef答案:B16. 下列哪个选项是C语言中的文件操作函数?A. printfB. scanfC. fopenD. puts答案:C17. 在C语言中,用于动态分配内存的函数是:A. mallocB. freeC. callocD. realloc答案:A18. 下列哪个选项是C语言中的字符串操作函数?A. strcatB. strcpyC. strlenD. All of the above答案:D19. 在C语言中,用于释放动态分配内存的函数是:A. mallocB. freeC. callocD. realloc答案:B20. 下列哪个选项是C语言中的多文件编译链接方式?A. Single file compilationB. Multi-file compilationC. Separate compilationD. Integrated compilation答案:C二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(一)

全国计算机等级考试二级-基础知识和C语言程序设计  模拟考试试卷及答案(一)

全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(一)一、选择题(1)下列设备中只能作为输入设备的是A)磁盘驱动器 B)鼠标器 C)存储器 D)显示器(2)下列DOS组合控制键中,能使标准输出同时送到屏幕与打印机的是A)Ctrl+Break B)Ctrl+P C)Ctrl+C D)Ctrl+H(3)通常所说的386机是A)8位机 B)16位机 C)32位机 D)64位机(4)二进制数01100100转换成十六进制数是A)64 B)63 C)100 D)144(5)十六进制数100转换成十进制数是A)1024 B)512 C)256 D)128(6)对于存有重要数据的5.25英寸软盘,防止计算机病毒感染的主法A)不要与有病毒的软盘放在一起 B)在写保护口贴上胶条C)保持软盘清洁 D)定期对软盘格式化(7)在启支DOS系统时,启动盘的根目录下必须包含的文件有A) B) C) D)(8)DOS系统启动后,下列文件中常驻内存的是A) B) C) D)(9)下列字中,不能作为DOS磁盘文件名的是A)JTU B)93GZ.PRG C)CON D)ATT&T.BAS(10)下列命令中属于内部命令的是A)SYS B)COSP C)DIR D)DISKCOMP(11)下列文件名中,能与ABC?.?匹配的是A)AB12.C B)ABCD.FOR C)ABC.TXT D)ABCD.C(12)要列出当前盘当前目录中第三个字符为"B"的所有文件的清单, 可使用的命令为A)DIR* *B*.* B)DIR ??B*.*? C)DIR ??B.* D)DIR ??B*.*(13)设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1, 若要进入子目录D2,可使用的命令为A)CD D2 B)CD D2\C)CD \D2 D)CD D1\D2(14)设当前盘为C盘,A盘当前目录为根目录, 为了删除A 盘目录\ WS 下扩展名为.TXT的所有文件,可用的命令为A)DEL WS\*.TXT B)DEL \WS\*.TXTC)DEL A:\WS\?.TXT D)DEL A:WS\*.TXT(15)设当前盘为C盘,C盘当前目录为\AAA\BBB\A\B\X.下列命令中正确的是A)MD \AAA\BBB\A B)MD XC)MD \ D)MD \AAA\BBB\A\B\X(16)在下列各组的两个命令中,根据给定的条件,执行效果互相等价的是A)DEL \DOS 与 RD \DOS(当前盘上有目录\DOS)B)FORMAT A:与DEL A:*.*(A盘为启动盘)C)DISKCOPY A: B: 与 COPY A:*.* B:(A盘为启动盘)D)COPY F1 F2 与TYPE F1>F2(当前盘当前目录下有文件F1)(17)为了在1.2MB的高密驱动器A中格式化一张360KB的启动盘,可用的命令为A)FORMAT A: B)FORMAT A:/S/1C)FORMAT A:/S/4 D)FORMAT A:/S(18)要在打印机上输出当前盘当前目录下扩展名为.TXT的所有文件内容,正确的命令为A)COPY *.TXT PRN B)COPY *.TXT >PRNC)TYPE *.TXT PRN D)TYPE *.TXT >PRN(19)设B盘目录结构如下:B:\根目录─┬─F1子目录──F11子目录───FA.TXT│├─F2子目录┬─F21子目录─┬─FB.BAS│ │ ││ │ ││ └─F22子目录└─FC.TXT└─设B盘的当前目录为\F2,要将\A盘当前目录下的文件P.BAS复制到B盘的F3 子目录中,可用的命令为A)COPY P.BAS B: B)COPY A:P.BAS B:\C)COPY A:P.BAS B:\F3 D)COPY A:P.BAS B:F3\(20)设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT 连接后以文件名Y.TXT存放到A盘的当前目录中,可用的命令为A)COPY A.TXT+X.TXT A:Y.TXTB)COPY B.A.TXT+X.TXT A:Y.TXTC)COPY B:A.TXT+B:X.TXT >Y.TXTD)COPY B:A.TXT+B:X.TXT Y.TXT(21)C语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型(22)C语言中,运乍对象必须是整型数的运算符是A)% B)\C)%和\ D)* *(23)为表示关系x≥y≥z,应使用C语言表达式A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)C)(x>=y>=z) D)(x>=y)&(y>=z)(24)下述对C语言字符数组的描术中错误的是A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较(25)设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是A)1 B)0C)4 D)3(26)以下程序的输出结果是main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9C)9 10 D)10 9(27)定义如下变题和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是for(i=0;i<3;i++) printf("%d",x[i][2-1]);A)1 5 9 B)1 4 7C)3 5 7 D)3 6 9(28)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A)a<>0 B)!aC)a=0 D)a(29)阅读程序:#includemain(){int a[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf("%x\n",p+9);}该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是A)203 B)204C)1a4 D)1a6(30)设有如下函数定义:int f(char *s){ char *p=s;while(*p!='\0')\p++;return(p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为printf("%d\n",f("goodbey!"));A)3 B)6C)8 D)0(31)以下说法中正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分(32)执行下面的程序后,a的值为main(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8C)9 D)10(33)以下程序段的输出结果是int x=3;do{ printf("%3d",x-=2);}while(!(--x));A)1 B)3 0C)1-2 D)死循环(34)定义如下变量:int n=10;则下列循环的输出结果是while(n>7){ n--;printf("%d\n",n);}A)10 B)9 C)10 D)99 8 9 88 7 8 77 6(35)两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main( ){ int x;scanf("%d",&x);if(x + + 〉 5)printf("%d",x);else printf("%d\n",x - -);}A)7和5 B)6和3 C)7和4 D)6和4(36)设有如下定义:char *aa[2]={"abcd","ABCD"};则以下就法中正确的是A)aa数组成元素的值分别是"abcd"和ABCD"B)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符'a'和'A'的地址(37)以下程序的输出结果是main( ){ int a=-1,b=4,k;k=(+ +a〈0)&&!(b - -〈=0);printf("%d%d%d\n",k,ab);}A)104 B)103 C)003 D)004(38)设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是 A)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)(39)下列程序的输出结果是main( ){ char*p1,*p2,str[50]="xyz";p1="abcd";p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1);printf)"%s",str);}A)xyabcAB B)abcABzC)ABabcz D)xycdBCD(40)执行下面的程序后,a的值是#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A)10 B)1 C)9 D)0(41)下列程序执行后输出的结果是#include 〈stdio.h〉f(int a){ int b=0;statin c=3:a=c+ +,b+ +;returu(a);}main( ){ int a=2,i,k;for(i=0;i〈2;i=+ +)k=f(a+ +);printf("%d\n",k);}A)3 B)0 C)5 D)4(42)下列程序的输出结果是main( ){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",* *k);}A)4 4 B)2 2 C)2 4 D)4 6(43)阅读下列程序:main( ){ int n[3],i,j,k;for(i=0;i〈3;i++)n[i]=0;k=2;for (i=0;i〈k;i++)for (j=0;j〈k;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}下述程序运行后输出结果是A)2 B)1 C)0 D)3(44)字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是#include〈stdio.h〉main( ){ union { int i[2];long k;char c[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0])}A)39 B)9 C)38 D)8(45)设有以下定义:typedef union{ long i;int k[5];char c;}DATE;struct date{ int cat;DATE cow;double dog;}too;DATE max;则下列语句的执行结果是printf("%d",sizeof(struct date)+sizeof(max));A)25 B)30 C)18 D)8(46)执行以下程序后,y的值是main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf("%d\n",y);}A)17 B)18 C)19 D)20(47)下列程序执行后输出的结果是]int d=1;fun (int q){ int d=5;d + =p + +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}A)8 4 B)9 6 C)9 4 D)8 5(48)下列程序的输出结果是main( ){ char ch[2][5]={"6934,"8254"},*p[2];int i,j,s=0;for(i=0;i<2;i + +)p[i]=ch[i];for(i=0;i<2;i + +)for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0';printf("%d\n",s);A)6385 B)69825 C)63825 D)693825(49)以下程序的输出结果是fut (int**s,int p[2][3]){ **s=p[1][1]; }main( ){ int a[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);primtf("%d\n",*p);}A)1 B)7 C)9 D)11(50)以下程序的输出结果是#include"ctype.h"space (char *str){ int i,t;char ts[81];for(i=0,t=0;str[i]!='\0';i+=2)if(! isspace(*str+i)&&(*(str+i)!='a')) ts[t++]=toupper(str[i]);ts[t]='\0';strcpy(str,ts);}mian( ){ char s[81]={"a b c d e f g"};space(s);puts(s);}A)abcdeg B)bcde C)ABCDE D)BCDE二、填空题(1)十进制数112.375转换成十六进制数为(2)存储200个32×32点阵的汉字信息需 KB─(3)数字符号0的ASCⅡ码十进制表示为48,数字符号9的ASCⅡ码十进制表示为(4)DOS命令分为内部命令与外部命信,TREE命令属于命令.(5)自动批处理文件的文件名为(6)下列程序的输出结果是int ast(int x,int y,int * cp,int * dp){ *cp=x+y;*dp=x-y;}main(){ int a,b,c,d;a=4;b=3;ast(a,b,&c,&d);printf("%d %d/n",c,d);}(7)以下程序的功能是:人键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while(9)─{ if(x>amax)amax=x;if(10)amin=x;─scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}(8)下面程序通过函数average计算数组中各元素的平均值,请填空.float average(int * pa,int n){ int i;float avg=0.0;for(i=0;imain(){ FILE * fp;char ch,fname[10];printf("lnput the name of file\n");gets(fname);if((fp=16)==NULL){ printf("Cannot open\n"); exit(0);}printf("Enter data\n");while((ch=getchar())!='#')fputc(17,fp);fclose(fp);}(9)以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾.单向链表的头指针作为函数值返回,请填空: #includestruct list{ char data;struct list * next;};struct list * creat(){ struct list * h,* p,* q;char ch;h=18 malioc(sizeof(struct list));p=q=h;ch=getchar();while(ch!='?'){ p=19 malloc(sizeof(struct list));p->data=ch;p->next=p;q=p;ch=getchar();}p->next='\0';20}答案一、选择题(1)B(2)B(3)C(4)A(5)C(6)B(7)B(8)B(9)C(10)C(11)D(12)D(13)C(14)D(15)B(16)D(17)C(18)A(19)C(20)D(21)B(22)A(23)A(24)C(25)D(26)D(27)C(28)D(29)D(30)C(31)C(32)B(33)C(34)B(35)A(36)D(37)D(38)D(39)D(40)B(41)D(42)C(43)D(44)B(45)B(46)C(47)A(48)A(49)C(50)D二、填空题(1)70.6(2)25(答25KB不扣分)(3)57(4)外部(答外部命令不扣分)(5)AUTOEXEC.BAT(答AUTOEXEC扣1分)。

计算机二级证c语言试题及答案

计算机二级证c语言试题及答案

计算机二级证c语言试题及答案计算机二级证C语言试题及答案1. 以下关于C语言的描述中,错误的是()。

A. C语言是一种高级编程语言。

B. C语言是面向对象的编程语言。

C. C语言具有跨平台的特性。

D. C语言可以用于系统软件的开发。

答案:B2. 在C语言中,下列哪个选项不是合法的变量名?A. _nameB. name_2C. 2nameD. name答案:C3. 以下关于C语言中数组的描述,正确的是()。

A. 数组的大小在编译时确定。

B. 数组的大小在运行时确定。

C. 数组的元素可以是任意数据类型。

D. 数组的元素必须是相同的数据类型。

答案:A4. 在C语言中,下列哪个运算符用于执行加法运算?A. +B. -C. *D. /答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %=D. =答案:A6. 在C语言中,使用哪个关键字可以定义一个函数?A. classB. functionC. defD. int答案:D7. 以下关于C语言中指针的描述,错误的是()。

A. 指针可以存储变量的地址。

B. 指针可以存储函数的地址。

C. 指针可以存储数组的地址。

D. 指针本身没有地址。

答案:D8. 在C语言中,下列哪个选项不是控制语句?A. ifB. whileC. forD. switch答案:D9. 在C语言中,下列哪个选项用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A10. 下列哪个选项是C语言中预处理指令?A. #includeB. #defineC. #ifD. All of the above答案:D11. 在C语言中,下列哪个选项用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A12. 在C语言中,下列哪个选项用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B13. 在C语言中,下列哪个选项用于定义一个宏?A. #defineB. #includeC. #ifD. #define答案:A14. 在C语言中,下列哪个选项用于将字符串转换为字符数组?A. strcpyB. strcatC. strncatD. sprintf答案:A15. 在C语言中,下列哪个选项用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. printf答案:C。

2级计算机等级考试c语言试题及答案

2级计算机等级考试c语言试题及答案

2级计算机等级考试c语言试题及答案本文为2级计算机等级考试C语言试题及答案,以下是试题及对应答案。

第一部分:单选题(共10题,每题2分,共20分)1. 下列关于C语言的表述中,错误的是:A. C语言是面向过程的编程语言。

B. C语言是一种高级语言。

C. C语言是由贝尔实验室的Dennis Ritchie于1972年发明的。

D. C语言是一种解释性语言。

答案:D2. 以下哪个不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 在C语言中,可以使用下面哪个关键字来定义常量?A. finalB. varC. constD. let答案:C4. 下列代码段中,输出结果是什么?#include <stdio.h>int main() {printf("%d\n", sizeof(int));return 0;}A. 2B. 4C. 8D. 编译错误答案:B5. 下列关于指针的说法中,错误的是:A. 指针存储的是变量的地址。

B. 可以使用指针来间接访问变量。

C. 指针变量必须在使用之前初始化。

D. C语言不支持指针。

答案:D6. 以下哪个关键字可以用于声明一个函数?A. functionB. voidC. methodD. return答案:B7. 在C语言中,使用以下哪个关键字来定义一个结构体?A. newB. classC. structD. typedef答案:C8. 下列代码段中,输出结果是什么?#include <stdio.h>int sum(int a, int b) {return a + b;}int main() {int result = sum(3, 5);printf("%d\n", result);return 0;}A. 3B. 5C. 8D. 编译错误答案:C9. 下列代码段中,输出结果是什么?#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d\n", arr[3]);return 0;}A. 1B. 2C. 3D. 4答案:D10. 在C语言中,下列哪个运算符用于取两个数中的较大值?A. maxB. >C. &D. ||答案:B第二部分:填空题(共5题,每题2分,共10分)1. C语言中,行注释以(//)开头,块注释以(/*)开头,以(*/)结尾。

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案一、选择题1. 下列关于C语言中变量的叙述中,正确的是()。

A. 变量名可以以数字开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名不能包含特殊字符答案:C2. C语言中,以下哪个选项是合法的整型常量?()A. 0x12B. 0x1.2C. 0x1.2e3D. 0x1.2f答案:A3. 在C语言中,以下哪个选项是合法的字符常量?()A. 'ab'B. '65'C. '\t'D. '\n'答案:C4. C语言中,以下哪个选项是合法的浮点型常量?()A. 3.14e2B. 3.14eC. 3.14ED. 3.14E+答案:A5. 在C语言中,以下哪个选项是合法的字符串常量?()A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!" 'a'D. "Hello, World!" "a"答案:A6. 在C语言中,以下哪个选项是合法的数组声明?()A. int a[5];B. int a[];C. int a[5] = {1, 2, 3, 4, 5};D. int a = {1, 2, 3, 4, 5};答案:C7. 在C语言中,以下哪个选项是合法的函数声明?()A. int f();B. int f(int a);C. int f(int);D. int f(int a, int b);答案:C8. 在C语言中,以下哪个选项是合法的指针声明?()A. int *p;B. int *p[];C. int *p[5];D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环结构?()A. for(;;)B. while(1)C. do { } while(0)D. A、B和C都是答案:D10. 在C语言中,以下哪个选项是合法的条件语句?()A. if (x > 0)B. if (x > 0) { }C. if (x > 0) { } else { }D. A、B和C都是答案:D二、填空题1. C语言中,整型常量可以用()或()表示。

计算机二级c语言考试及答案

计算机二级c语言考试及答案

计算机二级c语言考试及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义:int a=3, b=2;,则表达式a%b的值是多少?A. 0B. 1C. 2D. 3答案:B3. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strncpy答案:A4. 下面哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 若有定义:int x=10;,则执行语句x+=x-=x;后,x的值是多少?A. 0B. -10C. 10D. 20答案:A6. 在C语言中,以下哪个关键字用于声明一个联合体?A. structB. unionC. enumD. typedef答案:B7. 下列哪个选项不是C语言的标准输入输出函数?A. printfB. scanfC. coutD. getchar答案:C8. 在C语言中,以下哪个关键字用于声明一个枚举?A. structB. unionC. enumD. typedef答案:C9. 若有定义:int a=5, b=3;,则执行语句a+=b;后,a的值是多少?A. 8B. 3C. 5D. 2答案:A10. 在C语言中,以下哪个函数用于将字符串连接到另一个字符串?A. strcpyB. strcatC. strcmpD. strncpy答案:B二、填空题(每题2分,共20分)1. 在C语言中,声明一个整型变量并初始化为10,可以使用语句:int a = _______;。

答案:102. 若有定义:int a=5, b=3;,则执行语句a*=b后,a的值是_______。

答案:153. 在C语言中,若要比较两个字符串是否相等,可以使用函数_______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国计算机等级考试二级C语言模拟试题及答案一一、选择题1栈和队列的共同特点是A都是先进先出B都是先进后出C只允许在端点处插入和删除元素D没有共同点正确答案: C2已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是AacbedBdecabCdeabcDcedba正确答案: D3链表不具有的特点是A不必事先估计存储空间B可随机访问任一元素C插入删除不需要移动元素D所需空间与线性表长度成正比正确答案: B4结构化程序设计的3种结构是A顺序结构、选择结构、转移结构B分支结构、等价结构、循环结构C多分支结构、赋值结构、等价结构D顺序结构、选择结构、循环结构正确答案: D5为了提高测试的效率,应该A随机选取测试数据B取一切可能的输入数据作为测试数据C在完成编码以后制定软件的测试计划D集中对付那些错误群集的程序正确答案: D6算法的时间复杂度是指A执行算法程序所需要的时间B算法程序的长度C算法执行过程中所需要的基本运算次数D算法程序中的指令条数正确答案: C7软件生命周期中所花费用最多的阶段是A详细设计B软件编码D软件维护正确答案: D8数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为ACBBasicCDDLDDML正确答案: C9下列有关数据库的描述,正确的是A数据库是一个DBF文件B数据库是一个关系C数据库是一个结构化的数据集合D数据库是一组文件正确答案: C10下列有关数据库的描述,正确的是A数据处理是将信息转化为数据的过程B数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C关系中的每一列称为元组,一个元组就是一个字段D如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D11以下叙述中正确的是AC语言比其他语言高级BC语言可以不用编译就能被计算机识别执行CC语言以接近英语国家的自然语言和数学语言作为语言的表达形式DC语言出现的最晚,具有其他语言的一切优点正确答案: C12C语言中用于结构化程序设计的3种基本结构是A顺序结构、选择结构、循环结构Bif,switch,breakCfor,while,do-whileDif,for,continue正确答案: A13C语言中最简单的数据类型包括A整型、实型、逻辑型B整型、实型、字符型C整型、字符型、逻辑型D字符型、实型、逻辑型正确答案: B14若变量已正确定义并赋值,以下符合C语言语法的表达式是Aa:=b+1Ba=b=c+2Cint 18.5%3正确答案: B15下列可用于C语言用户标识符的一组是Avoid, define, WORDBa3_b3, _123,CarCFor, -abc, IF CaseD2a, DO, sizeof正确答案: B16C语言中运算对象必须是整型的运算符是A%=B/C=D<=正确答案: A17若变量a,i已正确定义,且i已正确赋值,合法的语句是Aa= =1B++i;Ca=a++=5;Da=inti;正确答案: B18已知int t=0;while t=1{...}则以下叙述正确的是A循环控制表达式的值为0B循环控制表达式的值为1C循环控制表达式不合法D以上说法都不对正确答案: B19若变量已正确说明为float型,要通过语句scanf"%f%f%f",&a,&b,&c;给a赋予10.0,b赋予22.0,c 赋予33.0,下列不正确的输入形式是A10<回车>22<回车>33<回车>B10.0,22.0,33.0<回车>C10.0<回车>22.033.0<回车>D10 22<回车>33<回车>正确答案: B20有如下程序:main{int x=1,a=0,b=0;switchx{case 0: b++;case 1: a++;case 2: a++;b++;}printf"a=%d,b=%d\n",a,b;} 该程序的输出结果是Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2正确答案: A21有以下程序main{int i=1,j=1,k=2;ifj++||k++&&i++printf"%d,%d,%d\n",i,j,k; }执行后输出结果是A1,1,2B2,2,1C2,2,2D2,2,3正确答案: C22有如下程序main{float x=2.0,y;ifx<0.0y=0.0;else ifx<10.0y=1.0/x;else y=1.0;printf"%f\n",y;}该程序的输出结果是A0.000000B0.250000C0.500000D1.000000正确答案: C23有如下程序:main{int n=9;whilen>6{n--; printf"%d",n;} }该程序的输出结果是A987B876C8765D9876正确答案: B24在下列选项中,没有构成死循环的是Aint i=100;while1{i=i%100+1;ifi>100break;}Bfor;;;Cint k=10000;do{k++;}whilek>10000;Dint s=36;whiles--s;正确答案: D25设int x=1,y=1;表达式x||y--的值是A0B1C2D-1正确答案: B26若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A函数调用可以作为独立的语句存在B函数调用可以作为一个函数的实参C函数调用可以出现在表达式中D函数调用可以作为一个函数的形参正确答案: D27有以下程序float funint x,int y{returnx+y;}main{int a=2,b=5,c=8;printf"%3.0f\n",funintfuna+c,b,a-c;}程序运行后的输出结果是A编译出错B9C21D9.0正确答案: B28若有以下调用语句,则不正确的fun函数的首部是main{ …int a50,n;……}Avoid funint m, int xBvoid funint s, int h41Cvoid funint p, int sDvoid funint n, int a正确答案: D29fseek函数的正确调用形式是Afseek文件指针,起始点,位移量Bfseek文件指针,位移量,起始点Cfseek位移量,起始点,文件指针Dfseek起始点,位移量,文件指针正确答案: B30若fp是指向某文件的指针,且已读到文件末尾,则函数feoffp的返回值是AEOFB-1C1DNULL正确答案: C31若有说明语句:char c='\72';则变量cA包含1个字符B包含2个字符C包含3个字符D说明不合法,c的值不确定正确答案: A32若有说明 int a34;则a数组元素的非法引用是Aa021Ba13Ca4-20Da04正确答案: D33设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是Astruct是结构体类型的关键字Bstruct stu是用户定义的结构体类型Cstutype是用户定义的结构体类型名Da和b都是结构体成员名正确答案: C34在C语言中,引用数组元素时,其数组下标的数据类型允许是B整型表达式C整型常量或整型表达式D任何类型的表达式正确答案: C35若运行时给变量x输入12,则以下程序的运行结果是main{int x,y;scanf"%d",&x;y=x>12 x+10:x-12;printf"%d\n",y;}A0B22C12D10正确答案: A36以下说法正确的是AC语言程序总是从第一个的函数开始执行B在C语言程序中,要调用函数必须在main函数中定义CC语言程序总是从main函数开始执行DC语言程序中的main函数必须放在程序的开始部分正确答案: C37表达式0x13^0x17的值是A0x04B0x13C0xE8D0x17正确答案: A38有以下程序define FX,YXYmain{int a=3, b=4;printf"%d\n", Fa++, b++;}程序运行后的输出结果是A12B15C16D20正确答案: A39下列程序执行后的输出结果是void funcint a,int b{ b0=a+6; }{int a,b5;a=0; b0=3;func&a,b; printf"%d\n",b0;}A6B7C8D9正确答案: A40若有下面的程序段:char s="china";char p; p=s;则下列叙述正确的是As和p完全相同B数组s中的内容和指针变量p中的内容相等Cs数组长度和p所指向的字符串长度相等Dp与s0相等正确答案: D41 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sortint a,int n{int i,j,t;fori=0;i<n-1;i++forj=i+1;j<n;j++ifai<aj{t=ai;ai=aj;aj=t;}}main{int aa10={1,2,3,4,5,6,7,8,9,10},i;sort&aa3,5;fori=0;i<10;i++printf"%d,",aai;printf"\n";}程序运行后的输出结果是A1,2,3,4,5,6,7,8,9,10,B10,9,8,7,6,5,4,3,2,1,C1,2,3,8,7,6,5,4,9,10,D1,2,10,9,8,7,6,5,4,3,正确答案: C42 以下程序的运行结果是include "stdio.h"main{struct date{int year,month,day;}today;printf"%d\n",sizeofstruct date;}B8C10D12正确答案: A43若有语句int point,a=4;和 point=&a;下面均代表地址的一组选项是Aa,point,&aB&a,&a,pointC&point,point,&aD&a,&point,point正确答案: D44在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A地址传递B单向值传递C由实参传形参,再由形参传实参D传递方式由用户指定正确答案: B45已定义以下函数funchar p2, char p1{whilep2=p1='\0'{p1++;p2++;}}函数的功能是A将p1所指字符串复制到p2所指内存空间B将p1所指字符串的地址赋给指针p2C对p1和p2两个指针所指字符串进行比较D检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A46若执行下述程序时,若从键盘输入6和8时,结果为main{int a,b,s;scanf"%d%d",&a,&b;s=aifa<bs=b;s=s;printf"%d",s;}A36B64C48D以上都不对正确答案: B47fscanf函数的正确调用形式是Afscanffp,格式字符串,输出表列;Bfscanf格式字符串,输出表列,fp;Cfscanf格式字符串,文件指针,输出表列;Dfscanf文件指针,格式字符串,输入表列;正确答案: D48下列关于C语言数据文件的叙述中正确的是A文件由ASCII码字符序列组成,C语言只能读写文本文件B文件由二进制数据序列组成,C语言只能读写二进制文件C文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D49有以下程序void sschar s,char t{whiles{ifs= =ts=t-'a'+'A';s++;}}main{char str1100="abcddfefdbd",c='d';ssstr1,c; printf"%s\n",str1;}程序运行后的输出结果是AABCDDEFEDBDBabcDDfefDbDCabcAAfefAbADAbcddfefdbd正确答案: B50若以下定义:struct link{int data;struct link next;} a,b,c,p,q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c;则能够把c插入到a和b 之间并形成新的链表的语句组是: Aa.next=c; c.next=b;Bp.next=q; q.next=p.next;Cp->next=&c; q->next=p->next;Dp.next=q; q.next=&b;正确答案: D二、填空题1算法的基本特征是可行性、确定性、 1 和拥有足够的情报;正确答案: 1.有穷性2在长度为n的有序线性表中进行二分查找;最坏的情况下,需要的比较次数为 2 ;正确答案: 1.log2n3在面向对象的程序设计中,类描述的是具有相似性质的一组 3 ;正确答案: 1.对象4通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 4 ;正确答案: 1.软件生命周期5数据库管理系统常见的数据模型有层次模型、网状模型和 5 3种;正确答案: 1.关系模型6设y是int型,请写出y为奇数的关系表达式 6 ;正确答案: 1.y%2==1或y%2=07设int a=5,b=6,表达式++a==b-- ++a:--b的值是7 ;正确答案: 1.78下列程序的输出结果是8;maim{char b ="Hello you";b5=0;printf "%s\n",b;}正确答案: 1.Hello9当调用函数时,实参是一个数组名,则向函数传递的是9;正确答案: 1.数组的首地址10以下程序的输出结果是10;int a=1234;printf "%2d\n",a;正确答案: 1.123411 用高级语言编写的程序称为11程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行;正确答案: 1.源程序12 以下程序的输出结果是12;main{int a=0;a+=a=8;printf"%d\n",a;}正确答案: 1.1613函数 void funfloat sn, int n的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0;请填空;void fun float sn, int n{ float s=0.0, w, f=-1.0;int i=0;fori=0; i<=n; i++{ f=13 f;w=f/2i+1;s+=w; }14=s;}正确答案: 1.-1 2.sn14函数fun的功能是:根据以下公式求p的值,结果由函数值返回;m与n为两个正数且要求m>n;例如:m=12,n=8时,运行结果应该是495.000000;请在题目的空白处填写适当的程序语句,将该程序补充完整;include <conio.h>include <stdio.h>float fun int m, int n{ int i;double p=1.0;fori=1;i<=m;i++15;fori=1;i<=n;i++16;fori=1;i<=m-n;i++p=p/i;return p;}main{ clrscr;printf "p=%f\n",fun 12,8;}正确答案: 1.p=pi 2.p=p/i15该程序运行的结果是17;include<conio.h>include<stdio.h>define M 100void funint m, int a, int n{ int i,j=0;fori=1;i<=m;i++ifi%7==0||i%11==0aj++=i;n=j;}main{ int aaM,n,k;clrscr;fun10,aa,&n;fork=0;k<n;k++ifk+1%20==0printf"\n";else printf"%4d",aak;printf"\n";}正确答案: 1.7正确答案: 1.ss= '\0'17下面程序把从终端读入的文本用作为文本结束标志输出到一个名为bi.dat的新文件中,请填空; include "stdio.h"FILE fp;{ char ch;iffp=fopen19==NULLexit0;whilech=getchar fputc ch,fp;fclosefp;}正确答案: 1."bi.dat","w"或"bi.dat","w+" 18设有如下宏定义define MYSWAPz,x,y{z=x;x=y;y=z;}以下程序段通过宏调用实现变量a,b内容交换,请填空; float a=5,b=16,c;MYSWAP20,a,b;正确答案: 1.c。

相关文档
最新文档