LinuxC语言实验指导书资料

上传人:f****u 文档编号:109053673 上传时间:2019-10-26 格式:PDF 页数:39 大小:385.24KB
返回 下载 相关 举报
LinuxC语言实验指导书资料_第1页
第1页 / 共39页
LinuxC语言实验指导书资料_第2页
第2页 / 共39页
LinuxC语言实验指导书资料_第3页
第3页 / 共39页
LinuxC语言实验指导书资料_第4页
第4页 / 共39页
LinuxC语言实验指导书资料_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《LinuxC语言实验指导书资料》由会员分享,可在线阅读,更多相关《LinuxC语言实验指导书资料(39页珍藏版)》请在金锄头文库上搜索。

1、Linux C 语言实验指导书语言实验指导书 一一、Vi 使用练习使用练习 1实验目的 通过指定指令的Vi操作练习,使读者能够熟练使用Vi中的常见操作,并且熟悉Vi 的3 种模式,如果读者能够熟练掌握实验内容中所要求的内容,则表明对Vi的操作已经很熟练 了。 2实验内容 (1)在“/root”目录下建一个名为“/Vi”的目录。 (2)进入“/Vi”目录。 (3)将文件“/etc/inittab”复制到“/Vi”目录下。 (4)使用Vi 打开“/Vi”目录下的inittab。 (5)设定行号,指出设定initdefault(类似于“id:5:initdefault”)的所在行号。 (6)将光标移

2、到该行。 (7)复制该行内容。 (8)将光标移到最后一行行首。 (9)粘贴复制行的内容。 (10)撤销第9 步的动作。 (11)将光标移动到最后一行的行尾。 (12)粘贴复制行的内容。 (13)光标移到“si:sysinit:/etc/rc.d/rc.sysinit”。 (14)删除该行。 (15)存盘但不退出。 (16)将光标移到首行。 (17)插入模式下输入“Hello,this is Vi world!”。 (18)返回命令行模式。 (19)向下查找字符串“0:wait”。 (20)再向上查找字符串“halt”。 (21)强制退出Vi,不存盘。 分别指出每个命令处于何种模式下? 3实验步

3、骤 (1)mkdir /root/Vi (2)cd /root/Vi (3)cp /etc/inittab ./ (4)Vi ./inittab (5):set nu(底行模式) (6)17(命令行模式) (7)yy (8)G (9)p (10)u (11)$ (12)p (13)21G (14)dd (15):w(底行模式) (16)1G (17)i 并输入“Hello,this is Vi world!”(插入模式) (18)Esc (19)/0:wait(命令行模式) (20)?halt (21):q!(底行模式) 4实验结果 该实验最后的结果只对“/root/inittab”增加了一行

4、复制的内容:“id:5:initdefault”。 二二、用用Gdb调试有问题的程序调试有问题的程序 1实验目的 通过调试一个有问题的程序,使读者进一步熟练使用Vi 操作,而且熟练掌握Gcc 编译 命令及Gdb 的调试命令 2实验内容 (1)使用Vi 编辑器,将以下代码输入到名为greet.c 的文件中。此代码的原意为输出倒 序main函数中定义的字符串,但结果显示没有输出。代码如下所示: #include int display1(char *string); int display2(char *string); int main () char string = “Embedded Li

5、nux“; display1 (string); display2 (string); int display1 (char *string) printf (“The original string is %s n“, string); int display2 (char *string1) char *string2 = NULL; int size = 0, i = 0; size = strlen (string1); string2 = (char *) malloc (size + 1); for (i = 0; i c)?t : c; printf(“max=%d”,max);

6、 学员可利用此程序,考虑怎样修改求出三个数中的最小值。 (2) 先读下面程序,分析出程序的执行结果,然后再上机运行,结果是否一 致。 main() int x,y=1,z; if (y!=0) x=5; printf(“x=%dt”,x); if (y= =0) x=3; else x=5; printf(“x=%dtn”,x); x=1; if(z0) x=3; else x=5; printf(“x=%dtn”,x); if (z=ymax) max=s; sum=sum+s;n=n+1; a=sum/n; printf(“max=%f,a=%fn”,max,a); (4) 求21000之

7、间的全部素数(每行显示10个数)。 #include “math.h” main() int m=3,k,i,n=1; printf(“%7d”,2); do if(n%10=0) printf(“n”); k=sqrt(m); for(i=2;i=k+1) printf(“%8d”,m); n+; while m1000; printf(“n”); (5 ) 打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * 六六、数组的使用数组的使用 1实验目的实验目的 1 掌握数组的概念和使用方法。 2 掌握数组初始化的方法。 3学会字符数组

8、和字符串的应用。 4 学会用数组名作函数的参数。 2实验过程实验过程 三 实验内容和步骤 (1) 定义三个数组 int a5; int b22; char c10; 1( )分别在函数体外和函数体内对它们进行初始化,然后输出 它们的值。 5( )在程序中再加一语句,输出a5,b22 ,分析结果。 6( )对 C数组改为用赋值语句给各元素赋初值:c0 c9各元素分别为: I, , a, m, , b, o, y。然后用 printf(“%s”,c)输出字符串,分析结果。 参考程序如下: main() int i,x,y; static int a5=1,2,3,4,5; static int b

