第一篇:实验1-C语言实验报告
C语言程序设计(A)
(2011-2012-1)
实验报告1
教学班级: 机械094 学号: 01 姓名:谭亮恩 课程教师:
曹瑛
实验辅导教师:
曹瑛
江西理工大学
P6-4:/*P6-4
表示第6页 第四题*/
int main(){ float r,s;r=15.5;s=2*3.14*r;
printf(“r=%4.2f,s=%f”, r, s);return 0;}
结果是:r=15.5
s=97.34
P32-3-1: /*P32-3-1
表示第6页 第四题 第一小题*/ #include
表示第6页 第四题 第二小题*/ #include
结果是: *ABCDEF*
江西理工大学
第二篇:c语言实验报告实验4.doc
实验4 逻辑结构程序设计
1、实验目的、要求
(1)C语言表示逻辑量的方法。
(2)学会正确使用逻辑运算符和逻辑表达式。
(3)熟悉掌握if语句和switch语句。
(4)掌握简单的算法及程序调试。
2、实验内容:
(1)输入程序并运行,观察运行结果并分析。
#include
int main()
{int a=1,b=3,c=5,d=4,x;
if(a
If(c Else „„„„„„„„„„„„„„„„„„„„„„„„2 If(a If(b Else x=3;„„„„„„„„„„„„„„„„„„„„„„„„4 Else x=6;„„„„„„„„„„„„„„„„„„„„„„„„2 Else x=7;„„„„„„„„„„„„„„„„„„„„„„„„1 printf(“x=%dn”,x); Return(0);} 实验前分析:因已知:A,B,C,D分别为1,3,5,4,故可知只有A (2)、编写程序: Y=X(X<1);Y=2X-1(1= 程序编写如下: #include Int main() {int x,y; Scanf(“%d”,x); If(x<1)y=x; If(x>=1&&x,10)y=2*x-1; If(x>=10)y=3*x-11; Printf(“%d”,y); Return(0);} 进行检验,发现程序有错误,无法运行。 将程序改为: #include Int main() {int x,y; Scanf(“%d”,x); If(x<1)y=x; Else if(x>=1&&x<10)y=2*x-1; Else if(x>=10)y=3*x-11; Printf(“%d”,y); Return(0);} 实验分析: 1、在if语句中,要注意IF和ELSE的配合使用,不能单独使用IF。 2、此程序中还应注意if语句的嵌套和各层之间的逻辑关系。 3、再输入该程序时,涉及到乘法运算的表示,应注意计算机语言与书面语言的区别,在C语言中,*表示乘法运算。 在程序中加入clrscr()运算符,清空遗留数据: #include Int main() {int x,y; Scanf(“%d”,x); Clrscr(); If(x<1)y=x; Else if(x>=1&&x<10)y=2*x-1; Else if(x>=10)y=3*x-11; Printf(“%d”,y); Return(0);} 运行该程序,得到预期结果,但输入数据被清除;将clrscr()移动到scanf之前。再次运行,得到了预期的输入和输出数据,故可知,clrscr()函数的作用是清楚该语句之前的所有的输出的数据和输入的数据。以后用此语句时要注意输入位置。 (3)补足程序并运行。 输入两个数,将较小者输出,应用条件运算符。 #include Int main() {int a, b,min; Printf(“n please input two numbersn”); Scanf(“%d%d”,&a,&b); Min=min(a,b); Printf(“min=%d”,min); Return(0;)} 运行该程序,显示程序错误,无法输出结果。 将程序改为: #include Int main() {int a, b,min; Printf(“n please input two numbersn”); Scanf(“%d%d”,&a,&b); Min=(a>b?b:a); Printf(“min=%d”,min); 再次运行程序,屏幕上显示“please input two numbers”,输入两个数字6和9,输出数字为6,再换多组数字,结果与与其相同,可知实验成功。 实验分析:输入比较两数大小的函数时,不能想当然,如认为“min=min(a,b)”就是输出较小数的函数,而应使用三目运算符(A?B:C)来表示。 (5)给出一个百分制成绩,要求输出成绩等级A,B,C,D,E:90分以上为A,80——89分为 B,70——79分为C,60——69分为D,60分以下为E。 1、分别用IF和SWITCH语句来实现。 2、输入成绩为大于100分或小于0分时,显示出错成绩,程序结束。 用IF函数表示: #include Int main() {int a; Printf(“n please input your scoren ”); Scanf(“%d”,&a); If(a>=90&&a<=100)printf(“A”); Else if(a>=80&&a<=89)printf(“B”); Else if(a>=70&&a<=79)printf(“C”); Else if(a>=60&&a<=69)printf(“D”); Else if(a>=0&&a<=59)printf(“E”); Else printf(“data error”); Return(0);} 检查无错误,运行程序,无论输入数值为多少,输出结果均为“data error”。 将程序改为: #include Int main() {int a; Printf(“n please input your scoren ”); Scanf(“%d”,&a); {If(a>=90&&a<=100)printf(“A”); Else if(a>=80&&a<=89)printf(“B”); Else if(a>=70&&a<=79)printf(“C”); Else if(a>=60&&a<=69)printf(“D”); Else if(a>=0&&a<=59)printf(“E”); Else printf(“data error”);} Return(0);} 即在if函数外套一组大括号,使之成为一个语句。再次输入数据,得到正确结果。实验分析: 1、注意if和else的配套使用,不能遗漏。 2、逻辑运算符&&表示“并且”,除此之外,“!”表示“非”,“||”表示“或”,以后使用注 意区分。 3、使用switch语句: #include {int a,b; Printf(“n please input your scoren”); Scanf(“%d”,&a); If(a<=100&&a>=0) {b=a/10; Switch(b) {case 10 printf(“A”);break; Case 9 printf(“A”);break; Case 8 printf(“B”);break; Case 7 printf(“C”);break; Case 6 printf(“E”);break; Case 5 printf(“E”);break; Case 4 printf(“E”);break; Case 3 printf(“E”);break; Case 2 printf(“E”);break; Case 1 printf(“E”);break; Case 0 printf(“E”);break; Default printf(“data error”);}} Else printf(“data error); Return(0);} 运行程序,显示程序有误,经检验,错误为case语句后没有加冒号,加上后,限制结果与预期相同。 实验改进:该程序中,反复输入case语句,效率低下,可将条件相同的情况进行合并,进行简化,变成如下形式: #include Int main() {int a,b; Printf(“n please input your scoren”); Scanf(“%d”,&a); If(a<=100&&a>=0) {b=a/10; Switch(b) {case 10:Case 9 :printf(“A”);break; Case 8 :printf(“B”);break; Case 7 :printf(“C”);break; Case 6 :Case 5 :Case 4 :Case 3 :Case 2 :Case 1 :Case 0:printf(“E”);break;Default printf(“data error”);}} Else printf(“data error); Return(0);} 运行后,得到相同的结果,故简化成功。 实验分析:此实验中,应注意break语句的使用,不能遗漏;case语句应用大括号括住,表示整体的使用;条件允许可以对程序进行适当的简化,提高运算效率;区分IF和SWITCH函数的共性与区别,提高对两者的认识。 实验心得: 1、注意IF语句的使用规则,要与ELSE搭配使用,掌握了多层IF函数的使用方法。 2、掌握了关系运算符与逻辑运算符“与”“或”“非”的使用法方法,“&&”“||”“!”。 3、注意区分数学表达语句与计算机语句的区别,了解计算机语句的特点。 4、必要时可以利用辅助设计语句对程序进行改进,或对程序进行简化,便于加深理解,方 便操作。 5、掌握了IF语句与SWITCH语句用法的特点,及其中的易错点(ELSE的使用和BREAK的使用)。 一、实验目的1、2、3、4、掌握关系表达式和逻辑表达式的使用。掌握选择结构程序设计的一般方法。熟练使用if语句进行程序设计。 掌握使用switch语句实现多分支选择结构。 二、实验内容 有一分段函数如下: 编写程序,输入(x实数)的值,输出以如下格式:x=??.??,y=??.??(即小数部分保留2位)程序代码: #include “stdio.h” int main(){ float x,y;scanf(“%f”,&x);if(x<1) y=x*x;if(x>=1&&x<10) y=5*x-1; if(x>=10) y=2*x+4;printf(“x=%.2f,y=%.2fn”,x,y);return 0;} 2、从键盘输入三个实数,输出最大数和最小数。样例输入:1.23 3.45 5.67 样例输出:5.67 1.23 程序代码: #include “stdio.h” int main(){ float a,b,c,max,min;scanf(“%f%f%f”,&a,&b,&c);if(a>b){max=a;min=b;} else {max=b;min=a;} if(a>c) if(b>c){min=c;} else {min=b;} else {max=c;} printf(“%.2f %.2fn”,max,min);return 0;} 3、读入3个非零的double数后,判别这三个值是否可以表示一个三角形的三条边。样例输入1:1.23 1.23 1.23 样例输出1:yes.样例输入2:5.23 3.45-12.34 样例输出2:no.程序代码: #include “stdio.h” int main(){ double a,b,c;scanf(“%lf%lf%lf”,&a,&b,&c);if(a>0&&b>0&&c>0) if(a+b>c&&b+c>a&&a+c>b) printf(“yes.n”); else printf(“no.n”); else printf(“no.n”); return 0;} 4、读入3个非零整数后,判别这三个值是否可以表示一个直角三角形的三条边。样例输入1:3 4 5 样例输出1:yes.样例输入2:5 6 1 样例输出2:no.程序代码: #include “stdio.h” int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if(a>0&&b>0&&c>0) if(a+b>c&&b+c>a&&a+c>b) if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b) printf(“yes.n”); else printf(“no.n”); else printf(“no.n”); else printf(“no.n”); return 0;} 5、编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op操作数2 计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)。 样例输入1:21.23+12.56 样例输出1:21.23+12.56=33.79 样例输入2:1*2 样例输出2:1.00*2.00=2.00 在做除法运算时,若操作数2为0,则输出:除数为0 程序代码: #include “stdio.h” int main(){ float x,y;char ch;scanf(“%f%c%f”,&x,&ch,&y);switch(ch){ case '+':printf(“%.2f+%.2f=%.2fn”,x,y,x+y);break;case '-':printf(“%.2f-%.2f=%.2fn”,x,y,x-y);break;case '*':printf(“%.2f*%.2f=%.2fn”,x,y,x*y);break; case '/':if(y==0) {printf(“除数为0n”);} else printf(“%.2f/%.2f=%.2fn”,x,y,x/y);break;} return 0;} 6、描述 某产品生产成本c=c1+m*c2,其中c1为固定成本,c2为单位产品可变成本,m为生产数量。当m<10000时,c1=20000元,c2=10元;当m≥10000时,c1=40000元,c2=5元; 编写一个程序,其功能为:根据输入的生产数量,输出总生产成本及单位生产成本。输入 生产数量 输出 生产数量 总生产成本 单位可变成本 样例输入 6000 样例输出 6000 80000 10 程序代码: #include “stdio.h” int main(){ int m,c1,c2,c;scanf(“%d”,&m);if(m<10000){c1=20000;c2=10;} else {c1=40000;c2=5;} c=c1+c2*m;printf(“%d %d %dn”,m,c,c2);return 0;} 7、描述 根据键盘输入的一个字符所属类别,判别它属于:大写字母(输出:1)、小写字母(输出:2)、数字字符(输出:3)、其它字符(输出:4)。 输入 一个字符 输出 字符类别号 样例输入 A 样例输出 程序代码 #include “stdio.h” int main(){ char ch;scanf(“%c”,&ch);if(65<=ch&&ch<=90) printf(“1n”); else if(97<=ch&&ch<=122) printf(“2n”);else if(47<=ch&&ch<=58) printf(“3n”);else printf(“4n”);return 0;} 8、描述 实现如下分段函数: 输入 是一个实型数据。输出 以如下格式输出:x=0.250,y=5.250(即输出一律保留3位小数)样例输入 0.250 样例输出 x=0.250,y=5.250 程序代码 #include “stdio.h” int main(){ float x,y;scanf(“%f”,&x);if(x<3){y=x+5;} else if(x==3){y=2*x;} else if(x<10){y=6*x-4;} else {y=3*x-11;} printf(“x=%.3f,y=%.3fn”,x,y);return 0;} 三、实验体会 通过选择结构这一章的学习,我了解了关系表的事和逻辑表达式的使用以及选择结构程序设计的一般方法。知道了if语句的使用和switch语句多分支选择结构。经过这一章的学习,我对c语言程序设计有了更大的兴趣,希望能带给我以后更大的学习乐趣。 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验一 上机操作初步和简单的C程序设计 一、实验目的1、熟悉C语言运行环境Turbo C++3.02、会简单的程序调试 3、熟悉C语言各种类型数据的输入输出函数的使用方法 4、掌握顺序结构程序设计 二、实验内容 1、上机运行本章3个例题,熟悉所用系统的上机方法与步骤。(习题1.7) 2、编写一个C程序,输入a、b、c 3个值,输出其中最大者。(习题1.6) 3、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。注意:在Trubo C++ 3.0中不能输入汉字,只能输入英文或拼音。(习题4.8) 4、运行如下程序,写出运行结果。第一┆范文网www.xiexiebang.com整理该文章,版权归原作者、原出处所有...#include void main() { int a=1,b=2; a=a+b;b=a-b;a=a-b; printf(“%d,%dn”,a,b); } 三、实验步骤与过程 四、程序调试记录 C语言程序设计(B) (2010-2011-2) 实验报告 教学班级: 学号: 姓名: 课程教师: 实验辅导教师: 江西理工大学 自由编辑的程序 一、实验前的源程序: //任意整数的叠加 #include 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before `for' [Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before `)' 构建中止 未命名10: 2 个错误, 0 个警告 实验后的源程序: //任意整数的叠加 #include int i,j,sum=0;printf(“please input a int numbern”);scanf(“%d”,&j);for(i=0;i<=j;i++)sum=sum+i;printf(“此数的叠加=%dn”,sum);} 二、实验前的源程序: /*小写字母转大写字母*/ #include 江西理工大学 } c2='s';c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c); 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名11.cpp:9: `c' undeclared(first use this function)[Error] D:Program FilesC-Free 4temp未命名11.cpp:9:(Each undeclared identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名11.cpp:9: for each function it appears in.)构建中止 未命名11: 3 个错误, 0 个警告 实验后的源程序: /*小写字母转大写字母*/ #include 三、实验前的源程序: /*查看某一年是否为闰年*/ #include { if(year%100==0) { if(year%400==0) i=1; else 江西理工大学 i=0; } else i=1; } else i=0;if(i) printf(“%d 是闰年n”,year);else printf(“%d 不是闰年n”,year);} 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名14.cpp:15: parse error before `else' [Error] D:Program FilesC-Free 4temp未命名14.cpp:25: parse error at end of input 构建中止 未命名14: 2 个错误, 0 个警告 实验后的源程序: /*查看某一年是否为闰年*/ #include { if(year%100==0) { if(year%400==0) i=1; else i=0; } else i=1; } else i=0;if(i) 江西理工大学 printf(“%d 是闰年n”,year);else printf(“%d 不是闰年n”,year);} 数据的输入和输出 四、程序改错题 改错前的源程序;#include #include 改错前的源程序;#include 江西理工大学 #include long x=7654123;x*=10;printf(“x=%7d”,x);} 改错前的源程序: #include #include 五、程序编写题:已知char ch’b’;int i=3 ,j=5;float x=22.354,y=435.6789;根据下面的输出结果编写程序。ch =’b’,ASCII=98 i=3□□□□□□j=5 x=22.35□□□y=435.68 实验前的源程序: #include 江西理工大学{ char ch='b';int i=3,j=5;float x=22.354,y=435.6789;printf(“ch='%c',ASCII=%dn”,ch,ch);printf(“i=%d j=%dn”,i,j);printf(“x=%.2f y=%.2fn”,x,y);} 实验错误报告:无 实验后的源程序: #include j=%dn”,i,j);printf(“x=%.2f y=%.2fn”,x,y);} 六、从键盘输入一行字符,统计其中小写字母、大写字母和其它字符的个数: 实验前的源程序: #include “stdio.h” void main(){ printf(“请任意输入一串字符:n”); char ch,sum1=0,sum2=0,other=0; ch=getchar(); while(c!='n') { if(c>='A'&&c<='Z')sum1++; else if(c>='a'&&c<='z')sum2++; else other++; c=getchar(); } printf(“大写字母的个数:%dn”,sum1);printf(“小写字母的个数:%dn”,sum2); 江西理工大学printf(“其他字符母个数:%dn”,other);} 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名7.cpp:7: `c' undeclared(first use this function)[Error] D:Program FilesC-Free 4temp未命名7.cpp:7:(Each undeclared identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名7.cpp:7: for each function it appears in.)构建中止 未命名7: 3 个错误, 0 个警告 实验后的源程序: #include “stdio.h” void main(){ printf(“请任意输入一串字符:n”); char ch,sum1=0,sum2=0,other=0; ch=getchar(); while(ch!='n') { if(ch>='A'&&ch<='Z')sum1++; else if(ch>='a'&&ch<='z')sum2++; else other++; ch=getchar(); } printf(“大写字母的个数:%dn”,sum1);printf(“小写字母的个数:%dn”,sum2);printf(“其他字符母个数:%dn”,other);} 七、使用以下公式求∏的近似值,要求精确到最后一项的绝对值小于10e-4 ∏/4=1-1/3+1/5-1/7+…… 实验前的源程序: #include “stdio.h” #include “math.h” main(){ 江西理工大学 } float sum=0;int i,j;for(i=1;;i++){ j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.o/j);continue;break;} printf(“∏=%fn”,sum*4.0); 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名9.cpp:13: nondigits in number and not hexadecimal [Error] D:Program FilesC-Free 4temp未命名9.cpp:19: parse error at end of input 构建中止 未命名9: 2 个错误, 0 个警告 实验后的源程序: #include “stdio.h” #include “math.h” main(){ float sum=0;int i,j;for(i=1;;i++){ j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.0/j);continue;} break;} printf(“∏=%fn”,sum*4.0);} 八、用选择法对10个整数排序: 实验前的源程序: 江西理工大学#include scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){ if(a[j]>a[j+1]) { k=a[j]; a[j]=a[j+1]; k=a[j+1];} printf(“这10个整数从小到大排列为:”);for(j=0;j<10;j++){ printf(“%d ”,a[j]);} printf(“n”);printf(“这10个整数从大到小排列为:”);for(j=9;j>=0;j--){ printf(“%d ”,a[j]);} 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名1.cpp:33: parse error at end of input 构建中止 未命名1: 1 个错误, 0 个警告 实验后的源程序: //用选择法对10个整数排序 #include 江西理工大学 int i,j,k;for(i=0;i<10;i++){ scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){ if(a[j]>a[j+1]){ k=a[j]; a[j]=a[j+1]; k=a[j+1];} } printf(“这10个整数从小到大排列为:”);for(j=0;j<10;j++){ printf(“%d ”,a[j]);} printf(“n”);printf(“这10个整数从大到小排列为:”);for(j=9;j>=0;j--){ printf(“%d ”,a[j]);} } 九、求一个3*3的整数矩阵对角线元素之积: 实验前的源程序: #include scanf(“%d”,&a[i][j])} for(i=0;i<3;i++) 江西理工大学 { for(j=0;j<3;j++) { printf(“%d ”,a[i][j]); } printf(“n”); } printf(“n”); for(i=0;i<3;i++) { for(j=0;j<3;j++) if(i=j) ji*=a[i][j]; printf(“主对角线的积为:%dn”,ji); } } 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名4.cpp:11: parse error before `}' 构建中止 未命名4: 1 个错误, 0 个警告 实验后的源程序: #include scanf(“%d”,&a[i][j]);} for(i=0;i<3;i++){ for(j=0;j<3;j++) { printf(“%d ”,a[i][j]); } printf(“n”); } 江西理工大学 printf(“n”); for(i=0;i<3;i++) { for(j=0;j<3;j++) if(i=j) ji*=a[i][j]; printf(“主对角线的积为:%dn”,ji); } } 十、将一个数组中的值按你需从新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。 实验前的源程序: #include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; t=a[j-i-1];} printf(“该数组逆序排列为:”); for(i=0;i printf(“%d ”,a[i]);printf(“n”);} 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名3.cpp:25: parse error at end of input 构建中止 未命名3: 1 个错误, 0 个警告 江西理工大学实验后的源程序: #include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; a[j-i-1]=t;} printf(“该数组逆序排列为:”); for(i=0;i printf(“%d ”,a[i]);} printf(“n”);} 江西理工大学第三篇:c语言实验二实验报告
第四篇:c语言实验报告
第五篇:C语言 实验报告