计算机科学与技术试验报告,_第1页
计算机科学与技术试验报告,_第2页
计算机科学与技术试验报告,_第3页
计算机科学与技术试验报告,_第4页
计算机科学与技术试验报告,_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨工程大学程序设计基础实验报告基础实践二姓名:王明班级:学号:实验时间:2017年5月8日成绩1jr"(X X / f哈尔滨工程大学计算机基础课程教学中心实验五I_ _严实验题目1:输入两个整数数组,每个数组有 5个整数,将两者合并并排序输出。设计思想:定义两个5个元素的数组,一个10个元素的数组,数据类型为整型,通 过for循环输入前两个数组的值,并依次存入第三个数组中。另外编写排序函数,在 主函数中调用对第三个数组中的元素排序并输出。I I'.1 I实验代码及注释:I I&I II I#in clude<stdio.h>#in clude<s

2、tdlib.h>voidf1(i nt*a, in ti,i ntj)in tm, n,c;intk;欢迎阅读欢迎共阅m=i;n=j;k=a(i+j)/2;dowhile(am<k&&m<j)m+;while(a n>k&&n >i) n-;if(m <=n)c=am;am=a n;a n=c;m+=1;n-=1;while(m <=n);if(mvj)f1(a,m,j);if(n >i)f1(a,i, n);1 II II Iin tmai n()in ta15,a25,c10;:n");printf(

3、"请输入两个数组,每组五个整数for(i nti=0;i<5;i+)sca nf("%d%d",&a1i,&a2i);欢迎阅读欢迎共阅for(i nti=0;i<5;i+)ci=a1i;ci+5=a2i;f1(c,0,9);printf("排序后为:n");I Zfor(i nti=0;i<10;i+)prin tf("%d",ci);putchar('n');Isystem("pause");return。;验证与结论:程序运行正常,结果输出正确。总结与

4、心得体会:二"1 I本实验用到了循环结构对数组输入,这是对多个数据同时输入的一种非常方便的方I I法。利用指针进行排序,由于形参和实参在数据传递上有单向性,在进行元素交换 类数组函数的编写时,需要借用指针。本实验将其中一个主要功能编写为函数,使 代码模块化,利于阅读查错。实验题目2:某公司生成5种产品,每周记录生产的每种产品数量和销售数量。在每个月月末, 公司将对其生产规划进行评估。该评估需要以下一个或多个信息:欢迎阅读欢迎共阅(a)每周生产和销售的数量;(b)所有生产产品的总量;(c)所有销售产品的总量;(d)每种产品生产和销售的总量;假设生产和销售的产品分别用二维数组M45和S4

5、5表示。其中,Mij表示第i周生产第j种产品的数量。Sij表示第i周销售第j种产品的数量。假设使用一维 数组C5来表示每种产品的价格。其中,Ci表示第j种产品的价格。数组M、S和I ZC的值都在程序中输入。 I I定义两个二维数组Mvalue和Svalue来表示生产和销售的产品价值。输出变量的计算方式如下:Mvalueij=第i周生产第j种产品的价值二Mij*CiSvalueij=第i周销售第j种产品的价值二Sij*CiMweeki=在i周里生产的产品价值 二(j从1到5求和)MvalueijSweeki=在i周里所有产品的产品价值 二(j从1到5求和)SvalueijMproducti=在本

6、月里生成第j种的产品价值=(i从1到4求和)MvalueijSproducti=在本月里销售第j种的产品价值=(i从1到4求和)Svalueijc二二 1._ 1 |Mtotal=在本月里生成所有产品的产品总价值 二(i从1到4求和)MeekijI IStotal二在本月里销售所有产品的产品总价值 二(i从1到4求和)Seekij请编程实现数据的输入和输出。设计思想:本实验中涉及多组数值,如数量、周数、价值等。根据题目要求定义四 个二维数组,分别表示生产和销售的数量及价值,再定义四个一维数组表示生产和 销售的周数以及产品价值。最后,根据题目中给定的计算方法理清数组之间关系, 设计函数进行计算。

