铜陵学院c语言实验报告.docx
- 文档编号:28775297
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:42
- 大小:348.81KB
铜陵学院c语言实验报告.docx
《铜陵学院c语言实验报告.docx》由会员分享,可在线阅读,更多相关《铜陵学院c语言实验报告.docx(42页珍藏版)》请在冰豆网上搜索。
铜陵学院c语言实验报告
铜陵学院c语言实验报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
《C语言程序设计》
实验报告
2016~2017学年第二学期
班 级
2016级
学 号
姓 名
指导教师
黄永青
实验一VisualC++6.0编程环境与C语言程序的调试过程
一、实验学时
2学时。
二、实验目的
1.了解在VisualC++6.0环境下如何编辑、编译、连接和运行一个C程序;
2.通过运行简单的C程序,初步了解C源程序的特点。
三、预习内容
教材《C语言程序设计》第1章。
四、实验内容
1.请调试、运行下面的程序一。
#include intmain( ) { printf("Hello,World! \n"); return 0; } 给出以上程序的运行结果(或其截图): 2.请调试、运行下面的程序二。 #include <stdio.h> int main() { inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%1d*%1d=%2d ",j,i,j*i); printf("\n"); } return0; } 给出以上程序运行结果的截图: 3.请改正下面程序三中的语法错误,然后调试、运行该程序,观察分析运行结果。 #include int main() { inta,b,sum; a=3 b=4; sun=a+b; printf("%d+%d=%d\n",a,b,sum); return0; } (1)改正后的程序 #include<stdio.h> intmain( ) { int a,b,sum; a=3; b=4; sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } (2)以上程序的运行结果(或其截图): 五、思考题 1.调试C语言程序的步骤有哪些? 答: 1.ﻩ编辑2.编译3.连接4.ﻩ运行 2.程序的基本结构有哪三种? 答: 顺序结构,选择结构,循环结构 指导教师 成绩 年 月日 实验二数据类型、运算符和表达式 一、实验学时 2学时。 二、实验目的 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4.掌握++、--运算符、赋值运算符及其表达式的使用方法。 三、预习内容 教材《C语言程序设计》第2章。 四、实验内容 1.下面的程序一有语法错误,请调试、运行该程序。 #include <stdio.h> intmain() { int 2cd=3; floatyzl=3.14; charfor='A'; printf("%d\n%f\n%c\n",2cd,yzl,for); return0; } 程序一为什么出错? 答: 1.yzl=3.14不能用float类型,改为double 2.变量命名不能以数字为首位2cd=3;改为cd=3; 3.for为循环结构不能作为变量名,改为f=’A’ 2.观察分析下面程序二的运行结果: #include intmain( ) { inta=3,b=4,c=8; floatx,y=4.0,z; x=a+b/c; z=a+y/c; printf("x=%f\nz=%f\n",x,z); return 0; } 以上程序的运行结果(或其截图): 3.观察分析下面程序三的运行结果: #include<stdio.h> intmain() { inta,b,c,d,i,j,m,n; a=b=c=d=3; i=a++; j=++b; m=c--; n=--d; printf("a=%d,b=%d,c=%d,d=%d\ni=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n); return0; } 以上程序的运行结果(或其截图): 4.观察分析下面程序四的运行结果: #include<stdio.h> intmain() { inta=4; a+=a-=a*a+a; printf("a=%d\n",a); return0; } 以上程序的运行结果(或其截图): 五、思考题 1.给变量命名应该注意哪些? 答: 1.变量名可由字母数字,下划线组成,但首位只能是字母,下划线不能为数字。 2.变量名区分大小写 3.变量名不能与系统标识符同名 4.变量名的长度是有限的,视编译而定 5.变量命名时尽量简单易记,见名之意 2.程序二的运行结果中,x和z的值为什么不同? 答: x为int类型,x的值为整型小数点部分都为0;即x=3.000000 z为float类型,z的值为浮点型数据,即z=3.500000 3.程序三的运行结果中,i和j的值为什么不同? m和n的值为什么不同? 答: i为a直接赋予i=3 j是先b+1=4再将4赋给j m为c直接赋予 n是先d-1=3再将3赋给n 4.请分析程序四中表达式a+=a-=a*a+a的运算顺序。 答: 1.a*a=16 2.16+a=20 3.a-=16=-16 4.a+=(-16)=-32 成绩 指导教师 年 月 日 实验三 顺序结构程序设计 一、实验学时 2学时。 二、实验目的 1.掌握整型、实型与字符型数据输入函数scanf( )的使用; 2.掌握整型、实型与字符型数据输出函数printf( )的使用; 3.掌握顺序程序的设计方法。 三、预习内容 教材《C语言程序设计》第3章。 四、实验内容 1.下面程序一的功能是: 从键盘输入两个整数,输出它们的和。 请在横线上填写一条合适的语句,调试、运行该程序。 #include intmain() { int a,b,sum; scanf("%d%d",&a,&b); sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } 给出以上程序的运行结果(或其截图): 2.观察分析下面程序二的运行结果。 #include intmain() { inta,b,sum; printf("请输入第一个整数: "); scanf("%d",&a); printf("请输入第二个整数: "); scanf("%d",&b); sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } 给出以上程序的运行结果(或其截图): 3.下面程序三的功能是: 输出三个变量a,b,c的值。 请在横线上填写一条合适的语句,使该程序的运行结果为: a=35,b=43.66,c='A' #include<stdio.h> intmain() { int a=35; doubleb=43.6578; char c='A'; printf("a=%d,b=%6.2f,c=%c\n",a,b,c); return 0; } 给出以上程序的运行结果(或其截图): 4.设圆柱底面圆半径r=1.5m,高h=3m,编写程序,求底面圆的周长和面积、圆柱的表面积和体积。 要求用函数scanf()输入r和h,输出时有文字说明,取小数点后两位。 1给出以上问题的求解算法(用N-S图描述) ⑵给出问题的源代码 #include #definePI3.14159 void main() { ﻩdoubler,h,c,s,S,V; ﻩscanf("%lf,%lf",&r,&h); ﻩc=2*PI*r; ﻩs=PI*r*r; ﻩS=2*PI*r*r+2*PI*r*h; V=PI*r*r*h; printf("底面圆的周长: c=%6.2f,圆的面积: s=%6.2f,圆柱的表面积: S=%6.2f,圆柱的体积: V=%6.2f\n",c,s,S,V); } ⑶该程序的运行结果(或其截图) 五、思考题 程序一和程序二中输入数据的方式有什么区别? 您认为哪种方式较好,为什么? 答: 程序一中a,b同时定义; 程序二中在输出时可以明确区分a,b,并在编程过程中将其分别定义; 我认为程序二更好; 因为相较于程序一,程序二编程过程不易出错,且便于输出。 成绩 指导教师 年 月日 实验四 选择结构程序设计 一、实验学时 2学时。 二、实验目的 1.正确使用关系运算符和关系表达式; 2.正确使用逻辑运算符和逻辑表达式; 3.熟练使用if语句实现选择结构程序设计; 4.熟练使用switch语句实现多分支选择结构程序设计。 三、预习内容 教材《C语言程序设计教程》第4章。 四、实验内容 1.下面程序一的功能是: 输入学生成绩,若90分≤成绩≤100分,输出“Excellent! ”;若60分≤成绩≤89分,输出“Pass! ”;若成绩<60分,输出“Fail! ”;若成绩<0分或成绩>100分,输出“InputError! ”。 请在横线上填写合适的语句,调试、运行该程序。 #include int main( ) { intscore; ﻩprintf("请输入分数(0--100): "); scanf("%d",&score); if(score>100||score<0) ﻩﻩprintf("InputError! \n"); elseif(score>=90&&score<=100)printf("Excellent! \n"); ﻩelseif(60<=score&&score<=89)printf("Pass! \n"); ﻩelse printf("Fail! \n"); ﻩreturn 0; } 程序一运行结果(执行程序4次,分别输入4个不同的成绩,对应4种不同的情况): 输入数据 20 562 77 99 运行结果 Fail! InputError! Pass! Excellent! 2.已知下面的分段函数: 请编写程序二,求出并显示y的值,x的值在程序运行时输入。 代码如下: #include voidmain( ) { float x,y; scanf("%f",&x); if(x<1) y=x; elseif(x<10) ﻩy=2*x-1; else y=3*x-11; printf("%7.2f\n",y); } 程序二运行结果(执行程序3次,分别输入3个不同的x值,对应3种不同的y值): 输入数据 2 0 10 运行结果 3.00 0.00 11.00 3.设计一个简单的计算器程序三。 程序运行时输入两个实数和一个四则运算符: +、-、*、/(例如,输入: 45.6,2.4/),输出计算结果(保留两位小数)。 代码如下: #include<stdio.h> voidmain() { ﻩfloata,b; ﻩchar ch; ﻩscanf("%f,%f%c",&a,&b,&ch); ﻩif(ch=='+') ﻩprintf("%.2f+%.2f=%.2f\n",a,b,a+b); ﻩelseif(ch=='-') ﻩprintf("%.2f-%.2f=%.2f\n",a,b,a-b); elseif(ch=='*') ﻩprintf("%.2f*%.2f=%.2f\n",a,b,a*b); ﻩelseif(ch=='/') ﻩprintf("%.2f/%.2f=%.2f\n",a,b,a/b); } 程序三运行结果(执行程序4次,分别输入4组不同的数据,对应+、-、*、/四种不同的运算): 输入数据 1,2+ 3,1- 2,2* 3,1/ 运行结果 3 2 4 3 成绩 指导教师 年 月 日 实验五 循环结构程序设计 一、实验学时 2学时。 二、实验目的 1.熟悉循环结构语句while、do…while及for的执行流程; 2.熟练掌握用while、do…while及for语句编写循环结构程序。 三、预习内容 教材《C语言程序设计》第5章。 四、实验内容 1.下面程序一的功能是: 求和式12-22+32-42+…-142+152的值。 请在横线上填写合适的语句,调试、运行该程序。 #include"stdio.h" void main() { intsum=0,n=1,sign=1; do { sum=sum+sign*n*n; n+=1; sign=sign*(-1); } while (n<=15); printf("1^2-2^2+3^2-4^2+…-14^2+15^2=%d\n",sum ); } 程序一运行结果(或其截图): 2.编写程序二。 输入一个5位正整数,输出该整数的倒序。 例如: 若输入是12345,则输出为54321。 代码如下: #include voidmain() { ﻩint n; scanf("%d",&n); while(n) ﻩ{ ﻩﻩprintf("%d",n%10); ﻩn/=10; } } 程序二运行结果(或其截图): 3.编写程序三。 求数列 , ,…, 的前20项和。 代码如下: #include intmain() { floata=1,b=1,c=3,sum=0; inti; ﻩfor(i=1;i<=20;i++) ﻩ{ ﻩsum+=a/(b*c); ﻩa+=1; ﻩb+=2; ﻩc+=2; ﻩ} printf("%3f\n",sum); ﻩreturn0; } 程序三运行结果(或其截图): 成绩 指导教师 年 月 日 实验六嵌套结构程序设计 一、实验学时 2学时。 二、实验目的 1.掌握一个结构里面嵌套一个结构的程序执行过程及设计方法; 2.掌握break语句在多选一结构程序中的使用方法; 3.掌握break及continue语句在循环结构程序中的使用方法。 三、预习内容 教材《C语言程序设计》第3-5章。 四、实验内容 1.编写程序一,在屏幕上显示九九乘法表: 代码如下: #include<stdio.h> voidmain() { inti,j; printf("九九乘法口诀表: \n"); ﻩfor(i=1;i<=9;i++) { ﻩfor(j=1;j<=i;j++) ﻩﻩprintf("%d*%d=%-4d",j,i,i*j); printf("\n"); ﻩ} } 2.编写程序二,在屏幕上显示图形: 代码如下: #include<stdio.h> void main() { ﻩinti,j,k; for(i=1;i<=4;i++) { ﻩfor(j=1;j<=11-i;j++) ﻩprintf(""); for(k=1;k<=2*i-1;k++) ﻩﻩprintf("*"); ﻩprintf("\n"); } ﻩfor(i=1;i<=4;i++) ﻩ{ for(j=1;j<=i+7;j++) ﻩprintf(""); for(k=1;k<=7-2*i;k++) ﻩprintf("*"); printf("\n"); ﻩ} } 3.编写程序三,输出100以内的所有素数。 所谓素数,是指仅能被1和该数本身整除的大于1的整数。 代码如下: #include void main() { inti,j; for(i=2;i<=100;i++) { ﻩfor(j=2;j<=(i/2);j++) ﻩ{if(i%j==0) ﻩﻩbreak; } if(i%j! =0) ﻩprintf("%d\n",i); ﻩ} } 程序三运行结果(或其截图): 成绩 指导教师 年 月日 实验七 数组 一、实验学时 2 学时。 二、实验目的 1.掌握一维数组的定义、赋值、输入输出及其应用; 2.掌握二维数组的定义、赋值、输入输出及其应用; 3.掌握字符数组的定义、赋值、输入输出及其应用。 三、预习内容 教材《C语言程序设计》第6章。 四、实验内容 1.编写程序一。 在一个已按从小到大排好序的数列中插入一个数,要求插入该数后的数列仍按小到大排列。 例如: 原数列是1,3,5,7,9,11,13,15,17,插入数8后变成1,3,5,7,8,9,11,13,15,17。 代码如下: #include<stdio.h> #defineN 10 voidmain() { ﻩinti,data, a[N] = {1,3,5,7,9,11,13, 15, 17}; printf("原数组a中的数据是: \n"); for(i=0; i ﻩprintf("%3d",a[i] ); printf("\n请输入要插入的数(data): "); scanf("%d",&data); for(i = N-2;a[i]>data&&i>=0 ;i--) a[i+1]=a[i]; a[i+1]=data; printf("插入%d后,数组a中的数据是: \n",data); for(i= 0;i printf ( "%3d",a[i]); printf("\n"); } 程序的运行结果(或其截图): 2.编写程序二。 输出3行4列矩阵中的最大元素值及其行标和列标。 要求: 矩阵中的每个元素值由键盘输入。 代码如下: #include voidmain() { inti,j; ﻩintrow,col,max,a[3][4]={{7,9,12,5},{39,54,21,6},{17,26,64,1}}; printf("原二维数组a: \n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) ﻩprintf("%4d",a[i][j]); ﻩﻩprintf("\n"); } ﻩrow=col=0; max=a[0][0]; for(i=0;i<3;i++) ﻩ{ ﻩfor(j=0;j<4;j++) ﻩif(a[i][j]>max) ﻩ{ ﻩﻩﻩmax=a[i][j]; ﻩﻩrow=i; col=j; ﻩﻩﻩ} } ﻩprintf("二维数组中最大数值是: %d,位于第%d行,第%d列。 \n",max,row+1,col+1); } 程序的运行结果(或其截图): 3.编写程序三。 将一个字符串中的所有英文字母按从小到大排列,重新组成一个字符串。 例如: 原字符串是: "How doyoudo? ",重新排列后的字符串为: "└┘└┘└┘? Hddoooouwy"。 代码如下: #include<stdio.h> #include int main() { ﻩchar s[100],t; ﻩint i,j,sum; printf("Input: \n"); gets(s); ﻩsum=strlen(s); ﻩfor(i=0;i<sum-1;i++) ﻩﻩfor(j=0;j<sum-1;j++) ﻩﻩif(s[j+1]<=s[j]){t=s[j];s[j]=s[j+1];s[j+1]=t;} ﻩﻩﻩprintf("Output: \n"); ﻩputs(s); ﻩﻩreturn0; } 程序的运行结果(或其截图): 成绩 指导教师 年 月 日 实验八 函数 一、实验学时 2 学时。 二、实验目的 1.熟悉函数的定义方法; 2.掌握函数的调用方式及主调函数与被调函数间的数据传递方法; 3.掌握递归算法,会用函数来实现递归算法。 三、预习内容 教材《C语言程序设计》第7章。 四、实验内容 1.下面程序一的功能是求三个整数中的最大值。 请在横线上填写合适的语句,调试、运行该程序。 #include<stdio.h> intmax(inta,intb,intc) { intm; m=a; if(b>m) m=b; if(c>m) m=c; return(m); } void main() { intx,y,z,maxi; scanf("%d,%d,%d",&x,&y,&z); maxi=max(x,y,z) ; printf("Maxof%d,%dand%dis %d.\n",x,y,z,maxi); } 程序的运行结果(或其截图): 2.编写程序二。 在主函数中输入两个正整数,调用函数求它们的最小公倍数,结果在主函数中输出。 代码如下: #include<stdio.h> intmin(intm,intn) { ﻩints; ﻩs=m; while(s%n! =0) ﻩs+=m; return(s); } void main() ﻩ{ ﻩﻩintm,n; ﻩﻩprintf("请输入两个正整数\n"); ﻩscanf("%d,%d",&m,&n); ﻩﻩmin(m,n); printf("这两个正整数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 铜陵 学院 语言 实验 报告