计算机软件实习报告.docx
《计算机软件实习报告.docx》由会员分享,可在线阅读,更多相关《计算机软件实习报告.docx(9页珍藏版)》请在冰豆网上搜索。
计算机软件实习报告
计算机软件实习报告
姓名:
王煜;学号:
N100801519
1.编写一个程序,如果输入小写字母则输出大写字母,如果输入大写字母则输出小写字母。
算法:
输入1个字母,范围在“a”到“z”之间,其ASCII码减去32得到大写,如果范围在“A”到“Z”之间,其ASCII码加上32得到小写,最后再输出,得到所求字母。
程序代码
#include
voidmain()
{
charc;
printf("pleaseinputacharacter:
\n");
scanf("%c",&c);
if(c>='a'&&c<='z')
{c=c-32;
printf("%c",c);
}
else
{c=c+32;
printf("%c",c);
}
}
运行结果
输入a,得到A;输入z,得到Z;
输入A,得到a;输入Z,得到z;
2.在唱歌比赛中,有10个评委打分,分数为1到100分,选手最后得分为:
去掉一个最高分和1个最低分其余8个分数的平均值。
算法:
输入求最大值,最小值,平均值的算法,再输入10个数,求出其中的最大值和最小值,令他们等于0,再求剩余8个数的平均数,即所求数。
程序代码
#include
voidmain()
{inti,max,min,avg=0,num[10];
printf("input10numbers:
\n");
for(i=0;i<=9;i++)
scanf("%d",&num[i]);
max=min=num[0];
for(i=0;i<=9;i++)
{if(num[i]>max)max=num[i];
if(num[i]avg=avg+num[i];
}
avg=(avg-max-min)/8;
printf("avgnum=%d\n",avg);
}
运行结果
输入10个数,去除其中的最值,得到剩余8数平均数
3.输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数。
算法:
编译4个代码,表示英文,空格,数字,和其他;再输入字符,进行判别,符合其一的代入相应数组,最后汇总。
程序代码
#include
voidmain()
{intenglish=0,blank=0,number=0,other=0;
charc;
c=getchar();
while(c!
='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
english++;
if(c=='')
blank++;
if(c>='0'&&c<='9')
number++;
elseother++;
c=getchar();
printf("Thereare%denglish,%dblank,%dnumber,%dother\n",
english,blank,number,other);
}
运行结果
输入一行字符,可统计出英文,空格,数字和其他字符的个数。
4.商场购物(购物超过2000元,六;超过1000元,七;超过500元,八;低于500元无折扣)。
编写一个程序,输入消费金额,求应拿到的折扣。
算法:
输入1个价格,根据各范围用对应的函数去求,超过2000六折;1000七折;500八折;低于500无折扣
程序代码
voidmain()
{
inta,b;
printf("Howmuchdidyoupaid:
\n");
scanf("%d",&a);
if(a>=2000)
printf("0.6\n");
if(a>=1000&&a<2000)
printf("0.7\n");
if(a>=500&&a<1000)
printf("0.8\n");
if(a<500)
printf("100%");
}
运行结果
输入1个价格,若大于2000,就打六折;大于1000就打7折;大于500就打8折;若低于500,就无折扣。
5.编写1个简单的计算器,实现2个整型数之间的四则运算。
算法:
输入a,b,c,分别导出各字母所对应的函数,再对第四者d进行各运算的赋值,从而求出所需结果。
程序代码
voidmain()
{
inta,b,c=0;
chare;
scanf("%d",&a);
scanf("%c",&e);
scanf("%d",&b);
if(e=='+')
{c=a+b;
printf("=%d\n",c);
}
if(e=='*')
{c=a*b;
printf("=%d\n",c);
}
if(e=='-')
{c=a-b;
printf("=%d\n",c);
}
if(e=='/')
{c=a/b;
printf("=%d",c);
}
}
运行结果
输入2个整型数,则可求出相应的四则运算的值。
6.有100匹马,驼了100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马各多少匹?
算法:
输入2个代码x,y,若y>x,则太大,若y程序代码
#include
intmain()
{
int#include
#include
intmain()
{intx,y;
srand(time(NULL));
x=rand()%10;
scanf("%d",&y);
while(y!
=x)
{if(y>x)
printf("toobig");
elseif(yprintf("toosmall");
scanf("%d",&y);
}
return0;
}
#include
intmain()
{intx,y;
scanf("%d",&x);
y=x%400;
if(y<0)
printf("Theyearisaleapyear\n");
elseprintf("no\n");
}
#include
#include
voidmain()
{intx;
floaty,z;
for(x=1;x<=10;x++)
{y=sqrt(x);
z=y*y*y;
printf("%f\n",z);
}
运行结果100匹马,100担货,可求出对应的大中小马的匹数。
7.将1到20的自然数围城1圈,使其相令两数之和均为素数。
算法:
定义一个数为素数,再将1到10个数进行相应运算,回到n,再列出3个数组abc,相应数代入a数组,其余代入b组,再把计算值代入c组,符合素数条件,则输出
程序代码
pr(intn)
{inti,s1=1;
for(i=2;i<=n/2;i++)
if(n%i==0)s1=0;
returns1;
}
s(intx[],intm)
{intl,i,n;
i=10;l=1;
while(l)
if(x[i]==0)i--;
else{n=x[i];if(pr(n+m)){x[i]=0;f=0;}
elsei--;}
returnn;
}
main()
{inta[11],b[11],c[21],i,j,k,m,n;
for(i=1;i<=10;i++)
{a[i]=2*i-1;b[i]=2*i;}
c[1]=a[1];m=c[1];a[1]=0;k=2;
while(k<=20)
{if(m%2)n=s(b,m);
elsen=s(a,m);
c[k]=n;k++;m=n;}
if(pr(c[1]+n))
{printf("ok\n");
for(i=1;i<=20;i++)
printf("%d",c[i]);}
elseprintf("no\n");
}
运行结果
输入1到20的数,可得到一个圈,其中相邻数和为素数
9.输入10个学生的学号和成绩(百分之分数),用单链表存储,按以下标准打印每个学生的学号和成绩等级,同时,当输入某个等级后,能输出所有这个等级的学生的学号,90-100:
优秀;80-89:
良好;70-79:
中等;60-69:
及格;60以下:
不及格。
算法:
输入一个链表,包含学号,成绩。
接收输入的10组2个数字分别储存在一个数组中。
对数组中的链表中的成绩进行判断,90~100为优秀,80~89为良好,70~79为中等,60~69为及格,60以下为不及格。
将成绩等级放入链表,再输出。
当输入一个等级时,依次判断数组每个链表中的成绩,符合等级则将该链表的学号输出。
程序代码
#include"string.h"
#defineNULL0
structstu
{charsno[15];
intmark;
structstu*next;
}a[10],*head,*p;
main()
{charb[10];
inti;
for(i=0;i<10;i++)
scanf("%s%d",a[i].sno,&a[i].mark);
printf("sno\t\tmark\n");
for(i=0;i<10;i++)
printf("%s\t\t%d\n",a[i].sno,a[i].mark);
head=&a[0];
for(i=0;i<9;i++)
a[i].next=&a[i+1];
a[9].next=NULL;
p=head;
printf("you,liang,zhong,jige,bujige:
\n");
scanf("%s",b);
while(p!
=NULL)
{switch(p->mark/10)
{case10:
case9:
if(strcmp(b,"you")==0)printf("%s\n",p->sno);break;
case8:
if(strcmp(b,"liang")==0)printf("%s\n",p->sno);break;
case7:
if(strcmp(b,"zhong")==0)printf("%s\n",p->sno);break;
case6:
if(strcmp(b,"jige")==0)printf("%s\n",p->sno);break;
case5:
case4:
case3:
case2:
case1:
case0:
if(strcmp(b,"bujige")==0)printf("%s\n",p->sno);break;
default:
printf("wrong");
}
p=p->next;
}
}
运行结果
输入学生信息,则可得到相应的学生的学号。
实习总结
通过这次为期1周的C语言编译实习,使人获益良多,首先,让我深刻体味到,计算机专业远没有我们想的那么简单,只有付出艰辛的劳动与付出,加之勤奋,才能真正体味到其中的精华;其次,编程是一项艰辛的工作,工作量大,还要做到步步精益求精,力求最简化,有时1个小小的错误,就影响到了整个程序的编译与运行。
这就要求我们在编译程序时要全神贯注,一丝不苟,有“千里之堤溃于蚁穴”的忧患意识,每次在编译完一段程序时要反复检验,争取在最短时间内找出其中的症结,从而为整个大的程序的编译与运行打下坚实的基础,编程的过程是枯燥的,其间的错误也是致命的,这也是一个磨练人得意志的过程,从而为以后的工作奠定基础;其结果是令人喜悦的,因为这其中凝结了自己体力和脑力劳动的成果;最后,编程也是1个复杂的,富有创造性的工作,能充分的调动我们的创造力与思索力,让我们在思索的过程中得以提升,能在一段程序中看出一个人的能力,态度与思想,可谓“一段程序,一种人生。
”
总而言之,这次实习令我的收获颇丰,不仅提高了我计算机编程的能力,也让我对这个专业的知识的深度和广度得到了提升,并且冶炼了我的品格,真可谓“一箭三雕”。