16铜陵学院c语言实验报告

上传人:bei****lei 文档编号:174977925 上传时间:2022-12-17 格式:DOCX 页数:54 大小:394.86KB
收藏 版权申诉 举报 下载
16铜陵学院c语言实验报告_第1页
第1页 / 共54页
16铜陵学院c语言实验报告_第2页
第2页 / 共54页
16铜陵学院c语言实验报告_第3页
第3页 / 共54页
资源描述:

《16铜陵学院c语言实验报告》由会员分享,可在线阅读,更多相关《16铜陵学院c语言实验报告(54页珍藏版)》请在装配图网上搜索。

1、C语言程序设计 实验报告20162017学年第二学期班 级 2016级学 号姓 名指导教师黄永青 实验一 Visual C+ 6.0编程环境与C语言程序的调试过程一、实验学时2 学时。二、实验目的1了解在Visual C+ 6.0环境下如何编辑、编译、连接和运行一个C程序;2通过运行简单的C程序,初步了解C源程序的特点。三、预习内容教材C语言程序设计第1章。四、实验内容1请调试、运行下面的程序一。#include int main( )printf(Hello,World!n);return 0;给出以上程序的运行结果(或其截图): 2请调试、运行下面的程序二。#include int mai

2、n( ) int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%1d*%1d=%2d ,j,i,j*i);printf(n);return 0;给出以上程序运行结果的截图:3请改正下面程序三中的语法错误,然后调试、运行该程序,观察分析运行结果。#include int main( )int a,b,sum;a=3b=4;sun=a+b;printf(%d+%d=%dn,a,b,sum);return 0;(1) 改正后的程序#include int main( )int a,b,sum; a=3; b=4; sum=a+b;printf(%d+%d=

3、%dn,a,b,sum);return 0;(2) 以上程序的运行结果(或其截图):五、思考题 1调试C语言程序的步骤有哪些?答:1.编辑2.编译3.连接4.运行 2程序的基本结构有哪三种? 答:顺序结构,选择结构,循环结构指导教师 成绩 年 月 日实验二 数据类型、运算符和表达式一、实验学时2 学时。二、实验目的1掌握整型、实型与字符型这三种基本类型的概念;2掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握+、-运算符、赋值运算符及其表达式的使用方法。三、预习内容教材C语言程序设计第2章。四、实验内容 1下面的程序一有语法错误,请调试、运行该程序。#incl

4、ude int main( )int 2cd=3;float yzl=3.14;char for=A;printf(%dn%fn%cn,2cd,yzl,for);return 0;程序一为什么出错? 答: 1. yzl=3.14不能用float类型,改为double2. 变量命名不能以数字为首位2cd=3;改为cd=3;3.for为循环结构不能作为变量名,改为f=A2观察分析下面程序二的运行结果:#include int main( )int a=3,b=4,c=8;float x,y=4.0,z;x=a+b/c;z=a+y/c;printf(x=%fnz=%fn,x,z);return 0;

5、以上程序的运行结果(或其截图):3观察分析下面程序三的运行结果:#include int main( )int a,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=%dni=%d,j=%d,m=%d,n=%dn,a,b,c,d,i,j,m,n);return 0;以上程序的运行结果(或其截图):4观察分析下面程序四的运行结果:#include int main( )int a=4;a+=a-=a*a+a;printf(a=%dn,a);return 0;以上程序的运行结果(或其截图):五、思考题1给变量命名

6、应该注意哪些?答:1.变量名可由字母数字,下划线组成,但首位只能是字母,下划线不能为数字。 2.变量名区分大小写 3.变量名不能与系统标识符同名4.变量名的长度是有限的,视编译而定5.变量命名时尽量简单易记,见名之意2程序二的运行结果中,x和z的值为什么不同?答:x为int类型,x的值为整型小数点部分都为0;即x=3.000000 z为float类型,z的值为浮点型数据,即z=3.5000003程序三的运行结果中,i和j的值为什么不同?m和n的值为什么不同?答:i为a直接赋予i=3j是先b+1=4再将4赋给jm为c直接赋予 n是先d-1=3再将3赋给n4请分析程序四中表达式a+=a-=a*a+

7、a的运算顺序。答:1.a*a=162.16+a=203.a-=16=-164.a+=(-16)=-32 成绩 指导教师 年 月 日实验三 顺序结构程序设计一、实验学时2 学时。二、实验目的1掌握整型、实型与字符型数据输入函数scanf( )的使用;2掌握整型、实型与字符型数据输出函数printf( )的使用;3掌握顺序程序的设计方法。三、预习内容教材C语言程序设计第3章。四、实验内容1下面程序一的功能是:从键盘输入两个整数,输出它们的和。请在横线上填写一条合适的语句,调试、运行该程序。#include int main( ) int a,b,sum; scanf(%d%d,&a,&b); su

8、m=a+b;printf(%d+%d=%dn,a,b,sum);return 0;给出以上程序的运行结果(或其截图):2观察分析下面程序二的运行结果。#include int main( ) int a,b,sum;printf(请输入第一个整数:);scanf(%d,&a);printf(请输入第二个整数:);scanf(%d,&b);sum=a+b;printf(%d+%d=%dn,a,b,sum);return 0;给出以上程序的运行结果(或其截图):3下面程序三的功能是:输出三个变量a,b,c的值。请在横线上填写一条合适的语句,使该程序的运行结果为:a=35,b=43.66,c=A#i

9、nclude int main( ) int a=35;double b=43.6578;char c=A; printf(a=%d,b=%6.2f,c=%cn,a,b,c); return 0;给出以上程序的运行结果(或其截图):4 设圆柱底面圆半径r=1.5m,高h=3m,编写程序,求底面圆的周长和面积、圆柱的表面积和体积。要求用函数scanf( )输入r和h,输出时有文字说明,取小数点后两位。 给出以上问题的求解算法(用N-S图描述) 给出问题的源代码#include#define PI 3.14159void main()double r,h,c,s,S,V;scanf(%lf,%lf

10、,&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.2fn,c,s,S,V); 该程序的运行结果(或其截图)五、思考题 程序一和程序二中输入数据的方式有什么区别?您认为哪种方式较好,为什么? 答:程序一中a,b同时定义;程序二中在输出时可以明确区分a,b,并在编程过程中将其分别定义;我认为程序二更好;因为相较于程序一,程序二编程过程不易出错,且便于输出。成绩 指导教师 年 月 日实验四 选择结构程序设计一、实验学

11、时2 学时。二、实验目的1正确使用关系运算符和关系表达式;2正确使用逻辑运算符和逻辑表达式;3熟练使用if语句实现选择结构程序设计;4熟练使用switch语句实现多分支选择结构程序设计。三、预习内容教材C语言程序设计教程第4章。四、实验内容1下面程序一的功能是:输入学生成绩,若90分成绩100分,输出“Excellent!”;若60分成绩89分,输出“Pass!”;若成绩60分,输出“Fail!”;若成绩100分,输出“Input Error!”。请在横线上填写合适的语句,调试、运行该程序。#include int main( ) int score;printf(请输入分数(0-100):)

12、;scanf(%d, &score );if(score100|score=90&score=100 ) printf(Excellent!n);else if (60=score&score=89 ) printf(Pass!n);else printf(Fail!n); return 0;程序一运行结果(执行程序4次,分别输入4个不同的成绩,对应4种不同的情况):输入数据205627799运行结果Fail!Input Error!Pass!Excellent!2已知下面的分段函数:请编写程序二,求出并显示y的值,x的值在程序运行时输入。代码如下:#include void main( )

13、float x,y; scanf(%f,&x); if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(%7.2fn,y);程序二运行结果(执行程序3次,分别输入3个不同的x值,对应3种不同的y值):输入数据2010运行结果3.000.0011.003设计一个简单的计算器程序三。程序运行时输入两个实数和一个四则运算符:+、-、*、/(例如,输入:45.6,2.4/),输出计算结果(保留两位小数)。代码如下:#includevoid main()float a,b;char ch;scanf(%f,%f%c,&a,&b,&ch);if(c

14、h=+)printf(%.2f+%.2f=%.2fn,a,b,a+b);else if(ch=-)printf(%.2f-%.2f=%.2fn,a,b,a-b);else if(ch=*)printf(%.2f*%.2f=%.2fn,a,b,a*b);else if(ch=/)printf(%.2f/%.2f=%.2fn,a,b,a/b);程序三运行结果(执行程序4次,分别输入4组不同的数据,对应+、-、*、/四种不同的运算):输入数据1,2+3,1-2,2*3,1/运行结果3243成绩 指导教师 年 月 日实验五 循环结构程序设计一、实验学时2 学时。二、实验目的1熟悉循环结构语句while

15、、dowhile及for的执行流程;2熟练掌握用while、dowhile及for语句编写循环结构程序。三、预习内容教材C语言程序设计第5章。四、实验内容1下面程序一的功能是:求和式12-22+32-42+-142+152的值。请在横线上填写合适的语句,调试、运行该程序。#include stdio.hvoid main( ) int sum=0,n=1,sign=1; do sum=sum+sign*n*n; n+=1; sign=sign*(-1); while (n=15); printf(12-22+32-42+-142+152=%dn, sum );程序一运行结果(或其截图):2编写

