1、国家计算机二级(C)88 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:60.00)A.10,A,10B.10,a,10C.10,a,0D.10,A,02.有以下程序 #include void fun(int a,int b) int t; t=a;a=b;b=t; main() int
2、 c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;iA.12,3,4,5,6,7,8,9,0,B.2,1,4,3,6,5,8,7,0,9,C.0,9,8,7,6,5,4,3,2,1,D.0,1,2,3,4,5,6,7,8,9,3.DOS文件系统的组织结构属于( )。(分数:60.00)A.星形结构B.网形结构C.环形结构D.树形结构4.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 (分数:60.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b;5
3、.在一个 C语言程序中( )。(分数:60.00)A.main( )函数必须出现在所有函数之前B.main( )函数可以在任何地方出现C.main( )函数必须出现在所有函数之后D.main( )函数必须出现在固定位置6.在 16位编译系统上,若有定义 int a=10,20,30,*P= char sex;float score2;STU; void f(STU A) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU
4、 c=“Qian“,f,95.0,92.0; f(C) ; printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是( )。 (分数:60.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m, 85,908.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:60.00)A.1,1B.
5、2,2C.3,3D.4,49.在多媒体计算机中,CD-ROM 属于( )。(分数:60.00)A.存储媒体B.传输媒体C.表现媒体D.表示媒体10.有以下程序: main( ) int aa44= 1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6 ; int i,s=0; for(i=0;i4;i+) s+=aai1; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:60.00)A.11B.19C.13D.2011.下列叙述中正确的是(分数:60.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性
6、结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间12.下列关于单目运算符+、-的叙述中正确的是( )。(分数:60.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量13.下列叙述中正确的是( )。(分数:60.00)A.计算机病毒只感染可执行文件B.计算机病毒只感染文本文
7、件C.计算机病毒只能通过软件复制的方式进行传播D.计算机病毒可以通过读写磁盘或网络等方式进行传播14.有以下程序 main() int c=35;printf(“%d/n“,c for(i=1;i=0)prinff(“C“,sn-); 当编译连接通过后,运行程序 T18时,输入 Thank!则输出结果是: 5。 (分数:40.00)填空项 1:_53.在深度为 7的满二叉树中,度为 2的结点个数为 1。(分数:40.00)填空项 1:_54.下列程序从名为 filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include stdio.h main1 FILE *fp; ch
8、ar ch; fp = fopen( 2 ); ch = fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(“/n“); fclose(fp); (分数:40.00)填空项 1:_55.计算机软件分为系统软件与应用软件,UNIX 属于 1。(分数:40.00)填空项 1:_56.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:40.00)填空项 1:_57.以下程序运行后的输出结果是 1。 main( ) int a 44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18; int i=
9、0,j=0,s=0; while(i+4) if(i=2|i=4) continue; j=0; do s+= aj; j+; while(j4); printf(“%d/n“,s); (分数:40.00)填空项 1:_58.以下程序运行后的输出结果是 1 int a=5; fun(int b) static int a=10; a+=b+; printf(“%d “,a); main( ) int c=20; fun(c); a+=c+; printf(“%d/n“,a); (分数:40.00)填空项 1:_59.已有定义 double *p;,请写出完整的语句,利用 malloc函数使 p
10、指向一个双精度型的动态存储单元 1。(分数:40.00)填空项 1:_60.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动 1。(分数:40.00)填空项 1:_61.Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 1。(分数:40.00)填空项 1:_62.已有定义如下: struct node int data; struct node *next; *p; 以下语句调用 malloc函数,使指针 p指向一个具有 struct node类型的动态存储空间。请填空。 p = (struct node *)malloc( 1); (
11、分数:40.00)填空项 1:_国家计算机二级(C)88 答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:60.00)A.10,A,10 B.10,a,10C.10,a,0D.10,A,0解析:2.有以下程序 #include void fun(int a,int b) int t; t=a;
12、a=b;b=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;iA.12,3,4,5,6,7,8,9,0, B.2,1,4,3,6,5,8,7,0,9,C.0,9,8,7,6,5,4,3,2,1,D.0,1,2,3,4,5,6,7,8,9,解析:主函数中给数组 C元素赋值 1,2,9,0。第一个 for循环语句中调用 fun函数,该函数功能是交换变量的数值,注意循环变量 i的增量。第二个 for循环语句将数组 C中元素的值进行输出。3.DOS文件系统的组织结构属于( )。(分数:60.00)A.星形结构B.网形结构C.环形结构D.树形结构 解析:
13、4.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 (分数:60.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)a D.w=a=b;解析:5.在一个 C语言程序中( )。(分数:60.00)A.main( )函数必须出现在所有函数之前B.main( )函数可以在任何地方出现 C.main( )函数必须出现在所有函数之后D.main( )函数必须出现在固定位置解析:6.在 16位编译系统上,若有定义 int a=10,20,30,*P= char sex;float score2;ST
14、U; void f(STU A) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0; f(C) ; printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是( )。 (分数:60.00)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m, 85
15、,90解析:本题考查在结构体中函数的实参和形参的传递,调用 f(C)后,实参传向形参,进行 f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与 printf输出的还是 c中实参的值,故选项 A正确。8.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:60.00)A.1,1B.2,2C.3,3 D.4,4解析:9.在多媒体计算机中,CD-ROM 属于( )。(分数:60.0
16、0)A.存储媒体 B.传输媒体C.表现媒体D.表示媒体解析:10.有以下程序: main( ) int aa44= 1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6 ; int i,s=0; for(i=0;i4;i+) s+=aai1; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:60.00)A.11B.19 C.13D.20解析:11.下列叙述中正确的是(分数:60.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储
17、结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。其优点是占用最少的存储空间,所以选项 D)错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项 B)错误。链式存储结构也可以存储线性表,所以选项 C)错误。12.下列关于单目运算符+、-的叙述中正确的是( )。(分数:60.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和
18、 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量 解析:13.下列叙述中正确的是( )。(分数:60.00)A.计算机病毒只感染可执行文件B.计算机病毒只感染文本文件C.计算机病毒只能通过软件复制的方式进行传播D.计算机病毒可以通过读写磁盘或网络等方式进行传播 解析:14.有以下程序 main() int c=35;printf(“%d/n“,c for(i=1;i=0)prinff(“C“,sn-); 当编译连接通过后,运行程序 T18时,输入 Thank!则输出结果是: 5。 (分数:40.00)填空项 1:_ (正确答案:!knahT)解析:
19、此程序是一道次序颠倒题,即输入“Thank!“,则输出“!knahT“。53.在深度为 7的满二叉树中,度为 2的结点个数为 1。(分数:40.00)填空项 1:_ (正确答案:63)解析:根据二叉树的性质,一棵深度为 k的满二叉树有 2的 K次方-1 个结点,所以深度为 7的满二叉树有2的 7次方-1=127 个节点;又因为在任意一棵二叉树中,若终端结点的个数为 n。,度为 2的结点数为 n2,则 n。=n2+l,即所以总节点数为 n0+n2=2n2+1=127,所以 n2=63,即度为 2的结点个数为 63,所以 -|_|-应填入 63。54.下列程序从名为 filea.dat的文本文件中
20、逐个读入字符并显示在屏幕上。请填空。 #include stdio.h main1 FILE *fp; char ch; fp = fopen( 2 ); ch = fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(“/n“); fclose(fp); (分数:40.00)填空项 1:_ (正确答案:“filea.dat“,“r“)解析:本目要求从名为 filea.dat的文本文件中逐个读入字符并显示在屏幕上,首先打开 filea.dat文件再读取字符,所以空白处应为以读的方式打开文件,所以其内容应该为“filea.da
21、t“,“r“。55.计算机软件分为系统软件与应用软件,UNIX 属于 1。(分数:40.00)填空项 1:_ (正确答案:系统软件)解析:56.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:40.00)填空项 1:_ (正确答案:空间)解析:程序在计算机上运行时所耗费的时间由下列因素所决定:程序运行时所需输入的数据总量,对源程序进行编译所需时间,计算机执行每条指令所需时间,程序中的指令重复执行的次数。前一条取决于实现算法的计算机欺、硬件系统,习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时间复杂度。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。 57.以
22、下程序运行后的输出结果是 1。 main( ) int a 44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18; int i=0,j=0,s=0; while(i+4) if(i=2|i=4) continue; j=0; do s+= aj; j+; while(j4); printf(“%d/n“,s); (分数:40.00)填空项 1:_ (正确答案:92)解析:58.以下程序运行后的输出结果是 1 int a=5; fun(int b) static int a=10; a+=b+; printf(“%d “,a); main( ) int c=20;
23、 fun(c); a+=c+; printf(“%d/n“,a); (分数:40.00)填空项 1:_ (正确答案:30 25)解析:59.已有定义 double *p;,请写出完整的语句,利用 malloc函数使 p指向一个双精度型的动态存储单元 1。(分数:40.00)填空项 1:_ (正确答案:p=(double*)malloc(sizeof(double))解析:malloc 函数的作用是在内存开辟指定大小的存储空间,并将此存储空间的地址作为函数值带回,它的原型为 void* malloc(unsigned int size),函数值为指针,这个指针是指向 void类型,如果要将此返回
24、地址赋给一个指向特定类型的指针变量,则应进行强制类型转换,如本题答案中是用强制类型转换的方法使指针 p的基类型改变为 double类型。 60.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动 1。(分数:40.00)填空项 1:_ (正确答案:标题栏)解析:61.Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 1。(分数:40.00)填空项 1:_ (正确答案:基本服务)解析:62.已有定义如下: struct node int data; struct node *next; *p; 以下语句调用 malloc函数,使指针 p指向一个具有 struct node类型的动态存储空间。请填空。 p = (struct node *)malloc( 1); (分数:40.00)填空项 1:_ (正确答案:sizeof(struct node))解析: