云南大学软件学院C语言知识所有实验代码..doc
.-第二次试验/第三次试验=程序=#includeint main() /*十进制*/ printf(%dn,3+4*6); printf(%dn,3*4/6+6); printf(%dn,2*3/12*8/4); printf(%dn,10*(1+7*3); printf(%dn, 20-2/6+3); printf(%dn, 20-2/(6+3); printf(%dn, (20-2)/6+3); printf(%dn, (20-2)/(6+3);/*916显示为小数,保留小数2位,宽度为8*/ printf(%8.2fn,3.0+4.0*6.0); printf(%8.2fn,3.0*4.0/6.0+6.0); printf(%8.2fn,2.0*3.0/12.0*8.0/4.0); printf(%8.2fn,10.0*(1.0+7.0*3.0); printf(%8.2fn,20.0-2.0/6.0+3.0); printf(%8.2fn,20.0-2.0/(6.0+3.0); printf(%8.2fn,(20.0-2.0)/6.0+3.0); printf(%8.2fn,(20.0-2.0)/(6.0+3.0); /*1720显示为字符*/printf(%cn, m - 5); printf(%cn, m + 5); printf(%cn, G + 6); printf(%cn, G - 6); /*2123显示为十进制整数*/ printf(%dn, b - a); printf(%dn, g - a + 1); printf(%dn, g - a + 1);=运行结果=程序=#includeint main () float Cel,Fah; printf(print a Fah number:); scanf(%f,&Fah); Cel=5.0/9.0*(Fah-32); printf(The Cel number is%fn,Cel); printf(print a Cel number:); scanf(%f,&Cel); Fah=32+9.0*Cel/5.0; printf(The Fah number is:%f n,Fah); return 0;=运行结果=第四次试验*(1)程序*#includeint main()int num1,num2,num3,max,min;printf(please input three numbers:n);scanf(%d %d %d,&num1,&num2,&num3);max=(num1num2)?num1:num2;min=(num1max)?num3:max;min=(num3min)?num3:min;printf(max = %d min = %d,max,min);return 0;*运行结果*(2)程序*#include int main()int a;float profit,income;printf(Please input the profit:);scanf(%f,&profit);a=(profit-1)/100000;switch(a)case 0:income=profit/10;break;case 1:income=(profit-100000)*0.075+10000;break;case 2:case 3:income=(profit-200000)*0.05+10000+7500;break;case 4:case 5:income=(profit-400000)*0.03+10000+7500+10000;break;case 6:case 7:case 8:case 9:income=(profit-600000)*0.01+10000+7500+10000+6000;break;case 10:income=(profit-1000000)*0.01+10000+7500+10000+6000+6000; printf(奖金数值为:%fn,income); return 0;*运行结果*(3)程序*/*百马百担问题*/#includeintmain()intA,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%-2dn,A,B,C); return0; *运行结果*(4)程序*(5)程序*/关于菱形的第一种算法/#include int main() int i,j,k; printf(请输入最长行的数字,为奇数k:); scanf(%d,&k) ; for (i=1;i=k;i+) for(j=1;j=(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); return 0; /第二种算法/#include int main() int K,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 int main() int i,j,n; printf(input a number); scanf(%d,&n); int ann; printf(n); for(i=0;in;i+) ai0=1; aii=1; for (i=2;in;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;in;i+) for(j=0;j=i;j+) printf(%5d,aij); printf(n); *运行结果*(2)程序*方法一:#include int main ()int i;int fb12=1,1;for(i=2;i12;i+)fbi=fbi-1+fbi-2;printf(第%d个月共有兔子%d只n,i+1,fbi*2);return 0; *运行结果*方法二:#include int main()long f1,f2;int i;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;return 0;*运行结果*(3)程序*#include#define num 10int num1(int ,int);int num2(int ,int);int main()void sort1 (int num1,int n);void sort2 (int num2,int n);int anum, cnum,i,moves,j;printf(enter array here:n);for(i=0;i10;i+)j=i;scanf(%d,&ai);cj=ai;printf(the sorted array :n);sort1(a,num);printf(the sorted array :n);sort2(c,num);return 0;void sort1(int num1,int n) int i,j,temp,b;for(i=0;in-1;i+)for(j=1;jn;j+)if(num1jnum1j-1)temp=num1j;num1j=num1j-1;num1j-1=temp;for(b=0;bn;b+)printf(%5d,num1b);printf(n);void sort2(int num2,int n)int i,j,min,minidx,temp,b;for(i = 0;in-1;i+)min = num2i;minidx = i;for(j = i+1;jn;j+)if (num2jmin)min = num2j;minidx = j;for(b=0;bn;b+)printf(%5d,num2b);printf(n);if (min num2i)temp = num2i;num2i = min ;num2minidx = temp;*运行结果*(4)程序*#include #define N 10int brnarysearch(int ,int,int);int main()int numsN=1,5,8,9,12,23,45,56,67,99;int item,location;printf(Enter the item you are searching for);scanf(%d,&item);location=brnarysearch(nums,N,item);if(location -1)printf(The item was found at index location %dn,location);else printf(The item was not found in the listn);return 0;#define Ture 1#define False 0 int brnarysearch(int list,int size,int key) int index,found,left,right,midpt; index=-1; found=False; left=0; right=size-1; while ( left listmidpt) left=midpt + 1; else right= midpt - 1; return (index); *运行结果*第10次试验*程序*#include int main() int a=0,i,k; int b31; printf(请输入一个十进制数:n); scanf(%d,&i); while(i!=0) k=i%2; ba+=k; i=i/2; printf(转为二进制数为:n);while(a0) printf(%d,b-a); printf(n); return 0;*运行结果*第9次试验*程序*#include #include int main() char name530; int i; int grade15,num5; float ave5; printf(请输入学号、3学科成绩, 姓名,:n); for(i=0;i5;i+) scanf(%d,&numi); scanf(%d%d%d,&gradei*3,&gradei*3+1,&gradei*3+2); avei=(gradei*3+gradei*3+1+gradei*3+2)/3.0; gets(namei); for(i=0;i5;i+) printf( %d %-10s %d %d %d %5.2fn,numi,namei,gradei*3,gradei*3+1,gradei*3+2,avei);FILE *outFile; outFile=fopen(C:/stud.txt,w); fprintf(outFile, 学号 姓名 成绩1 成绩2 成绩3 平均成绩 n ); for(i=0;i5;i+) fprintf(outFile, %d %-10s %5d %5d %5d %5.2fn,numi,namei,gradei*3,gradei*3+1,gradei*3+2,avei); fclose(outFile); return 0;*运行结果*第10次试验1. 请使用数组元素存取方式,设计实现一个函数可以将任意字符数组元素存放位置逆转的程序。*程序*#include #include int main() char str100; int i,j; gets(str); j=strlen(str); for(i=j;i=0;i-) printf(%c,stri); printf(n); return 0;*运行结果*2. 请使用指针存取方式完成练习1*程序*#include #include int main() int j; char str100,*printer=str,i; printf(Input a string:n); gets(str); j=strlen(str); for(i=j;i=0;i-) printf(%c,*(printer+i); return 0; *运行结果*3. 用二维数组保存用户输入的字符串,当用户终止输入时,将所有输入中最长的字符串及其长度输出。*程序*#include #include int main() int i,n=0; char str330; int max; for(i=0;i3;i+) gets(stri); printf(n); max = strlen(str0); for(i=0;imax) max = strlen(stri); n=i; printf(The longest string is str%d, it has %d type.,n,max); return 0; *运行结果*第11次试验1. 采用结构体变量的方法保存学生成绩,有五个学生,每个学生有3门课的成绩,从键盘输入相关数据(包括:学号,姓名和三门课程的成绩),计算出平均成绩。*程序*运行结果*2. 采用结构体数组的方法保存学生成绩,完成练习1。*程序*#include struct Student int num; char name20; int grade3; float average; Student5;int main() int i,j; printf(Input the num ,name, and three grades:n); for(j=0;j5;j+)scanf(%d %s %d %d %d,&Studentj.num,&Studentj.name,&Studentj.grade0,&Studentj.grade1,&Studentj.grade2);for(j=0;j5;j+) Studentj.average=(Studentj.grade0+Studentj.grade1+Studentj.grade2)/3.0; for(j=0;j5;j+) printf(NO.%d name:%s grade:%d %d %d average%5.2f:n,Studentj.num,Studentj.name,Studentj.grade0, Studentj.grade1,Studentj.grade2,Studentj.average); return 0;*运行结果*3. 采用链表的方法保存学生成绩,完成练习1。*程序*#include struct Student int num; char name20; int grade3; float average; struct Student * next; ;int main() struct Student st5,*head,*p; int i; for(i=0;inum,p-name,p-grade0,p-grade1,p-grade2,p-average); p=p-next; while(p!=NULL); return 0;*运行结果*
收藏
- 资源描述:
-
.-
第二次试验///第三次试验
=====================程序============================
#include
int main()
{
/*十进制*/
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
int main ()
{
float Cel,Fah;
printf("print a Fah number:");
scanf("%f",&Fah);
Cel=5.0/9.0*(Fah-32);
printf("The Cel number is%f\n",Cel);
printf("print a Cel number:");
scanf("%f",&Cel);
Fah=32+9.0*Cel/5.0;
printf("The Fah number is:%f \n",Fah);
return 0;
}
============================运行结果=========================
第四次试验
************************************(1)程序**********************************
#include
int main()
{
int num1,num2,num3,max,min;
printf("please input three numbers:\n");
scanf("%d %d %d",&num1,&num2,&num3);
max=(num1>num2)?num1:num2;
min=(num1<=num2)?num1:num2;
max=(num3>max)?num3:max;
min=(num3
int main()
{
int a;
float profit,income;
printf("Please input the profit:");
scanf("%f",&profit);
a=(profit-1)/100000;
switch(a)
{
case 0:
income=profit/10;
break;
case 1:
income=(profit-100000)*0.075+10000;
break;
case 2:
case 3:
income=(profit-200000)*0.05+10000+7500;
break;
case 4:
case 5:
income=(profit-400000)*0.03+10000+7500+10000;
break;
case 6:
case 7:
case 8:
case 9:
income=(profit-600000)*0.01+10000+7500+10000+6000;
break;
case 10:
income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;
}
printf("奖金数值为:%f\n",income);
return 0;
}
************************************运行结果**********************************
********************************(3)程序****************************
/*百马百担问题*/
#include
intmain()
{
intA,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);
}
}
return0;
}
********************************运行结果*****************************
********************************(4)程序****************************
************************************(5)程序**********************************
//关于菱形的第一种算法//
#include
int main()
{
int i,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");
}
return 0;
}
//第二种算法///
#include
int main()
{
int K,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
int main()
{
int i,j,n;
printf("input a number");
scanf("%d",&n);
int a[n][n];
printf("\n");
for(i=0;i
int main ()
{
int i;
int fb[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);
}
return 0;
}
*****************************运行结果******************************************
***************************************
方法二:
#include
int main()
{
long f1,f2;
int i;
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;
}
return 0;
}
************************************运行结果***********************************
*******************************(3)程序****************************************
#include
#define num 10
int num1(int [],int);
int num2(int [],int);
int main()
{
void sort1 (int num1[],int n);
void sort2 (int num2[],int n);
int a[num], c[num],i,moves,j;
printf("enter array here:\n");
for(i=0;i<10;i++)
{
j=i;
scanf("%d",&a[i]);
c[j]=a[i];
}
printf("the sorted array :\n");
sort1(a,num);
printf("the sorted array :\n");
sort2(c,num);
return 0;
}
void sort1(int num1[],int n)
{
int i,j,temp,b;
for(i=0;i
#define N 10
int brnarysearch(int [],int,int);
int main()
{
int nums[N]={1,5,8,9,12,23,45,56,67,99};
int item,location;
printf("Enter the item you are searching for");
scanf("%d",&item);
location=brnarysearch(nums,N,item);
if(location > -1)
printf("The item was found at index location %d\n",location);
else
printf("The item was not found in the list\n");
return 0;
}
#define Ture 1
#define False 0
int brnarysearch(int list[],int size,int key)
{
int index,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;
}
else if (key > list[midpt])
left=midpt + 1;
else
right= midpt - 1;
}
return (index);
}
**************************************运行结果*********************************
第10次试验
***********************************程序****************************************
#include
int main()
{
int a=0,i,k;
int b[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");
return 0;
}
***********************************运行结果************************************
第9次试验
*****************************程序**********************************************
#include
#include
int main()
{
char name[5][30];
int i;
int grade[15],num[5];
float ave[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);
return 0;
}
***********************************运行结果***********************************
第10次试验
1. 请使用数组元素存取方式,设计实现一个函数可以将任意字符数组元素存放位置逆转的程序。
*****************************************程序**********************************
#include
#include
int main()
{
char str[100];
int i,j;
gets(str);
j=strlen(str);
for(i=j;i>=0;i--)
printf("%c",str[i]);
printf("\n");
return 0;
}
***********************************运行结果************************************
2. 请使用指针存取方式完成练习1
**************************************程序************************************
#include
#include
int main()
{
int j;
char str[100],*printer=str,i;
printf("Input a string:\n");
gets(str);
j=strlen(str);
for(i=j;i>=0;i--)
printf("%c",*(printer+i));
return 0;
}
*****************************************运行结果******************************
3. 用二维数组保存用户输入的字符串,当用户终止输入时,将所有输入中最长的字符串及其长度输出。
************************************程序**************************************
#include
#include
int main()
{
int i,n=0;
char str[3][30];
int max;
for(i=0;i<3;i++)
{
gets(str[i]);
printf("\n");
}
max = strlen(str[0]);
for(i=0;i<3;i++)
{
if (strlen(str[i]) >max)
{
max = strlen(str[i]);
n=i;
}
}
printf("The longest string is str[%d], it has %d type.",n,max);
return 0;
}
**********************************运行结果************************************
第11次试验
1. 采用结构体变量的方法保存学生成绩,有五个学生,每个学生有3门课的成绩,从键盘输入相关数据(包括:学号,姓名和三门课程的成绩),计算出平均成绩。
*********************************程序*************************************
**************************************运行结果****************************
2. 采用结构体数组的方法保存学生成绩,完成练习1。
*************************************程序**************************************
#include
struct Student
{
int num;
char name[20];
int grade[3];
float average;
} Student[5];
int main()
{
int i,j;
{
printf("Input the num ,name, and three grades:\n");
for(j=0;j<5;j++)
scanf("%d %s %d %d %d",&Student[j].num,&Student[j].name,&Student[j].grade[0],&Student[j].grade[1],&Student[j].grade[2]);
}
for(j=0;j<5;j++)
Student[j].average=(Student[j].grade[0]+Student[j].grade[1]+Student[j].grade[2])/3.0;
for(j=0;j<5;j++)
printf("NO.%d name:%s grade:%d %d %d average%5.2f:\n",Student[j].num,Student[j].name,Student[j].grade[0],
Student[j].grade[1],Student[j].grade[2],Student[j].average);
return 0;
}
*********************************************运行结果**************************
3. 采用链表的方法保存学生成绩,完成练习1。
******************************************程序*********************************
#include
struct Student
{
int num;
char name[20];
int grade[3];
float average;
struct Student * next;
};
int main()
{
struct Student st[5],*head,*p;
int i;
for(i=0;i<5;i++)
{
scanf("%d %s %d %d %d",&st[i].num,&st[i].name,&st[i].grade[0],&st[i].grade[1],&st[i].grade[2]);
st[i].average=(st[i].grade[0]+st[i].grade[1]+st[i].grade[2])/3.0;
}
printf("\n");
head=&st[0];
st[0].next=&st[1];
st[1].next=&st[2];
st[2].next=&st[3];
st[3].next=&st[4];
st[4].next=NULL;
p=head;
do
{
printf("%d %s %d %d %d %5.2f\n",p->num,p->name,p->grade[0],p->grade[1],p->grade[2],p->average);
p=p->next;
}
while(p!=NULL);
return 0;
}
******************************************运行结果*****************************
展开阅读全文