16、程序二。输入一个5位正整数,输出该整数的倒序。例如:若输入是12345,则输出为54321。代码如下:#includevoid main()int n;scanf(%d,&n);while(n)printf(%d,n%10);n/=10;程序二运行结果(或其截图):3 编写程序三。求数列,的前20项和。代码如下:#includeint main()float a=1,b=1,c=3,sum=0;int i;for(i=1;i=20;i+)sum+=a/(b*c);a+=1;b+=2;c+=2;printf(%3fn,sum);return 0;程序三运行结果(或其截图):成绩 指导教师 年 月

17、 日实验六 嵌套结构程序设计一、实验学时2 学时。二、实验目的1掌握一个结构里面嵌套一个结构的程序执行过程及设计方法;2掌握break语句在多选一结构程序中的使用方法;3掌握break及continue语句在循环结构程序中的使用方法。三、预习内容教材C语言程序设计第3-5章。四、实验内容1编写程序一,在屏幕上显示九九乘法表:代码如下:#includevoid main()int i,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编写程序二,在屏幕上显示图形:代码如下

18、:#includevoid main()int i,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的整数。代码如下:#includevoid main()int i,j;for(i=2;i=100;i+)for(j=2;j=(i

19、/2);j+)if(i%j=0)break;if(i%j!=0)printf(%dn,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。代码如

20、下:#include #define N 10void main()int i, data, aN = 1, 3, 5, 7, 9, 11, 13, 15, 17 ; printf(原数组a中的数据是:n);for(i = 0; i data & i=0 ; i-) ai+1 = ai; ai+1 = data; printf(插入%d后,数组a中的数据是:n, data);for(i = 0; i N; i+)printf ( %3d, ai );printf (n); 程序的运行结果(或其截图): 2编写程序二。输出3行4列矩阵中的最大元素值及其行标和列标。要求:矩阵中的每个元素值由键盘输

21、入。代码如下:#includevoid main()int i,j;int row,col,max,a34=7,9,12,5,39,54,21,6,17,26,64,1;printf(原二维数组a:n);for(i=0;i3;i+)for(j=0;j4;j+)printf(%4d,aij);printf(n);row=col=0;max=a00;for(i=0;i3;i+)for(j=0;jmax)max=aij;row=i;col=j;printf(二维数组中最大数值是:%d,位于第%d行,第%d列。n,max,row+1,col+1);程序的运行结果(或其截图):3编写程序三。将一个字符串

22、中的所有英文字母按从小到大排列,重新组成一个字符串。例如:原字符串是:How do you do?,重新排列后的字符串为:?Hddoooouwy。代码如下:#include#includeint main()char s100,t;int i,j,sum;printf(Input:n);gets(s);sum=strlen(s);for(i=0;isum-1;i+)for(j=0;jsum-1;j+)if(sj+1=sj)t=sj;sj=sj+1;sj+1=t;printf(Output:n);puts(s);return 0;程序的运行结果(或其截图):成绩 指导教师 年 月 日实验八 函数

23、一、实验学时2 学时。二、实验目的1熟悉函数的定义方法;2掌握函数的调用方式及主调函数与被调函数间的数据传递方法;3掌握递归算法,会用函数来实现递归算法。三、预习内容教材C语言程序设计第7章。四、实验内容1下面程序一的功能是求三个整数中的最大值。请在横线上填写合适的语句,调试、运行该程序。#include int max(int a,int b,int c)int m;m=a;if(bm)m=b;if(cm)m=c;return(m) ;void main( )int x,y,z,maxi;scanf(%d,%d,%d,&x,&y,&z);maxi= max(x,y,z) ;printf(Ma

24、x of %d,%d and %d is %d.n,x,y,z,maxi);程序的运行结果(或其截图):2编写程序二。在主函数中输入两个正整数,调用函数求它们的最小公倍数,结果在主函数中输出。代码如下:#includeint min(int m,int n)int s;s=m;while(s%n!=0)s+=m;return(s);void main()int m,n;printf(请输入两个正整数n);scanf(%d,%d,&m,&n);min(m,n);printf(这两个正整数的最小公倍数为:%dn,min(m,n);程序的运行结果(或其截图):3 编写程序三。用递归方法求解猴子吃桃问

25、题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘了多少个桃子。代码如下:#includestdio.hint f(int a)int y;if(a=10)y=1;elsey=f(a+1)*2+2;return y;void main()int n,y;printf(请输入天数:);scanf(%d,&n);y=f(n);printf(第一天小猴共摘了%d个桃子。,y);程序的运行结果(或其截图):成绩 指导教师 年 月 日实验九 变量的

26、作用域与存储方式一、实验学时2 学时。二、实验目的1掌握数组名作函数参数时形参与实参的定义方法;2会使用数组名作函数参数在主调函数与被调函数间传递多个数据;3掌握变量的作用域(局部变量与全局变量);4掌握变量的存储方式(动态存储与静态存储)。三、预习内容教材C语言程序设计第7章。四、实验内容1运行下面的程序一,并分析结果。#include int x=8,y=3;int max(int a,int b)int c;if(ab)c=a;elsec=b;return c;void main( )int x=4,maxi;maxi=max(x,y);printf(%dn,maxi);程序的运行结果(

