linux及C试题(含答案)
Linux_期末考试试题2套(含答案)

Linux 期末考试试题 (一 )一、选择题 ( 每小题 2 分,共 50分)D )两个分区C. NTFS/SWAPD.SWAP/ 根分区A )用户对整个系统拥有完全的控制权。
C. administratorD.supervistor.ID 号的 shell 将被调用,这个 ID 是什么 ( B ) D. CID4. 下面哪个命令是用来定义 shell 的全局变量 ( D )A. exportfsB. aliasC. exportsD. export 5. 哪个目录存放用户密码信息 ( B )A. /bootB. /etcC. /varD. /dev6. 默认情况下管理员创建了一个用户,就会在 ( B )目录下创建一个用户主目录。
A. /usrB. /homeC. /rootD. /etc 7. . 当使用 mount 进行设备或者文件系统挂载的时候,需要用到的设备名称位于 ( D )目录。
A. /homeB. /binC. /etcD. /dev8. 如果要列出一个目录下的所有文件需要使用命令行 ( C )。
A. Is -B. IsC. Is -a(所有)D. Is - 9. 哪个命令可以将普通用户转换成超级用户 (D )A. superB. passwdC. tarD. su10. 除非特别指定, cp 假定要拷贝的文件在下面哪个目录下 ( D )A. 用户目录B. home 目录C. root 目录D. 当前目录11. 在vi 编辑器里,命令"dd"用来删除当前的(A )A. 行B. 变量C. 字D. 字符12. 当运行在多用户模式下时,用 CtrI+ALT+F* 可以切换多少虚拟用户终端 ( B )A. 3B. 6C. 1D. 1213. Linux 启动的第一个进程 init 启动的第一个脚本程序是 ( B )。
A./etc/rc.d/init.d B./etc/rc.d/rc.sysinit C./etc/rc.d/rc5.d D./etc/rc.d/rc3.d 14 . 按下 (A )键能终止当前运行的命令 A. CtrI-C B. CtrI-F C. CtrI-B D. CtrI-D 15. 下面哪个命令用来启动 X Window ( C ) A. runx B. Startx C. startX D. xwin 16. 用来分离目录名和文件名的字符是 ( B )A. dash (-)B. sIash (/)C. period (.) 17. 用 "rm -i", 系统会提示什么来让你确认 ( A. 命令行的每个选项 B. 是否真的删除A. skiIIaIIB. skiIIC. kiIID. kiIIaII19. 在 Red Hat Linux 9 中,一般用( D A. ping B. ipconfig C. winipcfg D ifconfig20. vi 中哪条命令是不保存强制退出 ( C )(第五章)A. :wqB. :wq!C. :q!D. :quit1.在创建 Linux 分区时,一定要创建(A. FAT/NTFSB. FAT/SWAP2.在 Red Hat Linux 9 中,系统默认的( A. root B. guest3. 当登录 Linux 时,一个具有唯一进程 A. NID B. PID C. UIDD. asterisk (*) B )C. 是否有写的权限 ( D )D. 文件的位置18. 以下哪个命令可以终止一个用户的所有进程 )命令来查看网络接口的状态21. 局域网的网络设备通常有(ABCDE )A.交换机B.路由器C.网桥D.双绞线E. HUB22. 在下列分区中,Linux默认的分区是(B)A. FAT32B. EXT3 C FAT .D NTFS23•若要将鼠标从VM中释放出来,可按(A )键来实现A. Ctrl + AltB. Ctrl +Alt +DelC. Ctrl +Alt +En ter D Ctrl +Enter24•如果用户想对某一命令详细的了解,可用(C)A. lsB. help (内部)C. man (列举的信息多)D dir25. Samba服务器的配置文件是(D )。
Linux-期末考试试题8套(含答案)

Linux 期末考试试题(一)一、选择题 (每小题2分,共50分)1.在创建Linux分区时,一定要创建(D )两个分区A. FAT/NTFSB. FAT/SWAPC. NTFS/SWAPD.SW AP/根分区2.在Red Hat Linux 9中,系统默认的(A)用户对整个系统拥有完全的控制权。
A. rootB. guestC. administratorD.supervistor.3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B )A. NIDB. PIDC. UIDD. CID4. 下面哪个命令是用来定义shell的全局变量( D )A. exportfsB. aliasC. exportsD. export5. 哪个目录存放用户密码信息( B )A. /bootB. /etcC. /varD. /dev6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。
A. /usrB. /homeC. /rootD. /etc7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。
A. /homeB. /binC. /etcD. /dev8. 如果要列出一个目录下的所有文件需要使用命令行( C )。
A. ls –lB. lsC. ls –a(所有)D. ls –d9. 哪个命令可以将普通用户转换成超级用户(D )A. superB. passwdC. tarD. su10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D )A. 用户目录B. home目录C. root目录D. 当前目录11. 在vi编辑器里,命令"dd"用来删除当前的( A )A. 行B. 变量C. 字D. 字符12. 当运行在多用户模式下时,用Ctrl+ALT+F*可以切换多少虚拟用户终端( B )A. 3B. 6C. 1D. 1213. Linux启动的第一个进程init启动的第一个脚本程序是( B )。
Linux_期末考试试题8套(含答案)

