ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:80KB ,
资源ID:4009684      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4009684.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(嵌入式Linux面试试题库汇总.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

嵌入式Linux面试试题库汇总.doc

1、 嵌入式Linux系统基础试题库 一.不定项选择题: 1. 对于如下的定义,说法正确的有( A ) int * pb,pc; A、pb是一个指向整数的指针,pc是一个整数 B、pb和pc都是指向整数的指针 C、这个定义是错的 D、这个定义是对的,但在编译时会出现告警 2. 以下描述正确的有( D ) A、sizeof(long)等于4. B、short类型的指针p,p++表示指向下一个字节。 C、int a=0xffff0000,a的值为-65535. D、unsigned char类型的

2、取值范围是0~256. 3. 以下代码正确的是( C ) A、char a[]={“ABC”}; B、char a=”k”; c、char a[4]={0}; d、char a[11]=”Hello word!”; 4. 下面的网络协议中,面向连接的的协议是: A 。 A、传输控制协议 B、用户数据报协议 C、网际协议 D、网际控制报文协议 5. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C 。 A、文件类型 B、文件所有者的权限 C、文件所有者所在组的权限 D、其他用户的权限 6. 终止一个前台进程可能用到的命令和操作 B 。 A、k

3、ill B、+C C、shut down D、halt 7.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D 。 A、-m B、-d C、-f D、-p 8. 下面关于i节点描述错误的是 A 。 A、i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应) B、i节点能描述文件占用的块数 C、i节点描述了文件大小和指向数据块的指针 D、通过i节点实现文件的逻辑结构和物理结构的转换 9. 一个文件名字为rr.Z,可以用来解压缩的命令是: D 。 A

4、tar B、gzip C、compress D、uncompress 10. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 C 。 A、配置域名服务器 B、定义一条本机指向所在网络的路由 C、定义一条本机指向所在网络网关的路由 D、定义一条本机指向目标网络网关的路由 11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 B 。 A、route add –net 192.168.1.0 gw 192.168.1.1 ne

5、tmask 255.255.255.0 metric 1 B、route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 C、route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 D、route add default 192.168.1.0 netmask 172.168.1.1 metric 1 12. 下列提法中,不属于ifconfig命令作用范围的是 D 。 A、配置本地回环地址 B、配置网卡的IP地址

6、C、激活网络适配器 D、加载网卡到内核中 13. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 C。 A、主机IP设置有误 B、没有设置连接局域网的网关 C、局域网的网关或主机的网关设置有误 D、局域网DNS服务器设置有误 14. 不需要编译内核的情况是 D 。 A、删除系统不用的设备驱动程序时 B、升级内核时 C、添加新硬件时 D、将网卡激活 15. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A 。 A、直接赋值 B、使用read

7、命令 C、使用命令行参数 D、使用命令的输出 16. D 命令可以从文本文件的每一行中截取指定内容的数据。 A、cp B、dd C、fmt D、cut 17. 下列不是Linux系统进程类型的是 D 。 A、交互进程 B、批处理进程 C、守护进程 D、就绪进程 18. 内核不包括的子系统是 D 。 A、进程管理系统 B、内存管理系统 C、I/O管理系统 D、硬件管理系统 19.若一台计算机的内存为128MB,则交换分区的大小通常是 C 。 A 64MB B 128MB C 256MB D 512MB 20.在TCP/IP模型中,应用层包含了所有的高层协议,

8、在下列的一些应用协议中, B 是能够实现本地与远程主机之间的文件传输工作。 A telnet B FTP C SNMP D NFS 21. 用ls –al 命令列出下面的文件列表, D 文件是符号连接文件。 A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang D lrwxr--r-- 1 hel users 2024 Sep 12 0

9、8:12 cheng 22. DNS域名系统主要负责主机名和 A 之间的解析。 A IP地址 B MAC地址 C网络地址 D主机别名 23. WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构。 A 服务器/工作站 B B/S C 集中式 D 分布式 24.NFS是 C 系统。 A 文件 B 磁盘 C 网络文件 D 操作 25.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中。 A /bin B /etc C /dev D /lib 26. 如果限定程序的栈的大小是1K字节,则以下代码,运行时会出错的

10、有( C ) A.foo.c static int iA[512]; int main( ) {return θ;} B. foo.c int main( ) { static int iA[512] return θ; } C. foo.c int main( ) { int iA[512] return θ; } D. foo.c int main( ) { Int*piA piA=malloc(512*sizeof(int)); return θ; } 27. 以下代码最后一次打印结果是(C ) void f

11、un(int iInputNum) { static int iCount=1; iCount=iCount+iInputNum; Print(“\n iCount =%d”,icount+iInputNum); } for(i=1;i<3;i++) { Fun(i); } A.iCount =3 B.iCount =4 C.iCount =6 D.iCount =5 28. 关于以下代码,输出结果是( A ) Void Fun( ) { Int i; Int x[3][3]={1,2,3,4,5,6,7,8,

12、9}; Int *p; P=& x [1][1]; For(i=0;i<4;i+=2) Printf(“%d”,p[i]); } A.5 7 B.5 9 C.1 3 D.1 5 29. 以下语句中,能够判断uiNum(unsigned int)可以被8整除的有( ACD) A、If (((uiNum / 8)*8)== uiNum) B、if ((uiNum % 8)== 1) C、if ((uiNum &θ×θ7) ==θ) D、if (((uiNum >> 3) << 3 )==uiNum ) 30. 关于以下代码

13、描述正确的有(ABCD) 代码Ⅰ: const char * pcStr=”abcdefg”; char *pcStr=”abcdefg” 代码Ⅱ: void string_sizeof(char szStr1[10]) { char szStr2[10]=”12345”; printf(“%u,”, sizeof(szStr1)); printf(“%u\r\n,”, sizeof(szStr2)); return; } int main( ) { string_sizeof

14、12345”); 代码Ⅲ pcStr[3]=”a”; 代码Ⅳ unsigned int uiA=100; printf(“%s\r\n,”, uiA); return 0; } A、代码Ⅰ,const修饰符表明pcStr指针不能再次被赋值,也就是说不能指向其他缓冲区. B、代码Ⅱ,程序的运行结果是“4,10”. C、代码Ⅲ,对pcStr[3]的赋值会导致程序访问非法地址. D、代码Ⅳ,打印unsigned int时不应该使用“%s”,会导致程序访问非法地址。 31. 关于结构的大小,以下描述正确的有(AB) struct A_S

15、 struct B_S { { unsigned short us1; unsigned char uc1; unsigned short us2; unsigned int uc2; unsigned short us3; unsigned short us3; };

16、 }; union C_U union D_U { { unsigned int ui1 unsigned char uc2; unsigned char uc2; unsigned short us3; unsigned short us3; unsigned in

17、t ui1; }; }; A、结构struct A_S的大小是6 B、结构struct B_S的大小是12 C、联合union C_U的大小是12 D、联合union D_U的大小是12 32.有如下链表和节点D,将D替换B,并删除B,以下代码正确的有( AD ) 单链表: A C B AA pstNext pstNext PstA pstB D

18、 partD 双链表: pstNextC B A pstNext pstPre pstPre PstA pstB D pstD struct SLL {

19、 struct SLL *pstNext;/* 下一结点*/ }; struct DLL { struct DLL*pstNext;/* 下一结点*/ struct DLL*pstPrev;/* 前一结点*/ }; A. pstB=pstB->patNext; pstD->pstNext=pstB; pstA->pstNext=pstD; free(pstB); B. pstA->pstNex

