2020年全国计算机二级等级考试全真模拟试卷及答案(共四套卷).docx

上传人:无*** 文档编号:64503500 上传时间:2022-11-29 格式:DOCX 页数:159 大小:100.21KB
返回 下载 相关 举报
2020年全国计算机二级等级考试全真模拟试卷及答案(共四套卷).docx_第1页
第1页 / 共159页
2020年全国计算机二级等级考试全真模拟试卷及答案(共四套卷).docx_第2页
第2页 / 共159页
点击查看更多>>
资源描述

《2020年全国计算机二级等级考试全真模拟试卷及答案(共四套卷).docx》由会员分享,可在线阅读,更多相关《2020年全国计算机二级等级考试全真模拟试卷及答案(共四套卷).docx(159页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2020年全国计算机二级等级考试全真模拟试卷及答案(共四套)2020年全国计算机二级等级考试全真模拟试卷及答案(一)1 .下列叙述中正确的是A)结点中具有两个指针域的链表一定是叉链表B)结点中具有两个指针域的链表可以是线性结构,也可以是非线性 结构C)二叉树只能采用链式存储结构D)循环链表是非线性结构参考答案:B(2020.(9) 某叉树的前序序列为ABCD,中序序列为DCBA,则后序序列为A) BADCC) CDABD) ABCD参考答案:B(2020.(9) 下面不能作为软件设计工具的是A) PAD图B)程序流程图C)数据流程图(DFD图)D)总体结构图参考答案:C(2020.9)4.逻辑

2、模型是面向数据库系统的模型,下面属于逻辑模型的是A)关系模型B)谓词模型C)物理模型D)实体联系模型参考答案:A(2020.9)5.运动会中一个运动项目可以有多名运动员参加,个运动 员可以参加多个项目。则实体项目和运动员之间的联系是A)多对多B) 对多C)多对D) 对参考答案:A(2020.(9) 堆排序最坏情况下的时间复杂度为A)0(户)B)0( 7 log ; M)0( T)C) 2D) OQog 2 n)参考答案:B(2020.(9) 某叉树中有15个度为1的结点,16个度为2的结点,则该叉树中总的结点数为A) 32B) 46C) 48D) 49参考答案:C2020.9) 8.下面对软件

3、特点描述错误的是A)软件没有明显的制作过程B)软件是种逻辑实体,不是物理实体,具有抽象性C)软件的开发、运行对计算机系统具有依赖性D)软件在使用中存在磨损、老化问题参考答案:D(2020.9)某系统结构图如下图所示该系统结构图中最大協人是A) 0B) 1C) 2D) 3参考答案:C(2020.9)10.设有表示公司和员工及雇佣的三张表,员可在多家公司 兼职,其中公司C (公司号,公司名,地址,注册资本,法人代表, 员工数),员S (员号,姓名,性别,年龄,学历),雇佣E (公司号,员号,资,工作起始时间)。其中表C的键为公司号,表S的键为员号,则表E的键(码)为A)公司号,员号B)员号,资C)

4、员号D)公司号,员号,资参考答案:A(2020.9)11.算法应当具有的特性不包括A)可行性B)有穷性C)确定性D)美观性参考答案:D(2020.(9) .若想给已定义为int型的变量a、b、c、d赋整数1,以下选项中错误的语句是A) d=c, c=b, b=a, a=l;B) d=c=b=a=l;C) d=(b=c=(a=D);D) d=l, c=d, b=c, a=b;参考答案:A(2020.(9) 13.以下选项中,合法的C语言常量是A) 21.84B) CPPC) ”1.0D) 2MB参考答案:A(2020.914.下面叙述正确的是A)C语言程序的语句经过编译和链接转换成二进制机器指令

5、后能执行B)任何算法需要包含三种基本结构中的两种以上C)复杂算法是不能用三种基本结构来表达的D) 只要是简单算法,它的操作步骤都不会超过20步 参考答案:A(2020.(9) .若已有定义语句:int a, b, c;,且变量已正确赋初值, 则以下选项中正确的赋值表达式是A) a = (b = c) + 8;B) (a = b) = c = 9;C) a = (b = c) = A;D) a+b=c+l;参考答案:A(2020.9)16.以下表达式的值与x无关、其值恒为真的是A) 0 x 10 & x10 & x5D) x5参考答案:A(2020.(9) .以下非法的字符常量是A),n,B)

