云南大学软件学院C语言所有实验代码.docx
《云南大学软件学院C语言所有实验代码.docx》由会员分享,可在线阅读,更多相关《云南大学软件学院C语言所有实验代码.docx(26页珍藏版)》请在冰点文库上搜索。
云南大学软件学院C语言所有实验代码
第二次试验///第三次试验
=====================程序============================
#include
intmain()
{
/*十进制*/
printf("%d\n",3+4*6);
printf("%d\n",3*4/6+6);
printf("%d\n",2*3/12*8/4);
printf("%d\n",10*(1+7*3));
printf("%d\n",20-2/6+3);
printf("%d\n",20-2/(6+3));
printf("%d\n",(20-2)/6+3);
printf("%d\n",(20-2)/(6+3));
/*9-16显示为小数,保留小数2位,宽度为8*/
printf("%8.2f\n",3.0+4.0*6.0);
printf("%8.2f\n",3.0*4.0/6.0+6.0);
printf("%8.2f\n",2.0*3.0/12.0*8.0/4.0);
printf("%8.2f\n",10.0*(1.0+7.0*3.0));
printf("%8.2f\n",20.0-2.0/6.0+3.0);
printf("%8.2f\n",20.0-2.0/(6.0+3.0));
printf("%8.2f\n",(20.0-2.0)/6.0+3.0);
printf("%8.2f\n",(20.0-2.0)/(6.0+3.0));
/*17-20显示为字符*/
printf("%c\n",'m'-5);
printf("%c\n",'m'+5);
printf("%c\n",'G'+6);
printf("%c\n",'G'-6);
/*21-23显示为十进制整数*/
printf("%d\n",'b'-'a');
printf("%d\n",'g'-'a'+1);
printf("%d\n",'g'-'a'+1);
}
=======================运行结果====================================
=================================程序==========================
#include
intmain()
{
floatCel,Fah;
printf("printaFahnumber:
");
scanf("%f",&Fah);
Cel=5.0/9.0*(Fah-32);
printf("TheCelnumberis%f\n",Cel);
printf("printaCelnumber:
");
scanf("%f",&Cel);
Fah=32+9.0*Cel/5.0;
printf("TheFahnumberis:
%f\n",Fah);
return0;
}
============================运行结果=========================
第四次试验
************************************
(1)程序**********************************
#include
intmain()
{
intnum1,num2,num3,max,min;
printf("pleaseinputthreenumbers:
\n");
scanf("%d%d%d",&num1,&num2,&num3);
max=(num1>num2)?
num1:
num2;
min=(num1<=num2)?
num1:
num2;
max=(num3>max)?
num3:
max;
min=(num3num3:
min;
printf("max=%dmin=%d",max,min);
return0;
}
**************************************运行结果*********************************
**************************************
(2)程序*********************************
#include
intmain()
{
inta;
floatprofit,income;
printf("Pleaseinputtheprofit:
");
scanf("%f",&profit);
a=(profit-1)/100000;
switch(a)
{
case0:
income=profit/10;
break;
case1:
income=(profit-100000)*0.075+10000;
break;
case2:
case3:
income=(profit-200000)*0.05+10000+7500;
break;
case4:
case5:
income=(profit-400000)*0.03+10000+7500+10000;
break;
case6:
case7:
case8:
case9:
income=(profit-600000)*0.01+10000+7500+10000+6000;
break;
case10:
income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;
}
printf("奖金数值为:
%f\n",income);
return0;
}
************************************运行结果**********************************
********************************(3)程序****************************
/*百马百担问题*/
#include
int main ()
{
int A,B,C;
printf("百马百担的解为:
\n");
printf("大 中 小 \n");
for (A = 0; A <= 33; A++)
{
for (B = 0; B <= 50; B++)
{
C = 100 - A - B;
if (3*A + 2*B + C/2.0 == 100)
printf("%-2d %-2d %-2d \n",A,B,C);
}
}
return 0;
}
********************************运行结果*****************************
********************************(4)程序****************************
************************************(5)程序**********************************
//关于菱形的第一种算法//
#include
intmain()
{
inti,j,k;
printf("请输入最长行的数字,为奇数k:
");
scanf("%d",&k);
for(i=1;i<=k;i++)
{
for(j=1;j<=k;j++)
{
if((j+i)>=(k+1)/2+1&&(i+j)<=(k+1)*3/2-1&&i-j<=(k+3)/2-2&&j-i<=(k+3)/2-2)
printf("*");
else
printf(" ");
}
printf("\n");
}
return0;
}
//第二种算法///
#include
intmain()
{
intK,X,C,N;
printf("num=");
scanf("%d",&N);
for(C=1;C<=(N+1)/2;C++)
{
for(K=1;K<=(N+1)/2-C;K++)
printf("");
for(X=1;X<=2*C-1;X++)
printf("*");
printf("\n");
}
for(C=(N+3)/2;C<=N;C++)
{
for(K=1;K<=C-(N+1)/2;K++)
printf("");
for(X=1;X<=2*N+1-2*C;X++)
printf("*");
printf("\n");
}
}
************************运行结果***************************************
第5/6次试验
*********************************
(1)程序***********************************
第7次试验
**********************************
(1)程序**********************************
#include
intmain()
{
inti,j,n;
printf("inputanumber");
scanf("%d",&n);
inta[n][n];
printf("\n");
for(i=0;i{
a[i][0]=1;
a[i][i]=1;}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
*********************************************运行结果**************************
*******************************************
(2)程序****************************
方法一:
#include
intmain()
{
inti;
intfb[12]={1,1};
for(i=2;i<12;i++)
{
fb[i]=fb[i-1]+fb[i-2];
printf("第%d个月共有兔子%d只\n",i+1,fb[i]*2);
}
return0;
}
*****************************运行结果******************************************
***************************************
方法二:
#include
intmain()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)printf("\n");
f1=f1+f2;
f2=f1+f2;
}
return0;
}
************************************运行结果***********************************
*******************************(3)程序****************************************
#include
#definenum10
intnum1(int[],int);
intnum2(int[],int);
intmain()
{
voidsort1(intnum1[],intn);
voidsort2(intnum2[],intn);
inta[num],c[num],i,moves,j;
printf("enterarrayhere:
\n");
for(i=0;i<10;i++)
{
j=i;
scanf("%d",&a[i]);
c[j]=a[i];
}
printf("thesortedarray:
\n");
sort1(a,num);
printf("thesortedarray:
\n");
sort2(c,num);
return0;
}
voidsort1(intnum1[],intn)
{
inti,j,temp,b;
for(i=0;i{
for(j=1;j{
if(num1[j]{
temp=num1[j];num1[j]=num1[j-1];num1[j-1]=temp;
}
}
for(b=0;bprintf("%5d",num1[b]);
printf("\n");
}
}
voidsort2(intnum2[],intn)
{
inti,j,min,minidx,temp,b;
for(i=0;i{
min=num2[i];
minidx=i;
for(j=i+1;j{
if(num2[j]{
min=num2[j];
minidx=j;
}
}for(b=0;bprintf("%5d",num2[b]);
printf("\n");
if(min{
temp=num2[i];
num2[i]=min;
num2[minidx]=temp;
}
}
}
******************************运行结果***************************************
********************************(4)程序*************************************
#include
#defineN10
intbrnarysearch(int[],int,int);
intmain()
{
intnums[N]={1,5,8,9,12,23,45,56,67,99};
intitem,location;
printf("Entertheitemyouaresearchingfor");
scanf("%d",&item);
location=brnarysearch(nums,N,item);
if(location>-1)
printf("Theitemwasfoundatindexlocation%d\n",location);
else
printf("Theitemwasnotfoundinthelist\n");
return0;
}
#defineTure1
#defineFalse0
intbrnarysearch(intlist[],intsize,intkey)
{
intindex,found,left,right,midpt;
index=-1;
found=False;
left=0;
right=size-1;
while(left<=right&&!
found)
{
midpt=(int)((left+right)/2);
if(key==list[midpt])
{
found=Ture;
index=midpt;
}
elseif(key>list[midpt])
left=midpt+1;
else
right=midpt-1;
}
return(index);
}
**************************************运行结果*********************************
第10次试验
***********************************程序****************************************
#include
intmain()
{
inta=0,i,k;
intb[31];
printf("请输入一个十进制数:
\n");
scanf("%d",&i);
while(i!
=0)
{
k=i%2;
b[a++]=k;
i=i/2;
}
printf("转为二进制数为:
\n");
while(a>0)
{
printf("%d",b[--a]);
}
printf("\n");
return0;
}
***********************************运行结果************************************
第9次试验
*****************************程序**********************************************
#include
#include
intmain()
{
charname[5][30];
inti;
intgrade[15],num[5];
floatave[5];
printf("请输入学号、3学科成绩,姓名,:
\n");
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
scanf("%d%d%d",&grade[i*3],&grade[i*3+1],&grade[i*3+2]);
ave[i]=(grade[i*3]+grade[i*3+1]+grade[i*3+2])/3.0;
gets(name[i]);
}
for(i=0;i<5;i++)
printf("%d%-10s%d%d%d%5.2f\n",num[i],name[i],grade[i*3],grade[i*3+1],grade[i*3+2],ave[i]);
FILE*outFile;
outFile=fopen("C:
//stud.txt","w");
fprintf(outFile,"学号姓名成绩1成绩2成绩3平均成绩\n");
for(i=0;i<5;i++)
fprintf(outFile,"%d%-10s%5d%5d%5d%5.2f\n",num[i],name[i],grade[i*3],grade[i*3+1],grade[i*3+2],ave[i]);
fclose(outFile);
return0;
}
***********************************运行结果***********************************
第10次试验
1.请使用数组元素存取方式,设计实现一个函数可以将任意字符数组元素存放位置逆转的程序。
*****************************************程序**********************************
#include
#include
intmain()
{
charstr[100];
inti,j;
gets(str);
j=strlen(str);
for(i=j;i>=0;i--)
printf("%c",str[i]);
printf("\n");
return0;
}
***********************************运行结果************************************
2.请使用指针存取方式完成练习1
**************************************程序************************************
#include
#include
intmain()
{
intj;
charstr[100],*printer=str,i;
printf("Inputastring:
\n");
gets(str);
j=strlen(str);
for(i=j;i>=0;i--)
printf("%c",*(printer+i));
return0;
}
*****************************************运行结果******************************
3.用二维数组保存用户输入的字符串,当用户终止输入时,将所有输入中最长的字符串及其长度输出。
************************************程序**************************************
#include
#include
intmain()