20、t=pstD; pstD->pstNext=pstA->pstNext-pstNext; free(pstB); C. pstA->pstNext-pstNext-pstpre=pstD; pstD->pstNext=pstA->pstNext->pstNext; pstD->pstpre=pstB->pstpre; pstA->pstNext=pstB->pstNext-pstpre; free(pstB); D. pstD->pstNext=pstB->pstNext; pstD->pstNext->pstpre=pstD; pstD->pstpre=pst

21、A; pstA->pstNext=pstD; free(pstB); 33.实现从IP地址到以太网MAC地址转换的命令为: C 。 A、ping B、ifconfig C、arp D、traceroute 34.在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。 A、 B、 C、 D、A 35.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A 。 -rwxr-xr-- 1 root root 599 Cec 10 17:12 ff A、普通文件 B、硬链接 C、目录 D、符号链接 36.删除

22、文件命令为: D 。 A、mkdir B、rmdir C、mv D、rm 37.DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配___D______地址。 A、网络 B、MAC C、TCP D、IP 38.为了保证在启动服务器时自动启动DHCP进程,应将 A文件中的dhcpd=no改为dhcpd=yes。 A、rc.inet1 B、lilo.conf C、inetd.conf D、httpd.conf 39.对文件进行归档的命令为 D 。 A、dd B、cpio C、gzip D、ta

23、r 40.改变文件所有者的命令为 C 。 A、chmod B、touch C、chown D、cat 41. 某32位系统下, C程序,请计算sizeof的值(A). char str[] = “”; char *p = str ; int n = 10; 请计算 sizeof (str ) =?() A、17 B、16 C、15 D、18 42. 某32位系统下, C程序,请计算sizeof的值(B) char str[] = “” char *p = str ; int n = 10; 请计算 sizeof ( p ) =()? A、5 B、4

24、 C、6 D、3 43. 这段程序的输出是(B) void f(char**); main() { char * argv[] = { "ab" ,"cd" , "ef" ,"gh", "ij" ,"kl" }; f( argv ); } void f( char **p ) { char* t; t=(p+=sizeof(int))[-1]; printf("%s",t); } A、ab B、cd C、ef D、gh 44.在给定文件中查找与设定条件相符字符串的命令为: A 。 A、grep B、gzi

25、p C、find D、sort 45.建立一个新文件可以使用的命令为 D 。 A、chmod B、more C、cp D、touch 46.在下列命令中,不能显示文本文件内容的命令是: D 。 A、more B、less C、tail D、join 47.文件权限读、写、执行的三种标志符号依次是 A 。 A、rwx B、xrw C、rdx D、srw 48.Linux 文件名的长度不得超过 C 个字符。 A、64 B、128 C、256 D、512 49.进程有三种状态: C A 准备态、执行态和退出态 B 精确态、模糊态和随机态 C 运行态

26、就绪态和等待态 D 手工态、自动态和自由态 50.crontab文件由六个域组成,每个域之间用空格分割,其排列如下: B 。 A、MIN HOUR DAY MONTH YEAR COMMAND B、MIN HOUR DAY MONTH DAYOFWEEK COMMAND C、COMMAND HOUR DAY MONTH DAYOFWEEK D、COMMAND YEAR MONTH DAY HOUR MIN 二 简答题 1、简述堆和栈的区别 答:栈是编译器自动分配和释放,申请空间小,申请速度快,向低地址扩展的连续区域,存放内容多数有自动进行。 堆是程序员申请和释放,申请空

27、间较大,相对较慢,向高地址扩展的不连续区域,存放内容程序员自己安排。 2、栈和队列有何区别? 答:1、队列先进先出,栈先进后出 2、队列一口插入一口删除,而栈都是一个口 3、遍历数据的速度不同,栈需要开辟空间来遍历数据,而队列只需要指针完成。 3、TCP和UDP之间的区别? 答:TCP:传输控制协议,是一个基于连接的可靠的字节流服务,双方交换数据是必须先建立连接,才能传输数据。超时重发,数据校验,丢弃重复数据,保证数据从一端传到另一端。 UDP:用户数据报协议,是一个简单的面向数据报的运输层协议,不可靠,效率高。 4、进程和线程的区别? 答:1、线程是