6、101C) x21D) 、参考答案:A(2020.9)18.若有定义:int a=0, b=0, c=0, d=0;,以下关于C语言表达 式:(+a | +b) ? +c : +d执行顺序的叙述正确的是A)先执行+a,表达式+a的值为1;再执行+b,表达式+b的值为1, 由此可确定(+a | +b)值为1,因此执行+cB)先执行+a,表达式+a的值为1,由此可确定(+a | | +b)值为1, 因此执行+cC)先执行+b,表达式+b的值为1;再执行+a,表达式+a的值为1, 由此可确定(+a | +b)值为1,因此执行+cD)先执行+b,表达式+b的值为1,由此可确定(+a | | +b)值为

7、1, 因此执行+c参考答案:B(2020.(9) .有如下程序ttinclude main()int i, data;scanf(%d”, &data);for (i=0; i data) break;printf (%d, ”, i);程序运行时,从键盘输入:3回车后,程序输出结果为A) 3, 4, 5,B) 1,2,3,C) 2,3,4,D) 0, 1,2,3参考答案:D20 .有以下程序ttinclude main ()int i = 4;for ( printf(%d”, i) ; i2; i+) printf(%d”, i);printf(n);)程序运行后的输出结果是A) 12B)

8、 4C) 1D) 0参考答案:A21 .有以下程序ttinclude main ()if (、 = 0) putchar ( 1);if (0 = 0) putchar( 2);if ( a b) putchar (, 3,);)程序运行后的输出结果是A) 1B) 123C) 23D) 3参考答案:A22 .有如下程序段int k;for (k=2;k=0;) printf k-);则for循环体执行的次数是A) 0次B) 1次C) 2次D)无限次参考答案:A23.有以下程序ttinclude int k=5;void f (int *s) s=&k;*s=7;)main() int m=3;

9、f (&m);printf (%d, %dn”, m, k)程序运行后的输出结果是A) 3,5B) 7,7C) 5,7D) 3,7参考答案:D24.有以下程序ttinclude void fun(int a , int n) int i;for (i=0; in; i+)if (i % 3 = 0)ai - = n;elseai += n;)main() int c5 = 6, 7,8,9, 10, i;fun (c, 5);for (i=0;i5; i+) printf (%d, , ci);printf(n);)程序运行后的输出结果是A) 1, 12, 13,4, 15,B) 10, 9,

10、8, 7, 6,C) 1,7, 13, 9, 15,D) 10, 12,8,4,6参考答案:A25.有以下程序ttinclude int sub(double a, double b)return (int) (a - b - 1. 3);)main()printf (%dn”, sub (3. 2, 4. 1);)程序运行后的输出结果是A) -2B) 1.7D) 2.0参考答案:A26 .有以下程序#include main()Iint i, *ptr;int array 4 = 1, 1, 3, 4;for (ptr=array, i=0; i3; i+) printf(%d, *ptr+

11、); printf(n);)程序运行后的输出结果是A) 1,2,4,B) 1,3,4,C) 1,1,3,D) 1,4,3,参考答案:C27 .有以下程序ttinclude main() int x = 8,2,6, 12, 5, 15, fl, f2;int *p = x;fl = f2 = x0;for( ; p=x+5; p+) if( fl*p ) f2 ;p;printf (%d, %dn”, fl, f2);)程序的运行结果是B) 15, 15C) 2, 15D) 8,8参考答案:A28.有以下程序ttinclude main () int x3 4 = 1,3, 5, 7,9, 1

12、1,2,4,6, 8, 10, 12int (*p) 4 = x, k = 1, m, n = 0;for(m=0; m2; m+) n += *(*(p+m)+k);printf (%dn, n);)程序的运行结果是B) 20C) 14D) 16参考答案:C29 .有以下程序ttinclude main() char b410, c;int i, j;for (i=0; i4; i+) j = 0;while (c=getchar() != & c!=n) bi j+ = c;bi j = 、;printf (/,%s%s%s%sn/,, b0, bl, b2, b3);程序运行时从第一列开

