C语言上机实验答案_第1页
C语言上机实验答案_第2页
C语言上机实验答案_第3页
C语言上机实验答案_第4页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

C语言上机实验答案实验一上机操作初步(2学时)ー、实验方式:一人ー机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。2、了解如何编辑、编译、连接和运行一个C程序。3、初步了解C程序的特点。三、实验内容:说明:前三题为必做题目,后两题为选做题目。1、输出入下信息:(实验指导书P79)VeryGood2、计算两个整数的和与积。(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书P3)4、在屏幕上显示ー个文字菜单模样的图案:!输入数据 2修改数据3查询数据4打印数据5、从键盘上输入两个整数,交换这两个整数。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、include<stdio.h>voidmain()printf(z/********************\n"),printf("VeryGood\n,z);printf(z/********************\n")•2、#include<stdio.h>voidmain(){inta,b,c,d;printf(wPleaseentera,b:");scanf("%d,%d”,&a,&b);c=a+b;d=a*b;print耳"%d+%d=%d\n”,a,b,c);printf("%d*%d=%d\n//,a,b,d);)3^#include<stdio.h>#include<math.h>voidmain(){doublex,s;printf(wPleaseinputvalueofx:");scanf("%lf”,&x);s=cos(x);printf("cos(%lf)=%lf\n”,x,s);4、include<stdio.h>voidmain(){ printf(w==================================\n/,);printf("!输入数据2修改数据、n"); printf(“3查询数据4打印数据、n”);printf("===================================\n");5、#include<stdio.h>voidmain(){intx,y,t;printf(wPleaseenterxandy:w);scanf("%d%d",&x,&y);t=x;x=y;y=t;printf("Afterswap:x=%d,y=%d'n”,x,y);实验二简单的C程序设计(4学时)ー、实验方式:一人ー机二、实验目的:1、掌握C语言的数据类型。2、学会使用C语言的运算符及表达式。3、掌握不同数据类型的输入输出方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、输入rl、r2,求出圆形垫片面积。(实验指导书P84)2、输入华氏温度h,输出摄氏温度c。(实验指导书P85)3、从键盘输入ー个3位整数,将输出该数的逆序数。(实验指导书P89)4、输入并运行以下程序,分析运行结果。#include<stdio.h>voidmain(){intij;i=8;j=10;printf("%d,%d\n”,++i,++j);i=8;j=10;printf("%d,%d\n”,i++,j++);i=8;j=10;printf("%d,%d\n”,++i,i);printf("%d,%d\n”,i++,i);}5、输入三角形三条边的边长,求三角形的面积。(书P55)6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(书P55)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>#definePI3.14voidmain(){floatrl,r2;doublesl,s2,s;printf(wPleaseenterrl,r2:\nw);scanf("%f%f",&rl,&r2);s2=r2*r2*PI;sl=rl*rl*PI;s=s2-sl;printf("s=%lf\n",s);}2、#include<stdio.h>voidmain(){floath,c;printf("请输入华氏温度:");scanf("%f”,&h);c=5.0/9*(h-32);printf("\n摄氏温度:%f\n”,c);}3、finclude<stdio.h>voidmain(){inta,b,c,x,y;printf(“请输入ー个3位的正整数:、n");scanf("%d”,&x);a=x/100; /*求x的百位数=7b=(x-a*100)/10;/・求x的十位数ッc=x-a*100-b*10;/*求x的个位数ッy=c*100+b*10+a;printf("%d:%d\n”,x,y);}4、运彳丁结果:9,118,109,88,85、#include<stdio.h>ttinclude<math.h>{inta,b,c;doublearea,s;printf(MPleaseentera,b,c:,z);scanf("%d,%d,%d”,&a,&b,&c);s=(double)(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(,zarea=%.2lf\nw,area);)6、#include<stdio.h>voidmain(){chara,b,c;floatx;printf("Pleaseenter:\nzz);x=(a+b+c)/3.0;a=getchar();b=getchar();c=getchar();x=(a+b+c)/3.0;printf("(a+b+c)/3=%.2f\nzz/x);)实验三选择结构程序设计(2学时)ー、实验方式:一人ー机二、实验目的:1、熟练掌握if语句和switch语句。2、练习并掌握多分支选择结构的编程方法。3、学习调试和修改程序的步骤。

三、实验内容:说明:前三题为必做题目,后两题为选做题目。1、读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是立方体还是长方体。(实验指导书P104)2、输入某ー年月,输出该月的天数。(实验指导书P105)3、有一函数:くx<10)210) 编写程序,输入x值,输出y值。4、从键盘输入ー个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。(书P94)5、输入4个整数,要求按由小到大的顺序输出。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>voidmain(){intl,w,h;printf(“请输入箱子的长、宽、高:'n");scanf("%d%d%d”,&ル&w,&h);if(l==w&&w==h)/if(l==w&&w==h)/・如果长、宽、高相等,则为立方体*/printf(“该箱子是立方体。“);elseprintf(“该箱子是长方体。”);}2、#include<stdio.h>voidmain(){intyear,month,days;printf("Pleaseenteryearandmonthヘn");switch(month){case2:if(year%4==0&&year%100!=0||year%400==0)days=29;elsedays=28;break;caselxase3:case5:case7:case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;}printf("%d年%d月有%d天、n",year,month,days);)3、#include<stdio.h>{floatx,y;printf(,zPleaseinputx:\n,z);scanf("%f”,&x);if(x<l)V=x;elseif(x<10)y=2*x-l;elsey=3*x-ll;printf("y=%f\n”,y);}4、#include<stdio.h>voidmain(){charx;printf(HEnterachar:\nw);x=getchar();if(x>尸'a'&&x<='z')x=x-32;elseif(x>='A,&&x<='Z,)x=x+32;putchar(x);}5、include<stdio.h>voidmain(){inta,b,c,d,t;printf(“请输入4个整数:");scanf("%d%d%d%d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("排序结果如下:、n");printf("%d,%d,%d,%d\n”,a,b,c,d);}实验四循环结构程序设计(4学时)ー、实验方式:一人ー机二、实验目的:1、熟练掌握while语句、do-while语句和for语句。2、练习并掌握循环结构的嵌套形式。3、掌握循环结构的程序设计方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。(实验指导书P117)2、求所有的水仙花数。水仙花数是ー个3位数的自然数,该数各位数的立方和等于该数本身。(实验指导书P118)3、判断输入的某个数是否为素数。若是,输出YES,否则输出N0。(书P123)4、计算n的近似值。公式如下:n/4=l-l/3+l/5-l/7+??,直到最后一项的绝对值小于10-6为止。(书P123)<5、计算s=l!+2!+??+20!的值并输出。6、输入10个整数,统计并输出其中正数、负数和零的个数。四、实验步骤与过程:五、实验调试记录:六、参考答案:1、include<stdio.h>voidmain(){floatx,max,min;printf(wPleaseinputscores:");scanf("%f”,&x);max=min=x;while(x>=O){if(x>max)max=x;if(x<min)min=x;scanf("%f”,&x);)printf('へnmax=%f\nmin=%f\n”,max,min);)2、#include<stdio.h>voidmain(){intx,y,z;intk=100;while(k<=999){ x=k/100;y=(k-x*100)/10;z=k-x*100-y*10;if(k==x*x*x+y*y*y+z*z*z)printf("%d\n",k);k++;}}3、#include<stdio.h>#include<math.h>{inti,x,yes,a;printf(,zEnterintegernumber:");scanf(,z%d"&x);yes=l;i=2;a=(int)sqrt((double)x);yes=0;while(yes&&i<=a) {if(x%i==O)yes=0;}printf(zz%d"x);if(yes)printf(zzYES\n");elseprintf(zzNO\n");}4、include<stdio.h>#include<math.h>voidmain(){floatpi,t,n;intsign=l;pi=0;n=l;t=l;while(fabs(t)>=le-6){t=sign/n;Pi+=t;n+=2;sign二-sign;}pi=pi*4;printf(Hpi=%f\nw,pi);)5、include<stdio.h>voidmain(){floats=O,t=l;intn;for(n=l;n<=20;n++){t=t*n;s=s+t;)printf(//l!+2!+??+20!=%f\n,,,s);}6、#include<stdio.h>voidmain(){intx,i,31=0^1=0,01=0;for(i=l;i<=10;i++){printf("\n请输入第%d个数:“,i);scanf("%d”,&x);if(x>O)al++;elseif(x<O)bl++;else cl++;)printf(“整数有%d个,负数有%d个,零有%d个'n",al,bl,cl);}实验五综合实验1:结构化程序设计(2学时)ー、实验方式:一人ー机二、实验目的:1、进ー步掌握选择结构、循环结构的编程特点。2、掌握C语言的结构化程序设计思想。3、学习利用循环结构实现的ー些常用算法(如穷举、迭代、递推等)。三、实验内容:说明:前两题为必做题目,后两题为选做题目。1、编ー程序,对于给定的ー个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设:90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(书P93)2、百马百担问题。(实验指导书P121)3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。4、输出如下图案: ********四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>voidmain(){ intscore,temp,logic;chargrade;logic=l;while(logic){printf(wlnputscore:");scanf("%d”,&score);if(score>100||score<0)printf(,z\nError,Inputagain!\n");elselogic=0;printf(//\n,/);}if(score==100)temp=9;elsetemp=score/10;switch(temp){case9:grade='A';break;case8:grade=/B/;break;case7:grade='C';break;case6:grade='D';break;default:grade=/E/;}printf(wScoreis%d,thegradeis%c.\n,z,score,grade);}2、include<stdio.h>voidmain(){intm,n,k;intsum=0;printf(“各种驮法如下:\n");for(m=l;m<=100;m++)for(n=l;n<=100-m;n++){ k=100-m-n;if(k%2==0&&m*3+n*2+k/2==100){ printf("大马%3d匹;中马%3d匹;小马%3d匹.、n”,m,n,k);sum++;})printf("共有%d种驮法.、n",sum);}3、#include<stdio.h>voidmain(){charc;intletter=0,space=0,digit=0,other=0;printf(“请输入一行字符:、n");while((c=getchar())!=z\nz){ if(c>尸'a'&&c<='z'IIc>='A/&&c<='Z,)letter++;elseif(c=='')space++;elseif(c>='0/&&c<='9,)digit++;elseother++;)printf("字母数=%d,空格数=%d\n”,letter,space);printf("数字数=%d,其他字符数=%d\n",digit,other);)4、#include<stdio.h>voidmain(){intij,k;for(i=0;i<=3;i++){ for(j=0;j<=2-i;j++)printf("");for(k=0;k<=2*i;k++) printf("巧;printf(ヘn");)for(i=0;i<=2;i++){ for(j=0;j<=i;j++)printf("");for(k=0;k<=4-2*i;k++)printf("*w);printf("\n,/);}}实验六函数程序设计(4学时)ー、实验方式:一人ー机二、实验目的:1、掌握C语言中函数的三要素:函数定义、函数调用和函数说明。2、掌握通过参数在函数间传递数据的方法。3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。(实验指导书P130)2、输入整数n,输出高度为n的等边三角形。当n=5时的等边三角形如下:(实验指导书P134)****3、输入并运行以下程序,分析运行结果。#include<stdio.h>inta=5;intb=7;voidmain(){inta=4,b=5,c;c=plus(a,b);printf("a+b=%d\n”,c);)plus(intx,inty){intz;z=x+y;return(z);}4、求500以内的所有亲密数对。若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为ー对亲密数对。(实验指导书P136)5、输入并运行以下程序,分析运行结果。include<stdio.h>intd=l;fun(intp){staticintd=5;d+=p;printf("%d,z,d);return(d);voidmain(){inta=3;print*"%dH,fun(a+fun(d)));}6、设计ー个函数,输出整数n的所有素数因子。(书P157)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>#include<math.h>floatarea(floata,floatb.floatc){floats,p,area;s=(a+b+c)/2;p=s*(s-a)*(s-b)*(s-c);area=sqrt(p);return(area);}voidmain()“%f%f%f”,&x,&y,&z);"area=%f\n”,ts);}elseprintf(,fdataerror!\n");