往年复习题一、选择题:1.以下哪一个是linux内核的稳定版本( B )A.2。
5。
24B。
2。
6。
17 C. 1。
7。
18 D. 2.3。
20 2.怎样显示当前目录( A )。
A. pwd B。
cd C。
who D。
ls3.欲把当前目录下的 file1.txt 复制为 file2.txt,正确的命令是( D )。
A。
copy file1。
txt file2.txt B。
cp file1。
txt | file2.txt C。
cat file2。
txt file1。
txt D。
cat file1。
txt 〉 file2。
txt4。
如果您想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么您可以使用的命令是( B )。
A。
ls *。
txt B。
find 。
–name “。
txt”C。
ls –d .txt D. find . “.txt" 5。
如何删除一个非空子目录/tmp( B ).A。
del /tmp/* B。
rm —rf /tmp C. rm -Ra /tmp/* D。
rm –rf /tmp/* 6。
存放用户帐号的文件是( C )。
A。
shadow B. group C。
passwd D. Gshadow7。
下面哪个系统目录中包含Linux使用的外部设备( B ).A。
/bin B。
/dev C。
/boot D。
/home 8.一个文件名字为rr。
Z,可以用来解压缩的命令是( D )A.tar B。
gzip C。
compress D。
uncompress9. Linux通过VFS支持多种不同的文件系统.Linux缺省的文件系统是( C ) A.VFAT B。
ISO9660 C。
Ext系列 D. NTFS 10.在vi编辑器中的命令模式下,键入( B )可在光标当前所在行下添加一新行A.O B。
o C。
i D。
a 11.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用( C )命令。
linux操作系统期末考试试题及答案

linux操作系统期末考试试题及答案一、选择题(每题2分,共20分)1. 以下哪个命令可以查看Linux系统的发行版信息?A. cat /etc/issueB. cat /etc/redhat-releaseC. cat /etc/debian_versionD. lsb_release -a答案:A2. 在Linux系统中,以下哪个命令可以用来查看文件权限?A. ls -lB. ls -aC. ls -rD. ls -t答案:A3. 以下哪个命令用于创建一个新的用户?A. useraddB. userdelC. groupaddD. groupdel答案:A4. 在Linux系统中,以下哪个命令可以用来查看系统运行时间?A. uptimeB. topC. psD. free答案:A5. 以下哪个命令可以用来查看系统负载?A. uptimeB. topC. psD. free答案:A6. 以下哪个命令可以用来挂载一个USB设备?A. mountB. umountC. mountpointD. mount | grep答案:A7. 以下哪个命令可以用来查看网络连接信息?A. ifconfigB. ipconfigC. netstatD. ping答案:C8. 以下哪个命令可以用来重启Linux系统?A. rebootB. shutdown -rC. shutdown -hD. init 6答案:A9. 以下哪个命令可以用来杀死一个进程?A. killB. pkillC. killallD. kill -9答案:A10. 在Linux系统中,以下哪个文件包含了系统环境变量?A. /etc/profileB. /etc/bash.bashrcC. ~/.bashrcD. /etc/environment答案:D二、填空题(每题2分,共20分)11. 在Linux系统中,文件权限分为三种类型:读(______)、写(______)和执行(______)。
完整版linux试题与答案

复习题(仅供参考)linux(一)选择题:)linux内核的稳定版本( B 1.以下哪一个是D. 2.3.20 C. 1.7.18 B. 2.6.17 .A2.5.24。
) A 2.怎样显示当前目录(D. lsC. who A. pwd B. cd。
) D 3.欲把当前目录下的file1.txt 复制为file2.txt,正确的命令是(B. cp file1.txt | file2.txt A. copy file1.txt file2.txtD. cat file1.txt > file2.txt C. cat file2.txt file1.txt”的文件,那么您可以使用的命.txt4. 如果您想列出当前目录以及子目录下所有扩展名为“。
)B 令是(.txt” D. find . “C. ls –d .txt A. ls *.txt B. find . –name “.txt”)。
B 5. 如何删除一个非空子目录/tmp(rf /tmp/* D. rm –C. rm -Ra /tmp/* A. del /tmp/* B. rm -rf /tmp)。
6. 存放用户帐号的文件是(CD. Gshadow C. passwd A. shadow B. group)。
7.下面哪个系统目录中包含Linux使用的外部设备(BD. /homeC. /boot B. /dev A. /bin)可在光标当前所在行下添加一新行B 在vi编辑器中的命令模式下,键入( 8.D. a C. i O (上一行添加一行) B. o A.) C 9.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用(命令。
D. * A.上箭头 B. 下箭头 C. .Vi编译器包含命令模式、插入模式和末行模式10.删除文件命令为(D)A.mkdir B. move C. mv D. rm11.假设文件fileA的符号链接(又叫软连接)为fileB,那么删除fileA后,下面的描述正确的是( B)A.fileB也随之被删除B. fileB仍存在,但是属于无效文件C. 因为fileB未被删除,所以fileA会被系统自动重新建立D. fileB会随fileA的删除而被系统自动删除12.在给定文件中查找与设定条件相符字符串的命令为( A )A.grep B. gzip C. find D. sort13.从后台启动进程,应在命令的结尾加上符号( A )A.& B. @ C. # D. $14. 如果执行命令#chmod 746 file.txt,那么该文件的权限是( A )。
linux 试题及答案

linux 试题及答案第一部分:选择题1. Linux 是一种()操作系统。
a) 开源b) 闭源c) 商业d) 私有答案:a) 开源2. 在 Linux 中,用于显示当前所在路径的命令是()。
a) pwdb) lsc) cdd) cp答案:a) pwd3. 在 Linux 中,用于创建目录的命令是()。
a) mkdirb) touchc) rmd) mv答案:a) mkdir4. Linux 中,用于列出当前目录下的文件和文件夹的命令是()。
a) lsb) cdc) pwdd) rm答案:a) ls5. 在 Linux 中,用于复制文件的命令是()。
a) cpb) mvc) touchd) mkdir答案:a) cp第二部分:填空题1. Linux 操作系统的核心部分被称为()。
答案:内核2. Linux 中,用于修改文件或目录的权限的命令是()。
答案:chmod3. 在 Linux 中,用于压缩文件的命令是()。
答案:tar4. Linux 是基于()开发的操作系统。
答案:UNIX5. Linux 中,默认的超级用户账户是()。
答案:root第三部分:简答题1. 什么是 Linux 操作系统?答:Linux 是一种开源操作系统,它基于 UNIX 操作系统开发而成。
Linux 以其稳定性、可定制性和安全性而闻名,并广泛运用于服务器和嵌入式设备等领域。
2. 如何在 Linux 中创建一个新用户?答:可以使用 `useradd` 命令来创建一个新用户,例如 `useradd -m newuser`。
其中,`-m` 参数表示同时创建用户的主目录。
3. 如何修改文件的访问权限?答:可以使用 `chmod` 命令来修改文件的访问权限。
例如,要将文件的所有者权限设置为可读可写可执行,可以使用 `chmod u+rwx filename` 命令。
4. 如何在 Linux 中安装软件包?答:可以使用包管理器,如 `apt` (用于 Debian 系统)或 `yum` (用于 Red Hat 系统),来安装软件包。
linux考试试题及答案

Linux考试试题及答案一、选择题1、在/etc/fstab 文件中指定的文件系统加载参数中,那个参数一般用于CD-ROM 等移动设备(D )A. defaultsB. swC. rw 和 roD. noauto2、Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是(C)A. 文件类型B. 文件所有者的权限C. 文件所有者所在组的权限D. 其他用户的权限3、在使用 mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D)A. -mB. -dC. -fD. -p4、一台主机要实现通过局域网与另一个局域网通信,需要做的工作是(C)A. 配置域名服务器B. 定义一条本机指向所在网络的路由C. 定义一条本机指向所在网络网关的路由D. 定义一条本机指向目标网络网关的路由5.下列提法中,不属于 ifconfig 命令作用范围的是(D)A. 配置本地回环地址B. 配置网卡的 IP 地址C. 激活网络适配器D. 加载网卡到内核中6、下列关于链接描述,错误的是(B)A. 硬链接就是让链接文件的 i 节点号指向被链接文件的 i 节点B. 硬链接和符号连接都是产生一个新的 i 节点C. 链接分为硬链接和符号链接D. 硬连接不能链接目录文件7、下列文件中,包含了主机DNS 配置信息的文件是(C )A. /etc/host.confB. /etc/hostsC. /etc/resolv.confD. /etc/networks8、那个命令可以从文本文件的每一行中截取指定内容的数据(D)A.cpB.ddC.fmtD.cut9、Linux 有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用(C)命令。
A.catB.moreC.lessD.menu10、对名为 fido 的文件用 chmod 551 fido 进行了修改,则它的许可权是(D)A.-rwxr-xr-xB.-rwxr--r--C.-r--r--r--D.-r-xr-x—x11、文件 exer1 的访问权限为 rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(A)A.chmod a+x g+w exer1B.chmod 765 exer1C.chmod o+x exer1D.chmod g+w exer112、有关归档和压缩命令,下面描述正确的是(C)A.用 uncompress 命令解压缩由 compress 命令生成的后缀为.zip 的压缩文件B.unzip 命令和 gzip 命令可以解压缩相同类型的文件C.tar 归档且压缩的文件可以由 gzip 命令解压缩D.tar 命令归档后的文件也是一种压缩文件13、下列那一项不是进程和程序的区别(B)A.程序是一组有序的静态指令,进程是一次程序的执行过程B.程序只能在前台运行,而进程可以在前台或后台运行C.程序可以长期保存,进程是暂时的D.程序没有状态,而进程是有状态的14、下列关于/etc/fstab 文件描述,正确的是(D)A.fstab 文件只能描述属于 linux 的文件系统B.CD_ROM 和软盘必须是自动加载的C.fstab 文件中描述的文件系统不能被卸载D.启动时按 fstab 文件描述内容加载文件系统15、如果想配置一台匿名 ftp 服务器,应修改那个文件(C)A./etc/gatewayB./etc/ftpserversC./etc/ftpusersD./etc/inetd.conf16、关于进程调度命令,那一项是不正确的(B)A.当日晚 11 点执行 clear 命令,使用 at 命令:at 23:00 today clearB.每年 1 月 1 日早上 6 点执行 date 命令,使用 at 命令:at 6am Jan 1 dateC.每日晚 11 点执行 date 命令,crontab 文件中应为:0 23 * dateD.每小时执行一次 clear 命令,crontab 文件中应为:0 */1 * clear17、可以完成主机名与 IP 地址的正向解析和反向解析任务的命令是(A)A.nslookupB.arpC.ifconfigD.dnslook18、将光盘/dev/hdc 卸载的命令是(C)A.umount/dev/hdcB.unmount/dev/hdcC.umount/mnt/cdrom /dev/hdcD.unmount/mnt/cdrom /dev/hdc19、用 ftp进行文件传输时,有两种模式(C)E.Word 和 binaryF.txt 和 Word DocumentG.ASCII 和 binaryH.ASCII 和 Rich Text Format20、crontab 文件由六个域组成,每个域之间用空格分割,其排列如下(B)I.MIN HOUR DAY MONTH YEAR COMMANDJ.MIN HOUR DAY MONTH DAYOFWEEK COMMANDMAND HOUR DAY MONTH DAYOFWEEKMAND YEAR MONTH DAY HOUR MIN二、填空题1. 在Linux系统中,以文件方式访问设备。
Linux C(刘学勇 编著)各章习题答案

