版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年河南省开封市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若变量c为char类型,能正确判断出c为小写字母的表达式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)
B.(′a′>=c)and(′z′>=c)
C.(′a′<=c)and(′z′>=c)
D.(c>=′a′)&&(c<=′z′)
2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。A.n2B.O(nlgn)C.O(n)D.O(n2)
3.以下叙述中错误的是()。
A.函数的返回值类型不能是结构体类型,只能是简单类型
B.函数可以返回指向结构体变量的指针
C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D.只要类型相同,结构体变量之间可以整体赋值
4.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
5.一个顺序栈一旦声明,其占用空间的大小()。
A.已固定B.可以变动C.不能固定D.动态变化
6.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456
7.有下列程序:程序执行后的输出结果是()。A.abbcdefghijkI23456789964
B.123456789964abbcdefghijk
C.123445667899abbcdefghijk
D.abbcdefghijk123445667899
8.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
9.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)
B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}
C.switch(a+B)
D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)
10.下列数据结构中,能够按照“先进后出”原则存取数据的是()。
A.循环队列B.栈C.队列D.二叉树
11.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A.1,3B.0,2C.0,3D.1,2
12.函数filecopy的功能是,将fin所指文件中的内容输出到fout所指文件中,但函数不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下划线处应填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1
13.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
输出结果是()。
A.28
B.27
C.42
D.41
14.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。
A.3B.13C.1D.0
15.
16.已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()
A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-
17.
18.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
19.目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
20.设串s1='ABCDEFG',s2='PQRST',函数StrCat(x,y)返回x和y串的连接串,StrSub(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,StrLen(s)返回串s长度,则StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的结果串()。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
二、2.填空题(20题)21.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
22.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。
23.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
24.在双链表中每个结点有两个指针域:一个指向【】,另一个指向【】。
25.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
26.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;}
27.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
28.设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是【】。
29.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
30.对一组记录{54,38,96,23,15,72,60,45,83}进行直接插入排序时,当插入第5个记录到有序表时,寻找插入位置需比较【】次。
31.以下程序的输出结果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
32.与十进制数101等值的二进制数为【】。
33.软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和()的集合。
34.面向对象的模型中,最基本的概念是对象和______。
35.设顺序输入数列为:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每个结点的查找概率相同,若用顺序存储方式组织该数列,则查找一个数成功的平均比较次数为【】;若按二叉排序树结构组织该数列,则查找一个数成功的平均比较次数为【】。
36.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是【】方法。
37.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。
38.若给fun函数的形参s传送字符串:"abc-6354abc",则函数的返回值是()。(字符串中包括空格)
longfun(charS[])
{longn;intsign;
for(;isspace(*s)||islower(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*S-'0');
returnsign*n;
}
39.以下程序运行后的输出结果是()。
main()
{intx,a=1,b=2,c=3,d=4;
{intx,a=1,b=2,c=3,d=4;
x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;
printf("%d\n",x);
}
40.下列程序的输出结果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
三、1.选择题(20题)41.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
42.以下不属于对象的基本特点的是()
A.分类性B.多态性C.继承性D.封装性
43.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
44.执行语句for(i=1;i++<4;);后变量i的值是______。
A.3B.4C.5D.不定
45.若有下面的说明和定义,则sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
46.关于结构化程序设计原则和方法描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
47.若要“为读/写建立―个新的文本文件”,在fopen函数中应使用的文件方式是()
A.wB.wbC.w+D.wb+
48.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
49.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。A.编码设计B.测试阶段C.运行阶段D.物理设计
50.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
51.在位运算中,操作数每右移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
52.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",*(*(p+i)+n));}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}则程序运行后的输出结果是()
A.369B.248C.456D.789
53.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
54.有以下程序:#include<stdio.h>structs{intx,y;}data[2]={10,100,20,200};main(){structs*p=data;printf("%d\n",++(p->x));程序运行后的输出结果是()。
A.10B.11C.20D.21
55.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序运行后的输出结果是()。
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
56.下列程序的输出结果是______。main(){inti,x[3][3]=(1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}
A.1,5,9B.1,4,7C.3,5,7D.3,6,9
57.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
58.在关系数据库中,用来表示实体之间联系的是
A.树结构B.网结构C.线性表D.二维表
59.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
60.C语言中下列叙述正确的是_______。
A.不能使用do...while语句构成的循环
B.do...while语句构成的循环,必须用break语句才能退出
C.do...while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do...while语句构成的循环,当while语句中的表达式值为零时结束循环
四、选择题(20题)61.有以下程序:
运行时,若输入123450<回车>,则输出结果是()。
A.6566456
B.66656
C.66666
D.6666656
62.下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
63.下面函数调用语句含有实参的个数为()。
A.1B.2C.4D.5
64.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
65.
66.
67.Internet使用的网络协议是()。
A.3CP协议B.TCP/IP协议C.UDP协议D.IP协议
68.对长度为n的线性表排序,在最坏情况下,比较次数是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
69.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)
70.有以下程序:
当执行程序时,按下列方式输入数据(从第l列开始,<;CR>;代表回车,注意:回车也是一个字符]12<;CR>;34<;CR>;则输出结果是()。
A.12B.123C.1234D.12343
71.
72.链表不具有的特点是()。
A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比
73.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
74.
75.以下语句中存在语法错误的是()。
76.
77.C源程序中不能表示的数制是()。
A.十六进制B.八进制C.十进制D.二进制
78.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
79.有以下程序:
程序运行后的输出结果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
80.
五、程序改错题(1题)81.写出下列程序的运行结果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。请编写函数fun(),其功能是使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
参考答案
1.D
2.D
3.A函数返回值类型可以是简单类型和结构体类型。
4.A解析:C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。
5.A
6.B本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。
7.B程序定义数组a和b,其中a使用小写字母和数字构成的字符串完成初始化。第1个for循环将数组a中所有的非小写字母字符(数字字符)自左向右存放到b数组中;第2个for循环将数组a中所有的非数字字符(小写字母)自左向右存放到b的后续单元中,在所有字符后添加空字符,输出b,此时b的值为:123456789964abbcdefghijk。本题答案为B选项。
8.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
9.C
10.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。
11.D输出的结果是:-1,1\r\n0,2\r\n1,2
12.Afilecopy函数每次从fin文件指针调用getc函数读取一个字符存放到ch中,再通过while循环调用putc函数将ch写入fout,直到fin指向文件尾部为止。所以while的循环条件是判断fin是否到文件尾部。这里使用feof函数判断:feof返回值为真时,表示fin指向了文件尾部,否则表示fin未到文件尾部。所以while循环条件为!feof(fin)。故本题答案为A选项。
13.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
\n
14.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。
15.C
16.D
17.D
18.C在C语言中null等价于数字0。
19.C
20.D
21.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。
22.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。
23.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。
24.前趋结点后继结点前趋结点\r\n后继结点
25.x=11x=11解析:在对无符号数的右移是高位补0。
26.w[i-1]w[i-1]解析:在用数组实现的有序序列中插入内容,必须先寻找插入位置。插入位置找到后,需将插入位置之后的元素向后移动一个位置,留出插入点。最后,将元素插入,并增加序列的元素个数。函数为了简化寻找插入位置循环的循环条件,预先在序列的最后置入插入值。插入位置之后的元素向后移动一个位置必须从最后一个元素开始往前逆序移动,是将前一个元素向后移,所以在空框处应填入w[i-1]。
27.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
28.16
29.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
30.11解析:直接插入排序是在已排好序的序列中用顺序查找法查找插入位置。第5个记录是15,15和23比较,就知道15应放在原23放的位置,23及其以后的记录后移。
31.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。
32.1100101
33.相关文档相关文档解析:软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档。程序足对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需求开发的、用程序语言描述的、适合计算机执行的指令序列。数拼是使程序能正常操作信息的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关的资料。
34.类类
35.857/15
36.结构化设计结构化设计解析:在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是结构化设计方法。
37.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。
38.-6354-6354解析:本题的考查点是函数的返回值。这个函数的目的是提取出由函数的形参传送来的字符串中的数字字符,并通过相应字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是“-6354”。
39.11解析:条件运算表达式:“表达式1?表达式2:表达式3”,但表达式1的值为非0时,此时表达式2的值就是整个条件表达式的值,反之为表示式3的值。解析易知结果为1。
40.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完于函数之后,变量a所做的改变都要保存。
41.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。
42.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。
43.C解析:在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。
44.C解析:for语句中的表达式可以部分或全部省略,但两个“;”不能省略,若3个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当i的值为5的时候,循环终止。
45.D解析:本题主要考查结构体变量和共用体变量所占存储空间大小的计算方法。结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。
46.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。
47.D
48.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
49.DD)【解析】数据库设计目前一段采用生命周期法.即将整个数据库应用系统的开分解成目标独立的若干阶段,它们是:需要分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。在数据库设计中采用上面几个阶段中的前四个阶段,并且重点以数据结构和模型设计为主线。
50.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。
51.C解析:在位运算中,操作数每右移两位,相当于在操作数的左侧添0,最右面的两位被移出,即操作数除以4。
52.A
53.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。
54.B解析:本题考查对外部存储类型的结构体变量进行初始化。初始化后,data[0]x的值为10,data[0]y的值为100。输出++(p->x)时,++(p->x)就相当于++data[0].x,这时data[0].x先自增,再使用,所以输出11。
55.C解析:程序中P和q是指针变量,它们分别存放了变量a和L的地址,执行P=&a;q=&b;语句后,*p和*q的值就分别为7和8,执行r=P;P=q;q=r;实际上是进行指针变量p和q的交换,即将其存放的a和b的地址进行了交换,也就是P指向了b,q指向了a,此时a,b的值并没有改变,所以输出的*P,*q的值为8,7,而a,b的值仍为7,8。
56.C
57.B[答案]B
[考点]数据结构与算法
[评析]依次从上到下,可得出:
第1层结点数为1;
第2层结点数为2*1=2;
第3层结点数为2*2=4;
第n层结点数为2的n-1次幂
58.D解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。本题的正确答案是D。
59.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
60.D解析:选项A是错误的,C语言支持do…while语句;选项B是错误的,do…while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。
61.Aswitch语句执行完一个case后面的语句后,流程控制转移到下一个case语句继续执行,遇到break会跳出本次循环。本题中输入l时会输出65,输入2时会输出6,输入3时会输出64,输入4时会输出5,输入5时会输出6,在输入0时不满足循环条件,程序执行结束。
62.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。
63.B函数调用的一般形式为:函数名(形参表)若函数无形参,调用形式为:函数名,当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用语句的参数个数为2个。
64.D
65.C
66.A
67.B
68.D在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n一1)/2,堆排序需要比较的次数为nlog2n。
69.C当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较l092n次,而顺序查找需要比较n次。
70.D按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符<CR>即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。
71.D
72.B链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。
73.C\n在输入时必须遵守scanf函数中的格式才能正确地赋值给相应的变量,由于scanf函数为“%d;%d”,所以在输入时要输入3;5,答案为C。
\n
74.B
75.A数组定义后,不可以对数组整体赋值,s是二维数组,因SS[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(SS[1],”right”);这样的形式,而选项A中对二维数组中的第…l维(相当于一个一维数组)赋值,是不可以的。选项8和D是定义时对数组初始化,这是可以的。选项c中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。
76.D
77.D在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。
78.C在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,结果为1。又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。类型转换的一般规则是:低级类型从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→log→float→double。
79.A本题重点考察函数的调用,首先要了解字母对应的ASCIl码。例如A为65,a为97。即字母+1劂可得到下一个字母。-其次是函数形参和实参的问题,运行过程如下:在fun(&b,a)中,}c=.a-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);输出b,B,因为指针c指向地址的值为b,此时b=}C=.b.;豳数返回执行ptud(。%C,%c、n”,b,8);输出b,A,因此A选项正确。
80.C
81.
82.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a;/*将指针移动到字符串末尾*/ while(*t) t++; t--;/*从后往前如果是*则使k自增1,找到最后一个*所在的位置,并记录*的个数*/ while(*t==‘*’)/*指针t指向前一个,同时标量k自增1*/ {k++;t--;}/*如果最后*的个数大于允许的个数*/ if(k>n)/*循环次数不大于前面的字符与最大允许*的个数之和*/ { while(*p&&p<t+n+1)<p=""></t+n+1)<>/*把字符保存到数组a中*/ {a[i]=*p; i++;p++; } a[i]=‘\0’; }}字符串中尾部*号不能多于n个,多余的要删除。首先需要通过while循环统计字符串尾部*号,然后通过if条件语句完成尾部*号数和n的比较,若尾部*号数多于n个,则需要把n个*号和其余字符重新保存。2021年河南省开封市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若变量c为char类型,能正确判断出c为小写字母的表达式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)
B.(′a′>=c)and(′z′>=c)
C.(′a′<=c)and(′z′>=c)
D.(c>=′a′)&&(c<=′z′)
2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。A.n2B.O(nlgn)C.O(n)D.O(n2)
3.以下叙述中错误的是()。
A.函数的返回值类型不能是结构体类型,只能是简单类型
B.函数可以返回指向结构体变量的指针
C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D.只要类型相同,结构体变量之间可以整体赋值
4.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
5.一个顺序栈一旦声明,其占用空间的大小()。
A.已固定B.可以变动C.不能固定D.动态变化
6.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456
7.有下列程序:程序执行后的输出结果是()。A.abbcdefghijkI23456789964
B.123456789964abbcdefghijk
C.123445667899abbcdefghijk
D.abbcdefghijk123445667899
8.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
9.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)
B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}
C.switch(a+B)
D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)
10.下列数据结构中,能够按照“先进后出”原则存取数据的是()。
A.循环队列B.栈C.队列D.二叉树
11.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A.1,3B.0,2C.0,3D.1,2
12.函数filecopy的功能是,将fin所指文件中的内容输出到fout所指文件中,但函数不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下划线处应填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1
13.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
输出结果是()。
A.28
B.27
C.42
D.41
14.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。
A.3B.13C.1D.0
15.
16.已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()
A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-
17.
18.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
19.目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
20.设串s1='ABCDEFG',s2='PQRST',函数StrCat(x,y)返回x和y串的连接串,StrSub(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,StrLen(s)返回串s长度,则StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的结果串()。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
二、2.填空题(20题)21.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
22.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。
23.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
24.在双链表中每个结点有两个指针域:一个指向【】,另一个指向【】。
25.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
26.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;}
27.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
28.设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是【】。
29.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
30.对一组记录{54,38,96,23,15,72,60,45,83}进行直接插入排序时,当插入第5个记录到有序表时,寻找插入位置需比较【】次。
31.以下程序的输出结果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
32.与十进制数101等值的二进制数为【】。
33.软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和()的集合。
34.面向对象的模型中,最基本的概念是对象和______。
35.设顺序输入数列为:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每个结点的查找概率相同,若用顺序存储方式组织该数列,则查找一个数成功的平均比较次数为【】;若按二叉排序树结构组织该数列,则查找一个数成功的平均比较次数为【】。
36.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是【】方法。
37.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。
38.若给fun函数的形参s传送字符串:"abc-6354abc",则函数的返回值是()。(字符串中包括空格)
longfun(charS[])
{longn;intsign;
for(;isspace(*s)||islower(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*S-'0');
returnsign*n;
}
39.以下程序运行后的输出结果是()。
main()
{intx,a=1,b=2,c=3,d=4;
{intx,a=1,b=2,c=3,d=4;
x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;
printf("%d\n",x);
}
40.下列程序的输出结果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
三、1.选择题(20题)41.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
42.以下不属于对象的基本特点的是()
A.分类性B.多态性C.继承性D.封装性
43.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
44.执行语句for(i=1;i++<4;);后变量i的值是______。
A.3B.4C.5D.不定
45.若有下面的说明和定义,则sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
46.关于结构化程序设计原则和方法描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
47.若要“为读/写建立―个新的文本文件”,在fopen函数中应使用的文件方式是()
A.wB.wbC.w+D.wb+
48.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
49.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。A.编码设计B.测试阶段C.运行阶段D.物理设计
50.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
51.在位运算中,操作数每右移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
52.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",*(*(p+i)+n));}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}则程序运行后的输出结果是()
A.369B.248C.456D.789
53.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
54.有以下程序:#include<stdio.h>structs{intx,y;}data[2]={10,100,20,200};main(){structs*p=data;printf("%d\n",++(p->x));程序运行后的输出结果是()。
A.10B.11C.20D.21
55.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序运行后的输出结果是()。
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
56.下列程序的输出结果是______。main(){inti,x[3][3]=(1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}
A.1,5,9B.1,4,7C.3,5,7D.3,6,9
57.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
58.在关系数据库中,用来表示实体之间联系的是
A.树结构B.网结构C.线性表D.二维表
59.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
60.C语言中下列叙述正确的是_______。
A.不能使用do...while语句构成的循环
B.do...while语句构成的循环,必须用break语句才能退出
C.do...while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do...while语句构成的循环,当while语句中的表达式值为零时结束循环
四、选择题(20题)61.有以下程序:
运行时,若输入123450<回车>,则输出结果是()。
A.6566456
B.66656
C.66666
D.6666656
62.下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
63.下面函数调用语句含有实参的个数为()。
A.1B.2C.4D.5
64.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
65.
66.
67.Internet使用的网络协议是()。
A.3CP协议B.TCP/IP协议C.UDP协议D.IP协议
68.对长度为n的线性表排序,在最坏情况下,比较次数是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
69.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)
70.有以下程序:
当执行程序时,按下列方式输入数据(从第l列开始,<;CR>;代表回车,注意:回车也是一个字符]12<;CR>;34<;CR>;则输出结果是()。
A.12B.123C.1234D.12343
71.
72.链表不具有的特点是()。
A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比
73.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.35B.3,5C.3;5D.35
74.
75.以下语句中存在语法错误的是()。
76.
77.C源程序中不能表示的数制是()。
A.十六进制B.八进制C.十进制D.二进制
78.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
79.有以下程序:
程序运行后的输出结果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
80.
五、程序改错题(1题)81.写出下列程序的运行结果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。请编写函数fun(),其功能是使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
参考答案
1.D
2.D
3.A函数返回值类型可以是简单类型和结构体类型。
4.A解析:C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。
5.A
6.B本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。
7.B程序定义数组a和b,其中a使用小写字母和数字构成的字符串完成初始化。第1个for循环将数组a中所有的非小写字母字符(数字字符)自左向右存放到b数组中;第2个for循环将数组a中所有的非数字字符(小写字母)自左向右存放到b的后续单元中,在所有字符后添加空字符,输出b,此时b的值为:123456789964abbcdefghijk。本题答案为B选项。
8.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
9.C
10.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。
11.D输出的结果是:-1,1\r\n0,2\r\n1,2
12.Afilecopy函数每次从fin文件指针调用getc函数读取一个字符存放到ch中,再通过while循环调用putc函数将ch写入fout,直到fin指向文件尾部为止。所以while的循环条件是判断fin是否到文件尾部。这里使用feof函数判断:feof返回值为真时,表示fin指向了文件尾部,否则表示fin未到文件尾部。所以while循环条件为!feof(fin)。故本题答案为A选项。
13.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
\n
14.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。
15.C
16.D
17.D
18.C在C语言中null等价于数字0。
19.C
20.D
21.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。
22.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。
23.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。
24.前趋结点后继结点前趋结点\r\n后继结点
25.x=11x=11解析:在对无符号数的右移是高位补0。
26.w[i-1]w[i-1]解析:在用数组实现的有序序列中插入内容,必须先寻找插入位置。插入位置找到后,需将插入位置之后的元素向后移动一个位置,留出插入点。最后,将元素插入,并增加序列的元素个数。函数为了简化寻找插入位置循环的循环条件,预先在序列的最后置入插入值。插入位置之后的元素向后移动一个位置必须从最后一个元素开始往前逆序移动,是将前一个元素向后移,所以在空框处应填入w[i-1]。
27.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
28.16
29.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
30.11解析:直接插入排序是在已排好序的序列中用顺序查找法查找插入位置。第5个记录是15,15和23比较,就知道15应放在原23放的位置,23及其以后的记录后移。
31.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。
32.1100101
33.相关文档相关文档解析:软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档。程序足对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需求开发的、用程序语言描述的、适合计算机执行的指令序列。数拼是使程序能正常操作信息的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关的资料。
34.类类
35.857/15
36.结构化设计结构化设计解析:在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是结构化设计方法。
37.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。
38.-6354-6354解析:本题的考查点是函数的返回值。这个函数的目的是提取出由函数的形参传送来的字符串中的数字字符,并通过相应字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是“-6354”。
39.11解析:条件运算表达式:“表达式1?表达式2:表达式3”,但表达式1的值为非0时,此时表达式2的值就是整个条件表达式的值,反之为表示式3的值。解析易知结果为1。
40.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完于函数之后,变量a所做的改变都要保存。
41.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。
42.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。
43.C解析:在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。
44.C解析:for语句中的表达式可以部分或全部省略,但两个“;”不能省略,若3个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当i的值为5的时候,循环终止。
45.D解析:本题主要考查结构体变量和共用体变量所占存储空间大小的计算方法。结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。
46.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。
47.D
48.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
49.DD)【解析】数据库设计目前一段采用生命周期法.即将整个数据库应用系统的开分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州城市职业学院《信息系统审计》2023-2024学年第一学期期末试卷
- 贵州财经大学《工业机器人本体设计》2023-2024学年第一学期期末试卷
- 2025年上海市安全员C证考试题库
- 2025云南省建筑安全员-B证(项目经理)考试题库
- 2025年上海市安全员知识题库及答案
- 广州珠江职业技术学院《汽车电子控制技术》2023-2024学年第一学期期末试卷
- 2025年河北建筑安全员《C证》考试题库
- 2025广东省安全员C证考试(专职安全员)题库附答案
- 广州应用科技学院《中国文化史》2023-2024学年第一学期期末试卷
- 广州新华学院《光电成像原理与技术》2023-2024学年第一学期期末试卷
- 2025版工业制造工程垫资建设合同2篇
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之4:4组织环境-4.2理解相关方的需求和期望(雷泽佳编制-2025B0)
- 2024年一级支行行长竞聘演讲稿例文(4篇)
- 健身房销售人员培训
- 菌种保存管理
- 广东省广州市2022-2023学年高二上学期期末考试化学试题
- 期末测试卷(试题)-2024-2025学年四年级上册数学沪教版
- 中考必备高频词汇2600词(单词版)
- GB∕T 27552-2021 金属材料焊缝破坏性试验 焊接接头显微硬度试验
- 外贸中常见付款方式的英文表达及简要说明
- 抗压偏压混凝土柱承载力计算表格
评论
0/150
提交评论