9、32=3,4,6,7,9,5 static char c10= i, l, p, q, k, s, d, e, a; for(i=0;i0,要显示出计算结果。 编程并上机调试。 #include long int ack(int m,int n) long int value; if(my)? x:y; k=(tz)? t: z; return(k); min(int x,int y,int z) int k,t; t=(xscore); p=p-next; main() stuct student *hend printf(“input score:n”); head=creat();/*建

10、立单链表*/ print(head);/*便历单链表*/ 5. 参照上题设计程序,建立一个堆栈结构的单链表,便历这个链表,在某一转点 后插入新结点,删除指定结点. 实验九实验九 位运算位运算 一 实验目的要求 1 掌握按位运算的概念和方法,学会使用位运算符。 2 学会通过位运算实现对某些位的操作。 3 掌握有关位运算的算法。 二 实验内容和步骤 编写程序上机调试并运行。 1 编写一程序,检查所用计算机系统的 C 编译执行右移时是按逻辑右移的原则还 是按照算术右移的原则?如为逻辑右移,写一函数实现算术右移,如是算术右移, 编写一函数实现逻辑右移。 2编写一程序,将一个整数i的高字节和低字节分别输

11、出(用位运算方法)。 3编写一个函数 getbits,从一个16 位的单元中取出某几位(取出的几位保 留原值,其余位为0)。函数调用形式为getbits(value,n,m),其中value为 该 16 位数的值 ,n 为要 取出的 起始 位 ,m 为要 取出的结 束位 。如 getbits(016135,4,7) 表示对八进制数16135取出左边起的第4位到第7位。 *4 设计一函数,当给出一个整数后,能得到该数的补码(注:此整数可正可 负)。 实验十实验十 文件文件 一 实验目的要求 1 掌握文件和文件指针的概念及文件的定义方法。 2 学会使用文件的打开、关闭、读、写等文件操作函数。 3

12、掌握用缓冲文件系统对文件进行基本的操作。 二 实验内容和步骤 编写程序并上机调试运行。 1 下面为5个学生的学习成绩表,从键盘上输入这些数据,计算平均成绩,将原 有数据及计算出的平均成绩存放在磁盘文件“stud”中。 学号(num)姓名 (name) 成绩1 (grad1) 成绩2 (grad2) 成绩3 (grad3) 20101Wangming 85 88.5 96 20103 Lilin 86.5 82.5 95 20109Zhangming 98 96.5 91.5 20111Zhaohan 72.5 77.5 89.5 20113 Xujun 61.5 68 88.5 2 将上题“s

13、tud”文件中的学生数据,按平均分(降序)排序处理,将已排序 的学生数据存入一个新文件“studsort”中。 3 将已经排好序的学生成绩文件进行插入处理,要插入学生数据为 20106 Liulei 82.5 91.5 96 要求插入后按平均成绩仍为有序的。插入后建立一个 新文件。 三 习题 1. 下列说法哪些是错误的? (1).c 语言的文件是指存放在外部介质上的有组织的数据的集合 (2).C 语言的文件包括联在计算机的所有输入输出设备 (3).C 语言把文件当作一个字节流或二进制流。 (4).C 语言文件是由有组织的记录构成的 (5).在 C语言中对文件的存取是以二进制位问单位的 (6).

14、 在C语言中对文件的存取都是通过缓冲区进行的 (7). 在缓冲文件系统中FILE是系统定义的文件指针变量 (8).在 C 语言中,访问一个文件是通过指向该文件恶毒指针变量实现的。 (9).文件访问完毕都该用close 函数将文件关闭。 (10).磁盘既可以存放顺序文件,也可以存放随机文件: 2.下面的程序完成的功能是:先生成具有有n个数据的文件a, 再将文件复制到 文件 b. #define N 100l /*可修改为任意整数*/ #define NULL O main() char namea20, nameb20,ch; int x,I,buffN;/*文件数据类型,可修改*/ FILE

15、*pa, *pb; Printf(“Enter file a nama:n”) Scanf(“%s”, namea); /*键入外部文件名*/ Printf(“enter file b name:n”); Scanf(“%s”,name b); /*键入外部文件名*/ /* 生成文件 name a */ if(pa=fopen(namea,” wb”)=NULL) PRINTF(“CANNOT OPEN FILE:%SN”,NAEMA); exit(0) i=0; While(i)左边的域名不是结构的 一部分;或者点的左边不指向结构。 4.ambiguous operators need pa

16、rentheses 二义性操作符需要括号。如:两个位移、关系或按位操作符在一起使用而不加括 号,一加法或减法操作符不加括号与一位操作符出现在一起 5.both return and return of a value used 即用返回又用返回值。编译程序发现一个与前面的 RETURN 语句不一致的 RETURN 语句。当某函数只在部分RETURN 语句中返回值时,一般会发生本错 误。 6.call to function with prototype 调用无原型函数。“原型请求”警告可用,且又调用了一无原型函数。 7.call to function xxxx with prototype 调用无原型的xxxx函数。原型

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号