计算机二级C语言考试上机试题及答案

合集下载

计算机二级C语言99套上机操作题及答案

计算机二级C语言99套上机操作题及答案

C语言上机操作题.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include<stdio.h>long fun(int n){if(___1___)return(n*fun(___2___));return___3___;}main(){printf("10!=%ld\n",fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>/********found********/IsPrime(int n);{int i,m;m=1;/********found********/for(i=2;i<n;i++)if!(n%i){m=0;break;}return(m);}main(){int j,k;printf("\nplease enter an integer number between2and10000:");scanf("%d",&k);printf("\n\nThe prime factor(s)of%d is(are):",k);for(j=2;j<k;j++)if((!(k%j))&&(IsPrime(j)))printf("%4d,",j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if!(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。

计算机二级《C语言》上机操作试题及答案

计算机二级《C语言》上机操作试题及答案

计算机二级《C语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。

下面是店铺收集整理的计算机二级《C语言》上机操作试题及答案,仅供参考,希望能够帮助到大家。

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。

A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA(2)下列叙述中正确的是( )。

A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的'(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)(4)下列叙述中正确的是( )。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。

A.控制流B.事件驱动C.模块调用D.数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。

A.N—s图B.DFD图C.PAD图D.程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。

A.一致性B.分类性C.多态性D.标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

A.一对一B.一对多C.多对一D.多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。

二级C语言上机真题及答案(最新完整版)

二级C语言上机真题及答案(最新完整版)

1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数5. void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if (i%j!=0)flag=1;else{flag=0;break;}}if (flag==1&j>=i){if (k>0){xx[g++]=i;k--;}elsebreak;}}}6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。

全国c语言二级考试真题及答案

全国c语言二级考试真题及答案

全国c语言二级考试真题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个关键字用于声明一个函数?A. intB. floatC. voidD. function答案:C3. 在C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B4. C语言中,哪个函数用于计算并返回一个数的平方根?A. sqrt()B. square()C. root()D. pow()答案:A5. 下列哪个选项是C语言中的正确定义一个整型数组?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B6. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. %答案:A7. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A9. C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C10. 在C语言中,哪个函数用于将浮点数转换为字符串?A. sprintf()B. printf()C. scanf()D. atoi()答案:A11. C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "b"答案:A12. 在C语言中,哪个函数用于动态分配内存?A. malloc()B. calloc()C. realloc()D. free()答案:A13. C语言中,哪个关键字用于声明一个全局变量?A. globalB. externC. staticD. auto答案:B14. 在C语言中,哪个函数用于获取当前时间?A. time()B. date()C. localtime()D. mktime()答案:A15. C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. ~答案:D16. 在C语言中,哪个函数用于格式化输出?A. printf()B. scanf()C. fprintf()D. sprintf()答案:A17. C语言中,哪个关键字用于声明一个静态变量?A. staticB. externC. autoD. register答案:A18. 在C语言中,哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. pow()D. sqrt()答案:B19. C语言中,以下哪个选项是正确的递归函数定义?A. void factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }B. int factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }C. void factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }D. int factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }答案:B20. 在C语言中,哪个函数用于释放动态分配的内存?A. malloc()B. calloc()C. realloc()D. free()答案:D二、编程题(每题20分,共60分)1. 编写一个C语言函数,计算并返回两个整数的和。

计算机二级c 上机考试题库80题答案

计算机二级c  上机考试题库80题答案

第1套一、填空题给定程序的功能是求1/4的圆周长。

函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:L=Πd,在程序中定义的变量名要与公式的变量相同)。

例如:输入圆的直径值:19.527,输出为:15.336457请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。

#include<stdio.h>double fun(double d){return 3.14159*d/4.0;}main(){double z;printf("Input the d of the round:");scanf("%lf",&z);printf("L=%lf\n",fun(z));}二、改错题下列给定程序中函数fun的功能是:计算正整数m的各位上的数字之积。

例如,若输入202,则输出应该是0。

请修改程序中的错误,得出正确的结果注意:不要改动main函数,不能增行或删行,也不能更改程序的结构#include<stdio.h>#include<conio.h>long fun(long n){long r=1;do{r*=n%10;n/=10;}while(n);return(r);}main(){long m;printf("\nplease enter a number:");scanf("%ld",&m);printf("\n%ld\n",fun(m));}三、编程题请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整初的所有整数放在数组b中,通过n返回这些数的个数。

例如,若传送给m的值为20,则程序输出7 11 14。

请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

计算机二级证考试c语言试题及答案

计算机二级证考试c语言试题及答案

计算机二级证考试c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. C语言中,用于定义一个变量为静态局部变量的关键字是?A. staticB. externC. registerD. auto答案:A3. 下列哪个选项不是C语言中合法的整数常量?A. 2023B. 0x1AC. 0123D. 2.0答案:D4. 在C语言中,哪个运算符用于计算两个整数的差值?A. %B. /C. -D. +答案:C5. 下列哪个选项不是C语言中的控制语句?A. ifB. forC. switchD. case答案:D6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A7. C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:D8. 在C语言中,以下哪个选项不是合法的数组声明?A. int arr[5];B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4, 5, 6};答案:D9. C语言中,以下哪个函数用于计算数组中元素的个数?A. sizeofB. countC. lengthD. size答案:A10. 在C语言中,以下哪个关键字用于定义一个指针?A. pointerB. refC. ptrD. *答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。

