版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》实验报告第二学期班级学号姓名指导教师实验一VisualC++6.0编程环境与C语言程序的调试过程一、实验学时2学时。二、实验目的1.了解在VisualC++6.0环境下如何编辑、编译、连接和运营一个C程序;2.通过运营简朴的C程序,初步了解C源程序的特点。三、预习内容教材《C语言程序设计》第1章。四、实验内容1.请调试、运营下面的程序一。#include<stdio.h>intmain(){printf("Hello,World!\n");return0;}给出以上程序的运营结果(或其截图):2.请调试、运营下面的程序二。#include<stdio.h>intmain(){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<stdio.h>intmain(){inta,b,sum;a=3b=4;sun=a+b;printf("%d+%d=%d\n",a,b,sum);return0;}改正后的程序#include<stdio.h>intmain(){inta,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return0;}以上程序的运营结果(或其截图):五、思考题1.调试C语言程序的环节有哪些?答:1. 编辑2.ﻩ编译3. 连接4. 运营2.程序的基本结构有哪三种?答:顺序结构,选择结构,循环结构指导教师成绩年月日实验二数据类型、运算符和表达式一、实验学时2学时。二、实验目的1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。三、预习内容教材《C语言程序设计》第2章。四、实验内容1.下面的程序一有语法错误,请调试、运营该程序。#include<stdio.h>intmain(){int2cd=3;floatyzl=3.14;charfor='A';printf("%d\n%f\n%c\n",2cd,yzl,for);return0;}程序一为什么犯错?答:1.yzl=3.14不能用float类型,改为double2.变量命名不能以数字为首位2cd=3;改为cd=3;3.for为循环结构不能作为变量名,改为f=’A’2.观测分析下面程序二的运营结果:#include<stdio.h>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);return0;}以上程序的运营结果(或其截图):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.000000z为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+a的运算顺序。答:1.a*a=162.16+a=203.a-=16=-164.a+=(-16)=-32成绩指导教师年月日实验三顺序结构程序设计一、实验学时2学时。二、实验目的1.掌握整型、实型与字符型数据输入函数scanf()的使用;2.掌握整型、实型与字符型数据输出函数printf()的使用;3.掌握顺序程序的设计方法。三、预习内容教材《C语言程序设计》第3章。四、实验内容1.下面程序一的功能是:从键盘输入两个整数,输出它们的和。请在横线上填写一条合适的语句,调试、运营该程序。#include<stdio.h>intmain(){inta,b,sum;scanf("%d%d",&a,&b);sum=a+b;printf("%d+%d=%d\n",a,b,sum);return0;}给出以上程序的运营结果(或其截图):2.观测分析下面程序二的运营结果。#include<stdio.h>intmain(){inta,b,sum;printf("请输入第一个整数:");scanf("%d",&a);printf("请输入第二个整数:");scanf("%d",&b);sum=a+b;printf("%d+%d=%d\n",a,b,sum);return0;}给出以上程序的运营结果(或其截图):3.下面程序三的功能是:输出三个变量a,b,c的值。请在横线上填写一条合适的语句,使该程序的运营结果为:a=35,b=43.66,c='A'#include<stdio.h>intmain(){inta=35;doubleb=43.6578;charc='A';printf("a=%d,b=%6.2f,c=%c\n",a,b,c);return0;}给出以上程序的运营结果(或其截图):设圆柱底面圆半径r=1.5m,高h=3m,编写程序,求底面圆的周长和面积、圆柱的表面积和体积。规定用函数scanf()输入r和h,输出时有文字说明,取小数点后两位。给出以上问题的求解算法(用N-S图描述)⑵给出问题的源代码#include<stdio.h>#definePI3.14159voidmain(){ﻩ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<stdio.h>intmain(){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"); elseprintf("Fail!\n"); return0;}程序一运营结果(执行程序4次,分别输入4个不同的成绩,相应4种不同的情况):输入数据205627799运营结果Fail!InputError!Pass!Excellent!2.已知下面的分段函数:请编写程序二,求出并显示y的值,x的值在程序运营时输入。代码如下:#include<stdio.h>voidmain(){floatx,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值):输入数据2010运营结果3.000.0011.003.设计一个简朴的计算器程序三。程序运营时输入两个实数和一个四则运算符:+、-、*、/(例如,输入:45.6,2.4/),输出计算结果(保存两位小数)。代码如下:#include<stdio.h>voidmain(){ floata,b; charch; 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/运营结果3243成绩指导教师年月日实验五循环结构程序设计一、实验学时2学时。二、实验目的1.熟悉循环结构语句while、do…while及for的执行流程;2.纯熟掌握用while、do…while及for语句编写循环结构程序。三、预习内容教材《C语言程序设计》第5章。四、实验内容1.下面程序一的功能是:求和式12-22+32-42+…-142+152的值。请在横线上填写合适的语句,调试、运营该程序。#include"stdio.h"voidmain(){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<stdio.h>voidmain(){ intn; scanf("%d",&n); while(n)ﻩ{ﻩﻩprintf("%d",n%10);ﻩ n/=10; }}程序二运营结果(或其截图):编写程序三。求数列,,,…,的前20项和。代码如下:#include<stdio.h>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>voidmain(){ﻩ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<stdio.h>voidmain(){ﻩ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>#defineN10voidmain(){ inti,data,a[N]={1,3,5,7,9,11,13,15,17};ﻩprintf("原数组a中的数据是:\n");for(i=0;i<N-1;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<N;i++) ﻩprintf("%3d",a[i]);printf("\n");}程序的运营结果(或其截图):2.编写程序二。输出3行4列矩阵中的最大元素值及其行标和列标。规定:矩阵中的每个元素值由键盘输入。代码如下:#include<stdio.h>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.编写程序三。将一个字符串中的所有英文字母按从小到大排列,重新组成一个字符串。例如:原字符串是:"Howdoyoudo?",重新排列后的字符串为:"└┘└┘└┘?Hddoooouwy"。代码如下:#include<stdio.h>#include<string.h>intmain(){ﻩchars[100],t;ﻩinti,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);}voidmain(){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);}voidmain()ﻩ{ intm,n;ﻩ printf("请输入两个正整数\n"); scanf("%d,%d",&m,&n); ﻩmin(m,n);printf("这两个正整数的最小公倍数为:%d\n",min(m,n)); }程序的运营结果(或其截图):编写程序三。用递归方法求解猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还但是瘾,又多吃了一个。第2天又将剩下的桃子吃掉一半,又多吃了一个。以后天天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘了多少个桃子。代码如下:#include"stdio.h"intf(inta){ inty; if(a==10) y=1; elseﻩ y=f(a+1)*2+2; returny;}voidmain(){ﻩintn,y; printf("请输入天数:"); scanf("%d",&n); y=f(n);ﻩprintf("第一天小猴共摘了%d个桃子。",y);}程序的运营结果(或其截图):成绩指导教师年月日实验九变量的作用域与存储方式一、实验学时2学时。二、实验目的1.掌握数组名作函数参数时形参与实参的定义方法;2.会使用数组名作函数参数在主调函数与被调函数间传递多个数据;3.掌握变量的作用域(局部变量与全局变量);4.掌握变量的存储方式(动态存储与静态存储)。三、预习内容教材《C语言程序设计》第7章。四、实验内容1.运营下面的程序一,并分析结果。#include<stdio.h>intx=8,y=3;intmax(inta,intb){intc;if(a>b)c=a;elsec=b;returnc;}voidmain(){intx=4,maxi;maxi=max(x,y);printf("%d\n",maxi);}程序的运营结果(或其截图):2.运营下面的程序二,并分析结果。#include<stdio.h>intf(inta){staticintb=0;b=b+a;returnb;}voidmain(){inty1,y2;y1=f(1);y2=f(1);printf("y1=%d,y2=%d\n",y1,y2);}程序的运营结果(或其截图):编写程序三。在主函数中输入10个整数,调用函数sort将它们从小到大排序,排序结果在主函数中输出。代码如下:#include<stdio.h>#defineM10voidsort(inta[],intn){ﻩinti,j,t; for(i=0;i<n-1;i++)ﻩ{ﻩ for(j=0;j<n-i-1;j++)ﻩﻩﻩif(a[j]>a[j+1]) ﻩﻩ{ ﻩ t=a[j]; ﻩ ﻩa[j]=a[j+1];ﻩﻩﻩ a[j+1]=t;ﻩ }ﻩ}}voidmain(){ intdata[M]; inti; for(i=0;i<M;i++) {ﻩ scanf("%d",&data[i]); }sort(data,M); for(i=0;i<M;i++)ﻩﻩ printf("%d",data[i]);ﻩﻩprintf("\n");}程序的运营结果(或其截图):成绩指导教师年月日实验十编译预解决一、实验学时2学时。二、实验目的1.理解宏的概念,掌握宏的定义;2.掌握带参数的宏定义、条件编译的使用;3.了解文献包含的概念,掌握其应用方法。三、预习内容教材《C语言程序设计》第8章。四、实验内容1.编写程序一。由键盘输入三个整数,用带参数的宏找出三个整数中的最大者。代码如下:#include<stdio.h>#definemax(x,y,z)x>(y>z?y:z)?x:(y>z?y:z)voidmain(){ into,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<stdio.h>#defineswap(a,b){intt;t=a;a=b;b=t;}voidmain(){ﻩinta,b; printf("请输入两个整数:\n");ﻩscanf("%d%d",&a,&b);ﻩprintf("互换前数字为:a=%d,b=%d\n",a,b); swap(a,b) printf("互换后数字为:a=%d,b=%d\n",a,b);}程序的运营结果(或其截图):3.编写程序三。由键盘输入三个实数,用带参数的宏设计输出这三个实数的格式:①第一行输出第一个实数;②第二行输出前两个实数;③第三行输出这三个实数。代码如下:#include"stdio.h"#defineN1printf("%f\n",a)#defineN2printf("%f%f\n",a,b)#defineN3printf("%f%f%f\n",a,b,c)voidmain(){ﻩfloata,b,c;ﻩprintf("请输入三个实数:"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年施工项目部《春节节后复工复产》工作专项方案 (3份)
- 小学数学四年级上册《你知道吗-加法交换律和交换律》知识要点
- 小学四年级数学上册全册错题集练习试题第三单元 混合运算
- 小学数学二年级加减法练习题
- 扬州会议高考语文阅读理解
- 高考语文试题分类汇编语句衔接
- 人力资源管理在酒店行业的应用
- 金融投资行业顾问心得分享
- 在变化中寻找机遇的方法计划
- 班主任工作培训总结加强教学管理及学科指导
- 医院护理培训课件:《安全注射》
- 变、配电室门禁管理制度
- 11304+《管理案例分析》纸考2023.12
- 《浅谈跳绳体育游戏的实践研究》 论文
- 《勇敢面对挫折和困难》参考课件
- 小学体育期末检测方案
- 手术室交接班制度
- 2023-2024学年福建省莆田市荔城区中山中学、九中联考九年级(上)期末数学试卷
- 接触网设备故障应急处理
- 2022年1月自考00850广告设计基础试题及答案含解析
- 娱乐演艺居间合同协议书范本
评论
0/150
提交评论