版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、20 11 -20 12学年第一学期c语言程序设计实验指导专业班级学号学生姓名丄注意:丄1 每个实验必须按“学号expn.m (n为章节号,m为实验序 号)姓名(汉字)”(如王伟:201000630208exp1_2王伟)格 式命名文件名,并且文件名中间不允许有空格,不按上述要 求命名文件名将被视为作业无效。丄2.实验运行结束得到正确的结果后,适当调整各个窗口位置,使它们均不互相遮挡的状态下显示在屏幕上,然后按shift+printscreen键进行截图,然后在“画图”粘贴并按“学号expn_m (n为章节号,m为实验序号)姓名(汉字)” (如王伟:201000630208exp1_2王伟)格
2、式命名并保存 为.png格式。然后提交到服务器指定的文件夹中。4 3服务器地址:ftp: /219.231. 163. 180o用户名:xgcyy 口令:12345作业提交文件夹:c语言作业提交实验一熟悉c语言程序开发环境及c语言基础知识和顺序结构1.1实验目的1. 了解和掌握c语言的主要特点,c语言的程序开发环境,掌握c语言的上机步骤。2. 熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。3. 学习动态调试程序的方法,熟练掌握单步执行程序和设置断点执行程序的操作。4. 认识c语言,熟悉c语言的语法结构。5. 掌握c语言中4种基木数据类型的特点、数据类型变量的定义及使用。6. 掌握不同
3、数据类型运算时,数据类型的转换规则。7. 熟练掌握赋值语句。8. 掌握c语言中表达式语句以及不同运算符的运算规则和优先级。1.2实验预习1. 熟悉vc+的启动和退出以及vc+中的编辑、编译、连接和运行命令。2. 了解下列命令及函数:include<stdio. h>> main> printf > scanf<>3. 各种数据类型变量的定义形式;熟悉下列标识符的含义:int、short (int)> long (int)> unsigned (int)、float、double、char> void4 各种数据类型的取值范|节|。5.
4、 各类运算符的优先级和结合规则。6. 常量与变量的区别和联系。1.3实验任务准备工作:首先在d盘建立一个以自己的学号命名文件夹,用来存放所建的文件。1.4实验课时:4学时【实验1一1 :实现下列程序的运行结果(1) #include <stdio.h> void main()printf * *printf("this is a c program. n”); printf( “* *n”);运行结果及分析:兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴 this is a c program. *该程序为简单的打印语句的程序。关键字void表示该函数不给操作系统返回任何值,明确表示
5、不带参数。“n”表示换行操作。 将程序中的n去掉后,运行结果及分析:去掉n,表示不换行,printf语句中的内容会依次连续输出。【实验12】:练习变量的定义和赋值的用法,对变量进行加、减、乘、 除算术运算熟悉表达式的应用。#include vstdio.h> void main()int a=100,b=20,sum,sb; sum=a+b;sb=a-b;mul=a*b;div=a/b;printf(ttsum=%d,sb=%dthmul=%d,div=%dft,sum,sb,mui,div);运行结果及分析:sum=120sb=80,mul=2000,div=5该程序为加减法的应用。关
6、键字void表示该函数不给操作系统返回任何值,明确表示 不带参数。关键字int表示取整。d表示输出结果取整。【实验13】:程序填空任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用 b5,b4,b3,b2,bl表示),请将程序补充完整。提示:long int表示长整型,ld为长整型显示。a%b为求模(求余)运算,当一个 5位数除以所对应的位数值(个、十、百、千、万)以后,在对商进行10的求模运算后,就是该数位所对应的数字。#include <stdio.h>main()int bl,b2,b34,b5;x;scanf( u % id ”,&x);b5
7、=;b4= (x/1000) % 10;b3=;b2= (x/10) % 10;bl=;g);printf(uthe number is printf(its bit is:%d,%d,%d,%d,%dn”,b5,b4,b3,b2,bl);【实验14】:通过实验熟识字符数据与整型数据的区别及它们之间的 关系。#include <stdio.h>void main()char cl,c2;cl=97;c2=98;printf(n%c , %cnn,cl,c2);printf(,%d,%dnn,cl,c2);printf(n%c, %cn",cl+l,c2+2);运行结果及分
8、析:a9b97,98b,d%c表示输出一个字符,小写字母a, b对应的ascii值分别为97, 98,所以第一行 输出为a,b;%(1表示输出整数,所以cl,c2的值分别为97, 98;%c表示输出一个字符,cl+l,c2+2分别表示b,d,故输出b,do【实验15】:熟悉掌握自增减运算符的用法。#include <stdio.h>void main ()int i=8j=10,m?n;m=+i;n=j+;printf (* * % d, % d, % d, % d *1 ,i j 9m9n);运行结果及分析:9, 11, 9, 10m=+i 相当于 i=i+l;m=i,所以 i=
9、9,m=9n=j+相当于 n=j;j二j+1,所以 j=ll,n=10再将本程序的第3行改为m=i+;n=+j;运行结果及分析:9,11,8,11m=i+相当于 m二i; i=i+l,所以 i=9,m=8n二+j 相当于 j=j+l;n=j,所以 j=ll,n=ll【实验16】:程序改错(注意:题中的编号为行序号,并非程序本身)计算任意一个半径为r的圆的面积和周长(结果保留两位小数)(1) #include <stdio.h>(2) main()(3)float r; p=3.14,c,area;(4)printf(uinput r:,');(5)scanf(“ f ”,
10、r);(6)c=2p*r;(7)area=p*r*r(8)printf(uc= % -7.2f,area= % -7.2pc,area);(9)错误语句的行号:(3)改正后的语句全行:float r ,p=3.14,c,area;错误语句的行号:(5)改正后的语句全行:scanf(h%f m,&r);错误语句的行号:(6)改正后的语句全行:c=2*p*r;错误语句的行号i (7)改正后的语句全行:area二p*r*r;改错分析:在程序中分号表示一条语句的结束,在(3)行中可以把分号改为逗号,也可在分号后 写 “float”。每个变量前面的符号&是一个操作符,指定该变量的地址,必
11、须使用该操作符。在c语言程序中,*表示两数相乘,去掉则不能执行。执行语句必须以分号结尾。【实验17】:程序填空。从键盘输入两个实数a和x,按公式计算并输+ sin(ax) + ln(tz + x) + eax#include <stdio.h>#include <math.h> main()float a,x,y;scanf(n (1) ”,&a,&x);y=;printf(ny=%fnh,y);运行结果:当 a=64, x=3.4 时,y=2820005699761446【实验18】:若有以下程序:#include vstdio.hvoid main(
12、) int k=2,i=2,m;m=(k+=i*=k);printf(n %d,%dn n,m,i);执行后的输出结果是。执行结果分析:(a) &6(b) 8,3(c) 6,4(d) 7,4运行结果:【实验1一9】:有以下程序#include <stdio.h>void main()int m=12,n=34;printf(,'%d%dh,m+,+n); printf(h%d% dn'',n+,+m);程序运行后的输出结果是oa) 12353514 b) 12353513 c) 12343514 d) 12343513 运行结果:实验二逻辑运算和选择
13、结构程序设计2.1实验目的1 .掌握c语言的逻辑运算符和逻辑表达式,学会表示逻辑值的方法。2. 掌握止确使用关系运算符和关系表达式。3. 熟练掌握条件语旬,学习选择结构程序设计的方法及应用。4. 熟悉多分支选择的switch语句。5. 进一步学习跟踪调试程序,熟悉选择结构程序段中语句的执行过程。 2.2实验预习1. 熟悉逻辑运算符和逻辑农达式、关系运算符和关系表达式。2. 熟悉下列语句:if、if-else、switch> breako2.3实验课时:2学时 2.4实验任务【实验21:观察下列程序的运行结果#include <stdio.h>void main()int a,
14、b,x=10,y=9;a=(-x = y+)? -x : +y;b=y;printf(“ d,%dn",a,b);运行结果及分析:8, 10【实验22】:a=(-x = y+)? -x : +y;表示若一x 等于 y+,贝lj a=x,否贝lj a=+y. x=9,y+=9,相等所以a=x,在前面x已被赋值为9,因此a输出为8。 在前面+y中,y=10因此b输出为10.两次运行下面的程序,如果从键盘上分别输入6和4,则输出 结果是main()int x; scanf(h%dh,&x);if(x + + >5) printf(n%dn,x);elsea) 7 和 5prm
15、tf(h%dntt,x.);b) 6 和 3c) 7 和 4d) 6 和 4【实验23】:观察下列程序的运行结果#include <stdio.h>void main()int a=0,b=0,c=0;if(+a > 0 ii +b > 0) +c;printf(una= % d,b= % d,c= % d”,a,b,c);运行结果及分析:a=l,b=(),c=l+a=l,所以+a > 0显然成立,+b不会被执行,b=0+a后,a就为1.因为if(+a > 0 ii +b > 0)成立,所以会执行+c, +c二1,此时c已被赋值,c=l.【实验24】:
16、观察下列程序的运行结果#include <stdio.h>void main()int x=-l;switch (x)default: printf(“a'');case 1: printf(ubv);case 2: printf(“c,);运行结果及分析:abcswitch用来实现多分支判断,它会计算switch后的数值,然后再case中查找相 应的数值,default是当要判断的值与所有的case值都不匹配时,程序就默认从 default开始执行在case l:printf(ub);后加上break;语句,结果如何?修改程序并上机调试。 运行结果及分析:abbe
17、ak就是为了用于跳出这个swtich,不在继续执行后面得case,所以程序不执 行 case 2o【实验25】:程序填空输入两个整数,从用户处获取这两个整数,显示其中较大的数,在其后跟随“is larger5%如果这两个数相等,显示“these numbers are equal.”。请在内填入正确内容。#include <stdio.h>void main() int a9b;printf(uplease input two numbers, a, b! “);scanf(“d%d",&a,&b);if( )printf(%d is larger, a
18、);else if() printf(uthese numbers are equal,);else (3);填空:a>b填空:a=b填空:printf(“d is larger”, b);结果分析:如果输入的a,b中a>b则输出a is largei若if (a>b)不成立,则执行下一条if 语句,若 a=b,则输出 these numbers are equalo 否则输出 b is larger.【实验26】:编写程序 编写一个程序,读入5个整数,然后确定并显示这组数中的最大整数和最小整 数。程岸清单:#include<stdio.h>void main()
19、int a5,b;printf(hplease enter 5 integers:nm);for(b=0;b<5;b+)scanf(n%dh,&ab);for(b=l;b<5;b+)if(a0>ab) a0=ab;printf(hsmallest is %dn*a0);for(b=l;b<5;b+)if(a0<ab) a0=ab;printf(nlargest is %dm,a0);getch();程序编写注意事项:要注意数组的使用,条件要写清楚仔细,理解b+和+b【实验27】:编写程序 读取一个整数,判断并显示出这个整数是奇数还是偶数。(提示:使用求模运
20、算 符。偶数是2的倍数。任何2的倍数除以2时,余数均为零。)程序清单:#include <stdio.h>int main(void)int i;printf(hplease enter an integer:nh); scanf(n%dn,&i);if (i%2)=0)printf(h 偶数 n”);elseprintf(h 奇数 nn);return 0;getch();程序编写注意事项:要写上 return 0,因为它是 intmain (void)o 注意求模运算。在c语言中等于用=表示。【实验28】:以下程序的运行结果是#include <stdio>
21、h>void main()int a,b,c; a=b=c=l; if (a+ll+b) c+; printf d, % d, % dn ” ,a,b,c);执行结果分析 答案:2, 1, 2实验三循环结构程序设计3.1实验目的1熟练掌握while、do-while和for语句实现循环的方法。2. 掌握循环程序设计屮一些常用算法(如穷举、迭代、递推等)。3. 掌握常用的无条件控制语句在循环中的控制作用。4 .理解循环嵌套及嵌套的执行过程。3.2实验预习1. 熟悉语句:while、do-while> for。2. 熟悉三种语旬之间的关系和区别。3. 熟悉语句:break、contin
22、ues goto。4. 循环结构常见的算法。3.3实验任务实验31】 :#include <stdio.h>void main()int row=10,column;while(row>=1)column=1;while(column v=10)printf(h%sn,row%2 ? “v”: “>”);column+;row-;printf(ann);运行结果及分析:运行结果为:奇数时显示并循环次,偶数时显示并循环次。然后共循 次。【实验32】:以下程序运行后,输出结果是#include<stdio.h>main()int y=18, i=0, j, a8
23、;do ai=y%2; i+;y=y/2; while(y>=1);forq=i-1:j>=o;j-) printf(”d”, aj);printf(mnn);a) 10000b)100100)00110d)10100【实验33】:编写程序(1)利用循环语句来显示如下所示的数值表:1 12345678910 0 cs s3 0 c9 cs is cs 0 s3 0 is s3 0 nu si 0 cs 0 si 1 123456789100 is 0 0 0 si nu 0 0 s31 12345678910n 1234567891程序编写注意事项:间距用转义字符t,格式左对齐用【
24、实验34】:编写一程序,能够输入一组10个数字,判断并显示出这些数 字中的最大数。提示:程序中应该使用如下的3个变量:counter:能够记数到10的记数器。number:当前输入到程序中的数字。largest:迄今为止所发现的最大数字。【实验35:写出下列程序的运行结果#inelude <stdio.h>void main()int i,j,k,x=o;for(i=0;i<2;i+)x+;for(j=0;jv3;j+)if(j%2) continue;x+;x+;k=i+j;printf(mk=%d, x=%dnh, k , x);运行结果及分析:运行结果为:最后循环结束时
25、i=2, j=3,故k=i+j;在循环过程中x+共执行了()次,故【实验36:写出下列程序的运行结果include <stdio.h>void main()int x,y;for(y=1 ,x=1 ;yv=50;y+)if(x>=10) break;if(x%2=1) x+=5; continue;x-=3; printf(mx=%d,y=%dn,xjy);运行结果及分析:运行结果为:x的变化过程为:6, 3, 8, 5, 10,循环执行了 ()次,故戶()。【实验37:写出下列程序的运行结果#include <stdio.h>void main()int i,
26、j, sum;for(i=1 ;iv6;i+)sum=0;for(j=1 ;jv=4;j+)sum+=j;printf(usum=%dn,j sum);运行结果及结果:运行结果为:在j的循环后,sum=(),由于每次i循环时都使sum=(),故循环6次后仍然是sum= () o【实验38】:写出下列程序的运行结果#include <stdio.h>void main ()int k = 0 , m = 0 , i, j;for( i = 0 ; i v 2 ; i+)for (j = 0 ; j < 3 ; j+)k+;k-=j;m = i + j; printf(,k=%d
27、,m=%dn,k,m);运行结果及结果:运行结果为:j循环中:k的值变化为:1, 1, 2, 1, 2, 0.循环两次结果不变。循环结束时,i=2, j=3,故 m=5.【实验39:程序填空(1)下面程序的功能是:输出100以内同时能被3和7整除的所有整数,请填空。 #include <stdio.h> void main()int i, j;for (i=1 ;i+ )if () continue;printf (h%dr, i );填空:i<101;填空:(i%3!=0) | (i%7!=0)程序分析:当不能被3或7整除时返回i+,否则输出i。实验四函数4.1实验目的1.
28、 熟悉函数的一般形式以及函数的定义与调用。2. 掌握函数实参与形参的对应关系以及“值传递”的方法。3. 掌握自定义函数的编写。4. 掌握函数的嵌套调用和递归调用方法。5. 学握全局变量、局部变量、动态变量、静态变量的概念和使用方法。4.2实验预习1. 函数的概念、定义格式、声明格式、调用规则及调用过程屮数据传递方法过程,寒 暑的嵌套调用和递归调用。2. 宏定义和文件包含等编译预处理指令。4.3实验任务【实验41:写出下列程序的运行结果#include<stdio.h>int func( int a, int b)int c;c=a+b;return c;main()int x=6,
29、 y=7, z=8, r;r= func (func( x,y),+z);printf(m%dnh,r);上面程序的输出结果是d)31a) 11b) 21c) 22【实验4一2】:写出下列程序的运行结果 include <stdio.h>fun(int a);void main()int a=3;fun(a);printf(h%dnh,a);fun(int a)a=a+3;printf(” d,”,a);运行结果及分析:运行结果为:6, 3自定义函数中的a是局部变量,只在该函数中有效。【实验4一3】:写出下列程序的运行结果#include <stdio.h>int fu
30、n(i nt x)static int a=3;a=a+x;return a;void main()int k=25m=15n;n=fun(k);n=fun(m); printf(m%dn5,n);运行结果及分析:运行结果为:6 由于a是静态变量。n=3+2+1=6.【实验4一4】:写出下列程序的运行结果#inelude <stdio.h>float fac(int n)float f;if(n<0)printf(uerror!n); else if(n=0|n=1) f=1; else f=fac(n-1)*n; return(f);void main()int n=4;f
31、loat y; y=fac(n); printf(<,%d!=%fnh,n,y);4?=24.000000运行结果及结果分析:运行结果为:这是一个递归函数,僅0(3*(汁)=24【实验4一5:程序填空 通过调用函数求a+b的和。 #include <stdio.h> float add(float x,float y);void main()float add(float x,float y);float a,b,c; scanf(“ f,%f”,&a,&b); c=;printf(“f”,c);float add(float x,float y)float
32、z; z=x+y; return z;填空并运行分析:【实验4一6】:程序填空从键盘输入任意一个数,用函数计算它的阶乘 #include <stdio.h>long int f(int a)long int i,t=1;for(i=1 ;i<=a;i+)t=t*i;return;void main()long int x;scanf (“ ld”,&x);printf(m%ldn,f(x);填空并运行分析:实验五数 组5.1实验目的1. 熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。2. 熟练掌握字符数组和字符串函数的使用。3. 熟练掌握一维数纽以及一维数组
33、元素的存储关系。4. 熟练学握一维数组和二维数组的使用以及在函数中的传递。5. 通过上级实践掌握与数组有关的算法。5.2实验预习1. 熟悉循环语句与数组处理语句结合的方法。2. 复习一维数纽、二维数组的定义、初始化和数组元索的引川。3. 复习数组的应用:批量处理数据、查找、排序和矩阵的处理。4. 复习字符数组的定义和使用。5. 复习字符串的含义、存储和字符串函数的功能。6. 复习函数调用时参数的传递过程。5.3实验任务【实验51:写出下列程序的运行结果 #include <stdio.h>void main()int a3=1,2;int i,j; for(i=0;i<3;i
34、+) for(j=0;jv3;j+) ai=aj+1:printf(,n%d,ai);运行结果及分析:运行结果为:初始化:a0=1,a1=2,a2=0;第一次 i 循环:i=o,ao=1 +1 =2;a0=2+1 =3;a0=0+1 =1;第二次 i 循环:i=1,31 =1 +1 =2;a1 =2+1 =3;a1 =0+1 =1;第三次 i 循环:i=2,a2=1 +1=2;a2=1 +1=2;a2=2+1=3.【实验52】:以下程序的运行结果是#include <stdio.h>#define len 4main()intj,c; static char n2len+1=“89
35、80”,“9198”; for(j=len-1;j>=0;j-) c=n00+n10-2*<0,;n00=c%10+,0,; puts(n0);a)7078 b)8980 c)9198 d)7788 【实验53】:写出下列程序的运行结果#include <stdio.h>void swap1(int cq)int t;t=c0;c0=c1;c1=t;void swap2(int c0,int c1)int t;t=c0;c0=c1;c1=t;void main()int a2=3,5,b2=3,5;swap1(a);swap2 (b0,b1j);printf(”5d %
36、5d %5d %5d ,',a0,a1,b0,b1);运行结果及分析:运彳丁结果为:第一个函数,最后改变了数组的值,而第二个函数只改变了该函数中 局部变量的值,所以最后返回主函数时,数组b的值没有改变。【实验54】:程序填空将fibonacci数列前15项放入一个一维数组中(f ib0=1, f ib1=1 ),并 计算其中奇数之和。#include <stdio.h>void main()int fib15,i,s=0;fib0=1;fib1=1;for(i=2;i<15;i+) ;for(i=0;i<15;i+)if()s=s+fibil:printf(h%
37、dnm,s);【实验55】:程序填空给出以下形式数据,计算各行之和,并存入一个一维数组中。#include <stdio.h> void main()int a33=1,2,4,6,1,5,8,0,0,b3=0; int i,j;for(i=0;i<3;i+)fora=0;j<3;j+) ;for(i=0;i<3;i+)drintf(6d”,);【实验 56:编写程序:已知数组 a10 = 3, 7, 6, 5, 4,1,2, 9, 9, 7, 计算数组下标为奇数的元素之和。程序运行结果:29实验六指针6.1实验目的1. 了解地址与指针、指针变量的概念。2. 熟练
38、掌握指针的定义、赋值、使用和传递。3. 学会正确使用变量的指针和指向变量的指针变量。4. 熟练掌握指针运算的方法。5 学握数组指针和指向数组指针的指针变量的使用方法。6. 掌握字符串的指针和指向字符串的指针变量的使用方法。6.2实验预习1. 复习指针的概念,指针变量的定义。2. 复习指针的运算。3. 复习指针与数组的关系。4. 复习指针与函数的关系。6.3实验任务【实验61】:阅读程序,调试并记录程序运行结果。void main()int a=1,2,3;int *p,l;p=a;for(i=0;i<3;i+)print(u%d, %d%d%dn,ai,pi,*(p+i),*(a+i);
39、【实验62】:阅读程序,调试并记录程序运行结果。#include “stdio.h”void f(char *st, int i)sti =,0,;printf(“ sn”,st);if(i>1)f(st,i-1);void main()char st= “abed”;f(st,4);【实验63】:阅读程序,调试并记录程序运行结果,分析此程序的功能。#include “stdio.h”void main()char *s= “ab5ca2cd34ef”;int ij,a=0,0,0,0;for(p=s; *p!=,0,;p+)jp-if(j>=0 &&j<=3
40、)aj+;for(i=0;iv4;i+)print(“ d”,ai);【实验64:程序填空。程序功能:完成截取字符串s中从第m个位置开始的n个字符,返回所截字符串的首地址。static char sub20;void main()static char s="goodmorning"char *cut(),*p;p=cut(s,3,4);printf(n%snn,p);char (1)广定义cut函数*/char *s;int m,n;inti;for(i=0;i<n;i+)subi=(2);subi='0;return (3);【实验65】:程序填空。程序功
41、能:从键盘输入10个整数,然后求出其屮最小值。#include ustdio.hint table10;void lookup(int %,int *a,int m)intk;*a=t0;for(k=1 ;kvm;k+)if ()*a=tk;void main()int k,min,*p=&min;for(k=0;k<10;k+)scanf (“ d”,table+k);lookup( (2),(3),10);pintf(umin=%dn,min);【实验66】:(1)下面函数用來求出两个整数z和,并通过形参传冋两数相加z和值, 填空。include <stdio.h>
42、;int add(int x, int y, _z);void main()int a=3, b=4, c;add ();printf( dn" , c);int add (int x, int y, z)一=x+y;retur n(4)6.4实验报告1. 完成【实验任务1l调试程序并记录程序运行结果。表6-1实验任务1结果记录农人1 分析结果实验运行结果1,1,1,1,1,1,1,1,2,2,2,22,2,2,23,3,3,33,3,3,34,4,4,44,4,4,42完成【实验任务1】,调试程序并记录程序运行结果。农6-2实验任务2结果记录农人工分析结果实验运行结果abedabe
43、dabcabcababaa3完成【实验任务1】,调试程序并记录程序运行结果。农6-3实验任务3结果记录表实验运行结果2121程序功能取出字符串中和a差值在03的字符,并存入到数组a中4.阅读【实验任务4】,完成程序填空。农6-4实验任务4结果记录衣填空位査填空语句实验运行结果(1)*cut(s,m,n)dmor(2)sm+l(3)sub5阅读【实验任务5】,完成程序填空。表实验任务5结果记录表填空位置填空语句输入数据实验运行结果(1)*a>tfkl12 3 4(2)table5 6 7 8min=1(3)e_9 106.阅读【实验任务6】,完成程序填空。表6-6实验任务6结果记录表填空位
44、貨填空语句输入数据实验运行结果(1)a, b, &c(2)int*hellostudent7(3) (4)实验七结构体、共用体与链表和文件7.1实验目的1. 理解结构体类型的概念并掌握定义形式。2. 掌握结构体类型变量的定义和变量成员的引用形式。3. 掌握指向结构体的指针变最的定义。4. 加深对结构体数据、结构体指针类型数据的认识。5. 理解链表的概念,熟悉链表的基本操作。6. 掌握共用体类型和枚举类型的概念,掌握它们的定义形式。7. 掌握共用体类型变量的定义和变量成员的引用形式。8. 掌握文件的基本概念,认识文件类型指针。9. 熟悉文件操作的基本过程;学会选用适当的文件操作函数处理文
45、件。10. 了解文件的读写方式,如顺序读写文件和随机读写文件。11. 了解将不同数据写入或读出文件的方法。7.2实验预习1. 复习结构体数据类型的声明和结构体变量的定义、使川。2. 复习结构体变量成员的引用形式。3. 复习指针与结构体数据类型的关系。4. 复习链表的概念和基木操作(生成、输出)。5. 复习共用体数据类空的声明和结构体变量的定义、使用。6. 复习指针与共用体数据类型的关系。7. 复习文件的概念。8. 复习文件的两种组织形式。9. 复习各种文件操作函数及文件读写位置指针的定位操作。7.3实验任务25.下面程序的输出是a) 0b) 1c) 3d) 6#inelude <stdi
46、o. h>voicl main ()struct cmplxint x; int y;cnum2 = l, 3, 2, 7;printf (z,%dnz,, cnum0. y /enum0.x * cnuml> x); 答案:d【实验70】:下列程序的输出结果是a)5b)6c)7d)8#include <stdio.h>struct abcint a, b, c;;void main()struct abc s2=1,2,3,4,5,6;int t;t=s0.a+s1.b;printf(h%d n'*,t);答案:b【实验71:有如下程序#include <
47、;stdio.h>void main()file *fp1;fp1= fopenc'fl.txf'/'w");fprintf(fp1,habc");fclose(fpl);若文本文件fltxt中原有内容为:good,则运行以上程序后文件fl. txt中的 内容为a)goodabcb)abedc)abc d)abegood运行结果:c【实验72】:以下程序的输出结果是:#include <stdio.h>typedef unionlong i;int k5;char c;date;struct dateint cat;date cow
48、; double dog;too;date max:void main()prin tf(m%dnm,sizeof(struct date)+sizeof(max);运行结果及分析:运行结果为:data:4*5=20; struct date : 4+20+8=32; 32+20=52;【实验73】:以下程序的输出结果是:#include <stdio.h>typedef unionlong i;int k5;char c;date;struct dateint cat;date cow;double dog;too;date max:void main()printf("
49、;%dn",sizeof(struct date)+sizeof(max);运行结果及分析:运行结果为:data:4*5=20;struct date : 4+20+8二32;32+20=52;【实验74】:填空题下面程序建立一个单向链表。#include <stdio.h>void main()struct studlong num;float score;struct stud;stud1 ,stud2,stud3,*head;studl.num = 1;stud1.score = 89.5;stud2.num = 2;stud2.score = 90.5;stud3
50、.num = 3;stud3.score = 94.5;head = & studl;studl.next = &stud2;stud2.next = &stud3;stud3.next = null;填空并运行分析:*next【实验75:以下程序把a数组中的数据输出到fp所指的二进制 文件中。#include <stdio.h>#define n 10void main() float an; inti; file *fp; for(i=0;i<n;i+) scanf(“ f',a+i); fp=fopen(“filedat''
51、;,“wb"); fwrite(a,4*n,1,fp);填空并运行分析:分析:将a中前0n个字符,即全部数据写入到文件中。【实验76:下面程序把一个名为f 1. doc的文件拷贝到一个名为f2. doc的文件中,请在处添入适当命令行,使之正确运行。#include <stdio.h>void main()char c;file *fp1, *fp2;fp 仁 fopen(“f4do&',t');fp2=c=fgetc(fp1);while(c!=eof)fputc(c,fp2);c=fgetc(fp1);fclose(fpl);fclose(fp2
52、);填空并运行分析:fopen( “f2 doc” , ” w”);【实验77】:填空题下面程序建立一个单向链表。#inelude <stdio.h>void main()struct studlong num;float score;struct stud;stud1 ,stud2,stud3,*head;studl .num = 1:stud 1 .score = 89.5;stud2. num = 2;stud2.score = 90.5;stud3.num = 3;stud3.score = 94.5;head = &stud1;studl.next = &stud2;stud2. next = &stud3;stud3.next = null;填空并运行分析:【实验7-8:以下程序把a数组中的数据输出到fp所指的二进制文件中。#include <stdio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《大学计算机基础》课件-第5章 电子表格处理软件
- 填报志愿 合同
- 《正向间接血凝试验》课件
- 2025年吐鲁番道路货运驾驶员从业资格考试题库
- 2025年湖北货运从业资格证考试模拟考试题目
- 2025年长沙货运从业资格证考试题目和答案
- 2025年张掖驾校考试货运从业资格证模拟考试
- 2025年河源考货运资格证考试内容
- 工业用地交易中介合同样本
- 水利工程机械施工安全协议
- 《推拿治疗小儿腹泻》精品PPT
- 大学英语四级必背词汇表21853
- 结构设计面试题(答案)
- 升压站、变电站架构安装方案
- 赤峰高铁广场商铺租赁合同(样本)
- 郭顶—水星记—歌词
- 英文版个人简历自荐信
- 其他专技、管理服务岗位聘期考核表
- 四年级上学期劳动技术测试卷带答案
- 关于学习考察应急管理工作情况报告.doc
- TX-1C单片机实验板使用手册
评论
0/150
提交评论