




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年河南省信阳市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。
A.++p->xB.pt->xC.*pt->yD.(pt++)->x
2.
若输入“abcdef”“abdef”,下述程序的输出结果为()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
3.下列选项中与“if(a==1)a=b;elsea++;”语句功能不同的switch语句是()。
A.switch(a==1){ case0:a=b;break; case1:a++;}
B.switch(a){ case1:a=b;break; default:a++;}
C.switch(a){ default:a++;break; case1:a=b;}
D.switch(a==1){ case1:a=b;break; case0:a++;}
4.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.将磁盘文件的内容显示在屏幕上
B.将两个磁盘文件合为一个
C.将一个磁盘文件复制到另一个磁盘文件中
D.将两个磁盘文件合并后送屏幕
5.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
6.x>0||y==5的相反表达式为()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
7.下列叙述中正确的是:()A.C语言程序中,main()函数必须在其它函数之前,函数内可以嵌套定义函数
B.C语言程序中,main()函数的位置没有限制,函数内不可以嵌套定义函数
C.C语言程序中,main()函数必须在其它函数之前,函数内不可以嵌套定义函数
D.C语言程序中,main()函数必须在其它函数之后,函数内可以嵌套定义函数
8.设有下列二叉树:
对此二叉树先序遍历的结果是
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
9.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是______。
A.34B.42C.43D.33
10.字符组a[20]和b[20],下面正确的输出语句是()。A.put(a,b)
B.prinf(“%s,%s”,a[],b[])
C.putchar(a,b)
D.puts(a);puts(b)
11.
12.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()A.从第0个元素往后查找该数据元素
B.从第1个元素往后查找该数据元素
C.从第n个元素往开始前查找该数据元素
D.与查找顺序无关
13.下面关于线性表的叙述中,错误的是哪一个()。
A.线性表采用顺序存储,必须占用一片连续的存储单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链式存储,不必占用一片连续的存储单元
D.线性表采用链式存储,便于进行插入和删除操作
14.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
15.设已有定义“floatx;”,则下列对指针变量P进行定义且赋初值的语句中正确的是()。
A.int*p=(float)x;
B.float*p=&x;
C.floatp=&x;
D.float*p=1024;
16.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。
A.3B.5C.7D.9
17.有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
18.栈的特点是B,队列的特点是()。
A.先进先出B.先进后出
19.
20.一个队列的入队序列是1,2,3,4,则队列的输出序列是()。
A.4,3,2,1B.l,4,3,2C.1,2,3,4D.3,2,4,1
二、2.填空题(20题)21.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
22.下面程序的运行结果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
23.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d\n",c,d);
}
24.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
25.执行以下for语句后,变量i的值是【】。
for(i=1;i++<=5;);
26.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
27.若有如下结构体说明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
28.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
29.以下程序输出的最后个值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
30.数据库系统中实现各种数据管理功能的核心软件是______。
31.阅读下列程序,则程序的输出结果为【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
32.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
33.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
34.关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。
35.耦合和内聚是评价模块独立性的两个主要标准,其中______反映了模块内各成分之间的联系。
36.以下程序的输出结果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
37.设有定义“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。
38.下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
39.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
40.栈中允许进行插入和删除的一端叫做______。
三、1.选择题(20题)41.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
42.对以下二叉树
进行中序遍历的结果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
43.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()
A.m=3B.m=2C.m=1D.m=0
44.阅读下面程序,则程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-1;while(j>=0&&t>c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');}
A.对数组元素的升序排列B.对数组元素的降序排列C.对数组元素的倒序排列D.对数组元素的随机排列
45.以下选项中合法的用户标识符是A.longB._2TestC.3DmaxD.A.dat
46.己知一个有序线性表为(13,18,24,35,47,50,62,83,96,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
47.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
48.以下定义语句中正确的是______。
A.chara='A'b='B';
B.floata=b=19.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
49.下列程序段的输出结果为()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有语法错误D.lang
50.下述函数功能是_______。intfun(char*x){char*y=x;while(*y++);returny-s-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
51.表达式18/4*sqrt(4.0)/8值的数据类型为()。A.intB.floatC.doubleD.不确定
52.下列属于C语言语句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
53.以下程序的输出结果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
54.有如下程序:#include<stdio.h>main(){intx=1,a=0,b=0;switch(x){casc0:b++;case1:a++;case2: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
55.运行下面程序时,从键盘输入字母H,则输出结果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
56.以下对C语言函数的有关描述中,正确的是
A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
57.若以下程序所生成的可执行文件名为file1.exe,main(intargc,char*argv[]){while(argc-->0){++argv;printf("%s",*argv);}}当键入以下命令执行该程序时:FILE1CHINABEUINGSHANGHAI程序的输出结果是()
A.CHINABEIJIANGSHANGHAI
B.FILE1CHINABEIJING
C.CBS
D.FCB
58.对计算机软件正确的态度是()
A.计算机软件不需要维护
B.计算机软件只要能复制得到就不必购买
C.受法律保护的计算机软件不能随便复制
D.计算机软件不必有备份
59.以下函数返回a所指数组中最小的值所在的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]);________;
return(p);}
在横线处应填入的是
A.i=pB.a[p]=a[i]C.p=jD.p=i
60.下面语句的输出结果是_______。printf("%d\n",strlen("\t\"\065\xff\n"));
A.14B.8C.5D.输出项不合怯,无正常输出
四、选择题(20题)61.下列选项中属于面向对象设计方法主要特征的是()。A.继承B.自顶向下C.模块化D.逐步求精
62.
63.下列语句组中,正确的是()。
A.char*s;s="Olympic";
B.charsE73;s="Olympic";
C.char*S;s={¨Olympic"};
D.charsET3;s={"Olympic"};
64.在面向对象方法中,不属于“对象”基本特点的是A.一致性B.分类性C.多态性D.标识唯一性
65.设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是()。
A.
B.
C.
D.
66.
67.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00
68.
69.有以下程序:
fun(inta,intb)
{a++;b++;
if(a>b)return(a);
elsereturn(b);
}
void
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y++),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是()。
A.13B.6
C.8D.12
70.下列判断正确的是()。A.A.chara="ABCD":等价于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等价于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";
71.
72.有以下程序:
程序执行后的输出结果是()。
A.1B.2C.3D.4
73.
74.有以下计算公式
75.以下选项中,当x为大于1的奇数时,值为0的表达式是()。
A.x%2==0B.x/2C.x%21=0D.x%2==1
76.
77.设有定义
78.以下正确的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
79.已知字母A的ASCII码为十进制的65,下面程序的输出为()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
80.
执行下列程序中的输出语句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开触文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是移动字符串中的内容,移动的规则是把第1~m个字符,移动到字符串的最后,把第m+1到最后的字符移动到于符串的前面。例如,字符串中原有的内容为“ABCDEFGHIJK”,m的值为3,移动后,字符串中的内容应该是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。
2.D
\n本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。
\n
3.A题干中,if语句的含义是:如果a的值为1,将b的值赋给a,否则将a的值自增1。选项A中,“switch(a==1)”中表达式“a==1”的结果如果为真,即1,则从case1开始执行“a++”;如果“a==1”的结果为假,即为0,则从case0开始执行“a=b”,所以与题干含义执行操作相反的是选项A中的语句。故本题答案为A选项。
4.C解析:程序首先定义了两个文件类型的指针fp1、fp2。为读打开文件filel,并让指针fp1指向该文件;为写打开文件file2,并让指针fp2指向该文件。循环执行从文件file1中读取一个字符,输出到文件file2中,直到文件file1结束。因此程序的功能是将文件file1中的内容复制到文件file2中。
5.A
6.B
7.B每个C程序有且只有一个主函数main,C程序总是从main函数开始执行,main函数后面的一对圆括号不能省略,main函数可以位于程序的任意位置。函数不可以嵌套定义,但函数可以嵌套调用。
8.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。
9.D解析:逗号表达式(++x,y++)的值应该是y++的值,由于y++是先引用后自增,所以y++的值是3。
10.D难易程度:中
11.D
12.C
13.B
14.A
15.B指针是用来存放地址的变量,定义指针变量的形式为:类型名*指针变量名。赋值时应将某个变量地址,如选项B中变量x的地址&x赋给指针变量。故本题答案为B选项。
16.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。
17.A本题考查逻辑与运算“&&”与逻辑或运算“||”。在选项A中,因为!a=0,所以关系表达式!a=1为0,又因为逻辑与运算符“&&”两边的表达式只要一个等于零,则整个表达式为零,所以选项A正确。在选项8中,关系表达式a<b为真,表达式(a<b)&&!C为假,而表达式(a<b)&&!||1为真,所以整个表达式的值为真。选项C中,a&&b的结果为真。在选项D中,a||(b+b)&&(C-a)的结果为真。
18.A
19.B本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此B正确。
20.C
21.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
22.
23.5656解析:本题中a,b,c,d是实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参中元仍保留并维持原值。因此,程序的输出结果是56。
24.自顶而下自顶而下
25.7
26.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。
27.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
};
定义结构体变量的的形式为:
struct结构体类型名变量1,变量2,...?
其中变量包括;一般变量、指针变量、数组变量等。
28.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
29.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。
②对静态局部变量是在编译时赋初值的,即只赋初值—次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。
③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中非静态变量在定义时,系统并不会自动给它赋初值)
④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。本题中函数的功能是:与for语句一起求一个整数的阶乘。
30.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
31.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。
32.21
33.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。
34.查询查询
35.内聚内聚
36.4040解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”
37.若结构体变量abc有成员a,并有指针p_abc指向结构变量abe,则引用变量abe成员s的标记形式有abe.a和p_abc->a。
38.aa解析:本程序先将指针ptr1和ptr2分别指向字符数组a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。
39.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
40.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。
41.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。
42.A解析:二叉树的中序遍历递归算法为:如果根不空,则①按中序次序访问左子树,②访问跟结点,⑧按中序次序访问右子树;否则返回。本题中,根据中序遍历算法,应首先按照中序次序访问以C为根结点的左子树,然后再访问根结点P,最后才访问以E为根结点的右子树。遍历以C为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为ACBD;然后遍历根结点P;遍历以E为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为ACBDFEG。因此,本题的正确答案是选项A。
43.C
44.B解析:读懂两个循环的关系,是解这个题目的关键,本题的第一个for循环的作用是实现对数组元素的遍历,第二个循环的作用是排序。while(j>=0&&t>c[j]),这个语句是控制排序的关键语句,它即实现了比较两个元素大小的作用,又实现了元素向后移动的作用,不断地把大的数据向前移动,直到找到一个比它小的,或到数据的上界为止。
45.B解析:本题考查C语言标识符的命名.在C语言中,合法的标识符由字母,数字和下划线组成,并且第一个字符必须为字母或者下划线,long为C语言的保留字,不能作为用户标识符,故选顷A错误.3Draax开头的第一个为数字,而C语言规定,第一个字符必须为字母或者下划线,故选项C错误;A.dat中的字符“.”不符合C语言中用户标识符只能由字母、数字和下划线组成的规定,故选项D错误.只有迭项B正确。
46.B解析:根据二分法查找需要两次:①首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
47.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
48.C解析:选项A中a='A'b='B'中缺少一个逗号;B中只能定义一个,如a=19.0;D中b是float类型的,不能取指针地址。
49.B解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。
50.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
51.C因为c语言数据进行计算时数据类型会由低级向高级进行隐式转化,sqrt函数得到的是double类型,比其他的int数据类型高,所以整个结果得到的是double类型。
52.C解析:在C语言中,一个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。
53.D解析:本题考查带参数的宏调用。a/=SQR(k+m)/SQR(k+m)进行宏替换后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
54.A解析:该程序的关键是要搞清楚程序执行的路线。由于x的值等于1,所以在switch语句中,程序从case1后面的语句开始执行。由于case1后面没有break语句,所以程序顺序执行case2后面的语句。程序共执行了三条语句:a++;a++;b++;所以,变量a和b最后的值分别为2和l。选项A)正确。
55.C解析:本题主要对switch语句进行了考查。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。本题中ch为字符'H',所以case'H'条件中的语句将被执行,由于没有break语句,所以case'G'后的语句也被执行,由于同样的缺少break语句,所以default后的语句也被执行了。
56.A解析:C语言中的函数可以进行递归调用,但不能在函数中定义函数,即函数不能嵌套定义。函数可以没有返回值,若有返回值,则返回值类型必须确定。
57.A
58.C解析:A、B、D都不是对待软件的正确态度。
59.D解析:该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p,即将比较过的最小元素下标保留在p中,作为下面判断的标准。
60.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制数或在“\\”后跟字母x及1~2位十六进制数,以此来代表一个特定的字符。
61.A面向对象设计方法的三个基本特性即封装、多态、继承。结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。故答案为A)。
62.A
63.A给字符串数组赋值时,要先定义数组长度,然后再赋值。可以只给部分元素赋初值,当中值的个数少于元素个数时,只给前面部分元素赋值。数组的下标是从0开始的,所以s[7]代表从s[0]到s[6]七个元素。其格式可以写成:char数组名[常量]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中生物29大知识专题答题技巧与模板
- 多媒体在英语教学中的应用
- 通史版2025版高考历史大一轮复习第13单元西方近代工业文明的确立与纵深发展第34讲世界近代科学技术与文学艺术教案含解析人民版
- 出让矿山用地合同范例
- 乡村公寓租赁合同范例
- 减肥药销售合同标准文本
- 公司交保险合同范例
- 2025采购合同范文
- 仓储协议合同标准文本简短标准文本
- 出售涂层铝板合同范例
- 《平台经济从业者职业伤害保障制度研究》
- 过氧化氢溶液含量>8%安全技术说明书MSDS
- 讴歌改革开放的现代诗词
- 项目管理工程师招聘笔试题与参考答案(某大型集团公司)2024年
- 北师大版三年级下册除法竖式计算题练习100道及答案
- 2024年全国证券投资顾问之证券投资顾问业务考试经典测试题(附答案)
- 公安机关处置群体性治安事件规定
- 江苏省2024年中职职教高考文化统考英语试卷
- 室外燃气管道安装施工方案
- 2024公司向股东短期借款合同
- 《陆上风电场工程概算定额》NBT 31010-2019
评论
0/150
提交评论