广州大学《c语言实验手册》

上传人:xzh****18 文档编号:44562133 上传时间:2018-06-14 格式:PDF 页数:23 大小:198.64KB
返回 下载 相关 举报
广州大学《c语言实验手册》_第1页
第1页 / 共23页
广州大学《c语言实验手册》_第2页
第2页 / 共23页
广州大学《c语言实验手册》_第3页
第3页 / 共23页
广州大学《c语言实验手册》_第4页
第4页 / 共23页
广州大学《c语言实验手册》_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《广州大学《c语言实验手册》》由会员分享,可在线阅读,更多相关《广州大学《c语言实验手册》(23页珍藏版)》请在金锄头文库上搜索。

1、C语言实验手册张晓磊 广州大学数学与信息科学学院December 3, 2009Contents1实验一: TC2.0 环境41.1实验目的 . . . . . . . . . . . . . . . . . . . . . .41.2实验步骤 . . . . . . . . . . . . . . . . . . . . . .41.2.1 熟悉环境. . . . . . . . . . . . . . . . . .41.2.2 文件编辑. . . . . . . . . . . . . . . . . .51.2.3 使用 gcc 编译器 . . . . . . . . . . . .

2、. . .82实验二: 分支结构92.1实验目的 . . . . . . . . . . . . . . . . . . . . . .92.2实验步骤 . . . . . . . . . . . . . . . . . . . . . .92.2.1 程序验证. . . . . . . . . . . . . . . . . .92.2.2 程序阅读. . . . . . . . . . . . . . . . . .132.2.3 程序设计. . . . . . . . . . . . . . . . . .143实验三: 循环结构153.1实验目的 . . . . . . . . . .

3、 . . . . . . . . . . . .153.2实验步骤 . . . . . . . . . . . . . . . . . . . . . .153.2.1 程序验证. . . . . . . . . . . . . . . . . .153.2.2 程序阅读(填空). . . . . . . . . . . . . . .163.2.3 程序设计. . . . . . . . . . . . . . . . . .184实验五: 函数194.1实验目的 . . . . . . . . . . . . . . . . . . . . . .192CONTENTS34.2 实验步骤

4、. . . . . . . . . . . . . . . . . . . . . .194.2.1 程序验证. . . . . . . . . . . . . . . . . .194.2.2 程序设计. . . . . . . . . . . . . . . . . .23Chapter 1实验一: TC2.0 环境1.1实验目的熟悉编程环境。掌握编辑器和编译器的使用。1.2实验步骤1.2.1熟悉环境A.列文件和当前目录1 打开 cygwin 的 bash shell;2 当前目录是什么?(可从命令行提示符看出,或使用 pwd 命 令。)3 当前目录下有什么文件?(用 ls 命令),其中哪

5、些文件是目录?0 命令通常都带有帮助文档,以 ls 为例,试一下 man ls 或 ls -help.B.在目录间转移1 尝试用 cd 命令进入下级目录;2 尝试用 cd . 命令进入上级目录;3 cd . 是什么?你觉得 . 是什么?4 反复执行 cd .,最后你碰到了什么情况?41.2.实验步骤55 / 是什么?6 画一棵树,以直观的方式显示 / 到 etc 的路径以及 / 到你用 户目录的路径。C.在目录间快速转移1 如何进入上级目录;2 如何进入根目录;3 如何进入用户目录?4 cd - 是什么?D.建立目录,删除目录1 在自己的用户目录中建立目录 foo。尝试进入、退出此目录。2 删

6、除前面建立的目录 foo。3 在自己的用户目录中建立目录 foo,在 foo 中建立目录 bar。4 直接用 rm 可以删除 foo 吗? 为什么?5 设法删掉 foo。1.2.2文件编辑A.打开,退出Emacs1 回到用户目录,键入 eamcs 启动 eamcs;2 用 C-xC-c 退出 emacs。3 若无法退出,可以用 M-xsave-buffers-kill-emacs 退出。当我们使用组合键来使用 Emacs 时,组合键被映射为相应的函数。 这些函数通常是用 C 或 elisp 实现的。后者是 emacs 内嵌的一种 lisp 方言。Emacs 的很多扩展都是用 elisp 写成的

7、。C-xC-c无法退出的原因是 cygwin 终端拦截取了我们的组合 键 C-c。可以通过调整终端的设置来解决这个问题,也可以通过直 接调用函数的方式绕过被拦截的组合键。调用函数的方法为键入组合 键 M-x,此时光标会跳到屏幕的下方,键入需要执行的函数名就可以 了。比如退出 emacs 的命令为 save-buffers-kill-emacs。如果觉 得命令太长,记不住,可用Tab键获取提示。出了问题使用救命 键。6CHAPTER 1.实验一: TC2.0 环境救命键:C-g 。B.输入、删除、小幅度移动1 打开 emacs,随便键入若干行文件;2 使光标上移一行,下移一行的组合键是什么?3

8、使光标左移一格,右移一格的组合键是什么?4 使光标跳到行首,行末的组合键是什么?5 使光标向前或后移,跨度为一个词的组合键是什么?6 如何删除一个字符?删除一行呢?7 如何撤销前一次操作?C.大幅度移动1 到文件头,文件尾的组合键是什么?2 向上、向下卷屏的组合键是什么?3 卷屏,把当前行卷到中间位置的组合键是什么?D.保存,打开文件1 打开文件的组合键是什么?2 保存文件的组合键是什么?3 另存为的组合键呢?E.复制和粘贴Emacs 中复制文本的方式与一般编辑器不同,有必要在这里讲一下。 我们可以用两个点来标记一段文本,即要选文本开始处和结束处。先 在其中一个点出设置一个标记,叫 mask,