7、欢迎阅读欢迎共阅实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h>in tmai n()in tM45=0,S45=0,C5=0,Mvalue45=0,Svalue45=0,Mweek5 =0,Sweek5=0,Mproduct5=0,Sproduct5=0,Mtotal=0,Stotal=0;I Zin tMt=O,St=O,sum=O;for(intj=0;j<5;j+)prin tf("C%d=",j+1);sca nf("%d", &Cj);for(i nti=0;i&

8、lt;4;i+)for(i ntj=0;j<5;j+). 1 II Iprin tf("M%d%d=",i+1,j+1);sca nf("%d",&Mij);Mvalueij=Mij*Cj;for(i nti=0;i<4;i+)欢迎阅读欢迎共阅for(i ntj=0;j<5;j+)prin tf("S%d%d=",i+1,j+1);sea nf("%d",&Sij);Svalueij=Sij*Cj;for(i nti=0;i<4;i+)for(i ntj=0;j<5;j

9、+)Mweeki+=Mvalueij;Sweeki+=Svalueij;f lfor(i ntj=0;j<5;j+)for(i nti=0;i<4;i+)Mproductj+=Mvalueij;Sproductj+=Svalueij;欢迎阅读欢迎共阅for(i nti=0;i<4;i+)Mtotal+二Mweeki;Stotal+二Sweeki;pri ntf("(a):n");I Zfor(i nti=0;i<4;i+)printf("第%d 周生成数量:%dn",i+1,Mi0+Mi1+Mi2+Mi3+Mi4);printf(

10、"第%d 周销售数量:%dn",i+1,Si0+Si1+Si2+Si3+Si4); prin tf("n");pri ntf("(b):n");for(i nti=0;i<4;i+)".冷for(i ntj=0;j<5;j+)Mt+=Mij;St+=Sij;printf("所有生产产品的总量:%dn",Mt);欢迎阅读欢迎共阅prin tf("n");printf("(c):n所有销售产品的总量:dn",St);prin tf("n"