答案:char2. 在C语言中,用于定义一个浮点型变量的关键字是________。

答案:float3. C语言中,用于定义一个布尔型变量的关键字是________。

计算机二级C语言上机题库及答案(100套)

计算机二级C语言上机题库及答案(100套)

~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。

全国计算机等级考试二级C语言上机考试题库及答案

全国计算机等级考试二级C语言上机考试题库及答案

第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。

通讯录记录每位学生的编号,姓名和电话号码。

班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。

答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。

答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。

然后将文件的内容读出显示在屏幕上。

文件的读写分别有自定义函数ReadText 和WriteText实现。

答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。

答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。

*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。

答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。

答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

xx年计算机二级C语言考试上机试题及答案1.算法的空间复杂度是指( )。

A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。

A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。

A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。

A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。

A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。

A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进展后序遍历的结果为( )。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。

A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程9.两个或两个以上模块之间关联的严密程度称为( )。

A.耦合度B.内聚度C.复杂度D.数据传输特性10.以下描述错误的选项是( )。

A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系12.以下合法的声明语句是( )。

A.intabc=50;B.double int=3+5e2.5;C.long do=1L:D.float 3asd=3e-3;13.设x、Y和z是int型变量,且x=4,y=6,z=8,那么以下表达式中值为0的是( )。

A.x&&YB.x<=YC.x‖y+z&&y-zD.!((x 14.假设ch为char型变量,k为int型变量(字符a 的ASCIl码是97),那么执行以下语句后输出的结果为( )。

ch=’b’;k=10:printf("%X,%o,",ch,ch,k);printf("k=%%d\n",k);A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为0值或不定值C.62,142,k一%dD.62,142,k一%l015.有以下程序:、fun(int X,int y){return(x+y);)main(){ int a=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是( )。

A.6B.7C.8D.916.假定x和Y为double型,那么表达式x=2,y—x+3/2的值是( )。

A.3.500000B.3C.2.000000D.3.00000017.有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0:b++;case l:a++;case 2: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=218.以下程序的输出结果是( )。

main(){int i=1,j=2,k=3;if(i++= =1&&(++j= =3= =‖k++= =3)) printf("%d%d%d\n",i,J,k);)A.1 2 3B.2 3 4C.2 2 3D.2 3 319.以下程序的输出结果是( )。

#includemain(){ int a=0,i;for(i=1;i<5;i++){ switch(i){ case 0:case 3:a+=1;case l:case 2:a+=2;default:a+=3;)printf("%d",i);)A.19B.1C.6D.820.有以下程序:main(){int X,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.28B.27C.42D.4121.以下程序的输出结果是( )。

main(){int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0; for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.2122.有以下程序:main(){ int k=5;while(--k) printf("%d",k=1);printf("/n");)执行后的输出结果是( )。

A.1B.2C.4D.死循环23.假设有定义:“int a[2][3];”,那么对a数组的第i行第J列元素的正确引用为( )。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j24.以下能正确进展字符串赋值的是( )。

A.char s[5]={"ABCDE"};B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、C.char*S;S="ABCDE";D.char*s;printf("%《",s);25.现有以下构造体说明和变量定义,如下图,指针P、q、r分别指定一个链表中连续的3个结点。

struct node{har data;struct node*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的构造,以下不能完成此操作的语句是( )。

A.q-:>next=r->next;p--:>next=r;rm:>next=q;B.q-:>next=r;q->next=r->next;r->next=q;C.q-:>next=r->next;r->next=q;p->next=r;D.q-:>next=q;p->next=r;q->next=r->next;26.有以下程序:main(){int i,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:)x++:}printf("x=%d\n"x);}程序执行后的输出结果是( )。

A.x=4B.x=8C.x=6D.x=1227.有以下程序:int funl(double a){return a*=a;} 、int fun2(double x,double y){double a=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main(){double w;w=fun2(1.1,2.0),……}程序执行后变量w中的值是( )。

、A.5.21B.5C.5.0D.0.028.有以下程序:main(){int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是( )。

A.45B.20C.25D.3629.有以下程序:int fun(int n){if(n= =1))return l;elsereturn(n+fun(n-1)):}main(){ int x;seanf("%d",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量x输入l0,程序的输出结果是( )。

A.55B.54C.65D.4530.有以下程序:int fun(int x[],int n){ static int sum=0,i;for(i=0;ireturn sum;}main(){int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0; s=fun(a,5)+fun(b,4);printf("%d\n",s);程序执行后的输出结果是( )。

、A.45B.50C.60D.5531.有以下程序:main()f char*P[]={"3697","2584");int i,j;long num=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=’\0’){if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’; j+=2;))printf("%d\n",num);)程序执行后的输出结果是( )。

A.35B.37C.39D.397532.以下程序的输出结果是( )。

main(){ char st[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.9 9B.5 20C.13 20D.20 20。

相关文档
最新文档