9、其实不过是记住了当 时的光标位置。然后把光标移动到另一个点,此时就标记或选择了 一段文本。根据你使用 emacs 的设置,选定的文本可能被高亮了, 也可能没有,但差别仅仅是视觉上的。文本选定之后,就可以进行删 除,复制,和粘贴了。设置标记的组合键为C- ,注意这里实际上你要按三个键。相应的 函数为 set-mark-command,可以简单地通过 M-x 来执行它。删除选定文本的组合键为 C-w ,复制选定文本的组合键为 M-w 。Emacs 中也有类似剪切板的概念,叫做 kill-ring,它可以保存多 次删除的内容。你可以C-y来粘贴 kill-ring 中的当前项,通1.2.实验步骤7常

10、它就是你最近复制的内容。如果你需要 kill-ring 中其它内容, 可以在C-y后再不断M-y ,直到你所需要的内容出现为止。正如 kill-ring 名字所暗示的,所有内容被组织成一个环,则 M-y 会转 动这个环。kill-ring 中能保存的项数是可以设置的,如果在满了 的情况下仍继续复制,则 emacs 会丢弃最早复制的项。1 反复使用C-k删除连续的多个行,然后把光标移动到另一个 位置,再键入 C-y ,结果是什么?2 你能用这种方式实现多行复制吗?原来被删除调的行怎么办?3 尝试选定一段文本,并复制,粘贴到另一个地方。4 选择另一段文本,复制,粘贴。5 你能从 kill-ring

11、 里粘贴出第一次复制的内容吗?我们使用的 Emacs 版本为 2.1。在最新的 2.3 版本中,提供并默认 打开了 shift 模式,即你可以通过按住 shift 键的同时通过移动 光标来选设文本。我们的 2.1 版本没有 shift 模式,但有一个 CUA 模式,在此模式下,可以通过 shift + 光标选择文本,C-c 复制文 本,C-v 粘贴文本。这些行为很多现代的编辑器类似。F.编辑多个文档Emacs 的编辑都是在 buffer 里进行的,buffer 的翻译是缓冲区。 当你要求打开一个文件时,emacs 会查看此文件是否已经被自己打 开。如果是,则把已存在的缓冲区显示出来,否则就开设

12、一个新缓冲 区,并在此缓存区中加载文件内容。用函数 list-buffers 可以显 示当前存在的缓冲区,以及缓冲区与文件的关联。用函数 next-buffer, previous-buffer 或 C-xC-Right , C-xC-Left 来转到下一个或前一个缓冲区。用函数 switch-to-buffer 或C-xb转换到指定 buffer。当函 数询问缓冲区名字时,用 Tab 键可以得到缓冲区的名字列表。用 kill-buffer 函数或 C-xk 可以删除当前 buffer。1 看一下当前有多少个缓冲区,它们的名字是什么?2 打开两个文件,从第一个文件中复制一段文本,粘贴到另一个

13、文件中。G.多个窗口8CHAPTER 1.实验一: TC2.0 环境1 如何打开横向并列的两个窗口?2 如何从一个窗口转到另一个窗口?3 如何把窗口最大化?4 如果打开两个纵向排列的两个窗口?1.2.3使用 gcc 编译器A.编译,执行1 用 emacs 编辑一个 C 源文件,名字叫 foo.c;2 用 gcc 编译并生成可执行文件 foo.exe;3 执行这个 foo.exe;4 再次编译 foo.c, 这次指定生成的可执行文件为 bar.exe。如果每次编辑完代码,都要先退出 emacs, 然后在编译,执行, 效率就太低了。可以用 shell 函数在 emacs 中打开一个 es- hel

14、l buffer,在这个 buffer 中可以编译代码,执行程序。eshell buffer 也是 buffer,你可以转换 C 文件所在的 buffer,修改,保 存代码,然后再转回 eshell buffer,编译,执行。在 eshell buffer 中执行 exit 即可退出 eshell 并自动关闭 eshell buffer。Chapter 2实验二: 分支结构2.1实验目的 熟练掌握 if 语句和 switch 语句; 掌握关系表达式和逻辑表达式;2.2实验步骤2.2.1程序验证A.if 常见语法错误纠正下列代码中的语法错误,说明程序的功能。1 逻辑表达式int main() i

15、nt x;scanf (“%d“, if x%2=0 printf (“Evenn“); else printf (“Oddn“); 910CHAPTER 2.实验二: 分支结构2 语句和表达式int main() int x;scanf (“%d“, if (x0) printf (“+n“); else if (x0) printf (“Case 1n“); else if (xy)*x + (xint main () int s, i;for (i=0; iint main() int x; x=1; printf (“%dn“, x); 3.5 外部变量初始化 文件 foo.c 的内容

16、为int x=1;bar.c 的内容为#include int x=1; int main () printf (“%dn“, x); 上面的两个文件放在一起编译会有什么问题? 如果把 bar.c 中 的 int x=1; 移到 main 函数中呢?或者移动到 main 函数后 呢?4.2.实验步骤214 函数声明int main() hello(); void hello() printf (“hello worldn“); 5 还是声明 若 foo.c 内容为double add2 (void) return 3.14159; 在 bar.c 中有主函数#incldue int main () printf (“%f“, get_pi(); 用 cc foo.c bar.c 编译,并执行生成的文件。输出是什么? 解释并修正此错误。B.不常见错误1 形式参数int add2(auto int x, register y) return x+y; 如果把 auto, registe

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 理论文章

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