13、始输入:Peach flower is pink, 回车则输出结果是A) Peachflowerispink.B) Peachfloweris pink.C) Peachflower is pink.D) Peach flower is pink.参考答案:A30 .有如下程序ttinclude void convert(char ch)if (ch X) convert (ch+1);printf (“祝,ch);main()convert ( W);printf(n);)程序运行后的输出结果是A) YZB) VWC) XYD) XW参考答案:D31 .有以下程序#include #incl

14、ude main() char a20=ab”, b20=cdef;int k-0;strcat(a,b);while (a k !=、0) bk=ak; k+;puts (b);)程序的运行结果是A) abcdefB) cbcdefC) cdefD) ab参考答案:A32 .以下使指针指向个字符串的选项错误的是A) char str = string , *ps;*ps = str;B) char str = string , *ps;*ps = str;C) char str = string, *ps;ps = str;D) char *ps;ps = string;参考答案:A33 .

15、有以下程序ttinclude typedef struct stu char name10;char gender;int score; STU;void f(STU a, STU *b) *b = a;b-score);printf (%s, %c, %d, , b-name, b-gender,)main() STU a=Zhao, m, 290, b=Qian, f, 350);f(a, &b);b. score);printf (%s, %c, %dn”, b. name, b. gender,程序运行后的输出结果是A) Zhao, m, 290, Qian, f, 350B) Qia

16、n, m, 290, Zhao, m, 290C) Qian, f, 350, Qian, f, 350D) Zhao, m, 290, Zhao, m, 290参考答案:D34 .若有定义typedef int *T;T a20;则以下与上述定义中a类型完全相同的是A) int *a20;B) int (*a) 20;C) int a20;D) int *a20;参考答案:A35 .有如下程序ttinclude struct personchar name10;int age;);main()struct person room2 = Wang”, 19, Li, 20;printf(%s:

17、%dn, (room+l)-name, room-age);程序运行后的输出结果是A) Li:19B) Wang:19C) Li:20D) Wang:17参考答案:A36 .以下关于编译预处理的叙述中错误的是A)预处理命令行必须位于源程序的开始B)源程序中凡是以#开始的控制行都是预处理命令行C) 一行上只能有一条有效的预处理命令D)预处理命令是在程序正式编译之前被处理的参考答案:A37 .以下关于宏的叙述错误的是A)宏替换不具有计算功能B)宏替换不具有类型C)宏名必须用大写字母构成D)宏替换不占用运行时间参考答案:C38 .有以下程序ttinclude struct Siint x, y;;m

18、ain()Istruct S data3 = 4, 3, 2, 0, 8, 1;int i;for (i=0; i3; i+)printf (%d%d;”, datai. x, datai. y 1); printf(n);)程序运行后的输出结果是A) 41;20;80;B) 41;22;64;C) 40;21;80;D) 43;20;81;参考答案:A39.以下叙述正确的是A)文件指针是指针类型的变量B)文件指针变量的值是文件的当前读取位置C)文件指针变量的值是文件的当前读取位置D) 调用fscanf函数能向所有类型的文件中写入任意字符参考答案:A40.有以下程序ttinclude type

19、def struct stu char name10;char gender;int score; STU;void f(STU a, STU *b) a = *b;printf (%s, %c, a. name, a. gender, a. score);)main() STU a= Zhao, m, 290, b = Qian, f, 350;f (a, &b);printf (%s, %c, %dn , a. name, a. gender, a. score);程序运行后的输出结果是A)Qian, f, 350, Qian, f, 350B)Zhao, m, 290, Qian, f,

