您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机基础与程序设计实验报告
######学院《计算机基础与程序设计》(c语言)实验报告专业:班级:姓名:学号:教师:实验1顺序结构程序设计一、实验目的1.熟悉C语言的编程环境,掌握C程序运行的一般步骤;2.掌握C语言中数据的输入输出方法,常用输入/输出函数的使用;3.掌握顺序结构程序设计方法,能编写简单的C程序;二、实验内容1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。2、编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保留两位小数。3、编写一个程序,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩。4、输入一元二次方程的三个系数,求根。三、实验源码及测试数据1、#includestdio.h#includemath.hmain(){intx,a,b,c,d;a=b=c=d=0;printf(Inputthenumberoffour\n);scanf(%d,&x);a=x/1000;b=(x-a*1000)/100;c=(x-a*1000-b*100)/10;d=x%10;printf(个位数=%d,十位数=%d,百位数=%d,千位数=%d\n,d,c,b,a);}2、#includestdio.hmain(){floatr1,r2,R1,R2;printf(InputtwoTwoelectricalresistance\n);scanf(%f,%f,&r1,&r2);R1=r1+r2;R2=1/(1/(r1)+1/(r2));printf(串联=%.2f,并联=%.2f\n,R1,R2);}3、#includestdio.hmain(){floata,b,c,sum,aver;printf(Inputthreescore\n);scanf(%f,%f,%f,&a,&b,&c);sum=a+b+c;aver=sum/3;printf(总分=%.0f,平均分数=%.0f\n,sum,aver);}4、#includestdio.h#includemath.hmain(){doublea,b,c,d,x1,x2,x;printf(Inputthreenumber\n);scanf(%lf,%lf,%lf,&a,&b,&c);d=b*b-4*a*c;if(a==0&&b==0)printf(不是方程\n);elseif(a==0&&b!=0){x1=-c/b;printf(一次方程\n);printf(x=%lf\n,x1);}if(a!=0&&d0){x1=-b+sqrt(d);x2=-b-sqrt(d);printf(x1=%.2lf\nx2=%.2lf\n,x1,x2);}if(a!=0&&d0)printf(无实根\n);}实验2流程控制程序设计一、实验目的1、了C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。2、学会正确使用逻辑运算符和逻辑表达式。3、熟练掌握if语句,switch语句,do_while语句,while语句和for语句的使用方法。4、结合程序掌握一些简单的算法。二、实验内容1、输入3个整数,要求按由小到大的顺序输出。2、编写程序,要求从键盘输入成绩,输出对应的等级(100分为A,90-99为B,80-89为C,70-79为D,60-69为E,小于60为F)。3、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。4、用for语句求1到100中是3的倍数的数的和。三、实验源码及测试数据1、#includestdio.h#includemath.hmain(){inta,b,c,t;printf(Inputlengthofthreemunber\n);scanf(%d,%d,%d,&a,&b,&c);if(ab){if(bc)if(ac){t=a;a=c;c=t;}else{t=c;c=b;b=t;}}else{if(bc){t=a;a=c;c=t;}elseif(ac){t=a;a=c;c=t;t=b;b=a;a=t;}else{t=a;a=b;b=t;}}printf(%d,%d,%d\n,a,b,c);}2、#includestdio.h#includemath.hmain(){intx;printf(Inputthescore\n);scanf(%d,&x);if(x0||x100)printf(errorin\n);elseswitch(x/10){case10:printf(A\n);break;case9:printf(B\n);break;case8:printf(C\n);break;case7:printf(D\n);break;case6:printf(E\n);break;default:printf(F\n);}}3、#includestdio.hmain(){inti,sum;sum=1;for(i=0;i9;i++)sum=(sum+1)*2;printf(%d\n,sum);}4、#includestdio.hmain(){intsum=0,i;for(i=1;i100;i++)if(i%3==0)sum+=i;printf(1到100中3的倍数和为%d\n,sum);}实验3数组和函数一、实验目的1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握与数组有关的算法(特别是排序算法)。3、掌握定义函数的方法;4、掌握函数实参与形参的对应关系以及“值传递”的方式;5、掌握函数的嵌套调用和递归调用的方法;6、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。二、实验内容1、用冒泡排序法对10个整数排序。10个整数用scanf函数输入。2、输入一个矩阵,找出所在行上最大,列上最小的数。(可能没有)。3、用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。4、写函数求输出数列2、2、4、4、6、16、8…前20项。三、实验源码及测试数据1、#includestdio.h#includemath.hmain(){inta[10],i,j,max;printf(输入十个数:\n);for(i=0;i10;i++)scanf(%d,&a[i]);for(i=0;i10;i++){for(j=i;j10;j++)if(a[i]a[j]){max=a[i];a[i]=a[j];a[j]=max;}}printf(排序:\n);for(i=0;i10;i++)printf(%d,a[i]);printf(\n);}2、#includestdio.hvoidmain(){intblock[4][4];inti,j,k,max,min,x,y;x=y=0;max=min=0;k=0;printf(请输入一个4乘4的矩阵:\n);for(i=0;i4;i++){for(j=0;j4;j++)scanf(%d,&block[i][j]);}for(i=0;i4;i++){for(j=0;j4;j++)if(block[i][j]max){max=block[i][j];y=j;min=block[i][j];}for(i=0;i4;i++){if(block[i][y]min){min=block[i][y];k=i;}}if(min==max){printf(此数位于%d行%d列,此数为%d\n,k+1,y+1,max);x=1;}}if(x==0)printf(不存在这种数。\n);}3、#includestdio.hmain(){voidstring(inta);intn;printf(输入一个整数\n);scanf(%d,&n);string(n);printf(\n);}voidstring(inta){inti;if((i=a/10)!=0)string(i);printf(%c,a%10+'0');}4、#includestdio.h#includemath.hlonga(inti){returni+1;}longb(inti){if(i==2)return2;elsereturn(i-2)*(i-2);}main(){inti,x;for(i=1;i20;i++){if(i%2!=0)printf(%-4ld,a(i));elseprintf(%-4ld,b(i));if(i%5==0)printf(\n);}printf(\n);}实验4指针和结构体一、实验目的1、掌握指针的概念、会定义和使用指针变量。2、掌握指向数组的指针变量。3、掌握字符串指针的使用。4、掌握结构体定义和使用。二、实验内容1、编一个程序,打入月份号,输出该月的英文月名,要求用指针数组处理。2、编写递归函数,将输入的以“?”结束的字符串按与输入相反的顺序输出。3、一个45人班级有两门课,求所有成绩中的最高成绩,及对应的姓名,学号课程编号,分别求两门课的平均成绩,并找出两门课都低于平均分的学生信息,按1课程成绩从高到低排序。三、实验源码及测试数据1、#includestdio.hvoidmain(){inti;char*month[12]={January,February,March,April,May,June,July,August,September,October,November,December};printf(月份号:);scanf(%d,&i);printf(英文月名:);puts(month[i-1]);}2、①#includestdio.h#defineN200main(){voidnixu(char*,int);chara[N];intn=0;gets(a);while(a[n]!='?')n++;nixu(a,n);printf(\n);}voidnixu(char*p,intn){inti;charp1;for(i=0;in/2;i++){p1=*(p+i);*(p+i)=*(p+n-i-1);*(p+n-i-1)=p1;}for(i=0;in;i++)printf(%c,*(p+i));}②#includestdio.h#defineN200main(){voidnixu(char*,int);chara[N];intn=0;gets(a);while(a[n]!='?')n++;nixu(a,n);puts(a);}inti=0;voidnixu(char*p,intn){charp1;if(i!=(n/2)){p1=*(p+i);*(p+i)=*(p+n-i-1);*(p+n-i-1)=p1;i++;nixu(p,n);}}3、#includestdio.h#defineN3structstudent{charname[20];intnum;intscore1;intscore2;}stu[N],temp;main(){structstudent*p;p=stu;inti,j,k,n,n1,n2,sum1,sum2,a[N],aver1,aver2;k=n=n1=n2=sum1=sum2=0;for(i=0;iN;i++){printf(No.%d\n,i+1);printf(输入姓名:);scanf(%s,&(p+i)-name);printf(输入学号:);scanf(%d,&(p+i)-num);printf(输入课程1成绩:);scanf(%d,&(p+i)-score1);printf(输入课程2成绩:);scanf(%d,&(p+i)-score2);sum1+=(p+i)-score1;sum2+=(p+i)-scor
本文标题:计算机基础与程序设计实验报告
链接地址:https://www.777doc.com/doc-5802229 .html