2、#include<stdio.h>voidtrangle(intn){inti,j;for(i=0;i<n;i++){ for(j=0;j<=n-i;j++)putchar。');/*for(j=0;j<=2*i;j++)putchar(/*/);})voidmain(){intn;printf(,zPleaseentern:");scanf("%d”,&n);printf(へn");trangle(n);)3、a+b=94、include<stdio.h>intfacsum(intm){intsum=l,f=2;while(f<=m/2)*/{floatx,y,z,ts;putchar(へn*/{floatx,y,z,ts;putchar(へn。;打印每一行的空格・/打印每一行的・号scanf(if(x>O&&y>O&&z>O&&ascanf(mp;x+y>z&&y+z>x&&x+z>y){ts=area(x,y,z); printf(}f++;}returnsum;}voidmain(){intm=3,n,k;while(m<=500){n=facsum(m);k=facsum(n);if(m==k&&m<=n)printfド%d,%d\n”,m,n); m++;})5、615156、#include<stdio.h>intprime(intn){inti,flag=l;for(i=2;i<=n/2;i++)if(n%i==O){flag=O;retunflag;)returnflag;)voidfactor(intn){inti;i=2;while(i<=n){if((n%i==O)&&prime(i)){printf("%dH,i);n=n/i;continue;}i++;}}voidmain(){intnum;printf("Enternum:");scanf("%d”,&num);printf("primefactoris:\n");factor(num);}实验七数组程序设计(4学时)ー、实验方式:一人ー机二、实验目的:1、掌握数组的定义、赋值和输入输出的方法。2、学习用数组实现相关的算法(特别是排序算法)。3、掌握C语言中字符数组和字符串处理函数的使用。三、实验内容:说明:前四题为必做题目,后两题为选做题目。1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 include<stdio.h>voidmain(){inti,n,a[10],avg;for(i=0;i<n;i++)scanf("%d",am);for(i=0;i<n;i++){ if(i%3==0)printf("\n");printf(/z%d,z,a[i]);for(i=0;i<n;i++)avg+=a[i];printf('ヘnavg=%f\n",avg);)2、写ー个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。(实验指导书P147)3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是ー样的字符串。(实验指导书P153)4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。5、给定某年某月某日,将其转换成这一年的第几天并输出。(实验指导书P152)6、编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。(书P191)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>voidmain(){inti,n=10,a[10];floatavg=0;for(i=0;i<n;i++)scanf("%d”,&a[i]);for(i=0;i<n;i++){ if(i%3==0) printf('へn");printfド%dw,a[i]);}for(i=0;i<n;i++)avg+=a[i];avg=avg/n;printf(,,\navg=%f\n,z,avg);)2、tinclude<stdio.h>voidsortlfints[]Jntn){intij;intt;for(i=0;i<n-l;i++)for(j=9;j>=i+l;j-)if(s[j]<s[j-l]){t=s[j];s[j]=s[j-l];s[j-l]=t;}}{inti,a[10];printf(,zPleaseinput10numbers:\nH);for(i=0;i<10;i++)scanf("%d”,&a[i]);sortl(a,10);printf("Thesorted10numbersへn");for(i=0;i<10;i++)printf(,z%dz,,a[i]);}3、#include<stdio.h>#include<string.h>#defineN40voidmain(){charstr[N],ch=zY/;inti;intlen;printf(zzlnputastring:\nw);scanf(zz%sz/,str);len=strlen(str);for(i=0;i<len/2;i++)if(str[i]!=str[len-l-i]){ ch='N';break;}if(ch=='Y')printf("%s是ー个回文数、n”,str);elseprintf("%s不是ー个回文数、n",str);}4、4nelude<stdio.h>voidmain(){inta[3][3],sum;inti,j;sum=0;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d”,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf(,,sum=%d\n,,,sum);}5、#include<stdio.h>intday_tab[2][13]={{0,31,28,31,30,31,3031,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};intday_year(intyear,intmonthjntday){inti,j,s=O;if(year%4==0&&year%100!=011year%400==0)i=l;elsei=0; for(j=l;j<month;j++)s=s+day_tab[i][j];return(s+day);}voidmain(){inty,m,d;printf(/zlnputyear,monthandday:\n,z);scanf("%d%d%d”,&y,&m,&d);printf("是这年的第%d天、n”,day_year(y,m,d));}6、include<stdio.h>#defineN10voidmain(){inta[N];intnum,i;charch='n';printf(“请输入一个数组:\n");for(i=0;i<N;i++)scanf("%d”,&a[i]);printf("输出数组:\n");for(i=0;i<N;i++)printfド%d”,a[i]);printf("\n");printf(“请输入ー个数:'n”);scanf("%d”,&num);printf("开始查找'n”);for(i=0;i<N;i++)if(num==a[i]){ch=V;printf("%d在数组的第%d位、n”,num,i+l);)if(ch==/n/)printf("nofound\n,z);}实验ハ指针程序设计(2学时)ー、实验方式:一人ー机二、实验目的:1、通过实验进ー步掌握指针的概念,会定义和使用指针变量。2、能正确使用指向数组和字符串的指针变量。3、熟悉指针作为函数参数的编程特点。三、实验内容:说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。1、指针基础及指针运算。(实验指导书P168)2、输入3个整数,按从小到大的次序输出。(书P234)3、数据交换。实验要求:1)定义两个函数,分别为voidswapl(inta,intb)和voidswap2(int*a,int*b),用于交换a,b的值。2)从主函数中分别输入两个整型变量a、b。3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。(实验指导书P169)4、编写ー个程序计算字符串长度的函数,模拟C的<string.h>函数库内的计算字符串长度的函数strlen()〇四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>#include<malloc.h>#defineN5voidmain(){int*p,*q,a[N];inti,tmp;P=a;q=(int*)malloc(N*sizeof(int));printf(wPleaseinputthefirstgroup:,z);for(i=0;i<N;i++)scanf("%d",p+i); /*使用指针p输入a的N个元素・/printf("Pleaseinputthesecondgroup:");for(i=0;i<N;i++)scanf("%d”,&q[i]); /*使用数组输入指针q地址上的N个整数*/ for(i=0;i<N;i++)if(*(p+i)>*(q+i)){tmp=*(p+i);*(p+i)=*(q+i);*(q+i)=tmp;}交换printf("Result:\n");for(i=0;i<N;i++)printf("%d",*(a+i)); /*按指针输出第一组数・/printf("\n");for(i=0;i<N;i++)printf("%dw,q[i]); /・按数组输出第二组数・/printf("Thememoryaddressofp,a,qare:%x;%x;%x\n",p,a,q);free(q);}2、#include<stdio.h>voidswap(int*pl,int*p2){intp;p=*pl;*pl=*p2;*p2=p;)voidmain(){intnl,n2,n3;int*pl,*p2,*p3;printf(,zPleaseinputthreeintegerdatas:");scanf("%d%d%d”,&nl,&n2,&n3);pl=&nl;p2=&n2;p3=&n3;if(nl<n2)swap(pl,p2);if(nl<n3)swap(pl,p3);if(n2<n3)swap(p2,p3);printf("Afterswap门;printfド%d%d%d\n”,nl,n2,n3);}3、include<stdio.h>voidswapl(intx,inty);voidswap2(int*x,int*y);voidmain(){inta,b;printf("Pleaseinputa三”);scanf("%d”,&a);printf("Pleaseinputb=:");scanf(,z%d",&b);swapl(a,b);printf(w\nAftercallswapl:a=%db=%d\n”,a,b);swap2(&a,&b);printf(へnAftercallswap2:a=%db=%d\n,z,a,b);}voidswapl(intx,inty){inttemp;temp=x;x=y;y=temp;}voidswap2(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}4、include<stdio.h>intstrlength(char*s);voidmain(){intnl,n2;char*listl=/zSeenoevil,hearnoevil.";char*list2="blindanddeaf?";nl=strlength(listl);n2=strlength(list2);puts(listl);printf("Thelengthoflistl=%d\nw,nl);puts(list2);printf(wThelengthofIist2=%d\nz/,n2);)intstrlength(char*s){intn=0;while(*s!=へ。’){n++;s++;}returnn;)实验九综合实验2:函数、数组、指针的综合应用(2学时)ー、实验方式:一人ー机二、实验目的:1、进ー步掌握通过指针引用数组元素的方法。2、综合运用函数、数组、指针的知识,实现复杂程序的编程。3、掌握调试复杂程序的技巧。三、实验内容:说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。1、数组元素奇偶排列。实验要求:1)定义ー个整型ー维数组,任意输入数组的元素,其中包含奇数和偶数。2)定义ー个函数,实现将数组元素奇数排列在左,偶数排列在右的排列。3)在上述定义的函数中,不允许再增加新的数组。4)从主函数中分别调用上述函数,打印输出结果。(实验指导书P172)2、编写函数lower()模拟标准函数strlwr(),调用形式为lower(char*st),其作用是将字符串st中的大写字母转换成小写。(书P192)3、编写函数,比较两个字符串是否相等。(书P234)4、编写函数reverse()模拟标准函数strrev(),调用形式为reverse(char*st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。(书P192)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>#defineN10voidarrsort(inta[],intn);voidmain(){inta[N],i;for(i=0;i<N;i++)scanf("%d”,&a[i]);arrsort(a,N);for(i=0;i<N;i++)printf(M%dH,a[i]);}voidarrsort(inta[],intn){int*p,*q,temp;P=a;q=a+n-l;while(p<q){while(*p%2)p++;while(!(*q%2))q-;if(p<q){temp=*p;*p=*q;*q=temp;}P++,q—;})2、#include<stdio.h>#defineN20voidlower(char*st){inti=0;while(st[i]!=ヘ〇'){ if(st[i]>尸'A'&&st[i]<='Z')st[i]+=32;i++;)}voidmain(){chars[N];printf(,zlnputastring:\n,z);scanf("%s”,s);lower(s);printf("〇utput:%s\n”,s);)3、#include<stdio.h>#include<string.h>intcompare(char*p,char*q){inti,l=strlen(p);if(strlen(p)!=strlen(q))return0;for(i=0;i<l;i++)if(p[i]!=q[i])return0;return1;}voidmain(){charstrl[80],str2[80];printf('Inputfirststring/7);scanf(,z%sH,strl);printf('Inputsecondstring/7);scanf("%s”,str2);if(compare(strl,str2))printf(/zTwostringsequation!\nw); elseprintf("Twostringsnoequation!\n");}4、include<stdio.h>#include<string.h>voidreverse(char*st){inti=0,n;chart;n=strlen(st);for(;i<n/2;i++){t=st[i];st[i]=st[n-i-l];st[n-i-l]=t;})voidmain(){chars[80];printf("lnputastring:\n");scanf("%s”,s);reverse(s);printf(“〇utput:%s\n",s);实验十综合实验3:结构体、文件程序设计(6学时)ー、实验方式:一人ー机二、实验目的:1、掌握结构体类型变量的定义和使用。2、掌握结构体类型数组的概念和使用。3、学会使用文件打开、关闭、读、写等文件操作的函数。三、实验内容:说明:前三题为必做题目,后ー题为选做题目。1、在选举中进行投票,包含候选人姓名、得票数,假设有多位候选人,用结构体数组统计各候选人的得票数。(实验指导书P180)2、编写ー个学生信息排序程序。要求:1)程序运行时可输入n个学生的信息和成绩(n预先定义)。2)学生信息包括:学号、姓名:学生成绩包括:高等数学、物理、计算机。3)给出ー个排序选择列表,能够按照上述所列信息(学号、姓名、高等数学、物理、计算机)中的至少ー个字段进行排序,并显示其结果。4)使用函数方法定义各个模块。3、将磁盘上一个文本文件的内容复制到另ー个文件中。(实验指导书P199)4、从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,输出到ー个磁盘文件“test.daビ中保存,然后读出并输出在屏幕上。(实验指导书P204)四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include<stdio.h>#include<string.h>structperson{charname[20];intcount;同6]={"zhang”,0コi",〇,"wang",〇,"zhao",〇,"liu",〇,"zhu",〇};voidmain(){inti,j;charabc[2O];for(i=l;i<=10;i++){ printf("输入候选人名字:");scanf("%s",abc);for(j=0;j<6;j++)if(strcmp(abc,a[j].name)==O)a[j].count++;)for(j=0;j<6;j++)printf(/z%s:%d\n",a[j].name,a[j].count);)2、#include<stdio.h>#include<string.h>#defineN3structstudent{intstunum;charstunameflO];intmath;intphysics;intcomputer;intsum;};voidprintspacef){inti;for(i=0;i<40;i++)printf("_");printf("\n");}voidprintinformation(structstudentstu[]){inti;printf("stuNumstuNamemathphysicscomputersumsort:\n");printspace();for(i=0;i<N;i++){printf("%6d%10s%6d%6d%6d%6d",stu[i].stunum/stu[i].stuname,stu[i].math,stu[i].physics,stu[i].computer,stu[i].sum,i+1);printf("\n");)printspace();)voidreadinformation(structstudentstu[]){inti;printf("lnput%dstudentinformation:\n",N);for(i=0;i<N;i++){printf("lnputthe%dstudentstunum:",i+l);scanf("%d",&stu[i].stunum);printf("lnputthe%dstudentstuname:",i+l);scanf("%s",stu[i].stuname);printf("lnputthe%dstudentmathscore:",i+1);scanf("%d",&stu[i].math);printf("lnputthe%dstudentphysicsscore:",i+1);seanf("%d",&stu[i].physics);printf("lnputthe%dstudentcomputerscore:",i+1);seanf("%d",&stu[i].computer);stu[i].sum=stu[i].math+stu[i].physics+stu[i].computer;)voidsortbystunum(structstudentstu[]){inti,j;structstudentt;for(i=0;i<N-l;i++)for(j=0;j<N-i-l;j++)if(stu[j].stunum<stu[j+l].stunum){t=stu[j];stu[j]=stu[j+l];stu[j+l]=t;}}voidsortbystuname(structstudentstu[]){inti,j;structstudentt;for(i=0;i<N-l;i++)for(j=0;j<N-i-l;j++){t=stu[j];if(strcmp(stu[j].stuname,stu[j+l].stuname)<O)stu[j]=stu[j+l];stu[j+l]=t;}}{t=stu[j];voidsortbymath(structstudentstu[]){inti,j;structstudentt;for(i=0;i<N-l;i++)for(j=0;j<N-i-l;j++)if(stu[j].math<stu[j+l].math){t=stu[j];stu[j]=stu[j+l];stu[j+l]=t;}}voidsortbyphysics(structstudentstu[]){inti,j;structstudentt;for(i=0;i<N-l;i++)for(j=0;j<N-i-l;j++)if(stu[j].physics<stu[

温馨提示

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

评论

0/150

提交评论