20、 350C)Qian, f, 350, Zhao, m, 290D)Zhao, m, 290, Zhao, m, 290参考答案:C2020年全国计算机二级等级考试全真模拟试卷及答案(二)1.下列关于算法复杂度叙述正确的是A)最坏情况下的时间复杂度一定高于平均情况的时间复杂度B)时间复杂度与所用的计算工具无关0 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的D)时间复杂度与采用的算法描述语言有关参考答案:B(2020. 9)2.设有栈S和队列Q,初始状态均为空。首先依次将 A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z 入栈后,将栈中所有元素退出并依次入队

21、,最后将队列中所有元素退 出,则退队元素的顺序为A) DEFXYZABCB) DEFXYZABCC) FEDXYZCBAD) DEFZYXABC参考答案:B(2020. 9)3.下列叙述中正确的是A)有两个指针域的链表称为叉链表B)循环链表是循环队列的链式存储结构0带链的栈有栈顶指针和栈底指针,因此又称为双重链表D)结点中具有多个指针域的链表称为多重链表参考答案:D(2020. 9)4.某叉树共有845个结点,其中叶子结点有45个,则度为1的结点数为A) 400B) 754D)不确定参考答案:C(2020. 9)5.软件需求分析阶段的主要任务是A)确定软件开发方法B)确定软件开发工具0确定软件

22、开发计划D)确定软件系统的功能参考答案:D(2020. 9)6.下面对软件测试描述错误的是A)严格执行测试计划,排除测试的随意性B)随机地选取测试数据0 随机地选取测试数据D)软件测试是保证软件质量的重要手段参考答案:B(2020. 9)7.结构化程序的三种基本控制结构是A)顺序、选择和重复(循环)B)过程、子程序和分程序0 顺序、选择和调用D)调用、返回和转移参考答案:A(2020. 9)8.数据库中对概念模式内容进行说明的语言是A)数据定义语言B)数据操纵语言0数据控制语言D)数据宿主型语言参考答案:A(2020. 9)9.某个厂有若干个仓库,每个仓库存放有不同的零 件,相同零件可能放在不

23、同的仓库中。则实体仓库和零件间的联系是A)多对多B) 对多0 多对D) 对参考答案:A(2020. 9) 10.则由关系R和S得到关系T的操作是A)交B)差0并D)选择参考答案:A(2020. 9)11.以下叙述正确的是A)计算机只接收由0和1代码组成的二进制指令或数据B)计算机只接收由。和1代码组成的十进制指令或数据0计算机可直接接收并运行C源程序D)计算机可直接接收并运行任意高级语言编写的源程序参考答案:A(2020. 9) 12.若有C语言表达式2+3*4+7/3,以下选项中叙述正确的 执行顺序是A)先执行3*4得12,再执行7/3得2. 5,最后执行2+12+2. 5得16. 5B)先

24、执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2 得16C)先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14 得16D)先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3参考答案:B(2020. 9) 13.若有定义:char c; int d:程序运行时输入: c=l,d=2回车),能把字符1输入给变量c、整数2输入给变量d的输入 语句是A) scanf(c=%d d=%d“, &c, &d);B) scanf(c=%c d=%d, &c,&d);C) scanf (c=%d, d=%d, &c, &d);D)

25、scanf (c=%c, d=%d, &c, &d);参考答案:D(2020. 9) 14.以下选项中,与n=i+完全等价的表达式是B) n+=i+lC) i=i+l, n=iD) n=+i参考答案:A(2020. 9) 15.设有定义:int n = 1234;double x = 3. 1415;则语句printf (%3d, %L 3fn, n, x);的输出结果是A) 1234, 3. 1420 1234, 3. 141D) 123, 3. 141参考答案:A(2020. 9) 16.有以下程序#include stdio. hmain () int a, b;for (a=0; a3

26、; a+) scanf (服!,&b);switch(b) default: printf (%d, , +b);case 1: printf (%d, , +b);case 2: printf (%d, , +b);执行时输入:1 2 3回车,则输出结果是A) 2, 2, 3, 4, 4, 4,B) 2, 3, 4,C) 2, 3, 3, 4, 5, 6,D) 2, 3, 4, 3, 4, 4,参考答案:C(2020. 9) 17.设变量m为float类型,变量n为int类型,则以下能实现 将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式 是A) m=(m* 100+0. 5)/

