2024年2月10日发(作者:博客备份)
Linux编程技术_西安邮电大学中国大学mooc课后章节答案期末考试题库2023年
1. ( )函数可以对已打开的文件描述符进行各种控制操作以改变已打开文件的各种属性。
答案:
fcntl
2. 调用fork函数后,子进程不会拷贝父进程的( )?
答案:
进程ID
3. 以下哪种信号处理方式不需要提前安装信号处理函数。
答案:
按默认方式处理
4. 以下关于IPC对象的描述正确的是( )。
答案:
创建IPC对象时,需要约定一个键值,保证通信的多个进程会合在同一个IPC对象上
5. 以下哪一项不是线程与进程对比的优点?
答案:
线程拥有更灵活的调度策略
6. 以下哪种情况不会导致线程被取消?
答案:
线程处于CANCELED状态,且线程收到了取消信号
7. 以下关于线程私有数据的说法,错误的是( )。
答案:
线程的ID号是线程的私有数据
8. pthread_cond_wait函数的作用是( )。
答案:
等待参数指定的条件变量发出信号
9. GNU是GNU Is Not Unix的递归缩写,是自由软件基金会的一个项目。
答案:
正确
10. Linux内核版本号由3组数字组成:主版本号.次版本号.次次版本号。如内核版本4.8.2,4为主版本号,8为次版本号,9为次次版本号。
答案:
正确
11. 根据文件路径来改变文件权限使用的函数是chmod。
答案:
正确
12. 在UNIX/Linux系统中,可以认为操作系统用了三张表来描述一个被进程打开的文件。
答案:
正确
13. Shell可以管理命令或程序的输入输出。
答案:
正确
14. SYSTEM V IPC中信号量机制中信号量的P操作和V操作都是通过调用mop函数来实现的。
答案:
正确
15. 使用共享内存的进程在创建或关联了共享内存后,还需要将共享内存绑定到自己的进程空间中。
答案:
正确
16. 同一进程的所有线程共享进程的所有信息,包括堆。
答案:
正确
17. 多个线程申请同一个互斥锁有可能导致系统死锁。
答案:
正确
18. 被初始化的互斥量或条件变量必须使用pthread_mutex_destroy或pthread_cond_destroy函数销毁。
答案:
错误
19. socket编程中,可靠的面向连接服务的套接字称为SOCK_STREAM。
答案:
正确
20. 进程在创建或引用了共享内存后,还需要将共享内存绑定到自己的进程空间中才可以使用。
答案:
正确
21. 通信的两个进程有可能不在同一台物理主机上。
答案:
正确
22. 信号量和信号是同一种机制。
答案:
错误
23. 所有进程都可以访问共享内存。
答案:
错误
24. 在POSIX中,创建线程使用( )函数。
答案:
pthread_create
25. 线程使用以下哪种方式退出时,无法保证不结束整个进程?
答案:
线程执行eXec函数后,导致当前进程地址空间全部更新
26. 以下不属于线程私有资源的是
答案:
文件描述符表
27. 以下哪种情况不会导致线程被取消
答案:
线程处于CANCELED状态,且线程收到了取消信号
28. 以下关于线程清理函数的说法,错误的是( )。
答案:
线程从其代码中的return语句结束时,会引发pthread_cleanup_push和pthread_cleanup_pop函数执行
29. 以下关于线程属性的说法,正确的是( )?
答案:
一个线程对应一个属性对象
30. 以下关于线程私有数据的说法,错误的是( )?
答案:
线程的ID号是线程的私有数据
31. 属于同一进程的各个线程共享的资源是( )?
答案:
信号处理函数
32. ( )是分配资源的基本单元,( )是调度的基本单元。
答案:
进程 线程
33. 同一进程的所有线程共享进程的所有信息,包括堆栈。
答案:
正确
34. 线程ID只在它所属的进程环境中有效。
答案:
正确
35. 调用pthread_create函数创建线程时,通过函数参数arg传给启动例程的执行参数只能有一个,传递多个参数将会出错。
答案:
正确
36. ( )函数用来初始化一个互斥锁。
答案:
pthread_mutex_init
37. 以下关于条件变量的说法,错误的是( )。
答案:
使用条件变量需要用pthread_cond_init函数初始化
38. 以下关于读写锁,正确的说法是( )。
答案:
使用读写锁的多线程比使用互斥量的多线程并行度更高
39. 以下函数中,( )是用于控制条件变量的。
答案:
pthread_mutex_timedlock
40. 以下( )步骤是正确的。①对互斥量加锁②改变互斥量保护的条件③给等待条件的线程发信号④对互斥量解锁
答案:
①②④③
41. 以下关于互斥锁的说法错误的是( )。
答案:
读写锁是一种互斥锁
42. 以下关于互斥锁和条件变量的说法,错误的是( )。
答案:
线程是否获得相关互斥锁并不影响条件变量的使用
43. 条件变量需要和一个互斥量联系起来。
答案:
正确
44. 因为同一进程的多个线程共享进程的许多资源,因此需要对线程进行同步处理。
答案:
正确
45. 信号量只能控制进程同步,不能控制线程同步。
答案:
错误
46. 下列协议中,不属于应用层的是( )。
答案:
UDP
47. Linux环境C编程时,创建套接字的函数是( )。
答案:
socket
48. 以下关于listen函数的描述,正确的是( )。
答案:
调用listen函数后,未连接的套接字从CLOSED状态转为LISTEN状态
49. 以下关于bind函数的说法,错误的是( )。
答案:
bind函数用于TCP服务时,每次调用只能指定端口或IP地址,无法同时指定二者
50. 函数调用sock=socket(AF_INET,SOCK_STREAM,0)表示创建一个面向( )的套接字。
答案:
TCP
51. 刚被创建的套接字暂时无法进行通信,必须使用( )函数对其进行绑定。
答案:
bind
52. 将按大端序排列的数据转换为按小端序排列的数据,可以使用( )函数。
答案:
ntohs
53. socket编程中,面向无连接服务,数据通过相互独立的报文进行传输的套接字称为SOCK_STREAM。
答案:
错误
54. UDP属于网络层协议。
答案:
错误
55. 使用套接字进行通信时,可以使用write函数发送信息,使用read函数接收信息。
答案:
错误
56. 面向UDP服务和TCP服务的套接字,接收信息所使用的函数是不一样的。
答案:
正确
57. 符号( )加在命令后面可以在后台执行程序。
答案:
&
58. 对所有用户的变量设置,放在文件( )下。
答案:
/etc/profile
59. 用ls –al 命令列出下面的文件列表,( )文件是符号连接文件。
答案:
lrwxr--r-- 1 helurs 2024 Sep 12 08:12 cheng
60. 遵循( )标准的fread操作使用了带用户缓冲区的读文件操作,用户程序数据区对磁盘数据读前,需经过系统管理的用户缓冲区进行缓冲,从而减少了读磁盘的I/O总次数。
答案:
ANSI
61. ( )函数是将内存中的数据写入文件中。
答案:
write
62. 关于如下命令和其结果,不正确的叙述是?( )root@ubuntu:~# ls / -ail2
drwxr-xr-x 23 root root 4096 3月24 16:07 .2 drwxr-xr-x 23 root root 4096
3月24 16:07 ..3407873 drwxr-xr-x 2 root root 4096 10月28 2015 bin
答案:
当前目录不是根目录
63. 下列关于链接文件的描述,错误的是( )。
答案:
硬链接和软链接都会产生一个新的inode结点
64. 以下哪种状态不是进程所拥有的状态。
答案:
生存态
65. 以下( )不是waitpid与wait函数的不同之处。
答案:
waitpid可以带回子进程结束的状态
66. task_struct结构体用来保存( )。
答案:
进程的PCB
67. 命令cat file>>file2将会( )。
答案:
将file1的内容添加到file2已有内容之后
68. 下面对管道的描述中哪一个是不正确的( )。
答案:
管道存在于用户空间中
69. 以下哪一种情况不会产生信号。
答案:
从信号处理函数退出时
70. kill(pid,signum)函数中,当参数pid为0时表示( )。
答案:
向与调用kill函数的进程同组的进程发送signum信号
71. 可以使用命令( )获取当前系统中所有IPC资源的状态。
答案:
ipcs
72. 以下不属于SYSTEM V IPC的通信机制是( )。
答案:
信号
73. 以下叙述正确的是( )。
答案:
操作系统可以感知到内核级线程,无法感知到用户级线程
74. 以下不属于线程同步机制的是( )。
答案:
正则表达式
75. 以下关于读写锁的说法错误的是( )。
答案:
同一时间段只能有一个进程为读锁定竞争资源
76. 以下关于线程同步正确的说法是( )。
答案:
线程同步也可已使用信号量和信号
77. OSI参考模型共( )层,TCP/IP协议参考模型共( )层。
答案:
7 4
78. 只用于同一主机内部进程间通信的socket可使用的协议族是( )。
答案:
AF_INET
79. 以下不属于TCP/IP模型的层是( )。
答案:
物理层
80. 以下( )协议是socket函数不能使用的。
答案:
IP协议
81. glibc是GUN发布的libc库,即c运行库。glibc是Linux系统中最底层的API,几乎其它任何运行库都会依赖于glibc。
答案:
正确
82. 要使一个可执行文件可以被gdb调试,那么在使用编译器gcc编译程序时需要加入-j选项。
答案:
错误
83. gcc命令只能编译.c、.s、.i、.o类型文件,不支持.a、.C、.cc、.cpp类型文件。
答案:
错误
84. 在Linux中一个进程的内存映像包含:代码区、数据区、BSS区、堆区和栈区。其中BSS区用来存放未初始化的全局变量和静态变量。堆区(heap)用于存放进程运行中被动态分配的内存段。
答案:
正确
85. 标准错误stderr无法重定向。
答案:
错误
86. 管道是一种特殊的文件,所以操作文件时可以使用的函数都可以用于操作管道。
答案:
错误
87. 支持排队的信号被称为不可靠信号。
答案:
错误
88. 操作IPC对象时,既可以使用该对象的键值,也可以使用该对象的id值。
答案:
错误
89. 信号量也可用于线程间通信。
答案:
正确
90. 线程是系统调度的基本单元。
答案:
正确
91. 从操作系统角度来看,线程可以分为用户级线程和内核级线程。
答案:
正确
92. 当进程的某个线程调用pthread_cancel函数取消同进程的指定线程时,指定线程不一定会被取消。
答案:
正确
93. 线程为了使用资源而申请互斥锁时,若互斥锁被占用,线程只能将自己挂起。
答案:
错误
94. 为了将当前目录下的压缩归档文件解压缩,可以使用命令
答案:
tar -xvzf
95. 在shell环境中,移动文件使用的命令是
答案:
mv
96. 任何时候用户需要回到上一级目录,可以命令
答案:
cd ..
97. /root目录是
答案:
超级用户的个人主目录
98. 文件file1的访问权限为744,现要取消该文件的文件所有者的执行权限,同时增加该文件的同组用户的写权限,可以使用下列哪个命令?
答案:
chmod u-x, g+w file1
99. 哪个符号加在命令后面可以在后台执行程序_______。
答案:
&
100. 当中央处理器处于内核态时,可以执行的指令是( )。
答案:
计算机系统中的全部命令
101. 在Linux命令字符界面,编辑一个C语言源程序的工具可以是( )。
答案:
所有选项都是
102. gcc命令可以启动C编译系统。当执行gcc命令时,它可以完成( )步骤 。
答案:
预处理、编译、汇编和链接
103. 学习系统编程一般分三步:分析程序、学习系统调用、编程实现。
答案:
正确
104. Linux是一种操作系统,具有支持多用户、多任务、单线程和多CPU等特点。
答案:
错误
105. bash是一种命令解释器(shell)。
答案:
正确
106. Linux内核版本号由3组数字组成:主版本号、次版本号、次次版本号。如内核版本4.8.2,4为主版本号,8为次版本号,9为次次版本号。
答案:
正确
107. 用ls –al 命令列出下面的文件列表,_______文件是符号连接文件。
答案:
lrwxr--r-- 1 helurs 2024 Sep 12 08:12 cheng
108. 若Linux系统中的一个普通文件访问权限为:属主允许读、写、执行,组用户允许读,其他用户无权限访问,则其权限显示为_____。
答案:
-rwxr-----
109. 以下不属于特殊权限位的是____。
答案:
stat
110. 在ext2文件系统中,不包含以下_______类型的块。
答案:
校验块
111. 当进程试图写入某个文件时,Linux内核判断该进程是否具有写权限是依据( )。
答案:
进程的有效用户ID
112. 进程通过fopen()打开的每一个文件,Linux内核都会为其创建一个( )数据结构,进程所有打开文件的这个结构由fd_array[]数组指向,内核通过文件描述符引用fd_array[]数组下标,从而访问这个结构。
答案:
file{}
113. Linux使用root账户的shadow文件存放用户账户密码,只有root账户才可以读写shadow,普通用户如何通过执行passwd命令修改个人的账户密码。( )
答案:
修改passwd命令的权限为:rwsr-xr-x
114. Linux系统中,一切皆文件。
答案:
正确
115. readdir函数的返回值为空一定意味着目录遍历的结束。
答案:
错误
116. lstat函数将会返回符号链接引用文件的文件属性。
答案:
错误
117. 根据文件路径来改变文件权限使用的系统调用是chmod。
答案:
正确
118. read系统调用和write系统调用的参数count只是一个“愿望值”。
答案:
正确
119. 在Linux操作系统中,运行态和就绪态进程的状态被统一为( )。
答案:
TASK_RUNNING
120. eXec族函数中,只有( )是系统调用,其他五个都是库函数。
答案:
execve
121. 以下函数会在被调用时刷新进程所打开的流对象的是( )。
答案:
exit
122. Linux系统中大多数的软件服务器属于______。
答案:
守护进程
123. task_struct结构体用来保存_____。
答案:
进程的PCB
124. 调用fork函数后该函数返回值为0,说明出现以下何种情况?
答案:
当前代码运行在子进程中
125. 下列何种情况下会出现不同进程共享相同文件表的情况?
答案:
打开文件的进程创建子进程
126. 下列关于进程和程序的描述中哪一项是不正确的?
答案:
程序只能在前台运行,而进程可以在前台或后台运行
127. 调用fork时,父子进程得到的返回值不同,可用此值来区分父子进程。其中父进程的返回值为子进程的进程号,子进程的返回值为-1。
答案:
错误
128. fork和vfork函数都可以用来创建新进程。
答案:
正确
129. 在Linux环境下,可以使用top和ps命令来查看进程的情况,区别是top命令反映的是系统进程动态信息,ps命令反映的是系统进程过去的一次性快照。
答案:
正确
130. 以下关于管道读操作的说法正确的是( )。
答案:
一个进程打开一个匿名管道时,读、写两端的文件描述符有可能是0、1
131. 管道只能用于有亲缘关系的进程进行通信。
答案:
错误
132. 向指定进程发送一个信号可使用函数( )。
答案:
kill
133. 以下哪个函数无法产生信号?
答案:
pau
134. 以下关于捕捉信号的说法错误的是( )。
答案:
sigaction函数无法获取指定信号当前的处理函数
135. 以下关于屏蔽信号的说法正确的是( )。
答案:
通常是设置一个需要屏蔽的信号集
136. 以下关于信号机制描述错误的是( )。
答案:
使用信号必须安装信号处理函数
137. 以下关于信号的说法正确的是( )。
答案:
可靠信号支持排队
138. 信号( )是不能被阻塞的。
答案:
SIGKILL、SIGSTOP
139. ( )不会产生信号。
答案:
其他进程使用rai向本进程发送信号
140. 使用signal函数时,可以设置要屏蔽的信号集。
答案:
错误
141. 信号是一种通信机制,可以用于处理异步事件。
答案:
正确
142. 当进程响应信号x转去执行信号处理函数时又收到了信号y,此时若处理信号y,一定会发生数据损毁。
答案:
错误
143. 信号机制不仅可以向进程通知事件,还可以给进程传递数据。
答案:
正确
144. 若为某个信号安装了信号处理函数,那么信号处理函数的执行过程是原子操作。
答案:
错误
145. 以下进程间通信机制属于异步通信方式的是_________。
答案:
信号
146. 下面对进程间通信的共享内存机制的描述中哪一个是不正确的?
答案:
对共享内存的访问无需再考虑互斥问题
147. 客户端使用服务器创建的共享内存可使用函数( )。
答案:
shmget
148. 以下关于通信机制的描述错误的是( )。
答案:
每次对消息队列进程读操作时,会返回队列的第一个消息
149. ( )不是进程通信的目的。
答案:
预防死锁
150. 以下关于Linux系统信号量机制的描述错误的是( )。
答案:
信号量的初值通常为0
151. 父进程先于子进程结束,将会导致子进程成为僵尸进程。
答案:
错误
152. 以下关于消息队列的说法,错误的是( )。
答案:
队列中的消息只能按队列顺序一个一个的读取。
153. 以下关于通信机制的说法正确的是( )。
答案:
共享内存通常用于传送大量数据
154. SYSTEM V IPC中信号量集机制中信号量的P操作和V操作都是通过调用mop函数来实现的。
答案:
正确
155. listen函数可以让套接字进入被动监听状态。
答案:
正确
156. 使用套接字进行通信时,可以使用ndto函数发送信息,使用recvfrom函数接收信息。
答案:
错误
157. 通常计算机采用小端模式存储数据,而网络采用大端传输,因此在使用socket传输数据时,需要进行统一的转换。
答案:
正确
158. 在Linux环境下设计基于UDP服务的通信程序,其服务器端程序的流程大致为( )。①建立socket②将地址绑定套接字③监听端口④响应客户端请求⑤发送或接收客户端数据⑥关闭socket
答案:
①、②、⑤、⑥
159. Linux环境C编程时,用于请求链接的函数是( )。
答案:
connect
160. 以下关于socket的说法,错误的是( )。
答案:
仅限使用于TCP/IP协议
161. 程序中使用互斥锁或条件变量时,必须将其设为全局变量。
答案:
正确
162. 可以为互斥锁设置一个属性对象。
答案:
正确
163. pthread_cond_wait函数的作用是
答案:
等待参数指定的条件变量发出信号
164. 以下关于线程同步说法错误的是( )。
答案:
互斥量和条件变量结合使用就不会导致系统死锁
165. fd=open("example.c",O_CREAT|O_EXCL,S_IRUSR|S_IWUSR));语句使用open系统调用在当前目录下创建一个名为example.c的文件,并且新文件的存取权限为所有者同组用户可读可写。
答案:
错误
166. Linux为了对文件进行管理,同进程PCB一样,它为每个文件设计了一个叫FCB的数据结构,FCB用于描述文件当前情况和控制文件的所需信息。
答案:
正确
167. 命令cat file1>>file2将会( )。
答案:
将file1的内容添加到file2已有内容之后
168. UNIX/Linux系统中标准错误的文件描述符值为
答案:
2
169. 以下不属于特殊权限位的是( )。
答案:
stat
170. 若Linux系统中的一个普通文件访问权限为:属主允许读、写、执行,组用户允许读,其他用户无权限访问,则其权限显示为( )。
答案:
-rwxr-----
171. 以下关于互斥锁的描述,错误的是( )。
答案:
若线程申请的互斥锁正被其他线程占用,则该线程将被挂起
172. 线程可以分为用户级线程和内核级线程。
答案:
正确
173. socket函数建立的套接字只能用于TCP或UDP连接。
答案:
错误
174. 调整文件偏移量位置的off_t lek(int fd, off_t offt, int whence)函数,第三个参数取值SEEK_SET表示从文件开始处计算偏移量。
答案:
正确
175. 文件流是指向FILE结构体类型的一个指针,该结构体中定义了一组char类型的指针用来管理用户I/O数据缓冲区,同时对文件描述符_fileno进行了封装。
答案:
正确
176. 在Linux中,硬件设备大部分安装下/mnt目录下。
答案:
错误
177. 以下不属于伪信号处理函数的是( )。
答案:
SIGINT
178. “cat -n test.c”命令表示将文件test.c的内容加上行号后显示输出。
答案:
正确
179. AT&T Bell Laboratory是Linux的创始人。
答案:
错误
180. make工程管理器是一个“自动编译管理器”,make工具依赖一个特殊的、名字为makefile或Makefile的文件,这个文件描述了系统中各个模块之间的依赖关系。
答案:
正确
181. GNU C库是Linux内核系统调用接口的封装,其中只包括POSIX兼容应用函数调用。
答案:
错误
182. 一个类Unix操作系统具有可移植性,是指它需遵循( )。
答案:
POSIX
183. 对所有用户的变量设置,应当放在哪个文件下?
答案:
/etc/profile
184. 以下信号不能被忽略的是( )。
答案:
SIGSTOP
185. 被进程阻塞的信号将会被丢弃。
答案:
错误
186. 以下哪种方式会导致进程的异常退出。
答案:
被接收到的信号终止
187. ( )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。
答案:
进程
188. 信号也是进程间通信的一种方式。
答案:
正确
189. 想要自行设定某信号的处理过程,需要( )。
答案:
捕捉信号
190. 文件file1的访问权限为744,现要取消该文件的文件所有者的执行权限,同时增加该文件的同组用户的写权限,可以使用命令( )。
答案:
chmod u-x, g+w file1
191. 将当前目录下使用gzip压缩的的文件解压,可以使用命令( )。
答案:
tar -xvzf
192. 下列关于链接的描述,错误的是( )
答案:
硬链接和软链接都会产生一个新的inode结点
193. Linux可以运行在x86、PowerPC、ARM、SPARC、MIPS、68k等体系结构上。
答案:
正确
194. Linux/UINX系统中top命令的作用是
答案:
动态监视系统任务
195. 守护进程独立于控制终端,运行在前台,执行日常事务的特殊进程,Linux的大多数服务器是以守护进程实现的。
答案:
错误
196. main函数的return或隐含返回,以及调用exit和_exit函数都是Linux系统的异常退出。
答案:
错误
197. execve("hello",argv,envp);语句表示创建一个新进程,执行hello代码,为main函数传递argv入口参数,以envp为环境执行 hello。
答案:
错误
198. 在Linux操作系统中,处于阻塞态的进程可以被信号唤醒。
答案:
错误
199. 下面哪个函数既可以指定所等待子进程的ID又可以请求内核返回子进程使用的资源情况汇总?
答案:
waitpid
200. 编写Linux下的多线程程序时,编译需要用到-thread选项。
答案:
错误
201. 可以通过两个线程ID是否相当来判断这两个线程是否是同一个线程。
答案:
错误
202. 以下关于线程终止的说法中,正确的是( )。
答案:
线程从启动例程函数中返回时,函数返回值即线程的退出码
203. 线程私有的资源是( )?
答案:
栈
204. 调用pthread_create函数创建一个线程后,( )会先运行。
答案:
创建的新线程或调用pthread_create函数的线程
205. 使用共享内存无法解决多个进程同时读写的冲突。
答案:
正确
206. 以下通信机制属于 SYSTEM V IPC机制的是( )。
答案:
信号量
207. 调用fork函数后下列哪一种不属于父子进程之间共享的内容?
答案:
进程ID
208. 下列eXec函数中调用者可以通过数组指定命令行参数并通过相对路径查找可执行文件的函数是________。
答案:
execvp
209. tsid函数用来设置进程的____。
答案:
会话号
210. 在给定文件中查找与设定条件相符字符串的命令为
答案:
grep
211. 任何时候用户需要回到上一级目录,可以使用命令( )。
答案:
cd ..
212. 调用lek函数时,设置第三个参数为SEEK_END,以下哪种说法是正确的?
答案:
设置文件的当前位置时以文件尾作为基准值
213. 重定向是由( )实现的。
答案:
Shell
214. 支持排队的信号被称为可靠信号。
答案:
正确
215. SIGSTOP信号( )。
答案:
无法忽略
216. 当进程试图写某个文件时,Linux内核判断该进程是否具有写权限是依据( )。
答案:
进程的有效用户ID
217. int stat(const char *path, struct stat *buf)函数可以获得path路径中文件的属性,获取的文件属性信息保存在buf中。
答案:
正确
218. opendir函数会返回一个类似于文件描述符的dirent结构体指针,称为dirent流,用来保存打开的目录信息,对目录的一些操作需要借助dirent完成,比如读目录readdir函数。
答案:
错误
本文发布于:2024-02-10 23:58:27,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1707580708264727.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Linux编程技术_西安邮电大学中国大学mooc课后章节答案期末考试题库20.doc
本文 PDF 下载地址:Linux编程技术_西安邮电大学中国大学mooc课后章节答案期末考试题库20.pdf
留言与评论(共有 0 条评论) |