return 0;
}
三、上机题
1、
#include <stdio.h>
main()
{
char a;
while(1)
{
scanf("%c",&a);
if(a=='q')
return ;
printf("%c", a);
}
}
2、
#include <stdio.h>
int main(int argc , char *argv[])
if(write(target_fd, iobuffer, num)!=num)
{
printf("Target file write error!\n");
return 4;
}
close(source_fd);
close(target_fd);
return 0;
}
2、
#include <sys/types.h>
{
printf("Target file open error!\n");
return 3;
}
while((num=read(source_fd, iobuffer, BUFSIZE))>0)
{
for(i=0;i<num;i++)
{
if(iobuffer[i]>='a' &&iobuffer[i]<='z')
_exit(0);
}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华清远见嵌入式学院《Linux及C》考试题(B卷) 一、选择题(23题,每空2分,共46分) 1. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项( D )。 A.-m B.-d C.-f D.-p
2. 任何时候用户需要回到用户主目录时可以使用命令 ( A ) 。 A. cd B. pwd C. path D. cd .
3. 将当前目录下的文件shell.sh移动到目录/home/linux下的命令为( B ) 。 A. cp shell.sh /home/linux B. mv shell.sh /home/linux C. ls shell.sh / home/linux/she ll.sh D. mv /root/shell.sh /home/linux/shell.sh
4. 下面( C )命令不能用来显示文件的内容。 [A] more [B] less [C] find [D] cat
5. /etc/shadow文件中存放( B )。 A.用户账号基本信息 B.用户口令的加密信息 C.用户组信息 D.文件系统信息
6. LINUX所有服务的启动脚本都存放在( B )目录中。 A./etc/rc.d/init.d B./etc/init.d C./etc/rc.d/rc D./etc/rc.d
7. 若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为( C )。 A.tar -cvf myfile.txt myfile.txt.tar.gz B.tar -zcvf myfile.txt myfile.txt.tar.gz C.tar -zcvf myfile.txt.tar.gz myfile.txt D.tar -cvf myfile.txt.tar.gz myfile.txt
8. 以下程序的运行结果为( C ) #include #include
int SubCount(char *dest, int count) { strcpy(dest,"555"); count++; return 0; } int main() { int count = 3; char caBuf[8]; SubCount(caBuf,count); printf("%d\n",count); return 0; } [A] 8 [B] 4 [C] 3 [D] 5
9. 下面的代码输出是( A ) void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts("<= 6"); }
[A] > 6 [B] <= 6 10. C语言中,逻辑“真”等价于( C )。 [A] 大于零的数 [B] 大于零的整数 [C] 非零的数 [D] 非零的整数
11. 删除文件命令为( D ) A.mkdir B.move C.mv D.rm
12. 假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( D )。 [A].fileB也随之被删除 [B].因为fileB未被删除,所以fileA会被系统自动重新建立 [C].fileB会随fileA的删除而被系统自动删除 [D].fileB仍存在,但是属于无效文件
13. 下面不是对Linux操作系统特点描述的是( B )。 [A] 良好的可移植性 [B] 单用户 [C] 多用户 [D] 多任务
14. 在C语言中,要求运算数必须是整型的运算符是( D )。 [A] / [B] ++ [C] != [D] %
15. 下述程序的输出结果是( C )。 int main(void) { int Y=100; while(Y--); printf(“Y=%d”,Y); }
[A] Y=0 [B] Y=1 [C] Y=-1 [D] Y=随机数 16. 目前流行的两种软件包管理机制,Debian使用( D )软件包,Redhat使用( B )软件包。 [A] tgz [B] rpm [C] tar [D] deb 17. 在给定文件中查找与设定条件相符字符串的命令为( A )。 A.grep B.gzip C.find D.sort
18. 刷新文件时间戳可以使用的命令为( D )。 A.chmod B.more C.ls D.touch
19. 文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用的写权限,下列命令中正确的是( C )。
A. chmod u+x g+w exer1 B. chmod 646 exer1 C. chmod a-x g+w exer1 D. chmod g+w exer1
20. Linux终端执行temp=world;echo hello $temp 上述命令执行的结果为(C)。
[A] . helloworld [B]. hello$temp [C]. hello world [C]. hello
21. 在32位系统下小端系统,并4字节对齐的条件下, union u_union { unsigned int ivar; char cvar; short svar; }uu; uu.ivar = 0x12345678; iu.cvar = ( D );
A.0x12345678 B.0x5678 C.0x12 D.0x78 22. /*pointer and function */ main() { int a[50],n; ........... fun(n,&a[9]); ........... }
Which is incorrect ( D ) [A] void fun(int m,int x[]); [B]. void fun(int s,int h[41]) ; [C]. void fun(int p,int *s) ; [D]. void fun(int n,int a) ;
23. 一位法官在审理一起盗窃案中,对涉及到的四名嫌疑犯甲、乙、丙、丁进行了审问。四人分别供述如下: 甲说:“罪犯在乙、丙、丁三人之中。” 乙说:“我没有做案,是丙偷的。” 丙说:“在甲和丁中间有一人是罪犯。” 丁说:“乙说的是事实。”
经过充分的调查,证实这四人中有两人说了真话,另外两人说的是假话。 那么,请你对此案进行裁决,确认谁是罪犯?( A )
[A]、乙和丁是盗窃犯 [B]、乙和丙是盗窃犯 [C]、乙是盗窃犯 [D]、甲和丁是盗窃犯
二、填空题(6题,每题2分,共12分) 1. 管道 就是将前一个命令的标准输出作为后一个命令的标准输入 2. make工程管理器根据( 时间戳 )来自动发现更新过的文件从而减少编译的工作量。 3. 将命令“command”的标准输出重定向到文件“file”中的方法是 command > file 。 4. GCC编译器中 -S 选项完成的工作是 只激活预处理和编译,而不进行链接,生成汇编代码 5. 在Linux下调试c程序时,在提示符(gdb)下输入b 10表示 将断点设置在第十行 6. 给了一个结构体, struct A{ char a ; char b ; char c ; short d; int e; short f; }; 求sizeof(struct A) = 24
三.简答题(3题,每题4分,共12分) 1. 什么是链接?符号链接与硬链接的区别是什么? 链接是指用一个i节点对应多个文件名。硬链接是把文件的i节点号指向该i节点, 且链接计数器值加1。删除链接文件时计数器值减1,当其值为0时,i节点被释放。 符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。在删除符号链接文件时与硬链接文件有区别。
2. 配置Ubuntu主机上网简要操作步骤是什么? 1. 修改/etc/network/interfaces配置文件 2. 重启网络服务:sudo /etc/init.d/networking restart 3.系统中的gcc软件太老了,我该怎么更新它? 1.sudo apt-get update 2.sudo apt-get install –reinstall gcc
四、编程题(3题,每题10分,共30分) 1.给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求允许使用第三方变量保存数据,但可以使用辅助变量指针等。
这道题主要考察字符串的遍历查找以及分类处理,首先确定算法,我们可以这样处理字符串:
1. 将字符串整体导致:“anihc evol i” 2. 然后再次遍历字符串,将每个单词倒置:“china love i” 确定完算法后就可以用程序进行操作了,以下是程序的实现过程: #include < stdio.h> #define N 32 int swap(char *head, char *tail); int main() { char buff[N]; char *head = buff, *tail = buff; //先讲尾指针定位到字符串尾部。 While(‘\0’!= *tail) tail ++; //调用swap函数将整个字符串倒置。 swap(buff,tail - 1); //主函数开始扫描遍历整个倒置后的字符串。 while('\0' != *head) { //查找单词头。 while(32 == *head) head ++; //找到头后将尾定位到头,开始找单词尾。 tail = head; while(32 != *tail && '\0' != *tail)