27、或其截图):2运行下面的程序二,并分析结果。#include int f(int a)static int b=0;b=b+a;return b;void main( )int y1,y2;y1=f(1);y2=f(1);printf(y1=%d,y2=%dn,y1,y2);程序的运行结果(或其截图):3 编写程序三。在主函数中输入10个整数,调用函数sort将它们从小到大排序,排序结果在主函数中输出。代码如下:#include#define M 10void sort(int a,int n)int i,j,t;for(i=0;in-1;i+)for(j=0;jaj+1)t=aj;aj=aj

28、+1;aj+1=t;void main()int dataM;int i;for (i=0;iM;i+)scanf(%d,&datai);sort(data,M);for(i=0;iM;i+)printf(%d,datai);printf(n);程序的运行结果(或其截图):成绩 指导教师 年 月 日实验十 编译预处理一、实验学时2 学时。二、实验目的1理解宏的概念,掌握宏的定义;2掌握带参数的宏定义、条件编译的使用;3了解文件包含的概念,掌握其应用方法。三、预习内容教材C语言程序设计第8章。四、实验内容1编写程序一。由键盘输入三个整数,用带参数的宏找出三个整数中的最大者。代码如下:#inclu

29、de#define max(x,y,z) x(yz?y:z)?x:(yz?y:z)void main()int o,p,q;printf(请输入三个整数:n);scanf(%d,%d,%d,&o,&p,&q);printf(%d%d%d,这三个数中最大的是:%d,o,p,q,max(o,p,q);printf(n);程序的运行结果(或其截图):2编写程序二。定义一个带参数的宏,使得两个参数的值互换,在主函数main( )中输入两个整数作为宏的参数,输出交换后的两个值。代码如下:#include#define swap(a,b) int t;t=a;a=b;b=t;void main()int

30、a,b;printf(请输入两个整数:n);scanf(%d%d,&a,&b);printf(交换前数字为:a=%d,b=%dn,a,b);swap(a,b)printf(交换后数字为:a=%d,b=%dn,a,b);程序的运行结果(或其截图):3编写程序三。由键盘输入三个实数,用带参数的宏设计输出这三个实数的格式: 第一行输出第一个实数; 第二行输出前两个实数; 第三行输出这三个实数。代码如下:#include stdio.h#define N1 printf(%fn,a)#define N2 printf(%f %fn,a,b)#define N3 printf(%f %f %fn,a,b

31、,c)void main()float a,b,c;printf(请输入三个实数:);scanf(%f%f%f,&a,&b,&c);N1;N2;N3;printf(n);程序的运行结果(或其截图):成绩 指导教师 年 月 日实验十一 指针一、实验学时2 学时。二、实验目的1掌握指针和间接访问的概念,会定义和使用指针变量;2能利用指针变量作函数参数得到多个要改变的值;3能正确定义指向数组的指针变量,并能用其对数组进行访问;4能正确定义指向字符串的指针变量,并能用其对字符串进行访问。三、预习内容教材C语言程序设计第9章。四、实验内容1在主函数中输入2个整数,调用swap函数将它们的值交换,结果在主

32、函数中输出。代码如下:#includevoid swap(int *p1,int *p2)int t;t=*p1;*p1=*p2;*p2=t;void main()int m,n;printf(输入两个整数:);scanf(%d%d,&m,&n);swap(&m,&n);printf(%d %dn,m,n);程序的运行结果(或其截图): 2在主函数中输入10个整数,调用函数sum求它们的和,结果在主函数中输出(要求:实参用数组名,形参用指针变量)。代码如下:#includestdio.hint sum(int *p)int i,sum=0;for(i=0;i10;i+)sum+=*(p+i);

33、return(sum);void main()int b10,s,j;printf(请输入10个整数:);for(j=0;j10;j+)scanf(%d,&bj);s=sum(b);printf(以上10个数的和为:%dn,s);程序的运行结果(或其截图):3. 在主函数中输入一个字符串,调用converse函数将该字符串逆序(例如,若原序是:abcdefgh,则逆序后是:hgfedcba),结果在主函数中输出。(要求:实参用字符数组名,形参用指针变量)。代码如下:#include#includevoid converse(char *s)int i,j;char c;j=strlen(s);for(i=0;ij/2;i+)c=si;si=sj-i-1;sj-i-1=c;void main()char s100;printf(请输入字符串:);gets(s);converse(s);printf(该字符串倒序后为:%sn,s);程序的运行结果(或其截图):成绩 指导教师 年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!