《熟悉C语言的运行环境.pdf》由会员分享,可在线阅读,更多相关《熟悉C语言的运行环境.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一实验一 熟悉熟悉 C C 语言的运行环境语言的运行环境学时:学时:2 2时间:时间:2 2 月月 2020 日日1)1) 实验目的实验目的:1 1了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)(2)实验内容和步骤实验内容和步骤:1. 1. 检查所用的计算机系统是否一安装了 C 编译系统并确定它所在的子目录。如果使用的是windows 和 Turbo C,可以按以下步骤进行操作:单击 windows 桌面上的开始按钮,从菜单中选择并单击查找(F),在其后右边的下拉菜单中选择文件或文件夹(F),屏幕上出现查找窗口,在名称栏中输入文件名tc.exe,然后单击开始查找按钮,系统会
2、自动在指定的范围内寻找所需的文件,如果找到,就会显示出文件路径(例如,C:tc) 。请注意搜索范围,应当使搜索栏中内容为C :,表示从根目录开始寻找,计搜索整个 C 盘。2. 2. 进入 C 的工作环境单击桌面上的 开始 按钮 ,从菜单中选 择程序 ,单击它 然后在其下拉 菜单中选择MS-DOS,平面上出现 MS-DOS 窗口。用 DOS 命令 cd,使当前目录改变为用户专用的子目录(例如 C:tcZHANG) 。用 dir 命令检查用户目录中已有哪些文件。调用 Turbo c, 一般情况下 Turbo c 所在的目录为 C:tc。 调用 Turbo c 的命令一般为, C:tctc。此时屏幕
3、上出现 Turbo c 的工作环境。3)3)熟悉熟悉Turbo cTurbo c集成环境集成环境:1. 1.了解和熟悉编辑(Edit)窗口和信息(Message)窗口的作用。试一下能否向信息窗口输入程序。按功能键 F5,观察它有什么作用,在按一次F5,在观察它有什么作用。按F6,观察他有什么作用;在按一次 F6,再观察它有什么作用。2. 2.按功能键 F10,并按回车键,观察file菜单,了解它们的作用和用法。用键盘上的-键,分别选中 Edit、Run、Compile、Option、Debug、Break/watch,观察它们的菜单,大致上了解它们的作用(但不必要求全部深入了解,以后用到时在深
4、入了解) 。3. 3.选择 File 菜单中的 New 并按回车键,在编辑窗口中随意输入几行字符,观察窗口顶部左端 line和 col 后面数字的变化。实验二实验二 运行一个运行一个 C C 程序的的方法程序的的方法学时:学时:2 2时间:时间:2 2 月月 2727 日日(1)(1) 实验目的实验目的:1 1了解在该系统上如何编辑、编译、连接和运行一个 C 程序。2 2通过运行简单的 C 程序,初步了解 C 程序的特点。(2 2). .输入并运行一个简单的程序再选择 File菜单中的 New 并按回车键,使编辑窗口变成空白。输入下面的程序(教材第一章例 1.1) 。main( )printf
5、(This is a C program.n) ;按功能键 F9 进行编辑和连接,观察屏幕上的编辑信息。如果出现出错信息,则应找出原因并改正之,在进行编辑。如果编辑无错误,按 Ctrl 和 F9 键使程序运行,Alt和 F5 键,切换到用户屏,观察分析运行结果。输入并编辑一个 C 程序1. 1.再选择 File-New,是编辑窗口变成空白。2. 2.输入以下程序(教材第一章例 1.2,但故意漏打或打错几个字符) 。Main( )int a,b,sum;a=123;b=456;sum=a+b;printf(sum is %dn,sum);3.3.按 F9 进行编辑,仔细分析编译信息窗口和 Mes
6、sage 窗口,可能显示有多个错误,逐个修改,直到不出现错误。请与教材上的程序对照。4.4.运行程序,并分析运行结果。输入并运行一个需要在运行时输入数据的程序1.1.清空编辑窗口,输入下面的程序。Main( )int a,b,c;printf(input a&b:);scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d,c);int max(int x,int y)int z;if (xy)z=x;else z=y;return(z);2.2.编辑并运行,在运行时从键盘输入整数 2 和 5,然后按回车键,按 Alt 和 F5键,观察运行结果。3 3.将程序中的
7、第 2 行该为:int a;b;c;在进行编辑,观察其结果。4.4.将子程序 max 的第 3,4 两行合并为一行,即 if (xy)z=x;else z=y;进行编译和运行,分析结果。运行一个自己编写的程序题目是教材第 1 章的习题 1.6,既输入 a,b,c 三个值,输出其中最大者。1.1.输入自己编写的源程序。2.2.检查程序有无错误(包括语法错误和逻辑错误),有则改之。3.3.编译和连接,仔细分析编译信息,如有错误应找出并改之。4.4.运行程序,输入数据,分析结果。5.5.自己修改程序(例如,故意改成错的),分析其编译和运行情况。6.6.将调试好的程序保存在自己的用户目录中,文件名自定
8、。7.7.用 File-New 将编辑窗口清空,再选用 File-Lode 将该文件读入,检查窗口中的内容是否是刚才保存的程序。8.8.关闭 Turbo C, 用 DOS 命令 dir 检查用户目录中的文件名, 有无后缀为.c、 .obj和.exe 的文件实验三实验三 数据类型数据类型学时:学时:2 2时间:时间:3 3 月月 5 5 日日1 1 实验目的实验目的:1 1,握 C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们的赋值的方法。2 2。掌握不同的类型数据之间赋值的规律。2 2, 使用内容和步骤使用内容和步骤(1) 输入并运行下面的程序mian( )char c1
9、,c2;c1=a;c2=b;printf(%c %cn,c1,c2);1 1运行次程序。2 2在次基础上加上一个语句;printf(%s %sn,c1.c2);再运行,并分析结果。3 3将第二行改为:int c1,c2;再使之运行并观察结果。4 再将第 3、4 行改为:c1=a;c2=b;再使之运行,并观察结果。5 再将第 3、4 行改为:c1=a;c2=b;再使之运行并观察结果。6 再将地 3、4 行改为:c1=300;c2=400;再使之运行,并分析其结果。(2 2)输入并运行教材第 3 章习题 3.6 给出的程序main( )char c1=a,c2=b,c3=c.c4=101,c5=1
10、16;printf(a%c b%ctc%ctabcn,c1,c2,c3);printf(tb%c%c,c4,c5);在上机前先用人工分析程序,写出相应的结果,上机后将二者对照。(3 3)输入并运行下面的程序main( )int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d,%dn,a,b);printf(%u,%un,a,b);printf(%u,%un,c,d);c=a=e;d=b=f;printf(%d,%dna,b);printf(%u,%un,c,d);请对照程序和运行结果分析;1 1将
11、一个负整数赋给一个无符号的变量,会的到什么样的结果,画出它们在内存中的表示形式。2 2将一个大于 32767 的长整数赋给整型变量,会的到什么结果,画出它们在内存中的表示形式。3 将一个长整数赋给一个无符号的变量,会的到什么样的结果(分别考虑该长整数的值大于或等于 65535 以及小于 65535 的情况)。画出它们在内存中的表示形式。读者可以改变程序中的值, 以便比较。 例如: a=65580,b=-40000,e=65535,f=65580实验四实验四 运算符和表达式运算符和表达式学时:学时:2 2时间:时间:3 3 月月 1212 日日1 1 实验目的实验目的:1 1 学会使用 C 的有
12、关算术运算符 ,以及包括这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。2 2 进一步熟悉 C 程序的编辑、编译、连接和运行的过程。2 2使用内容和步骤使用内容和步骤1 输入习题 3.10main( )int I,j,m,n;I=8;J=10;M=+I;N=j+;Printf(%d, %d, %d, %d,I,j,m,n);(1)运行程序注意 I,j,m,n 各变量的值,分别做以下改动并运行。(2)将 4,5 行改为:m=I+;n=+j;再运行。(3)将程序改为:main( )int I,j;I=8;J=10;Printf(%d,%d,I+,j+);(4)在 3 的基础上,将 p
13、rintf 语句改为:printf(%d,%d,+I,+j);(5)再将 printf 语句改为:printf(%d,%d,%d:,I,j,I+,j+);(6)将程序改为:mian( )int I,j,m=0,n=0;I=8;j=10;M+=1+;n-=-j;Printf(I=%d,j=%d,m=%d,n=%d,I,j,m,n);2 按习题 3 .7 的要求并上机运行该题的要求是:要将China译成密码,译码规律是:用原来字母后面的第四个字母代替原来的字母。例如,字母A后面第四个字母是E,用 E 代替A。因此China应译成Glmre。请编一程序,用赋初值的方法使才,c1,c2,c3,c4,c
14、5 五个变量分别为C、h、i、n、a,经过运算,使 c1,c2,c3,c4,c5 分别变为G、l、m、r、e,并输出。(1)输入事先以编好的程序,并运行该程序。分析是否符合要求。(2)改变 c1,c2,c3,c4,c5 的初值为:T、o、d、a、y,对译码规律做以下补充:W用A代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行。(3)将译码规律修改为:将字母用它前面的第 4 个字母代替,例如E用A代替,Z用U代替,D用Z代替,C用Y代替,B用X代替,A用V代替,修改次序并运行实验五实验五 最简单的最简单的 C C 程序设计程序设计学时:学时:2 2时间:时间:3 3 月月 1919 日日
15、1 1实验目的实验目的:1 1 掌握 C 语言中使用最多的一种语言-赋值语句的使用方法。2 2 掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。2 2 实验内容和步骤1 1 掌握各种格式的正确使用方法1 1 输入程序main( )int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;,a=61,b=62;c1=a,c2=b;d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf(a=%d,b=%dn
16、c1=%c,c2=%cnd=%6.2f,e=%6.2fn,a,b,c1,c2,d,e);printf(f=%15.6f,g=%15.12fnm=%ldnp=%u,q=%un,f,q,m,n,p,q);2 运行次程序并分析其结果。3 在次基础上,修改程序的第 813 行;a=61;b=62;c1=a;c2=b;f=3157.890.121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析结果。4 改用 scant 函数输入而不使用赋值语句,scanf 函数如下:scanf(d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld
17、,%u,%u,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);输入数据如下:61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,32687,40000(说明:lf 和 ld 格式符分别用于 double 型和 long 型数据)分析运行结果。5 在 4 的基础上将 printf 语句改为:printf(a=%d,b=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn,a,b,c1,c2,d,e);printf(f=%f,g=%fnm,n=%dnp=%d,q=%dn,f,g,m,n,p
18、,q);运行程序。6 将 p、q 改为%o 格式输出。7 将 scanf 函数中的%lf 和%d,运行次程序并观察分析结果。(2)按习题 4.8 的要求编写程序题目为:设圆半径 r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用 scanf 输入数据,输出计算结果。输出时要有文字说明,取小数点后两为数字。(3)编程序,用 getchar 函数读如两个字符给 c1,c2,然后分别用 putchar 函数和 scanf 函数输出这两个字符。上机运行程序,比较用 printf 和 putchar 函数输出字符的特点。实验六实验六 逻辑结构程序设计(关于逻辑结构程序设计(
19、关于 if if语句)语句)学时:学时:2 2时间:时间:3 3 月月 2626 日日1 1实验目的实验目的:(1 1)了解 C 语言表示逻辑量的方法(以 0 代表假,以非 0 代表真) 。(2 2)学会正确使用逻辑运算符和逻辑表达式。(3 3)熟练掌握 if 语句。2 2实验内容实验内容:本实验要求事先编好下面问题的程序,然后上机输入程序并调试运行程序。(1 1)有一函数:x(x=1=10)用 scanf 函数输入 x 的值,求 y 的值。 (习题 5.5)运行程序,输入 x 的值(分别为 x=1=10 三种情况) ,检查输出的 y 值 是否正确。(2 2)给出一个百分制成绩,要求输出成绩等
20、级 A、B、C、D、E。90 分以上为 A,8189分为 B,7079 分为 C,6069 分为 D,60 分以下为 E。 (习题 5.6)1 事先编好程序,要求分别用 if 语句和 switch 语句实现。运行程序,并检查检查结果是否正确。2 再运行一次程序,输入分数为负值(如-70) ,这显然是输入时有错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于 100 或小于 0 时,通知用户输入数据出错,修改结束。实验七实验七 逻辑结构程序设计(关于逻辑结构程序设计(关于 switchswitch语句)语句)学时:学时:2 2时间:时间:4 4 月月 2 2 日日1 1实验目的实
21、验目的:(1 1)熟练掌握 switch 语句。(2 2)结合程序掌握一些简单的算法。(3 3)学会调试程序。2 2实验内容实验内容:(1 1)给出一个不多于 5 位的正整数,要求:1 求出它的几位数;2 分别打印出每一位数字;3 按逆序打印出各位数字,例如原数为 321,应输出 123。 (习题 5.70)应准备以下测试数据:要处理的数为 1 位正整数;要处理的数为 2 位正整数;要处理的数为 3 位正整数;要处理的数为 4 位正整数;要处理的数为 5 位正整数。除次之外,程序还应当对不合法的输入作必要的处理。例如:输入负数;输入的数超过 5 位(如 123456) 。(2 2)输入 4 个
22、整数,要求按由小到大顺序输出。 (习题 5.9)实验八实验八 whilewhile 语句语句学时:学时:2 2时间:时间:4 4 月月 9 9 日日1 1实验目的实验目的:熟悉掌握用 while 语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举,迭代、递推等) 。进一不学习调试程序2 2实验内容实验内容:编程序并上机调试运行。例:教材(例 5.2)求 n= n(n=1 到 100);main ( )int ,sum=0;;while (n,观察结果是否正确。在输入时,使 mn, 观察结果是否正确。修改程序,不论 m 和 n 为和值(包括负整数) ,都能到正整数实验九实验
23、九 do-whiledo-while 语句语句学时:学时:2 2时间:时间:4 4 月月 1616 日日1 1实验目的实验目的:熟悉掌握用 do-while 语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举,迭代、递推等) 。进一不学习调试程序2 2实验内容实验内容:编程序并上机调试运行。例:(1)教材(例 5.3)用 do-while语句求 n= n (n=1 到 100);main()int I,sum=0;I=1;Dosum=sum+1;I+;while (I=100)printf (“%d”,sum);例: (2)教材(例 5.4)注意 while 和 do-w
24、hile 的比较,并写出如果它们都只运行一次的结果。见前例(5.2)和(5.3)。自己编写: 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。(习题 6.2)在得到正确结果后,请修改程序使之能分别统计出大小写字母、空格、数字和其它字符的个数实验十实验十 forfor 语句语句学时:学时:2 2时间:时间:4 4 月月 2323 日日1 1实验目的实验目的:熟悉掌握用 for 语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举,迭代、递推等) 。进一不学习调试程序2 2实验内容实验内容:.编程序并上机调试运行。例:求n(n=1 到 100);注意 for
25、 语句与其它两个语句的不同点, 进行比较。main( )int num ,I ;num=0;for( I=1;I=100;I+)num=num+I;printf(“%d”,num);综合利用前面的知识解下列各题。(1 1)用牛顿迭代法求方程 2x*x*x-4x*x+3*-6=0 在 1.5 附近的根。 (习题 6.12)在的到正确结果后,请修改程序使所设的 x 初值由 1.5 改变为 100、1000、10000,再运行,观察结果,分析不同的 x 初值对结果有什么影响,为什么?修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同 x 初值对迭代的次数有无影响。(2 2)猴子吃桃问题。猴子第
26、一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天的一半零一个。到第 10 天早上想再吃时,只剩下一个桃子了。求第一天工摘了多少桃子。 (习题 6.10)(3 3)在的到正确结果后,修改题目,改为猴子每天吃了前一天的一半后,再吃两个。请修改程序,并运行,检查结果是否正确。实验十一实验十一 数组数组学时:学时:2 2时间:时间:4 4 月月 3030 日日1 1 实验目的实验目的:(1 1)掌握一维数组和二维数组的定义、赋值和输出的方法:(2 2)掌握字符数组和字符串函数的使用:(3 3)掌握与数组有关的算法(特别是
27、排序算法) 。2 2 实验内容实验内容:编程序并上机调试运行。(1 1)用选择法对 10 个整数排序。10 个整数用 scanf 函数输入。 (习题 7.2)(2 2)有 15 个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在树组中,则输出无此数。以 15 个数用赋初值的方法在程序中给出。要求的数用 scanf 函数输入。 (习题 7.9)(3 3)将两个字符串连接起来,不要用 strcat 函数。(4 4)找出一个二维数组的鞍点,既该位置上的元素在该行是最大,在该列上最小。也可能 没有鞍点。 (习题 7.8)(5 5)应当至少准备两组测试数据:1
28、 二维数组有鞍点:9 80 205 4090 -60 96 1210 -3 101 892 二维数组没有鞍点:9 80 205 4090 -60 196 1210 -3 101 8945 54 156 7用 scanf 函数从键盘输入数组个元素的值,检查结果是否正确,题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数数组的元素,但这样的工作量太大,一般来说不需要这样做,只须准备典型的数据即可。如果以指定了数的行数和列数,可以在程序中对数组元素赋初值,而不必用 scanf 函数。请读者修改程序以实现之。实验十二实验十二 函数函数学时:学时:2 2时间:时间:5 5 月月 7 7 日日1
29、 1 实验目的实验目的:(1 1)掌握定义函数的方法;(2 2)掌握函数实参和形参的对应关系以及值传递的方式;(3 3)掌握函数的嵌套调用和递归的方法;(4 4)掌握全局变量和局部变量动态变量的概念和使用方法。(5 5)学习对多文件程序的编译和运行。2 2 实验内容实验内容:编程序并上机调试运行。(1 1)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 (习题 8.3)本程序应当准备一下测试数据:17、34、2、1、0。分别输入数据,运行程序并检查结果是否正确。(2 2)用一个函数来实现将一行字符串中最长的单词输出, 此行字符从主函数传递给该函数。(习题 8.10)把两个函数
30、放在同一个程序文件中,作为两个文件进行编译和运行。(3 3)用递归方法将一个整数 n 转换字符串,例如,输入483,应输出字符串483。n 的位数不确定,可以是任意的整数。 (习题 8.17)(4 4)求两个整数的最大公约数和最小公倍数。 (习题 8.1)1 不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输入,并传递给函数 1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数 2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。2 用全局变量的方法,分别用两个函数求最大公约数和最小公倍数。5 写一个函数。输入一个 16 进制的数,输出相应
31、的 10 进制数。实验十三实验十三 编译预处理编译预处理学时:学时:2 2时间:时间:5 5 月月 1414 日日1 1 实验目的实验目的:(1 1)掌握宏定义的方法;(2 2)掌握文件包含处理方法;(3 3)掌握条件编译的方法。2 2 实验内容实验内容:编程序并上机调试运行。(1 1)定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的参数,输出以交换的两个值。 (习题 9.1)(2 2)设计输出实数的格式,包括:1、一行输出一个实数;2、一行输出两个实数;3 3、一行输出三个实数。实数用6.2f格式输出。(习题 9.6)用一个文件 print-format.h 文件包含
32、以上用#define 命令定义的格式。进来,在自己的文件中用#include 命令将 print-format.h 文件包涵进来。在程序中用 scanf 和;函数读入三个实数给f1f2f3。然后用上面定义的三中格式分别输出:1、f1;2、f1f2;3、f1f2f3。(4 4)用条件编译的方法实现以下功能:输入一行电报文字, 可以任选两种输出, 一为原文输出; 一为将一字母变为下一个字母输出。用#define 命令来控制是否要译成密码。例如:若#define CHANGE 1 则输出密码。若#define CHANGE 0 则不译成密码。 (习题 9.10)编写程序,使用条件编译的方法来实现题目
33、的要求。首先在程序中用#define CHANGE 1改为#define CHANGE 0,再运行程序,应得到原文实验十四实验十四 指针指针学时:学时:2 2时间:时间:5 5 月月 2121 日日1. 1.实验目的实验目的:(1 1)通过实验进一步掌握指针的概念、会定义和使用指针变量;(2 2)能正确使用数组的指针向量;(3 3)能正确使用字符串的指针和指向字符串的指针变量;(4 4)能正确使用指向函数的指针变量;(5 5)了解指向指针的指针的概念及其使用方法。2. 2.实验内容实验内容:编程序并上机调试运行程序(都要求用指针处理) 。(1 1)输入三个真数,按由小到大的顺序的输出,然后将程
34、序改写为:输入三个字符串,按由小到大的顺序输出。(2 2)将一个 3*3 的矩阵转置,用一个函数实现之。在主函数中用 scanf 函数输入以下矩阵元素。1 3 57 9 1113 15 19将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。(3 3)有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数) ,凡报到 3 的人退出圈子,问最后留下的是原来的第几号的那位。(4 4)用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数,函数原型为:int strcmp(char *p1,char *p2);设 p1 指向字符
35、串 s1,p2 指向字符串 s2,要求当s1=s2 时,函数返回值为0;如果s1!=s2 则返回它们二者第一个不相同字符的 ASK11码差值。两个字符串 s1,s2 由 main 函数输入,strcmp 函数的返回值也由 main 函数输出。用指向指针的指针的方法对 n 个整数排序并输出,要求将排序单独写成一个函数。 N 和各整数在主函数中输入,最后在主函数中输出。实验十五实验十五 结构体结构体学时:学时:2 2时间:时间:5 5 月月 2828 日日1 1实验目的实验目的:(1 1)掌握结构体类型变量的定义和使用;(2 2)掌握结构体类型数组和使用;2 2实验内容实验内容:编程序,然后调试运
36、行例:教材(例 10.1)struct student long int num;char name20;char sex;char addr20;a=89031,”li lin”,m,”123 beijing road”;main ()printf (“No.:%ldnname:%snsex:%cnaddress:%sn” , a.num , a.name , a.sex , a.addr);自己编写:有 10 个学生,每个学生的数据包括学号、姓名、3 门课程的成绩,从键盘输入 10 个学生数据。要求打印出 3 门课程的平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课程的成绩、平均
37、分数) 。要求用 input 函数输入 10 学生数据,用 average 函数求平均分;用 max 函数找出最高学生数据;总平均分和最高的分学生的数据在主函数中输出。实验十六实验十六 共用体共用体学时:学时:2 2时间:时间:6 6 月月 4 4 日日1 1实验目的实验目的:(1 1)掌握链表的概念,初步学会对链表进行操作;(2 2)掌握共用体的概念与使用。2 2实验内容实验内容:编程序,然后调试运行(1 1)13 个人围成一圈,从第一个人开始顺序抱号 1、2、3。凡报到3的退出圈子,找出最后留在圈子中的人原来的序号。本题要求用链表实现。(2 2)建立一个链表,每个结点包括:学号、姓名、性别
38、、年龄。输入一个年龄,如果链表中的结点所包含的年龄,则将结点删除。(3 3)输入和运行以下程序。Union dataint I2;flaot a;long b;char c4;u;main()scanf(%d,%d,&u,Io);printf(I0=%d,I1=%d,a=%db=%ldc0=%c,c1=%c,c2=%c,c3=%c,u.io,u,a,u,b,c0,c1,c2,u,c3;)输入两个整数 100000,200000 给 u,.0和 u.I,分析运行结果。然后将 scanf 函数改为:scanf(%ld,&u,b);输入 60000 给 b 并分析结果。实验十七实验十七 位运算位运算
39、学时:学时:2 2时间:时间:6 6 月月 1111日日1 1 实验目的实验目的:(1 1)掌握按位运算的规律的概念和方法,学会使用位运算符;(2 2)学会通过位运算实现对某些位的操作。2 2 实验内容实验内容:3 3编写程序,上机调试并运行。(1 1)编写一个程序,检查所用的计算机的系统的 C 编译在执行右移时是按照逻辑右移的原则,还是按算术右移的原则进行操作。如果是逻辑右移;请编写一个算术右移;如果是算术右移,请编写一个函数实现逻辑左移。(2 2)编写一个函数 getbits,从一个 16 位的单元中取出某几位。函数调用的形式为:getbits(value ,n1,n2)value为该函数
40、的 16 位的数值,n1 为欲取出的起始位,n2 为欲取出的结束位。如:表示对八进制数 101675,取出其从左边的第五位到第八位。一切对八进制数打印出来。 注意, 应该将这几位数右移到最右端, 然后用八进制的形式输出。(3) 设计一个函数,使给出一个数的原码,能得到该数的补码。实验十八实验十八文件文件学时:学时:2 2时间:时间:6 6 月月 1818 日日1 1 实验目的实验目的:(1 1)掌握文件以及缓冲文件的系统,文件指针的概念;(2 2)学会使用文件的打开、关闭、读、写等文件操作函数;(3 3)学会用缓冲文件系统对文件进行简单的操作。2 2 实验内容实验内容:编写程序并上机调试运行。
41、(1 1)有 5 个学生每个学生有 3 课的成绩,从键盘输入以上数据(包括学生号、姓名和 3门课程的成绩) ,计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud 中设 5 名学生的学号、姓名和 3 门课程的成绩如下:99101 Wang 89,98,67.599103 Li 60,80,9099106 Fun 75.5,91.5,9999110 Ling 100,50,62.599113 Y uan 58,68,71在向文件 stud 写入数据后,应检查验证 stude 文件中的内容是否正确。(2 2)将上题 stud 写入数据库,按平均分进行排序处理,将已排序好的学生数据库存入一个新的文件 stu-sort 中在向文件 stru-sort 写入数据库后,应检查验证 stu-sort 文件中的内容是否是正确的。(3 3)对上题已排序的学生成绩文件进行插入处理,插入一个学生的 3 课程的成绩,程序先计算新插入的学生的平均成绩,然后将它按成绩的高低顺序插入,插入后建立一个新的文件(4 4)要插入的学生数据为:99108 Xin 90,95,60向新文件 stu-new 写入数据后,应检查验证 stu-new 文件中的内容是否正确。