c语言实验报告.docx

上传人:b****8 文档编号:29920468 上传时间:2023-08-03 格式:DOCX 页数:16 大小:18.90KB
下载 相关 举报
c语言实验报告.docx_第1页
第1页 / 共16页
c语言实验报告.docx_第2页
第2页 / 共16页
c语言实验报告.docx_第3页
第3页 / 共16页
c语言实验报告.docx_第4页
第4页 / 共16页
c语言实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言实验报告.docx

《c语言实验报告.docx》由会员分享,可在线阅读,更多相关《c语言实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

c语言实验报告.docx

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);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1