1、2010 年 3 月计算机等级考试二级 C 笔试试题(文字版)一、选择题(1)下列叙述中正确的是A)对长度为 n 的有序链表进行查找,最坏清况下需要的比较次数为 nB)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(
2、或工具软件)。下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD 图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管
3、理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段 B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系 R 和 T 如下:则由关系 R 得到关系 T 的操作是A)选择B)投影C)交 D)并 (11)以下叙述正确的是A)C 语言程序是由过程和函数组成的B)C 语言函数可以嵌套调用,例如:fun(fun(x)C)C 语言函数不可以单独编译D)C 语言中除了 main 函数,其他函数不可作为单独文件形式存在 (12)以下关于 C 语言的叙述中
4、正确的是A)C 语言中的注释不可以夹在变量名或关键字的中间B)C 语言中的变量可以在使用之前的任何位置进行定义C)在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D)C 语言的数值常量中夹带空格不影响常量值的正确表示(13)以下 C 语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)ab (14)若有定义:double a=22;int i=0,k=18;,则不符合 C 语言规定的赋值语句是A)a=a+,i+;B)i=(a+k)if(aelse k=c;elseif(belse k=c;以下选项中与上述 if 语句等价的语句是A)k=(aB)k=(aC)k=(aD)
5、k=(a(20)有以下程序#includemain()in i,j,m=1;for(i=1;iO;j-)if(i*j)3)break;m=i*j;printf(“m=%dn“,m);程序运行后的输出结果是A)m=6 B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.hmain()int a=l;b=2;for(;aprintf(“%d“,ai);printf(“n“);程序运行后的输出结果是A)1313B)2234C)3234 D)1234(33)有以下程序#include int f(int t,int n);main int a4=1,2,3,4,s;s=f(a
6、,4); printf(“%dn“,s);int f(int t,int n) if(n0) return tn-1+f(t,n-1);else return 0;程序运行后的输出结果是A)4B)1OC)14D)6 (34)有以下程序#include int fun() static int x=1;x*2; return x;main()int i,s=1,for(i=1;iyear=1980;D)w.s.year=1980;(39)有以下程序#include main() int a=2,b=2,c=2;printf(“%dn“,a/b程序运行后的输出结果是A)OB)1 C)2D)3(40
7、)有以下程序#include main() FILE *fp;char str10;fp=fopen(“myfile.dat“,“w“);fputs(“abc“,fp);fclose(fp);fpfopen(“myfile.data“,“a+“);fprintf(fp,“%d“,28);rewind(fp);fscanf(fp,“%s“,str); puts(str);fclose(fp);程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错 二、填空题(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1 依次入队,然后再依次退队,则元
8、素退队的顺序为 【1】 。(2)设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。(3)设二叉树如下:对该二叉树进行后序遍历的结果为 【3】 。(4)软件是 【4】 、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。(6)设 x 为 int 型变量,请写出一个关系表达式 【6】 ,用以判断 x 同
9、时为 3 和 7 的倍数时,关系表达式的值为真。(7)有以下程序#includemain() int a=1,b=2,c=3,d=0;if(a=1)if(b!=2)if(c=3) d=1;else d=2;else if(c!=3) d=3;else d=4;else d=5;printf(“%dn”,d);程序运行后的输出结果是 【7】 。(8)有以下程序#include main() int m,n;scanf(“%d%d“,while(m!=n) while(mn) m=m-n;while(mprintf(“%dn”,m);程序运行后,当输入 14 63 时,输出结果是 【8】 。(9)
10、有以下程序#include main() int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i0;i-) stri=stri-1;str0=temp;main() char s50;scanf(“%s“,s); fun(s); printf(“%sn“,s);程序运行后输入:abcdef,则输出结果是 【12】 。(13)以下程序的功能是:将值为三位正整数的变量 x 中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#include main() int x=256;printf(“%d-%d-%dn“, 【13】 ,x/10,x/100);(14)以下程序用以删除
11、字符串所有的空格,请填空。#include main() char s100=“Our teacher teach C language!“;int i,j;for(i=j=0;si!=0;i+)if(si!= ) sj=si;j+;sj= 【14】printf(“%sn”,s);(15)以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include main() int a10,*p,*s;for(p=a;p-a*s) s= 【15】 ;printf(“index=%dn”,s-a);一、选择题15 ADBAC 610 BADAA 1115 BBDCC 1620 DABCA2125 DDABD 2630 ADBCC 3135 ACBCC 3640 BADAC二、填空题1、A,B,C,D,E,F,5,4,3,2,1 2、15 3、EDBGHFCA4、程序 5、课号 6、 (x%3=0)&(x%7=0) 7、48、7 9、123569 10、135 11、101418 12、12 fabcde13、x%100%10 14、14si+1 15、s+1