27、100.0B) n=m*100+0. 5, m=n/100. 0C) n=m/100+0. 5, m=n*100. 0D) m=m* 100+0. 5/100. 0参考答案:B(2020. 9) 18.有以下程序ttinclude main () int a = 1, b = 1;for( ; a一J)b;printf (/z%d, %dn,z, a, b);程序运行后的输出结果是A) -1,0C) -1, -1D) 1, 1参考答案:A(2020. 9) 19.若有定义:char s30 = 0;运行时输入:This is a string. 回车则以下不能正确读入整个字符串:This is

28、 a string.到字符数组s中的语句组是A) i = 0;while (c=getchar ()!=n) si+ = c;c;C) for (i=0; (c=getchar() != n ; i+) siD) scanf(%s, s);参考答案:D(2020. 9) 20.有如下程序#include main ()Iint a = 0, b = 1;if (a+ & b+)printf(TRUE);elseprintf (FALSE);printf (_0UT:a=%d, b二dn, a, b);程序运行后的输出结果是printf(FALSE);printf (_OUT:a=%d, b=%

29、dn”, a, b);程序运行后的输出结果是A) FALSE_OUT:a=l,b=lB) FALSE_OUT:a=O, b=2C) TRUE_0UT:a=l,b=2D) TRUE_OUT:a=O, b=1参考答案:A(2020. 9)21.有如下程序ttinclude main ()int i, data;scanf(%d”, &data);for (i=0; i5; i+)(if (i data) continue;printf (%d-,i);I)程序运行时,从键盘输入:3回车后,程序输出结果为A) 3-4-B) 1 -2-3- 0-1-2-D) 0-1-2-3-参考答案:A(2020.

30、9) 22.有以下程序 ttinclude main ()int a = 0, b = 1;if (+a = b+)printf(1);elseprintf (“0”);printf (a=%d, b=%dn”, a, b);)程序运行后的输出结果是A) la=O, b=lB) 0a=l,b=2C) la=l,b=2D) Oa=O, b=2参考答案:C(2020. 9) 23.有如下程序段for (i=0; i10; i+)if (i = 5) break;则循环结束后i的值为A) 1B) 0C) 5D) 10参考答案:B(2020. 9)24.设有定义:int a=0,b=l;,以下表达式中

31、,会产生”短路现象,致使变量b的值不变的是A) a+ & b+B) a+ I I +bC) +a & b+D) +a I I +b参考答案:A(2020. 9) 25.有如下程序段for(i=0;i5) break;则循环结束后i的值为A) 10B) 5C) 9D) 6参考答案:D(2020. 9) 26.有以下程序段int x , i ;for(i=l;i=100;i+) scanf &x);if(x=0时没有任何输出D) printf函数调用语句总是被跳过参考答案:A(2020. 9) 27.关于地址和指针,以下说法正确的是A)通过强制类型转换可以将一种类型的指针变量赋值给另种类 型的指针

32、变量B)可以取个常数的地址赋值给同类型的指针变量0可以取个表达式的地址赋值给同类型的指针变量D)可以取个指针变量的地址赋值给基类型相同的指针变量参考答案:A(2020. 9) 28.有以下程序ttinclude #define N 4 void fun(int aN)int i;for(i=0; iN; i+)a0i += aN-lN-l-i;)main () int xNN = 1, 2, 3, 4,5, 6, 7, 8),9, 10, 11, 12),13, 14, 15, 16, i;fun(x);for (i=0;iN; i+) printf (%d, , xi i);printf(n

33、);程序运行后的输出结果是A) 4, 7, 10, 13,B) 1,6, 11, 16, 17,6, 11, 16,D) 5, 13,21,29,参考答案:C(2020. 9)29.关于C语言函数说明的位置,以下叙述正确的是A)在函数说明之后对该函数进行调用,编译时不会出现错误信息B)函数说明可以出现在源程序的任意位置,在程序的所有位置对该 函数的调用,编译时都不会出现错误信息0 函数说明只能出现在源程序的开头位置,否则编译时会出现错误 信息D)函数说明只是为了美观和编译时检查参数类型是否一致,可以写 也可以不写参考答案:A(2020. 9)30.以下叙述正确的是A)不能在数组说明符的对方括号

