c语言实验报告.docx
- 文档编号:29920468
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:16
- 大小:18.90KB
c语言实验报告.docx
《c语言实验报告.docx》由会员分享,可在线阅读,更多相关《c语言实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
c语言实验报告
身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。
小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高=(faHeight+moHeight)*0.54(cm)
女性成人时身高=(faHeight*0.923+moHeight)/2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
*/
#include
voidmain()
{doublefaHeight,moHeight,h,h1=0,h2=0;
charsex,sports,diet;
printf("请输入父亲身高(cm)");
scanf("%lf",&faHeight);
printf("请输入母亲身高(cm)");
scanf("%lf",&moHeight);
printf("请输入孩子性别(F:
女性,M:
男性)");
scanf("%*c%c",&sex);
printf("是否喜爱体育锻炼?
(Y/N)");
scanf("%*c%c",&sports);
printf("是否有良好的卫生饮食习惯?
(Y/N)");
scanf("%*c%c",&diet);
if(sex=='M'||sex=='m')
h=(faHeight+moHeight)*0.54;
else
h=(faHeight*0.923+moHeight)/2;
if(sports=='Y'||sports=='y')h1=0.02;
if(diet=='Y'||diet=='y')h2=0.015;
printf("孩子身高为:
%.2f(cm)",h*(1+h1+h2));
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
*输入一个学生的两门课成绩(百分制),计算该学生的总分并要求输出成绩等级'A'、'B'、'C'、'D'、'E'。
总分在180分以上为'A',160~179分为'B',140~159分为'C',120~139分为'D',120分以下为'E
#include
voidmain()
{inta,b;
printf("请输入两门课的成绩(百分制):
");
scanf("%d%d",&a,&b);
if(a<0||a>100||b<0||b>100)
printf("输入错误(成绩应为百分制)!
");
else
{switch((a+b)/20)
{case20:
case19:
case18:
printf("%d--->A",a+b);break;
case17:
case16:
printf("%d--->B",a+b);break;
case15:
case14:
printf("%d--->C",a+b);break;
case13:
case12:
printf("%d--->D",a+b);break;
default:
printf("%d--->E",a+b);
}
}
}
题目:
在[200,900]范围内同时满足以下两个条件的十进制数:
(1)其个位数字与十位数字之和除以10所得的余数是百位数字;
(2)该数为素数;
问:
有多少个这样的数,并逐一显示(每行显示5个)。
*/
#include
#include
voidmain()
{inti,j,m,a,b,c,flag;
m=0;
for(i=201;i<900;i+=2)
{a=i/100;
b=i/10%10;
c=i%10;
if((b+c)%10==a)
{flag=1;
for(j=2;j<=(int)sqrt(i);j++)
if(i%j==0)
{flag=0;
break;
}
if(flag==1)
{printf("%4d",i);
m++;
}
if(m%5==0)printf("\n");
}
}
printf("这样的数有%d个",m);
}
------------------------------------------------------------------------------------------------------------------------------------------------
编程输出如下上三角形式的九九乘法表。
123456789
---------
123456789
4681012141618
9121518212427
162024283236
2530354045
36424854
495663
6472
81
*/
#include
voidmain()
{inti,j;
for(i=1;i<10;i++)
printf("%-4d",i);
printf("\n");
for(i=1;i<10;i++)
printf("%-4c",'-');
printf("\n");
for(i=1;i<10;i++)
{for(j=1;j
printf("%-4c",'');
for(j=i;j<10;j++)
printf("%-4d",i*j);
printf("\n");
}
}
/*打印fabonacci数列的前20项,该数列前两项为1,以后各项均为前相邻两项之和*/
#include
voidmain()
{intfa[20];
inti;
fa[0]=fa[1]=1;
for(i=2;i<20;i++)
fa[i]=fa[i-1]+fa[i-2];
printf("fabonacci数列的前20项\n");
for(i=0;i<20;i++)
{printf("%-6d",fa[i]);
if((i+1)%5==0)printf("\n");
}
}
/*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/
#include
#defineN30
voidmain()
{doubles[N],t;
intn,i,j;
printf("请输入学生人数:
");
scanf("%d",&n);
for(i=0;i {printf("请输入第%d个学生的成绩: ",i+1); scanf("%lf",s+i); } for(i=0;i for(j=i+1;j if(s[i] {t=s[i]; s[i]=s[j]; s[j]=t; } printf("\n降序排序后成绩\n"); for(i=0;i printf("%.2f\n",s[i]); } /*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/ #include #defineN30 voidmain() {doubles[N],t; intn,i,j; printf("请输入学生人数: "); scanf("%d",&n); for(i=0;i {printf("请输入第%d个学生的成绩: ",i+1); scanf("%lf",s+i); } for(i=0;i for(j=0;j if(s[j] {t=s[j]; s[j]=s[j+1]; s[j+1]=t; } printf("\n降序排序后成绩\n"); for(i=0;i printf("%.2f\n",s[i]); } /*编写一个程序,利用字符数组实现两个字符串的比较。 */ #include #defineN80 intstrbj(chars1[],chars2[]) {inti=0; while(s1[i]==s2[i]) if(s1[i]=='\0') return0; else i++; returns1[i]-s2[i]; } voidmain() {chars1[N],s2[N]; intk; printf("请输入第一个字符串"); gets(s1); printf("请输入第二个字符串"); gets(s2); k=strbj(s1,s2); if(k>0) printf("%s>%s",s1,s2); elseif(k<0) printf("%s<%s",s1,s2); else printf("%s=%s",s1,s2); } *编写程序,输出2~n之间的所有素数,n由键盘输入。 要求判断素数的过程要写在函数中,由主函数调用实现,并写出2组以上程序运行结果。 */ #include #include intsushu(intm) {inti; for(i=2;i<(int)sqrt(m);i++) if(m%i==0)return0; return1; } voidmain() {intn,i,count=0; printf("inputn: "); scanf("%d",&n); printf("2~%d之间的素数有: \n",n); for(i=2;i<=n;i++) if(sushu(i)==1) {count++; printf("%-6d",i); if(count%5==0)printf("\n"); } printf("\n"); } /*编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。 */ #include #defineN8 doubleaver(doubles[]) {inti; doublesum=0; for(i=0;i sum+=s[i]; returnsum/N; } voidmain() {doubles[N],a; inti; for(i=0;i {printf("请输入第%d个学生的成绩: ",i+1); scanf("%lf",s+i); } printf("平均分为: %.2f\n",a=aver(s)); printf("高于平均分的成绩有\n"); for(i=0;i if(s[i]>a)printf("%.2f",s[i]); } /*下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。 形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。 */ #include #defineN10 voidfun(int*a,intn,int*odd,int*even) {inti; *odd=*even=0; for(i=0;i if(*(a+i)%2==0) *even+=*(a+i); else *odd+=*(a+i); } voidmain() { inta[N]={1,10,2,3,19,6},i,n=6,odd,even; printf("Theoriginaldatais: \n"); for(i=0;i printf("%5d",*(a+i)); printf("\n\n"); fun(a,n,&odd,&even); printf("Thesumofoddnumbers: %d\n",odd); printf("Thesumofevennumber: %d\n",even); } /*编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现 删除字符串str中和字符ch相等所有字符,然后输出字符串str。 */ #include #defineN80 voiddele(char*s,charch) {char*q; q=s; while(*s! ='\0') {if(*s! =ch) {*q=*s; q++; } s++; } *q='\0'; } voidmain() {charstr[N],ch; printf("请输入字符串: "); gets(str); printf("请输入要删除的字符: "); ch=getchar(); dele(str,ch); printf("删除%c后的字符串为\n",ch); puts(str); } /*某单位进行选举,有5位候选人: zhang、wang、li、zhao、liu。 编写一个统计每人得票数的程序。 要求每个人的信息使用一个结构体表示,5个人的信息使用结构体数组。 */ #include structusr {charname[50]; intnum; }; voidmain() {inti,n; structusruser[5]={{"zhang",0},{"wang",0},{"li",0},{"zhao",0},{"liu",0}}; printf("请输入选票,5位选手的编号分别是1、2、3、4、5,当输入非选手编号时输入结束: \n"); scanf("%d",&n); while(n==1||n==2||n==3||n==4||n==5) {user[n-1].num++; scanf("%d",&n); for(i=0;i<5;i++) printf("%s得票: %d\n",user[i].name,user[i].num); } /*设张三20岁、李四22岁、王平23岁,编程输出3人中年龄最小者的姓名和年龄*/ #include structusr {charname[50]; intage; }; voidmain() {inti,j; structusruser[3]={{"张三",20},{"李四",22},{"王平",23}}; j=0; for(i=1;i<3;i++) {if(user[i].age j=i; } printf("年龄最小的是%s,年龄%d岁\n",user[j].name,user[j].age); } /*编写一个程序,将5个字符串写入文件中。 */ #include #include voidmain() {inti; charstr[100]; FILE*fp; fp=fopen("text.txt","w"); if(fp==NULL) {printf("不能打开这个文件"); exit(0); } printf("请输入5个字符串: \n"); for(i=0;i<5;i++) {scanf("%s",str); fprintf(fp,"%s\n",str); } fclose(fp); } /*根据程序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名, 然后将已存在的文本文件中的内容全部复制到新文本文件中*/ #include #include voidmain() {charch,frname[50],fwname[50]; FILE*fr,*fw; printf("请输入原文件名: "); scanf("%s",frname); printf("请输入新文本文件名: "); scanf("%s",fwname); fr=fopen(frname,"r"); if(fr==NULL) {printf("不能打开%s文件",frname); exit(0); } fw=fopen(fwname,"w"); if(fw==NULL) {printf("不能打开%s文件",fwname); exit(0); } ch=fgetc(fr); while(! feof(fr)) { fputc(ch,fw); ch=fgetc(fr); } fclose(fr); fclose(fw); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)