2007年4月全国计算机考试二级C语言笔试试卷及参考答案
- 格式:pdf
- 大小:10.43 KB
- 文档页数:4
全国计算机等级考试二级C笔试试卷(含参考答案)以下各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)以下表达中正确的选项是A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进展再测试 D)程序经调试改错后不必进展再测试(2)以下数据构造中,能用二分法进展查找的是A)顺序存储的有序线性表 B)线性链表C)二叉链表 D)有序线性链表(3)以下关于栈的描述正确的选项是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(4)以下表达中正确的选项是A)一个逻辑数据构造只能有一种存储构造B)数据的逻辑构造属于线性构造,存储构造属于非线性构造C)一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D)一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率(5)以下描述中正确的选项是A)软件工程只是解决软件工程的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原那么D)软件工程只是解决软件开发中的技术问题(6)在软件设计中,不属于过程设计工具的是A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图(7)以下表达中正确的选项是A)软件交付使用后还需要进展维护B)软件一旦交付使用就不需要再进展维护C)软件交付使用后其生命周期就完毕D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据平安问题C)大量数据存储问题 D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3那么以下操作中正确的选项是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员(11)以下表达中错误的选项是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下表达中错误的选项是A)C语句必须以分号完毕B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下表达中正确的选项是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的表达中正确的选项是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)假设有语句:char *line[5];,以下表达中正确的选项是A)定义line是一个数组,每个数组元素是一个基类型为char 的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下表达中正确的选项是A)以上的说明形式非法 B)NODE是一个构造体类型C)OLD是一个构造体类型 D)OLD是一个构造体变量(17)以下表达中错误的选项是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
全国计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义int a[5] = {1, 2, 3, 4, 5};,则a[0]的值是?A. 1B. 2C. 3D. 4答案:A3. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. do答案:B4. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A5. 若有定义int x = 10;,则表达式x++的值是多少?A. 9B. 10C. 11D. 无法确定答案:B6. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B7. 下列哪个选项是C语言中的合法整型常量?A. 012B. 0x1AC. 1.2E3D. 0b1010答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A9. 若有定义int a = 5, b = 10;,则表达式a + b 的值是多少?A. 15B. 5C. 10D. 无法确定答案:A10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C二、程序填空题(每空2分,共20分)给定以下C语言程序片段,请在空白处填入正确的代码。
```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b; // 计算两数之和printf("Sum is: %d\n", sum);return 0;}```若要计算两数之差,请在空白处填入正确的代码。
全国计算机二级c语言考试真题及答案一、选择题(每题2分,共40分)1. 下列关于C语言中变量的描述,正确的是:A. 变量名可以以数字开头B. 变量名区分大小写C. 变量名可以包含空格D. 变量名可以包含特殊字符答案:B2. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x1.2C. 0x12.0D. 0x12.0p答案:A3. C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 123D. '123'答案:A4. 下列关于C语言中数组的描述,错误的是:A. 数组名代表数组的首地址B. 数组的大小是固定的C. 数组的下标从0开始D. 数组可以存储不同类型的数据答案:D5. 在C语言中,以下哪个选项是合法的函数声明?A. int myFunc(int a, int b);B. int myFunc();C. int myFunc(int a, int);D. int myFunc(int a, b);答案:A6. C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int (*ptr)[];D. int ptr;答案:A7. 在C语言中,以下哪个选项是合法的循环结构?A. for(;;)B. while(1)C. do-whileD. All of the above答案:D8. C语言中,以下哪个选项是合法的条件语句?A. if (condition)B. if (condition) elseC. if (condition) else if (condition)D. All of the above答案:D9. 下列关于C语言中结构体的描述,正确的是:A. 结构体可以包含其他结构体作为成员B. 结构体的成员必须是同一种数据类型C. 结构体的成员名必须唯一D. 结构体不能包含函数答案:A10. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个枚举类型。
全国计算机二级考试c语言题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. int_答案:A3. 在C语言中,一个整型变量占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C4. 下列哪个函数用于计算两个数的和?A. max()B. pow()C. sqrt()D. sum()答案:D5. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. |答案:A6. C语言中,以下哪个选项用于定义一个整型数组?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B7. 在C语言中,以下哪个选项用于声明一个指向整型的指针?A. int *p;B. int *p[];C. int (*p)[];D. int *p[5];答案:A8. 下列哪个选项是C语言中的字符串字面量?A. "Hello"B. 'Hello'C. "Hello'"D. 'Hello'答案:A9. 在C语言中,以下哪个选项用于定义一个结构体?A. struct Student {int id;char name[20];};B. struct Student student;C. Student student;D. int Student;答案:A10. 在C语言中,以下哪个选项用于声明一个函数?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个无限循环。
国家计算机二级c考试试题及答案 一、选择题(本题共20分,每题2分) 1. 在C语言中,以下哪个选项是正确的整型常量? A. 0x123 B. 123.0 C. '123' D. 0b1010
答案:A 2. 下列哪个关键字用于定义C语言中的函数? A. var B. function C. def D. int
答案:D 3. 在C语言中,以下哪个选项是合法的数组声明? A. int a[]; B. int a[10] = {0}; C. int a = 10; D. int a[10] = 0;
答案:B 4. C语言中,以下哪个选项是正确的字符串声明? A. char str; B. char str[]; C. char str[10] = "Hello"; D. char str = "Hello";
答案:C 5. 在C语言中,以下哪个选项是正确的条件语句? A. if (x > 0) B. if x > 0 C. if (x > 0) then D. if (x > 0) begin
答案:A 二、填空题(本题共20分,每题4分) 1. 在C语言中,用于定义一个整型变量的关键字是________。 答案:int
2. C语言中,用于实现循环结构的关键字有________和________。 答案:for、while
3. 在C语言中,用于定义一个字符型变量的关键字是________。 答案:char
4. C语言中,用于实现条件选择的关键字是________。 答案:if
5. C语言中,用于定义一个浮点型变量的关键字是________。 答案:float
三、编程题(本题共60分,每题30分) 1. 编写一个C语言程序,实现计算并输出100以内所有偶数的和。 ```c #include
int main() { int sum = 0; for (int i = 2; i <= 100; i += 2) { sum += i; } printf("The sum of even numbers from 1 to 100 is: %d\n", sum); return 0; } ```
计算机全国二级c语言考试试卷答案一、选择题(每题2分,共40分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名必须以字母开头B. 变量名中可以包含数字C. 变量名区分大小写D. 变量名不能包含空格答案:D2. C语言中,用于定义整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B4. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C5. C语言中,用于实现条件分支的关键字是:A. ifB. switchC. caseD. default答案:A6. 下列哪个选项不是C语言中的循环控制语句?A. forB. whileC. do-whileD. break答案:D7. C语言中,数组的索引从哪个数字开始?A. 0B. 1C. 2D. -1答案:A8. 下列哪个函数用于计算两个数的最大值?A. max()B. min()C. abs()D. sqrt()答案:A9. 在C语言中,哪个关键字用于定义函数?A. functionB. defC. voidD. int答案:C10. C语言中,用于输出的函数是:A. printf()B. scanf()C. gets()D. puts()答案:A11. 下列哪个选项是C语言中的合法字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A12. C语言中,用于定义字符型变量的关键字是:A. charB. intC. floatD. double答案:A13. 下列哪个选项是C语言中的合法浮点数?A. 3.14B. .14C. 3.14e2D. All of the above答案:D14. 在C语言中,哪个运算符用于计算两个数的除法?A. +B. -C. *D. /答案:D15. C语言中,用于实现多重选择的关键字是:A. ifB. switchC. caseD. default答案:B16. 下列哪个选项不是C语言中的合法关键字?A. intB. floatC. returnD. void答案:B17. C语言中,用于定义浮点型变量的关键字是:A. intB. floatC. doubleD. char答案:B18. 下列哪个函数用于计算两个数的绝对值?A. max()B. min()C. abs()D. sqrt()答案:C19. 在C语言中,哪个关键字用于定义返回值为void的函数?A. intB. voidC. charD. float答案:B20. C语言中,用于输入的函数是:A. printf()B. scanf()C. gets()D. puts()答案:B二、填空题(每题2分,共20分)1. C语言中,用于定义字符型数组的关键字是________。
本文由no5space贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 2007 年 4 月全国计算机考试二级 C 语言笔试试卷及参考答案 一选择题 (1)下列叙述中正确的是 A)算法的效率只与问题的规模有关,而与数据的存储结构无关 B)算法的时间复杂度是指执行算法所需要的计算工作量 C)数据的逻辑结构与存储结构是一一对应的 D)算法的时间复杂度与空间复杂度一定相关 (2)在结构化程序设计中,模块划分的原则是 A)各模块应包括尽量多的功能 B)各模块的规模应尽量大 C)各模块之间的联系应尽量紧密 D)模块内具有高内聚度、模块间具有低耦合度 (3)下列叙述中正确的是 A)软件测试的主要目的是发现程序中的错误 B)软件测试的主要目的是确定程序中错误的位置 C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 D)软件测试是证明软件没有错误 (4)下面选项中不属于面向对象程序设计特征的是 A)继承性 B)多态性 C)类比性 D)封闭性 (5)下列对列的叙述正确的是 A)队列属于非线性表 B)队列按“先进后出”原则组织数据 C)队列在队尾删除数据 D)队列按“先进先出”原则组织数据 (6)对下列二叉树 进行前序遍历的结果为 A) DYBEAFCZX C) ABDYECFXZ B) YDEBFZXCA D) ABCDEFXYZ (7) 某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点为 A) n+1 B) n-1 C) 2n D) n/2 (8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 A) 并 B)交 C)投影 D)笛卡儿乘积 (9) 在 E-R 图中,用来表示实体之间联系的图形是 A) 矩形 B)椭圆形 C)菱形 D)平行四边形 (10)下列叙述中错误的是 A) 在数据库系统中,数据的物理结构必须与逻辑结构一致 B)数据库技术的根本目标是要解决数据的共享问题 C)数据库设计是指在已有数据库管理系统的基础上建立数据库 D)数据库系统需要操作系统的支持 (11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于 算法的 A)正当性 B)可行性 C)确定性 D)有穷性 (12)下列叙述中错误的是 A)计算机不能直接执行用 C 语言编写的源程序 B)C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件 C)后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D)后缀为.obj 和.exe 的二进制文件都可以直接运行 (13)按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是 A)大写字母 B)连接符 C)数字字符 D)下划线 (14)以下叙述中错误的是 A)C 语言是一种结构化程序设计语言 B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法 (15)对于一个正常运行的 C 程序,以下叙述中正确的是 A)程序的执行总是从 main 函数开始,在 main 函数结束 B)程序的执行总是从程序的第一个函数开始,在 main 函数结束 C)程序的执行总是从 main 函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 (16)设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); 语句为变量 a1 和 a2 赋数值 10 和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示 的输入形式正确的是(注:□代表空格字符) A)10□X□20□Y〈回车〉 C)10□X〈回车〉 20□Y〈回车〉 B)10□X20□Y〈回车〉 D)10X〈回车〉 20Y〈回车〉 (17)若有代数式(其中 e 仅代表自然对数的底数,不是变量),则以下能够正 确表示该代数式的 C 语言表达式是 A)sqrt(abs(n^x+e^x)) B) sqrt(fabs(pow(n,x)+pow(x,e))) D) sqrt(fabs(pow(x,n)+exp(x))) C)sqrt(fabs(pow(n,x)+exp(x,e))) (18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相
page 1 同的是 A)k++ B)k+=1 C)++k DD)k+1 (19)有以下程序,其中%u 表示按无呼号整数输出 Main() {unsigned int x=0xFFFF;/* Printf(“%u\n”,x); } 程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0XFFFF x 的初值为十六进制数 */ (20)设变量 x 和 y 均已正确定义并赋值,以下 if 语句中,在编译时将产生错 误信息的是 A)if(x++) C)if(x>y)x- else y++: B)if(x>y&y!=0); D)if(y<0) {;} else x++; (21)以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式 A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 (22)以下叙述中正确的是 A)break 语句只能用于 switch 语句题中 B)continue 语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和 switch 语句体内 D)在循环体内使用 break 语句和 continue 语句的作用相同 (23)有以下程序 Main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1; break; Default;n=0;k--; Case2: } Printf(“%d”,n); }while(k>0&&n<5); } 程序运行后的输出结果是 A)235 B)0235 C)02356 D)2356 case4:n+=2;k--;break; (24)有以下程序 mian() {int i,j; for(i=1;i<4;i++) {for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j); Printf(“\n”); } } 程序运行后的输出结果是 *p=&n; Printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); p rintf(“%d\n”,p); } 该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下语句 正确的是 A) int n,*p=NULL; B)*p=&n; C)scanf( “%d” ,&p) D)printf( “% d\n”,p); (31)以下程序中函数 f 的功能是:当 flag 为 4 时,进行有小到大排序;当 flag 为 0 时,进行由大到小排序。 void f(int {int i,j,t; b[],int n,int flag) for(i=0;i<n-1;i++) for (j=i+1;j<n;j++) if(flag?b[ i ]>b[j]:b[ i ]a[k][ i]){t=a[j][ i];a[j][ i ]=a[k][ i ];a[k][ i]= t;}/*按列排序*/ for(i=0;i<4;i++)printf(“%d,”,a[ i ][j]); } 程序运行后的输出结果是 A)1,6,5,7, (35) 有以下程序 main() {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++) for(k=i+i;k<4;k++) if(a[ i ][ i ] main() {char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”; strcat(p,q); Strcpy(p+strlen(q),r); Printf(“%d%d\n”,sizeof(p),strlen(p)); } 程序运行后的输出结果是 A)20 9 B)9 9 C)20 11 D)11 11 (38) 有以下程序 #include main() {char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde” strcat(p,r); Strcpy(p+strlen(q),q); Printf(“%d \n”,sizeof(p)); } 程序运行后的输出结果是 A)9 B)6 C)11 D)7 (39) 有以下程序 #include main() { char p[20]={‘a’,’b’,’c’,’d’}, q[]=”abc”, r[]=”abcde”; Strcat(p,r); strcpy(p+strlen(q),q); Printf(“%d\n”,strlen(p)); } 程序运行后的输出结果是 A) 9 B) 6 C) 11 D) 7 else {int a=7 ;t+=a++;} return } main() {int t+a++; s=a,i=0; for(;i〈2;i++ 〉 s+=f(i); printf (“%d\n”,s); } 程序运行后的输出结果是 A)24 B)28 C)32 D)36 (43) 有一个名为 init.txt 的文件,内容如下: #define # define 有以下程序 #include main() {int a=1,b=2,c=3,d=4,k; “init.txt” HDY(A,B) PRINT(Y)
page 2