34、中使用表达式8) char cl, *c2, *c3, c42J是C语言的合法语句0数组下标的最小值可以是负值D)若有数组定义int array5:则语句printf array1. 23):是合法的参考答案:B(2020. 9)31.有以下程序ttinclude main ()iint a = 2, *ptr;ptr = &a;*ptr = 8;a = (*ptr) +;printf (%d, %dn”, a, *ptr);程序运行后的输出结果是A) 9,9B) 8,90 2,4D) 0,4参考答案:A(2020. 9) 32.有以下程序#include main ()Iint i, *pt

35、r;int array4 = 0, 1;for (ptr=array, i=0; i3; i+, ptr+)if (*ptr = 0)putchar (#);elseputchar (M + *ptr);printf(n);)程序运行后的输出结果是A) M0#B) #F#C) MMMD) #N#参考答案:D(2020. 9)33.有以下程序段:int m2 3, (*p) 3;P=m;则以下对m数组元素的引用正确的是A) (p+l) 0B) *(*(p+2)+l)C) *(pl + l)D) pl+2参考答案:C(2020. 9) 34.有以下程序#include char *a = you;

36、char *b = Welcome you to Beijing! char *p;P = b;while (*p != *a) p+;printf(%sn, p);)程序运行后的输出结果是A) you to Beijing!B) to Beijing!C) Welcome you to Beijing!D) Beijing!参考答案:A(2020. 9) 35.有以下程序#include void f(int x, int n) if (n 1) printf (%d, , xn-l);f (x, n-1);printf (%d, , xn-l);elseprintf (%d, , x0);

37、)main () int z3 = 1, 2, 3;f (z, 3);printf(n);)程序运行后的输出结果是A) 3, 1,3,B) 3,2, 1,2, 3,0 1,2,3, 1,2,3,D) 1,2, 3, 2, 1,(2020. 9) 36.有以下程序ftinclude int a = 2;int f (int k) static int n;int m;m = n = 0;n+; a+; m+; k+;return n+m+a+k;)main() int k;for (k=0; k2; k+) printf (%d, ”, f (k);printf(n);程序运行后的输出结果是A)

38、 6, 8,B) 6, 9,C) 6,6,D) 6, 7,参考答案:A(2020. 9) 37.有以下程序ttinclude int sum(int* array, int len)iif (len = 1)return array1;elsereturn array1 + sum(array+l, len-1);int array5 = 0, 9, 1, 2, res;res = sum (array, 3);printf(%dn, res);)程序运行后的输出结果是A) 27B) 11 8D) 12参考答案:D(2020. 9) 38.有以下程序ttinclude char s 10 -

39、verygood, *ps = s;ps = too ;s4 = 0;puts (ps);)程序的运行结果是A) tooB) verygoodC) veryD) good参考答案:A(2020. 9)39.以下叙述中错误的是A)函数中的形参属于局部变量B)在函数内部定义的变量只能在本函数范围内使用0在函数外部定义的变量在所有函数中都有效D)在不同的函数中可以使用相同名字的变量参考答案:C(2020. 9) 40.有以下程序ttinclude main () FILE *fp;int i, a6 = 1, 2, 3, 4, 5, 6, k;fp = fopen(data, dat ,w+);fp

40、rintf (fp, %dn, a0);for (i=l; i6; i+) rewind(fp);fprintf (fp, %dn, ai);rewind(fp);fscanf (fp, %d, &k);fclose(fp);printf(%dn, k);程序运行后的输出结果是A) 6B) 21 !23456D) 654321参考答案:A2020年全国计算机二级等级考试全真模拟试卷及答案(三)(2020. 9)1.下列叙述中正确的是A)每个结点有两个指针域的链表一定是非线性结构B)所有结点的指针域都为非空的链表一定是非线性结构0循环链表是循环队列的链式存储结构D)线性结构的存储结点也可以有多个指针参考答案:D(2020. 9)2.使用白盒测试方法时,设计测试用例应根据A)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