




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河南省许昌市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel: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
2.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
3.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.69825B.63825C.6385D.693825
4.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L
5.十六进制数BB转换成十进制数是()
A.192B.256C.187D.121
6.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少()。
A.1和5B.2和4C.4和2D.5和1
7.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
8.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
9.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序运行后的输出结果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0
10.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符
11.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。
A.定义语句中的“*”是一个间址运算符
B.定义语句中的“*”是一个说明符
C.定义语句中的“p”只能存放double类型变量的地址
D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p
12.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。
A.存储媒体B.表现媒体C.传输媒体D.感觉媒体
13.若有以下定义和语句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);则输出结果()
A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定
14.当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
15.有以下程序:#includeMain(){charc1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是()。A.E,68.B.D.69C.E,DD.输出无定值
16.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
17.
18.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
19.以下不正确的叙述是()。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D.当从键盘输入数据时,对整型变量只能输入整型数值,对实型变量只能输入实型数值
20.以下选项中合法的实型常数是()。
A.5E2.0B.E-3C.2E0D.1.3E
二、2.填空题(20题)21.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。
22.下列程序的输出结果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
23.对存储器按字节进行编址,若某存储器芯片共有8根地址线,则该存储器芯片的存储容量为【】字节。
24.软件开发环境是全面支持软件开发全过程的【】集合。
25.一棵二叉树中共有80个叶子结点与10个度为1的结点,则该二叉树中的总结点数为【】。
26.设有宏定义:
#defineWIDTH80
#defineLENGTHWIDTH+40
则执行赋值语句“v=LENGTH*20;"(v为int型变量)后,v的值是【】。
27.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【】。
28.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
29.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
30.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
31.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
32.以下程序段的输出结果是【】。
inti=9;
prinff("%o\n",i);
33.下列程序的运行结果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4);
inti:
for(i:0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf("\n");
}
34.以下函数用来在w数组中插入x,w数组中的数已按由小到大的顺序存放,n为数组中存放的数的个数。插入后数组中的个数仍然有序。请填空,使之完整。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
35.下列程序的运行结果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==O‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
36.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
37.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后的输出结果是【】。
38.下列程序的运行结果是【】。
main()
{inti;
for(i=1;i<=5;i++)
f(i);}
f(j)
{intj;
staticinta=1000;
autointk=1;
++k;
printf("%d+%d+%d=%d\n",a,k,j,a+k+j);
a+=10;}
39.与结构化需求分析方法相对应的是【】方法。
40.如下图所示的二叉树后序遍历序列是【】。
三、1.选择题(20题)41.若有如下程序段:main(){intn=0;while(printf("*")){n++;if(n<3)break;}}则下列描述正确的是()
A.其中循环控制表达式与0等价B.其中循环控制表达式与'0'等价C.其中循环控制表达式是不合法的D.以上说法都不对
42.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是______。
A.由实参传给形参,再由形参传回给实参B.地址传递C.单向值传递D.由用户指定传递方式
43.有以下程序
#include<stdio.h>
intfun(chars[])
{intn=0;
while(*s<=′9′&&*s>=′0′){n=10*n+*s-′0′;s++;}
return(n);
}
main()
{chars[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};
printf("%d\n",fun(s));
}
程序的运行结果是
A.9B.61490C.61D.5
44.结构化程序设计主要强调的是______。
A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性
45.以下程序的输出结果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.输出值不定
46.以下符合C语言语法的实型常量是()。
A.1.2E0.5B.3.14159EC.5E-3D.E15
47.下列程序段的输出结果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);
A.5,5,10B.1,5,5C.5,5,1D.输出结果不确定
48.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}执行后的输出结果是()。
A.20412044B.20412043C.20422044D.20422043
49.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.线性结构和非线性结构C.集合结构和非集合结构D.树形结构和图状结构,
50.以下语句定义正确的是()。
A.inta[1][4]={1,2,3,4,5};
B.floata[3][1]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};
D.doublea[][3]={0};
51.下列不属于软件工程的3个要素的是()。
A.32具B.过程C.方法D.环境
52.以下对枚举类型名的定义中正确的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
53.若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
54.在int(*prt)[3];定义中,标识符prt()。
A.定义不合法
B.是一个指针数组名,每个元素都是一个指向整型变量的指针
C.是一个指针,它指向一个具有三个元素的一维数组
D.是一个指向整型变量的指针
55.当运行以下程序时,从键盘输入AhaMA(空格)Aha<CR>,则下面程序的运行结果是
#include<stdio.h>
main()
{chars[80],c=′a′;
inti=0;
scanf("%s",s);
while(s[i]!=′
{if(s[i]==c)s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
i++;}
puts(s);}
A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA
56.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
57.在下列#include命令中,正确的一条是()
A.#include[string.h]
B.#include{math.h}
C.#include(stdio.h)
D.#include<stdio.h>
58.下列关系运算的叙述中,正确的是()。A.A.投影、选择、连接是从二维表行的方向进行的运算
B.并、交、差是从二维表的列的方向来进行运算
C.投影、选择、连接是从二维表列的方向进行的运算
D.以上3种说法都不对
59.在下列关于二叉树的叙述中,正确的一项是
A.在二叉树中,任何一个结点的度都是2
B.二叉树的度为2
C.在二叉树中至少有一个结点的度是2
D.一棵二叉树的度可以小于2
60.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是
A.987B.876C.8765D.9876
四、选择题(20题)61.
62.
63.设有以下语句
64.成功的测试是指A.A.运行测试实例后未发现错误
B.发现程序的错误
C.证明程序正确
D.软件产生
65.
66.若变量X、y已正确定义并赋值,以下符合c语言语法的表达式是()。
A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO
67.有以下定义和语句:
structworkers
{intnum;charname[20];charC;
struct
{intday;intmonth;intyear;)S;
};
structworkersw,*pw;
pw=&w;
能给w中year成员赋1980的语句是()。
A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
68.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
A.文件B.数据库C.字段D.记录
69.数据库管理系统中负责数据模式定义和数据的物理存取构建的语言是()。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
70.有以下程序:
若运行时输入:123<回车>,则输出结果是()。
A.编译错误2000B.102000C.122030D.10
71.
下列程序的运行结果是()。
#include<stdio.h>
voidfun(int*S,int*p)
{staticintt=3:
*p=s[t];
t--;
}
voidmain
{inta[]={2,3,4,5),k;
intx;
for(k=0,k<4,k++)
{fun(a,&x);
printf("%d,",x);
}
}
A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
72.
73.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);)该函数的类型是()。A.int类型B.float类型C.void类型D.函数无类型说明,定义有错
74.
75.若有定义:“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
76.(45)信息隐蔽的概念与下述哪一种概念直接相关()
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模拟耦合度
77.要求通过while循环不断读人字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
()。
78.
79.
有以下程序:
main
{union
{charch[2];
intd;
}s;
d=0x4321;
printf("%x,%x\n",S.ch[0],S.ch[l]);
}
在16位编译系统上,程序执行后的输出结果是()
A.21,43B.43,21C.43,00D.21,00
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:根据输入的:个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回l;若不能,则返回0。
例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidmain
{
inta,b,c,shape;
printf("\nInputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nTheshape:%d\n",shape);
}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为333333334444444455555555则一维数组中的内容应该为333333334444444455555555。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A当X为1时,执行case1,a自加等于1,因为case1后没有break,接着执行case2,此时a的值为2,b自加为1,故选择A选项。
2.A解析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。
3.C
4.D在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。
5.C
6.B
7.C解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”(或“先进后出”)的线性表;而队列只允许在表的一端进行插入操作,在另一端:进行删除操作,是一种“先进先出”(或“后进后出”)的线性表。因此栈和队列的共同点是只允许在端点处插入和删除元素。
8.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
9.A本题考查简单的赋值运算,在程序中c=(a-=am5),先算括号中的a-=a-5=5,所以c=5,再计算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案选择A。
10.A
11.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。
12.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。
13.B
14.C选项A是先将a的值赋给变量b,再将变量b的值赋给变量c,不合题意;B选项中由于c的值不为0,在将c的值赋给变量a后,表达式a=c的值为1,不再对表达式b=c计算;对于c选项,表达式a=c的值为1,再求表达式b=c的值为1,然后进行逻辑与运算;D选项将b的值赋给c后再赋给e,故选择C选项。
15.A本题目中字符变量c1是字符'A'的ASCII码加上4,即69所对应的字符E'。字符变量c2是字符'A'的ASCII码加上3,即68所对应的字符D'。但是打印输出时,c1以%c的格式输出,所以是E,c2以%d的格式输出,所以是68。
16.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树->,后序遍历右子树->,访问根结点。按照定义,后序遍历序列是DEBFCA,故答案为D。
17.D
18.C本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从0开始的,所以当str取1的时候,应为“One*Dream!”。
19.D
20.C解析:在C语言中,实数有两种表示形式:十进制数形式与指数形式。
一般形式的实数:小数形式的实数由整数部分、小数点和小数部分组成(必须要有小数点),
指数形式的小数;指数形式的实数由尾数部分、e(E)和指数部分组成(字母e或E的前后必须要有数字,且其后面的指数必须为整数)。
选项A中,5E2.0中E后面的2.0不是整数;选项B中,E前面没有数字:选项D中,E后面没有数字。最终可以判断选项C正确。
21.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
22.3123,1,2解析:分析程序,第一个if语句,a=1,b=2,控制条件a<b成立,则交换a、b的值,此时a=2,b=1。第二个if语句,a=2,c=3,控制条件a<c成立,则交换a、c的值,此时a=3,c=2。
23.256256解析:本题考查对存储器按字节进行编址的规则及其寻址范围(2n),其中n为存储器芯片中地址线的条数。
24.软件工具软件工具
25.179179解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中的二叉树有80个叶子结点,因此,该二叉树有80-1=79个度为2的结点;又知本题中的二叉树有10个度为1的结点。因此,本题中的二叉树总结点数为:叶子结点数+度为1的结点数+度为2的结点数=80+10+79=179
26.880
27.4545解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过遍的从前往后扫描和遍的从后往前扫描,需要比较次数为。
28.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。
29.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。
30.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
31.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。
32.1111解析:格式字符。是以八进制无符号形式输出整数(不输出前导符0),因为整数9的八进制为11,所以输出结果为11。
33.24682,4,6,8解析:子函数fun()的功能是将数组a中的元素都自加一遍,然后仍然将结果存在原数组中,其实就是将数组a的每个元素都变为原来的2倍,然后输出。在主程序中首先通过intfun()定义了子函数fun(),然后再调用fun()。
34.++pw[i-1]
35.本题考查函数的循环调用。p=x*func(x-1),当x=4时,不满足if语句的条件,p=4*func(3),x=3也不满足条件,则func(3)=3*func(2),func(2)=2*func(1),x=1满足条件return(1),则输出结果为4*3*2*1=24。\r\n\r\n
36.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
37.5858解析:for循环语句中continue语句的作用是当数组元素值小于0时,结束本次j循环,break语句的作用是当数组元素值等于0时,结束j循环,所以for循环语句的功能是计算数组元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。
38.100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103\r\n110+2+2=114\r\n120+2+3=125\r\n130+2+4=136\r\n140+2+5=147解析:静态局部变量的生存期为整个程序的运行期间,而作用域为定义该变量的函数或局部范围。自动变量的建立和撤销都是由系统自动进行的,所以称为自动变量。自动变量的作用域和生存期都为定义它的局部范围内。对同一函数的两次调用之间,自动变量的值是不保留的。而静态变量则保留。注意:局部变量和全局变量的定义及其作用范围。
39.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。
40.GDBHIEFCAGDBHIEFCA解析:后序遍历二叉树的顺序为:后序遍历左子树→后序遍历右子树→访问根结点。按照定义,后序遍历序列是GDBHIEFCA。
41.B
42.C解析:简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。
43.C解析:在fun函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值,输出n的值为61。
44.B解析:采用结构化编程方法的好处主要在于:一是便于控制、降低程序的复杂性,因此便于编写程序。二是程序清晰易读,可理解性好。因此,结构化程序设计主要强调的是程序的易读性,而不是程序的规模、程序的执行效率和程序的可移植性。
45.A解析:对未给出初始值的整数数组元素,被默认初始化为零。
46.C解析:实数在C语言中又称浮点数,它有两种表示形式:
①十进制数形式。它由数字和小数点组成(注意必须有小数点)。0.123,.123,123.0,123.,0.0都是十进制数形式。
②指数形式。如123e3或123E3都代表123*103。要注意字母e(或E)之前必须有数字,且e后面的指数必须为整数,如e3,2.1e3.5,.e3,e等都不是合法的指数形式。
47.C解析:ptr指向指针变量p,p指向数组a的首地址,(ptr[0]++)[1]+=3;的意思是将p指向数组元素a[1],并将它的值增3变为5,此时,ptr指向p,p指向a[1]。
48.A解析:f2函数传递的是变量的地址,可以实现数据的交换,而f1函数传递的是值,调用完f1函数后,c的值改变了,但main函数中的a值并未改变。
49.B解析:逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而集合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构类型。
50.D
51.D解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管理和文档生成:过程支持软件开发的各个环节的控制、管理。
52.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。
53.A解析:本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“China”这5个字符放到数组strl中,除了逐个地输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给strl):strl=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(strl),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
54.C解析:此题的关键是要分清指针数组与指向一维数组指针之间的不同,题中的说明语句定义了一个指针变量prt,它指向包含三个整数元素的一维数组。要注意:*prt两侧的圆括号不能缺少,如果写成*ptr[3],则ptr与[3]先结合,是数组,然后再与前面的。号结合,则*ptr[3]将是一个指针数组。
55.A解析:本题主要考查的知识点是大写字母比它对应的小写字母ASCII码值小32,并且字符可以看作整数进行算术运算等操作。
56.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。
57.D
58.C解析:在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行运算的。后者是从二维表的列的方向来进行运算的。
59.D解析:本题考查了二叉树的基本概念。在二叉树中,叶子节点的度是1;当该二叉树为空树时,根节点的度为零;为非空树时,根节点的度为2。
60.B解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环时,输出为6,由此可以排除选项C)。
61.D
62.C
63.ACIN使retypedef定义的类型名,可以用来定义结构体变量,所以选择A)。
64.B软件测试的目的主要有以下几个方面。
(1)软件测试是为了发现错误而执行程序的过程。
(2)一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络编辑师基础知识考核试题及答案
- 2025年特许金融分析师考试重点关注事项试题及答案
- 畜牧师职称考试学习效果的评估与试题及答案
- 2025年国际金融理财师考试中的时事问题分析与讨论试题及答案
- 2024年网络编辑师证书考试成就梦想试题及答案
- 网络编辑师证书考试相关知识与试题及答案
- 掌控2025年国际金融理财师考试学习策略试题及答案
- 小语种证书考试听说能力的互动练习试题及答案
- 踏实备考的小语种证书考试试题及答案
- 2025年银行从业资格证备战计划试题及答案
- 贯彻落实清理规范非融资性担保方案指导意见
- 期中模拟卷(新疆专用)-2024-2025学年八年级英语下学期核心素养素质调研模拟练习试题(考试版)A4
- 2025广东省深圳市中考数学复习分类汇编《函数综合题》含答案解析
- 金融工程重点总结
- 渔业资源与渔场学课件蓝点马鲛学习资料
- 2025年度毛绒玩具采购合同
- 《内河运输船舶重大事故隐患判定标准》知识培训
- 2024年重庆A卷中考满分作文《美不止一个答案》
- 做好基层纪检监察工作措施
- 2025年安徽铜陵市医保局招聘编外聘用人员2人历年自考难、易点模拟试卷(共500题附带答案详解)
- 2025年吉林工程职业学院单招职业技能考试题库附答案
评论
0/150
提交评论