1、二级 C语言分类模拟题 534及答案解析(总分:53.00,做题时间:90 分钟)一、选择题(总题数:35,分数:53.00)1.下列叙述中正确的是 _ 。(分数:1.00)A.C程序由函数组成B.C程序由主函数构成C.C程序由函数和过程构成D.在 C程序中无论是整数还是实数,都可以正确无误的表示出来2.有以下程序: #includestdio.h main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“); for(i=0;i6;i+) fprintf(fp,“%d/n“,a5-i); rewind(fp); for(
2、i=0;i6;i+) fscanf(fp,“%d“, printf(“%d,“,k); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,3.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:2.00)A.B.C.D.4.若 a=3,b=4,c=5,d=6,则条件表达式 ab?a:cd?c:d 的值是_。(分数:2.00)A.4B.3C.2D.15.表示关系式 x
3、yz 的 C语言表达式的是_。(分数:2.50)A.(x=y) c=getchar(); while(c!=“?“) putchar(c); break; (分数:2.50)A.RvfsuBhC.?D.hello7.若有以下程序: #include stdio.h main( ) int i, s=0, t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+ =2) a+ =* (t+i); printf(“%d/n“,s); 则程序执行后的输出结果是_。(分数:2.50)A.20B.25C.45D.368.以下选项中能表示合法常量的是_。(分数:1.00)A.“/007“B.1
4、.5E2.0C.“/“D.1,2009.下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,请选择填空。 #includestdioh main() int i=0,j,k; doi+;k=316-13*iwhile(_); j=k/11; printf(“316=13*%d+11,%d”,i,j); (分数:1.00)A.k/11B.k%11C.k/11=0D.k%11=010.若有如下定义: int x=6,y=3,z=2; 则表达式“x=y|yz 则以下语句中正确的是_。(分数:1.00)A.p0=B.p0=a;C.p=a;D.p1=12.算法一般都可以用
5、_控制结构组合而成。(分数:1.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环13.有以下程序: #includestdio.h void main() char ch7=“43ab21“; int i,s=0; for(i=0;chi=“0“i+=2) s=10*s+chi-“0“; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.48B.12ba34C.4321D.414.设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.0
6、0)A.gets(s);B.while(si+=getehar()!=“/n“); si=“/0“;C.scanf(“%s“, s);D.do(scanf(“%c“, while(si+!=“/n“); si=“/0“;15.若有以下程序段 char str412=“aa“, “bbb“, “ccccc“, “d“), *strp4; int i; for(i=0; i4; i+)strpi=stri; 不能正确引用字符串的选项是_。(分数:2.00)A.*strpB.str0C.strp3D.strp16.有定义:int a=64,b=8;,则表达式(a int i, j; long num
7、=0; for(i=0; i2; i+) j=0; while(pij!=“/0“) if(pij-“/0“)%2)num=10*num+p jj-“0“; j+=2; printf(“%d/n“, num); 程序执行后的输出结果是_。(分数:2.50)A.35B.37C.39D.397518.以下选项中不能作为 C语言合法常量的是_。(分数:1.00)A.“cd“B.0.1e+6C.“/a“D.“/011“19.有以下程序: #includestdio.h int fun(int(*s)4,int n,int k) int m,i; m=s0k; for(i=1;in;i+) if(sik
8、m) m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序运行后的输出结果是_。(分数:1.00)A.4B.34C.31D.3220.有以下程序: #include stdio.h main( ) int a=2, C=5; printf(“a=%d,b=%d/n“,a,c); 程序的输出结果是_。(分数:1.00)A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%dD.a=%d,b=%d21.以下叙述中正确的是_。(分数
9、:2.00)A.break语句只能用在循环体内和 switch语句体内B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break语句和 continue语句的作用相同D.break语句只能用于 switch语句体中22.在关系数据库中,用来表示实体间联系的是_。(分数:1.00)A.网状结构B.树状结构C.属性D.二维表23.有以下程序: #includestdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+
10、) for(k=j+1;k4;k+) if(ajiaki) t=aji; aji=aki; aki=t; /*按列排序*/ for(i=0;i4;i+) printf(“%d,“,aii); 程序运行后的输出结果是_。(分数:1.00)A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,24.有以下程序: #include stdio.h main() int x=1, y=0, a=0, b=0; switch (x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; b
11、reak; case 3: a+; b+; printf(“a=% d, b=% d/n“, a, b); 程序的运行结果是_。(分数:2.00)A.a=2, b=2B.a=2, b=1C.a=1, b=1D.a=1, b=025.有以下程序 #includestdio.h main() char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:1.00)A.40B.16C.8D.426.有以下程序 #includestdio.h main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d,%
12、d,%d,%d/n“,a,b,c,d); 程序输出_。(分数:2.50)A.编译有错B.0,0,0,3C.1,1,2,0D.0,1,2,027.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据28.有以下程序: #include stdio.h main( ) char c1=“A“,c2=“Y“; printf(“%d, %d/n“,c1,c2); 程序的输出结果是_。(分数:1.00)A.输出格式不合法,输出出错信息B.65,89C.65,90D.A,Y29.有以下程序: #includestdio
13、.h main() int a=1,b =0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.1,0C.3,2D.0,030.有以下程序 #includestdlib.h struct NODE int num;struct NODE*next; main() struct NODE*p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE); q=(struct NODE*)malloc(sizeof(struct NODE); r=(struct N
14、ODE*)malloc(sizeof(struct NODE); p-num=10;q-num=20;r-num=30; p-next=q;q-next=r; printf(“%d/n“,p-num+q-next-num); 程序运行后的输出结果是(分数:1.00)A.10B.20C.30D.4031.软件详细设计产生的图如图所示。该图是_。 (分数:1.00)A.NS图B.PAD图C.程序流程图D.ER图32.以下选项中不能作为 C语言合法常量的是_。(分数:2.50)A.“cd“B.0.1e+6C.“/a“D.“/011“33.下列叙述中正确的是_。(分数:2.00)A.栈是一种先进先出的
15、线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对34.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定35.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据二级 C语言分类模拟题 534答案解析(总分:53.00,做题时间:90 分钟)一、
16、选择题(总题数:35,分数:53.00)1.下列叙述中正确的是 _ 。(分数:1.00)A.C程序由函数组成 B.C程序由主函数构成C.C程序由函数和过程构成D.在 C程序中无论是整数还是实数,都可以正确无误的表示出来解析:解析 本题涉及 C语言最基本的两个知识点:C 程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。2.有以下程序: #includestdio.h main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“
17、); for(i=0;i6;i+) fprintf(fp,“%d/n“,a5-i); rewind(fp); for(i=0;i6;i+) fscanf(fp,“%d“, printf(“%d,“,k); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,3,2,1, B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,解析:解析 fopen(“data.dat“,“w+“);w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失,若文件不存在则建立该文件。rewind(fp);使文件 fp的位置指针指向文件开始。fp
18、rintf(fp,“%d/n“,a5-i);将 ai输出到 fp指向的文件中。fscanf(fp,“%d“,将 fp读入到变量k中,第一个 for循环将数组中元素倒着输入到 fp指向的文件中。rewind();则指向文件开始,因此打印的是数组 a的倒叙。故打印结果为 6,5,4,3,2,1。答案为 A选项。3.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:2.00)A.B.C. D.解析:解析 当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为 n的有序线性表,在最坏情况
19、下,二分法查找只需要比较 log 2 n次,而顺序查找需要比较 n次,因此本题答案为 C。4.若 a=3,b=4,c=5,d=6,则条件表达式 ab?a:cd?c:d 的值是_。(分数:2.00)A.4B.3 C.2D.1解析:5.表示关系式 xyz 的 C语言表达式的是_。(分数:2.50)A.(x=y) c=getchar(); while(c!=“?“) putchar(c); break; (分数:2.50)A.RvfsuBh C.?D.hello解析:解析 本题考查 getchar()函数与 putchar()函数,通过 getchar()函数读入字符,并通过putchar()函数将
20、字符逐个输出,当用户输入“?”时停止输出,且 c是一个字符变量只占一个字节。7.若有以下程序: #include stdio.h main( ) int i, s=0, t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+ =2) a+ =* (t+i); printf(“%d/n“,s); 则程序执行后的输出结果是_。(分数:2.50)A.20B.25 C.45D.36解析:解析 统计 19 中的奇数和,此题考查指向数组的指针。C 语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第 i+1个元素。程序运行的结果是 1+3+5+7+9=25。8
21、.以下选项中能表示合法常量的是_。(分数:1.00)A.“/007“ B.1.5E2.0C.“/“D.1,200解析:解析 E 前 E后有数字,E 后数字为整数,B 错误; “/”为转义字符,后面跟特定字符,用来表示 ASCII字符,C 错误;一个整数之间不能有逗号,D 错误。9.下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,请选择填空。 #includestdioh main() int i=0,j,k; doi+;k=316-13*iwhile(_); j=k/11; printf(“316=13*%d+11,%d”,i,j); (分数:1.00)A.
22、k/11B.k%11 C.k/11=0D.k%11=0解析:解析 本题的关键是两个加数分别能被 13和 11整除。当 k%11的值为 0时,则退出循环,将执行j=k/11;语句,输出结果,所以该表达式合理的条件是 k%11。10.若有如下定义: int x=6,y=3,z=2; 则表达式“x=y|yz 则以下语句中正确的是_。(分数:1.00)A.p0= B.p0=a;C.p=a;D.p1=解析:解析 本题考查的知识点是:二维数组和指针数组。无论一个数组有多少维或者是否含指针类型,该数组最终都可以被看做一个比较特殊的一维数组。例如本题中的 int a23可以看作元素为 int3(即包含 3个
23、int型元素的一维数组),包含 2个这样元素的一维数组;而 int*p3则可以看作元素为int*,包含 3个这样元素的一维数组。选项 C中,p 为数组名,其值是不能被改变的,故非法;选项 B中,p0的类型是 int*,而 a是二维数组名(类型为 int3),两者无法赋值,故非法;选项 A中,p0为int型指针, int i,s=0; for(i=0;chi=“0“i+=2) s=10*s+chi-“0“; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.48B.12ba34C.4321D.4 解析:解析 main()函数定义一个字符数组 ch,并使用字符串初
24、始化,for 循环从 ch下标为 0的字符开始,遍历所有下标为偶数的字符,由循环条件 chi=“0“ int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.gets(s);B.while(si+=getehar()!=“/n“); si=“/0“;C.scanf(“%s“, s); D.do(scanf(“%c“, while(si+!=“/n“); si=“/0“;解析:解析 字符串的输入不能使用“scanf(“%s“, s);”,而应该使用“gets(s)”,因此选择 C。15.若有以下程序段 char str412=“aa
25、“, “bbb“, “ccccc“, “d“), *strp4; int i; for(i=0; i4; i+)strpi=stri; 不能正确引用字符串的选项是_。(分数:2.00)A.*strpB.str0C.strp3D.strp 解析:解析 strp 是字符串指针数组,不能作为字符串的引用。16.有定义:int a=64,b=8;,则表达式(a int i, j; long num=0; for(i=0; i2; i+) j=0; while(pij!=“/0“) if(pij-“/0“)%2)num=10*num+p jj-“0“; j+=2; printf(“%d/n“, num)
26、; 程序执行后的输出结果是_。(分数:2.50)A.35B.37C.39D.3975 解析:解析 执行第一次 for循环时,用表达式 pij!=“/0“来判断字符串数组指针 p是否到达字符串的结尾,如果没有到达,继续执行 while中的语句。if 语句表示(pij-“/0“)除 2的余数不为 0时,即字符串所有奇数执行后面的语句。所以退出第 1次 for的循环体时,输出为 397,执行第 2次循环体。对字符串“2584”进行处理,输出结果为 5,因而最后输出结果为 3975。18.以下选项中不能作为 C语言合法常量的是_。(分数:1.00)A.“cd“ B.0.1e+6C.“/a“D.“/01
27、1“解析:解析 本题考查的是 C语言的常量。0.1e+6 是实型常量的指数形式,代表 0.110的 6次方,所以选项 B是合法的;“a”是合法的字符串常量,a 是一个非打印的转义字符表示响铃,所以选项 C是合法的;011 是一个字符常量,011 是一个用 3位八进制表示的转义字符,所以选项 D也是合法的。在 C语言中,字符常量是用单引号括起来的一个字符,选项 A中的 cd包含了 2个字符,所以是不正确的。19.有以下程序: #includestdio.h int fun(int(*s)4,int n,int k) int m,i; m=s0k; for(i=1;in;i+) if(sikm)
28、m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序运行后的输出结果是_。(分数:1.00)A.4B.34C.31 D.32解析:解析 本题重点考查二维数组名作为实参进行参数传递在主函数中调用了 fun函数,实参为二维数组名 a和两个整数 4、0,这样对应定义 fun函数首部有三种形式,这里采用了第一种形式行指针,这样在 fun函数对 sij进行操作实际上就是对主函数中的 aij进行操作,再分析 fun函数的作用便可知,是求二维数组
29、第 O列中最大的那个元素,因此 C选项正确。20.有以下程序: #include stdio.h main( ) int a=2, C=5; printf(“a=%d,b=%d/n“,a,c); 程序的输出结果是_。(分数:1.00)A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%d D.a=%d,b=%d解析:解析 C 语言中用“%”打印输出字符“%”,所以“%d”,输出为“%d”两个普通字符,而不是格式控制符“%d”的含义,所以打印结果为 C。21.以下叙述中正确的是_。(分数:2.00)A.break语句只能用在循环体内和 switch语句体内 B.continue语句的作用
30、是:使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break语句和 continue语句的作用相同D.break语句只能用于 switch语句体中解析:解析 本题主要考查的知识点是:break 和 continue语句。break 语句可以用于 switch或循环体内,作用是跳出 switch或循环体。continue 语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项 A是正确的。22.在关系数据库中,用来表示实体间联系的是_。(分数:1.00)A.网状结构B.树状结构C.属性D.二维表 解析:解析 单一的数据结构关系,现实世界的实体以及实体间的各种联系均用关
31、系来表示。数据的逻辑结构二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。23.有以下程序: #includestdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+) for(k=j+1;k4;k+) if(ajiaki) t=aji; aji=aki; aki=t; /*按列排序*/ for(i=0;i4;i+) printf(“%d,“,aii)
32、; 程序运行后的输出结果是_。(分数:1.00)A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7, 解析:解析 首先对二维数组进行赋值操作,a00、a01、a32、a33的值为1、4、6、1。通过 for语句和 if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过 for语句输出二维数组对角线上的元素。因此 D选项正确。24.有以下程序: #include stdio.h main() int x=1, y=0, a=0, b=0; switch (x) case 1: switch(y) case 0: a+; break; case 1: b+;
33、break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=% d, b=% d/n“, a, b); 程序的运行结果是_。(分数:2.00)A.a=2, b=2B.a=2, b=1 C.a=1, b=1D.a=1, b=0解析:解析 case 常量表达式只是起语句标号作用,并不是对该处进行条件判断。在执行 switch语句时,根据 switch的表达式,找到与之匹配的 case语句,就从该 case子句执行下去,不再进行判断,直到碰到 break或函数结束为止。所以执行内层 switch(y)时只执行了 a+,此时 a的值为 1。然后执行外
34、层 case 2语句的 a+; b+; a为 2,b 为 1。所以结果为 B。25.有以下程序 #includestdio.h main() char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:1.00)A.40B.16C.8 D.4解析:解析 4 左移 1位,相当于*2 则值为 8。答案选择 C。26.有以下程序 #includestdio.h main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d,%d,%d,%d/n“,a,b,c,d); 程序输出_。(分数:2.50)A.编译
35、有错 B.0,0,0,3C.1,1,2,0D.0,1,2,0解析:解析 本题中 if(a=1)b=1;与 else d=3; 之间多了语句 c=2;因此会出现 else语句的位置错误的编译失败提示。27.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。28.有以下程序: #include stdio.h main( ) char c1=“A“,c2=“Y“; printf(“%d, %d/n“,c1,
36、c2); 程序的输出结果是_。(分数:1.00)A.输出格式不合法,输出出错信息B.65,89 C.65,90D.A,Y解析:解析 本题重点考查字符变量的相关知识。分别给字符型变量 a和 b赋值为“A“和“Y“,printf 函数的“%d”控制符输出的是数字,即 A和 Y的 ASSCII码,因此输出结果为 65,89,因此 B选项正确。29.有以下程序: #includestdio.h main() int a=1,b =0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b); 程序运行后的输出结果是_。(分数:1.00)A.1,2 B.1,0C.3,2D.0
37、,0解析:解析 首先打印 b=a+b=1+0=1的值 1,此时已给 b赋值为 1。然后打印 a=2*b=2*1=2的值 2。所以结果是“1,2”。30.有以下程序 #includestdlib.h struct NODE int num;struct NODE*next; main() struct NODE*p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE); q=(struct NODE*)malloc(sizeof(struct NODE); r=(struct NODE*)malloc(sizeof(struct NODE); p-n
38、um=10;q-num=20;r-num=30; p-next=q;q-next=r; printf(“%d/n“,p-num+q-next-num); 程序运行后的输出结果是(分数:1.00)A.10B.20C.30D.40 解析:解析 该题中考查的是简单的单链表,下图就是赋完值后的示意图:容易看到 p-num=10,而 q-next 就是 r,所以 q-next-num=30,故答案为 40。 31.软件详细设计产生的图如图所示。该图是_。 (分数:1.00)A.NS图B.PAD图C.程序流程图 D.ER图解析:解析 NS 图(也被称为盒图或 CHAPIN图)、PAD(问题分析图)及 PF
39、D(程序流程图)是详细设计阶段的常用工具。ER 图即实体联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。32.以下选项中不能作为 C语言合法常量的是_。(分数:2.50)A.“cd“ B.0.1e+6C.“/a“D.“/011“解析:解析 本题考查的是 C语言的常量。0.1e+6 是实型常量的指数形式,代表 0.110的 6次方,所以选项 B是合法的;“a”是合法的字符串常量,“/a”是一个非打印的转义字符表示响铃,所以选项 C是合法的;011 是一个字符常量,011 是一个用 3位八进制表示的转义字符,所以选项 D也是合法的。在C语言中,字符常量是用单引号括起来的一个字符
40、,选项 A中的 cd包含了 2个字符,所以是不正确的。33.下列叙述中正确的是_。(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对 解析:解析 栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构,因此本题答案为 D。34.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定 解析:解析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此 A错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此 B与 C错误,故本题答案为 D。35.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。