28、组成进程的基本单位。 2、进程有独立的地址空间,线程也有一些自己的堆栈和局部变量,但是线程没有独立地址空间,一个进程死掉,整个程序就死掉 5、进程间通信的方式都有哪些,有何区别? 答:1、管道,socket,共享内存,消息队列,信号量级 2、共享内存:效率非常高 6、哪些情况会导致内存泄露?如何避免内存泄露? 答:1、堆内存泄露,一般是指malloc,realloc,New,而未对应的用free或delete释放。 2、系统资源泄漏,指程序使用系统分配的资源或函数,如socket,handle等,而未用相应的函数释放掉。 避免方法:养成良好的编码习惯,在涉及内存

29、代码编写时要谨慎。 7、声明和定义的区别? 答:声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。 8、int(*a[10])(int)表示什么? 答:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。 9、gdb调试的用法?以file.c为例 答:编译gcc –g file.c –o file,然后gdb file运行即可进入GDB调试环境,这时可以设置断点进行跟踪调试例如:break main,然后run,接下来next(简称n),回车就直接默认前一个命令,可以打

30、印变量或指针值print i,遇见函数输入step会进入函数执行,否则不进入。 10、关键字static的作用是什么? 答:关键字static有三个明显的作用: 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2)在模块内(但在函数体内),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。 3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 11、inline与宏的区别 答:宏:预处理阶段不经过安全检查直接替换,不可以对数据成员进行操

31、作。 Inline:编译器经过安全检查之后替换函数调用,既提高代码效率,又经过安全检查,而且还可以对数据成员进行操作。 12、有关内存的思考题 void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str);   strcpy(str, "hello world"); printf(str); }   请问运行Test函数会有什么样的结果? 答:程序崩溃。 因为GetMemory并不能传递动态内存, Test函

32、数中的 str一直都是 NULL。 strcpy(str, "hello world");将使程序崩溃。   char *GetMemory(void) {   char p[] = "hello world"; return p; } void Test(void) { char *str = NULL; str = GetMemory();    printf(str); }   请问运行Test函数会有什么样的结果? 答:可能是乱码。 因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。

33、 void GetMemory2(char **p, int num) { *p = (char *)malloc(num); } void Test(void) { char *str = NULL; GetMemory(&str, 100); strcpy(str, "hello");   printf(str);    } 请问运行Test函数会有什么样的结果? 答: (1)能够输出hello (2)内存泄漏     void Test(void) { char *str = (char *) malloc(100);     strcpy(st

34、r, “hello”);     free(str);          if(str != NULL)     {       strcpy(str, “world”); printf(str); } } 请问运行Test函数会有什么样的结果? 答:篡改动态内存区的内容,后果难以预料,非常危险。 因为free(str);之后,str成为野指针, if(str != NULL)语句不起作用。     13. 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。 答案: #define Min(X, Y) ((X)>(Y)?(Y):(X))  14. 什么是

35、预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 15. 请问以下代码有什么问题: int  main() { char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; } 答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输

36、出结果,但因为越界进行内在读写而导致程序崩溃。 16. 关键字volatile有什么含意?并举出三个不同的例子? 答案:提示编译器对象的值可能在编译器未监测到的情况下改变。 17. 交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3; 答案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b; b = a - b; a = a - b; or a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a ^= b ^= a; 18、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环? 答案:第一方

37、案:while(1) { ;} 第二方案: for(;;) { ;} 第三个方案是用 goto Loop: ... goto Loop; 19、用变量a给出下面的定义 a) 一个整型数(An integer)  b)一个指向整型数的指针( A pointer to an integer)  c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r  d)一个有10个整型数的数组( An array of 10 integers) e) 一个有10个指针的数组,该指针是指向一个整型数的。(

38、An array of 10 pointers to integers)  f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)  g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)  h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions

39、 that take an integer argument and return an integer ) 答案: a) int a; // An integer  b) int *a; // A pointer to an integer  c) int **a; // A pointer to a pointer to an integer  d) int a[10]; // An array of 10 integers e) int *a[10]; // An array of 10 pointers to integers  等价于int *(a[10]); f)

40、int (*a)[10]; // A pointer to an array of 10 integers  g) int (*max_function)(int a); // A pointer to a function a that takes an integer argument and returns an integer h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer 20、 简述嵌入式Linux

41、系统开发流程。 答案:1.操作系统的裁剪。2.嵌入式操作系统内核的配置和编译。 3.文件系统的建立。4用户程序的编写和简单的仿真调试。 5.整体系统的目标板仿真调试。6.系统下载和脱机运行。 三.编程题。 1. 在Linux操作系统下,完成下列任务: 编程实现以下功能 ² 主程序hello.c(打印Hello World!) ² 主程序通过头文件hello.h调用message函数 ² 头文件hello.h(声明message函数) ² message函数由message.c定义(打印This is a message!) 参考答案: hello.c: # incl

42、ude # include # include # include "head.h" int main (int argc,char *argv[]) { printf("Hello World!\n"); message(); return 0; } head.h: void message(void); message.c: # include void message (void){ printf("This

43、is a message!\n"); } 2. 假定你在目录/home/arm下有一个C程序,他由几个单独的文件组成,而这几个文件又分为包含了其他文件,如下图所示: 文件 包含文件 文件 包含文件 main.c stdio.h, table.h list.c list.h symbol.c symbol.h table.c table.h table.h symbol.h, list.h 完成下列任务: (1)编写makefile文件,最终的目标文件为hello(交叉编译器为arm-linux-gcc) (2)给出程序编译执行步骤 答案: 第一步:编写

44、makefile文件 hello: main.o list.o symbol.o table.o gcc -o prog main.o list.o symbol.o table.o main.o: main.c table.h symbol.h list.h gcc -c -o main.o main.c list.o: list.c list.h gcc -c -o list.o list.c symbol.o: symbol.c symbol.h gcc -c -o symbol.o symbol.c table.o: table.c t

45、able.h symbol.h list.h gcc -c -o table.o table.c clean: rm hello *.o 第二步:#make 第三步:执行程序,检测结果。 ./hello 3. C语言实现冒泡排序算法 #include #define LEN 5 Int a[LEN]={5,4,3,2,1}; void bubble_sort(void) { int i,j,flag=1; int temp; for( i=1; (i

46、p=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf("%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4]); } } //-------- Int main(void){ bubble_sort(); return0; } 4. 编写strcpy函数 已知strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串。 1、不调用C++/C的字符串库函数,请编写函数 strc

47、py 答案:char *strcpy(char *strDest, const char *strSrc); {     assert((strDest!=NULL) && (strSrc !=NULL)); // 2分     char *address = strDest;                   // 2分     while( (*strDest++ = * strSrc++) != ‘\0’ )    // 2分        NULL ;     return address ;                          // 2分 } 5.

48、链表题:一个链表的节点结构 typedef struct stNode { int data; struct stNode *next; }Node; 已知链表的头结点head,写一个函数把这个链表逆序。 答案: Node *InvertList(Node *head) { Node *temp = NULL; Node *temp_next = NULL; Node *temp_n_next = NULL; temp = head; temp_next = head->next; /* if head is null or t

49、he next node of head is null then return */ if ((temp == NULL) || (temp->next == NULL)) { return; } header->next = NULL; while(temp_next != NULL) { temp_n_next = temp_next->next; temp_next->next = temp; temp = temp_next; temp_next = temp_n_next; } head = temp; return head; }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服