11、);pri ntf("(d):n");for(i ntj=0;j<5;j+)printf("第%d 种产品生产的总量:dn",j+1,M0j+M1j+M2j+M3j);I Zprintf("第%d 种产品销售的总量:%dn",j+1,S0j+S1j+S2j+S3j); / /prin tf("n");for(i nti=0;i<4;i+)for(i ntj=0;j<5;j+)prin tf("Mvalue%d%d=%dn",i+1,j+1,Mvalueij);prin tf(&

12、quot;Svalue%d%d=%dn",i+1,j+1,Svalueij);I Ii. iprin tf("n");for(i nti=0;i<4;i+)prin tf("Mweek%d=%dn",i+1,Mweeki);prin tf("Sweek%d=%dn" ,i+1,Sweeki);欢迎阅读欢迎共阅prin tf("n");for(i ntj=0;j<5;j+)prin tf("Mproduct%d=%dn",j+1,Mproductj);prin tf(&quo

13、t;Sproduct%d=%dn",j+1,Sproductj);I Zprin tf("n");pri ntf("Mtotal=%dn",Mtotal);pri ntf("Stotal=%dn",Stotal);I system("pause");return。;验证与结论:程序运行正常,结果输出正确。总结与心得体会:-二厶 .1 I本实验计算方法已经给出,但涉及较多数组,关系复杂。由于一个数组可以存放多*I I个数据,导致数据之间关系难以理清。求解这类问题时,要小心谨慎地先理清数据之间的关系,再根据给

14、定的算法进行计算。实验题目3:编程将一个字符串插入到另一个字符串的第n个位置。设计思想:定义两个较大的数组,数据类型为字符型。利用循环对数组赋值。定义一个变量控制插入的位置。用strlen函数计算两组字符串长度,在第二个数组中为第 欢迎阅读欢迎共阅一个数组让开位置(留出空位,使原有元素后移至第一数组完全插入时末尾位置) 用第一个数组中的字符串覆盖第二个数组中相应位置字符,达到插入的目的。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>in tmai n()I Zintn,i,j;in

15、 tle n1,le n2;charstr1256,str2256;printf("请输入 str1=");sca nf("%s", &str1);printf("请输入 str2=");sca nf("%s", &str2);Ien1二 strle n(str2);'Ilen 2二strle n( str1)+n-1;II Iprintf("请输入 n=");sca nf("%d",&n);for(i 二n-1,j=0;i<le n2,

16、j<strle n( str1);i+,j+)str2le n1=str2i;str2i=str1j;欢迎阅读len 1+;prin tf("%s",st;system("pause");return。;验证与结论:I Z程序运行正常,结果输出正确。总结与心得体会:本实验用了循环结构对数组进行赋值,这是对多个数据同时输入的一种非常方便的 方法。同时,本实验采取了将原有元素后移为即将插入的元素“让位”的插入方法,这也是一种比较常用的方法。在对数组中元素进行移位时,要特别注意是否相差一, 因为数组计数从零开始,这种问题特别容易发生。所以,在查错时也要特

17、别注意这 一点。实验题目4:编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。匸二m I.1 |设计思想:设计函数对数组中的字符串进行反序排列。首先设计一个函数对数组中I I.I I的两个元素进行交换,从首尾两端同时进行,第一位和最后一位交换第二位和倒数 第二位进行交换,依次类推,实现数组的反序。在主函数中调用。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>欢迎阅读欢迎共阅#defi neswap(a,b)chartemp;temp二a;a=b;b=temp;

18、 voidf2(chars)in tle nth=strle n(s); chartemp;for(i nti=0;i<le nth/2;i+)swap(si,sle nth-1-i);in tmai n()chars256;n");printf("请输入一串字符: sca nf("%s", &s);f2(s);printf("反序后为:n"); prin tf("%s",s);二u丨system("pause");1 II II Ireturn。; 验证与结论:程序运行正常,结果

19、输出正确总结与心得体会:本实验通过利用数组直接作为函数形参,直接对数组进行反序,省去了借用指针的过程,更加简洁方便。实验题目5:编写程序,从键盘输入一行字符,统计其中英文字母数、空格、数字和其他字符数的个数。设计思想:分别编写三个函数对字符进行检测,函数的编写根据ASCII码进行检测, 函数结果返回1或0 (符合要求返回1,反之返回0)。在主函数中对输入的字符串I Z进行逐位检测,直接利用三个函数的返回值进行计数,最后分别输出结果。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h>in tzimu(chars)if(64<s

20、&&s<91|96<s&&s<123)return1;elseretur n0;> Iintkon gge(chars)if(s='')return1;elsereturn0;欢迎阅读欢迎共阅in tshuzi(chars)if(48<=s&&s<=57)returnl;elseretur nO;in tmai n()chars;in tzm=O,kg=O,sz=O,qita=O;printf("请输入一串字符:n");while(s=getchar()!='n

21、9;)zm+=zimu(s);kg+=ko ngge(s);sz+=shuzi(s);:二1 Ii iprintf("字母=%dn 空格=%dn 数字=%d",zm,kg,sz); system("pause");return。; 验证与结论:程序运行正常,结果输出正确欢迎阅读欢迎阅读欢迎共阅总结与心得体会:本实验利用了 ASCII码对字符进行判断,由于字符与 ASCII码对应,所以ASCII码经常被用来判断字符。本实验中将函数的返回值定位0或1,可以直接用来计数,省去了再次计数的麻烦。实验六实验题目1:编程序求不超过2000的所有对称数。请编写函数,判

22、断一个数字是否为对称数,若I Z是对称数,函数返回值为1,否则返回值为0。主函数完成数据的输入与结果的输出。设计思想:定义一个五位数组,数据类型为字符型。设计函数通过指针对输入字符 串的首位和尾位进行比较,然后向中间靠拢,最后得出是否为对称数,作为主函数 里的判断条件。在主函数中输入、输出并调用此函数。实验代码及注释:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>in tpa ndua n( chars)I Iintn二 strle n( s);in tt=n/2;char*p1,*p2;p1=s

23、;p2=p1+ n-1;for(i nti=0;i<t;i+)欢迎共阅if(*(p1+i)!=*(p2-i)return。;returnl;in tmai n()chars5;in ta,b,c;printf("2000以内对称数有:n");for(intn=1; n<=2000; n+)spri ntf(s,"%d", n);b=pa ndua n( s);if(b=1)prin tf("%dt", n);_;' II Iprintf(”请输入一个数:");sca nf("%d",&

24、amp;a);spri ntf(s,"%d",a);c=pa ndua n( s);if(c=1) printf("%d 是对称数 n",a);欢迎阅读欢迎共阅elseprintf("%d 不是对称数 n”,a);system("pause");return。;验证与结论:程序运行正常,结果输出正确。I Z总结与心得体会:本实验要求判断是否为对称数,很容易想到直接输入数字求其相应数位再进行对比。 不过,本实验采用判断字符的方式,使程序更加简洁,占用内存更小。同时,本函 数采用指针指向字符串的相应位,直接进行比较,非常方便。实

25、验题目2:请编写函数,判断一个字符串是否是回文。若是回文,函数返回值为 1,否则返回值为0.设计思想:采用指针的运算进行移位,在这一过程中对数组的相应位进行比较,从 首位和尾位开始比较,比较完成后进行移位,直至全部比较结束。将比较结果作为c二7 I、' |判断条件,决定是反回何值。I I实验代码及注释:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>in tpa ndua n( chars,i ntn)欢迎共阅char*p1,*p2;p1=s;p2=s+n-1;for(i nti=O;i&l

26、t; n/2;i+)if(*(p1+i)!=*(p2-i)return。;returnl;in tmai n() chars128;printf("请输入一串字符:n");sca nf("%s", &s);if(strle n( s)=1|pa ndua n(s,strle n( s) pri ntf("1 n");'IelseI I2I Iprin tf("0n");system("pause");return。; 验证与结论:欢迎阅读欢迎共阅结果输出正确。总结与心得体会:本实

27、验与上一实验有很大的相似性,函数采用指针指向字符串的相应位,直接进行 比较,比较完成后通过指针的运算进行移位,非常方便。在解决多数据问题需要移 位时,指针的运算是一种很好的方法。实验题目3:分别利用行指针和指向元素的指针求整型二维数组中最大的元素及其所在的行号与' u二' I 1 |列号。I III I设计思想:通过循环方法对数组进行赋值。指向行时,分别判断每一行最大值再进 行比较,同时记录行号和列号。指向元素时,比较所有元素大小,找出最大值,并 记录行号和列号。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h>欢

28、迎阅读欢迎共阅in tmai n()in tM,N;printf("请输入数组的行和列:n");sea nf("%d%d",&M,&N);in taMN,max,h,l, nu=0;in t(*p)N,*q;printf("请输入 %d 个数字:n",M*N);for(i nti=O;i<M;i+)for(i ntj=O;j<N;j+)sca nf("%d",&aij);prin tf("n");p=a;max=0;I I/指向元素方案for(i nti=0;

29、i<M;i+)for(i ntj=0;j<N;j+)if(max<*(*(p+i)+j) max=*(*(p+i)+j);欢迎阅读欢迎共阅h=i;l=j;printf("指向元素t最大值为%d,所在行为%d,所在列为%dn",max,h+1,l+1);/指向行方案max二aOO;q=aO;for(i nti=O;q<aO+M*N;q+)I Z X / 彳 严/hif(max<*q)In u=i;max=*q;i+;h=nu/N;'Il=n u%N;> Iprintf(”指向行t最大值为%d,所在行为%d,所在列为%dn"

30、,max,h+1,l+1);system("pause");return。;验证与结论:欢迎阅读欢迎共阅结果输出正确。总结与心得体会:实验中考察了指向行和指向元素两种指针方法。指针分为多种,多级,在使用指针时,可以考虑多种不同的方式进行函数设计,以最简为目的。实验题目4:编写程序,输入5个单词,请将它们按从小到大的顺序排序后输出。设计思想:匚二二7 I 一' |实验代码及注释:I I2#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h> voidpaixu(chars32)c

31、harzj32;欢迎阅读for(i nti=0;i<4;i+)for(i ntj二i+1;j<5;j+)if(strcmp(sj,si)vO)strcpy(zj,si);strcpy(si,sj);strcpy(sj,zj);in tmai n()printf("请输入五个单词:n");chars532;I Ifor(i nti=0;i<5;i+)sca nf("%s",si);paixu(s);for(i nti=0;i<5;i+)prin tf("%s n",si);system("pause&q

32、uot;);欢迎阅读return。;验证与结论:结果输出正确。总结与心得体会:本实验中调用了字符串函数,这几个函数在比较字符串以及字符串的长度计算,复制字符串方面十分方便。要注意在调用字符串函数前要调用stri ng.h头文件。I 1 |实验题目5:I I3I I输入一个三位数,计算该数各位上的数字之和,如果在1 ,12之内,则输出与和数相对应的月份的英文名称,否则输出*。例如:输入:123输出:1+2+3=6Ju ne输入:139 输出:1+3+9=13*要求:用指针数组记录各月份英文单词的首地址。欢迎阅读设计思想:定义一个指针数组,数据类型为字符型。用指针数组记录各月份英文单词的首地址。对

33、输入的三位数分别求各个数位,相加判断输出几月或者*。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h> in tmai n()I Zintn,m; /彳 v严异rchar*yue="Ja nuary","February","March","April","May","Ju ne","July","Aguest","September","Oc

34、tober","November","December"printf("请输入一个三位数:n");sca nf("%d",&n);m=n%10+n/10%10+n/100;if(m<=12&&m>=1)pri ntf("%d+%d+%d=%dt%s", n/100, n/10%10, n%10,m,yuem-1);else W Iprin tf("%d+%d+%d=%dt*", n/100, n/10%10, n%10,m);I

35、Isystem("pause");return。;验证与结论:欢迎阅读结果输出正确。总结与心得体会:本实验用到了指针数组,用指针数组记录各月份英文单词的首地址,可以十分方便 地找到每个月并输出。实验七实验题目1:定义结构体类型,分别编写函数实现复数的加、减运算,在主函数中调用这些函数 匚二二严11进行计算并输出计算结果。I |2I |设计思想:定义复数结构体,结构体里包含两个整型变量,分别代表复数的实部和 虚部。定义复数加减的函数。在主函数里输入输出并调用这些函数。实验代码及注释:#in clude<stdio.h>#in clude<stdlib.h&g

36、t;structfushu欢迎阅读欢迎共阅in ti;intj;fushu1,fushu2,jieguo;in tjia()jieguo.i二fushu1.i+fushu2.i;jieguo.j二fushu1.j+fushu2.j;Iin tjia n()Ijieguo.i=fushu1.i-fushu2.i;jieguo.j=fushu1.j-fushu2.j;in tmai n()Iprintf(”请分别输入两个复数的实部和虚部:n");I Isca nf("%d%d%d%d", &fushu1.i, &fushu1.j, &fushu

37、2.i, &fushu2.j);jia();printf(” 他们的和是 %d%+din",jieguo.i,jieguo.j);jian();printf(” 他们的差是 %d%+din",jieguo.i,jieguo.j);system("pause");欢迎阅读欢迎共阅return。;验证与结论:程序运行正常,结果输出正确。总结与心得体会:本实验中运用到了基本的结构体功能,实现了结构体中变量的相加减,为进一步尝 试机构体类型打下了基础。I Z实验题目2:有10本图书,每本图书的信息包括书号、书名、作者、价格,编写函数完成以下功能:(1)从

38、键盘输入数据,将其存放在结构体数组中。(2)输入书名,在数组中查找是否存在此书,有此书则输出此书的信息,无此书则 输出提示信息。(3)输入一个价格,将高于此价格的图书信息输出。设计思想:定义一个结构体,包含一个整型变量,代表书号,两个字符型变量,分 别代表书名和作者名,一个实型,代表书价。通过循环结构输入每个变量的内容,u二十 I、1 |通过条件判断实现题目要求的查找功能。I I、I I实验代码及注释:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>structbook欢迎阅读欢迎共阅in tNUM

39、;char name10;charauthor10;floatprice;somebook10;in thasBook(charname,book on eBook)if(strcmp( on eBook .n ame ,n ame)=0) return1;Ireturn。;Iin thigher(float_price,book on eBook) _if(on eBook.price>_price)return1;returnO;voidi nput():二1 I I Iprintf("请依次输入十本书的n1.书号2.书名3.作者4.价格n");for(i nti

40、=O;i<1O;i+)sca nf("%f%s%s%f", &somebooki.NUM, &somebooki. name,&somebooki.author,&somebooki.price);欢迎阅读欢迎共阅voidsearchBook_ name(charname_1)in ti_book=0;for(i nti=0;i<10;i+)I Zif(hasBook( name_1,somebooki)=1)厂 I/ /Iprin tf("%.0f%s%s%.2fn",somebooki.NUM,somebo

41、oki. name,somebooki.author,somebooki.price);i_book+;if(i_book=0)-.1 I> Iprintf("没有这本书n");voidsearchBook_price(floatprice_1)for(i nti=0;i<10;i+)欢迎阅读欢迎阅读欢迎共阅if(higher(price_1,somebooki)=1)prin tf("%.0f%s%s%.2fn",somebooki.NUM,somebooki. name,somebooki.author,somebooki.price);

42、I Zin tmai n()Iinput();charname_110;printf("输入你想查找的书:");sca nf("%s" ,n ame_1);searchBook_ name (n ame_1);-1 I -floatprice_1;> Iprintf("输入价格:");sca nf("%f",&price_1);searchBook_price(price_1);system("pause");return。;欢迎共阅验证与结论: 程序运行正常,结果输出正确。总结与

43、心得体会:本实验在结构体中加入了更多的类型,还运用到了循环结构对结构体里的变量进行 赋值,是一种比较方便的写法。同时,还用到了对结构体里变量的判断。实验题目3:设有若干个人员的数据,其中有学生和教师。学生的数据包括:姓名、学号、性别、I Z班级,教师数据包括:姓名、职工号、性别、职务。现要求将老师和学生数据放在 同一表格中,其中老师的职务和学生的班级共享空间。编程输入相应的数据,然后 再输出数据。设计思想:定义一个结构体,包含各个数据,其中最后一项老师职务和学生班级用 共用体,根据学号里的是否有s判断是老师还是学生,决定输出类型。实验代码及注释:#in clude<stdio.h>

44、#i nclude<malloc.h>#in clude<stdlib.h>c二二1 |#defi neN4I I2I Ii. istructpers onchar name16;charid20;charsex5;union欢迎阅读欢迎共阅in tclas;charoffice16;claoff;structpers on*n ext;*head,*pthis;voidi nput()Istructpers on *tmp;printf("请输入个人信息:n");printf(”n");for(inti=1;i<=N;i+)prin

45、tf("姓名t学号/职工号t性别t班级/职务n");if(tmp=(structpers on *)malloc(sizeof(structperso n)二二NULL)".冷printf("n错误!不能申请所需的内存!n");1 I> Iexit(O);sca nf("%st%st%s", &tmp->n ame,&tmp->id,&tmp->sex);if(tmp->idO='s')sca nf("%d",&tmp->

46、claoff.clas);e-sescanf(=%s=fmpvc-aoff.office)_ fmpvnexllNULL 八 if(headxNULL)宀 headAmp pfhisuheaae-se 宀 pfhisvnexllfmp pfhisHpfhisvnexcvoidoufpuo宀pinff>n云選箔旦*一5八gnffvBZ齐*加、男H<4n諄W型齐岸磐、男血云ps云H欢迎共阅if(head=NULL)printf("错误,没有数据!n");return;pthis二head;while(pthis!二NULL)I Zif(pthis->idO=&

47、#39;s')pri ntf("%st%st%st%dn",pthis->n ame,pthis->id,pthis->sex,pthis->claoff.clas);elsepr in tf("%st%st%st%sn",pthis-> name,pthis->id,pthis->sex,pthis->claoff.office);J .1 II Ipthis=pthis->n ext;in tmai n()printf("n学生学号以s开头,成员数为4人nn");欢迎阅

48、读欢迎共阅head二NULL;input();output();system("pause");return。;验证与结论:I Z程序运行正常,结果输出正确。总结与心得体会:本实验用到了结构体和共用体,共用体可以对不同类型的同一栏数据进行分类,根 据判断输出不同数据。实验八实验题目1:从键盘输入一串大小写字母混合的字符串,将其中的所有小写字母转换成大写字母, 大写字母转换成小写字母,并将转换后的小写字母和大写字母分别存入不同的文件 中。11设计思想:根据ASCII码对大小写字母进行转换,通过循环结构对每个字母执行该I I操作,将转换后的字母打印到屏幕并写入文件。实验代码及注

49、释:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>in tmai n()欢迎阅读欢迎共阅FILE*fp1,*fp2;charzimu128;in ti;in tN二strle n(zimu);/初始定义fp仁 fope n("daxie.txt","w");I Zfp2=fope n( "xiaoxie.txt","w");I/文件打开操作if(fope n( "daxie.txt","w

50、")=NULL|fope n("xiaoxie.txt","w")=NULL)Iprintf("找不到文件");return-1;printf(”请输入一串大小写混合的字母:n");gets(zimu);'Ifor(i=0;i<N;i+)if(zimui>=65&&zimui<=90)zimui+=32;fputc(zimui,fp2);prin tf("%c",zimui);欢迎阅读欢迎共阅elseif(zimui>=97&& z

51、imuiv=122)zimui-=32;fputc(zimui,fp1);prin tf("%c",zimui);I Zfclose(fpl);fclose(fp2);Isystem("pause");return。;验证与结论:程序运行正常,结果输出正确,文件调用正确。总结与心得体会:1 I本实验难点主要在于对文件的操作,要注意判断文件是否正确打开。> I实验题目2:从键盘输入4位学生的数据(学生数据包括学号、姓名和三门课的成绩),然后把 它们转存到磁盘文件中去,再从磁盘文件读入相应变量中,并将变量内容输出到屏 幕。设计思想:定义结构体,其中包含一个整型变量代表学号,一个字符型代表姓名, 三个实型代表分数,将其写入文件后再读取并打印到屏幕 欢迎阅读欢迎共阅实验代码及注释:#in clude<stdio.h>#i ncludevstri ng.h>#i nclude<malloc.h>#in clude<stdlib.h>structstude ntintnum;Ichar name32;floatscorel;Ifloatscore2;floatscore3;structstude nt* next;*first,*mod,s;voidi nput()structstud

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论