C实验报告110.docx
《C实验报告110.docx》由会员分享,可在线阅读,更多相关《C实验报告110.docx(47页珍藏版)》请在冰豆网上搜索。
C实验报告110
实验1熟悉VisualC++6.0环境及运行C程序
一、实验目的
1.掌握在VisualC++6.0环境下C程序的建立、编辑、编译和执行过程。
2.掌握C程序的最基本框架结构,完成简单程序的编制与运行。
3.了解基本输入输出函数scanf()、printf()的格式及使用方法。
4.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容
1.下列程序的功能是:
从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#include
main()
{
inta,b,sum;/*定义整型变量a、b、sum*/
printf("PleaseInputa,b\n");/*输出提示信息*/
scanf("%d%d",&a,&b);/*从键盘输入两个整数分别赋予a和b*/
sum=a*a+b*b;/*赋值语句,把a2+b2的结果赋给变量sum*/
printf("%d+%d=%d\n",a,b,sum);/*输出语句*/
}
【使用VisualC++实验步骤】
第1步:
进入VisualC++环境后,执行“文件”|“新建”菜单命令。
第2步:
在“新建”对话框中切换到“文件”选项卡,然后选择C++SourceFile选项。
第3步:
在右边的目录文本框中输入准备编辑的源程序文件的存储路径,在“文件”文本框中输入准备编辑的C源程序文件名(如:
sy1_1.c)。
注意后缀是.c。
然后单击“确定”按钮。
第4步:
在光标闪烁的程序编辑窗口输入上面C程序(注意:
/**/之间的内容为程序注释部分,不执行),程序输入完毕后执行“文件”|“保存”命令,或单击工具栏上的“保存”按钮,也可以用Ctrl+S快捷键来保存文件。
第5步:
执行“编译”|“编译”菜单命令,或单击工具栏上的“编译”按钮,也可以按Ctrl+F7组合键,开始编译。
观察调试信息窗口输出编译的信息,如果有错,则修改后再编译,直至编译信息为:
“0error(s),0warning(s)”,表示编译成功。
第6步:
按F7键或单击
,生成应用程序的菜单命令EXE文件(如sy1_1.exe)。
第7步:
运行程序观察结果。
执行“编译”|“执行”,或单击工具栏上的“执行”按钮
,也可以使用Ctrl+F5快捷键。
2.改错题
(1)下列程序的功能为:
计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c保存。
#include
main
{intx=2;y=3;a
A=x*y
print('a=%d",a);
printf("\n");
}
(2)下程序的功能为:
求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c保存。
#include
viodmain()
{
inta,b,max;
Scanf("%d,%d",&a,&b);/*从键盘输入两个整数分别赋予变量a和b*/
Max=a;
If (max
Printf("max=%d",max);/*输出max的值*/
}
3.程序填空题
(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名sy1_4.c保存。
#include
main()
{
/*定义整型变量x,y,total*/
printf("Pleaseinputx,y!
");/*输出提示信息*/
/*由键盘输入两个数分别赋予x和y*/
total=x+y;/*赋值语句*/
printf("%d+%d=%d\n",x,y,total);/*输出两个整数的和*/
}
(2)从键盘输入两个整数,输出这两个整数的差。
根据注释信息填写完整程序,以实现其功能。
程序以文件名sy1_5.c保存。
main()
{
inta,b,m;
printf("Inputa,bplease!
");
scanf("%d%d",&a,&b);
_________________/*赋值语句,将a和b的差值赋给m*/
_________________/*输出a和b差的结果值后换行*/
}
4.编程题
(1)编程序,运行后输出如下信息:
“BetterCity,BetterLife!
”。
程序以文件名sy1_6.c保存。
(2)编程序,从键盘输入3个整数,输出它们的平方和。
程序以文件名sy1_7.c保存。
实验2数据类型、运算符和表达式
一、实验目的
1.理解C语言中各种数据类型的意义,掌握各种数据类型的定义方法。
2.掌握C语言常量、变量的定义与使用。
3.掌握C语言数据类型及运算符的使用规则。
二、实验内容
1.改错题
(1)下列程序的功能为:
已知圆锥半径r和高h,计算圆锥体积v。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy2_1.c保存。
计算圆锥体积的公式为:
#includestdio.h
main();
{floatr=10,h=5;
v=1/3*3.14159*r^2*h;
printf("v=%d\n",v)
}
(2)下列程序的功能为:
通过键盘输入两个整数分别存放在变量x、y中,不借用第3个变量实现变量x、y互换值。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy2_2.c保存。
#include
main()
{
intx,y;
printf("请输入两个整数\n");
scanf("%d%d",x,y);
printf("初始状态下的x:
%dy:
%d\n");
x=x+y
y=x-y;
x=x-y;
printf("最终状态下的x:
%dy:
%d/n",x,y);
}
2.程序填空题
(1)计算当x=4时,公式
×2x2的值。
补充完善程序,以实现其功能。
程序以文件名sy2_3.c保存。
#include
main()
{
floatx=4.0,y;
printf("%f",y);
}
(2)下列程序的功能为:
从键盘输入3个整数分别存入变量a、b、c,然后,将变量a的值存入变量b,将变量b的值存入变量c,将变量c的值存入变量a,输出经过转存后变量a、b、c的值。
(提示:
使用中间变量)补充完善程序,以实现其功能。
程序以文件名sy2_4.c保存。
#include
main()
{
inta,b,c,;
printf("Pleaseinputa,b,c:
");
scanf("%d%d%d",);
;
;
;
;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.编程题
(1)从键盘输入3个大写英文字母,把它们转换成小写字母后输出。
程序以文件名sy2_5.c保存。
(2)从键盘输入3个整数,输出它们的平均值与积。
程序以文件名sy2_6.c保存。
实验3顺序结构程序设计
一、实验目的
1.掌握scanf()、printf()以及其他常用输入、输出函数的使用。
2.掌握格式控制符的使用。
3.掌握顺序结构程序设计的方法。
二、实验内容
1.改错题
(1)下列程序的功能为:
输入一个华氏温度,要求输出摄氏温度。
公式为:
C=
,输出取2位小数。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy3_1.c保存。
#include
main()
{
floatc,f;
printf("请输入一个华氏温度:
\n");
scanf("%f",f);
c=(5/9)*(f-32);
printf("摄氏温度为:
%5.2f\n"c);
}
(2)下列程序的功能为:
按下列公式计算并输出x的值。
其中a和b的值由键盘输入。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy3_2.c保存。
#include
main()
{inta,b;
floatx;
scanf("%d,%d",a,b);
x=2ab/(a+b)(a+b);
printf("x=%d\n",x);
}
(3)下列程序的功能为:
从键盘输入一个小写字母,要求改用大写字母输出。
请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy3_3.c保存。
#include
main()
{
charc1,c2;
c1=getchar;/*从键盘输入一个小写字母*/
printf("%c,%d\n",c1,c1);/*输出该小写字母及其ASCII码值*/
c2=c1+26;/*转换为大写字母*/
printf("%c,%d\n",c2,c2);/*输出大写字母及其ASCII码值*/
}
2.程序填空题
(1)下列程序的功能为:
按给定格式输入数据,按要求格式输出结果。
补充完善程序,以实现其功能。
程序以文件名sy3_4.c保存。
输入形式enterx,y:
23.4
输出形式x+y=5.4
#include
main()
{
intx;
floaty;
printf("enterx,y:
");
}
(2)下列程序的功能为:
设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
(周长l=2
,圆面积s=
,圆球表面积sq=
,圆球体积vq=
;圆柱体积vz=
),请补充完善程序,以实现其功能。
程序以文件名sy3_5.c保存。
#include
main()
{
floatpi,h,r,l,s,sq,vq,vz;
pi=3.1415926;
printf("请输入圆半径r,圆柱高h:
\n");
;
l=;
s=;
sq=;
vq=;
vz=;
printf("圆周长为:
);
printf("圆面积为:
);
printf("圆球表面积为:
);
printf("圆球体积为:
);
printf("圆柱体积为:
);
}
(3)下列程序的功能为:
通过键盘输入两个整数,分别存入变量x、y中,当x补充完善程序,以实现其功能。
程序以文件名sy3_6.c保存。
#include
main()
{intx,y,t;
printf("请输入x,y:
\n");
;
if(x{t;;y=t;}/*x与y交换*/
printf("交换后的x:
%dy:
%d\n",x,y);
}
3.编程题
(1)编写一个程序实现如下功能:
从键盘输入3个字符,然后在屏幕上分3行输出该3个字符。
程序以文件名sy3_7.c保存。
(2)编写一个程序实现如下功能:
输入一元二次方程ax2+bx+c=0的系数a、b、c,求方程的根。
要求:
运行该程序时,输入a、b、c的值,分别使b2-4ac的值大于、等于和小于零,观察并分析运行结果。
程序以文件名sy3_8.c保存。
求根公式如下:
实验4选择结构程序设计
一、实验目的
1.掌握关系运算符和关系表达式的使用方法。
2.掌握逻辑运算符和逻辑表达式的使用方法。
3.掌握if语句、switch语句、条件运算符(?
:
)的使用方法。
4.掌握选择结构程序的设计技巧。
二、实验内容
1.改错题
(1)下列程序的功能为:
输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:
输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy4_1.c保存。
#include
main()
{charch,c1,c2;
printf("Enteracharacter:
");
ch=getchar();
if((ch>='a')||(ch<='z'))
ch-=32;
c1=ch-1;
c2=ch+1;
if(ch='A')c1=ch+25;
elseif(ch='Z')c2=ch-25;
putchar(c1);
putchar(ch);
putchar(c2);
putchar('\n');
}
(2)下列程序的功能为:
输入3个整数后,输出其中最大值。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy4_2.c保存。
#include
main()
{
inta,b,c,max;
printf("请输入3个整数:
\n");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(c>b)
{if(b>a)max=c;}
else
{if(c>a)max=b;}
printf("3个数中最大者为:
%d\n",max);
}
(3)下列程序的功能为:
输入1-4月份号,输出该月份对应的英语表示法。
例如,输入“3”,则输出“Mar”。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy4_3.c保存。
#include
main()
{
charm;
printf(“inputthemonthnumber:
\n”);
scanf("%c",&m);
switch(m)
{
case1:
printf(“Jan”);
case2:
printf(“Feb”);
case3:
printf(“Mar”);
case4:
printf(“Apr”);
}
}
2.程序填空题
(1)下列程序的功能为:
判断从键盘上输入的一个字符,并按下列要求输出。
若该字符是数字,输出字符串"0-9"
若该字符是大写字母,输出字符串"A-Z"
若该字符是小写字母,输出字符串"a-z"
若该字符是其他字符,输出字符串"!
,@,…"
补充完善程序,以实现其功能。
程序以文件名sy4_4.c保存。
#include
main()
{charc;
scanf(_____________________);
if(c>='0'&&c<='9')
__________________________
elseif(________________________)
printf("A-Z\n");
___________(c>='a'&&c<='z')
printf("a-z\n");
_____________________
printf("!
,@,…\n");
}
(2)下列程序的功能为:
实现加、减、乘、除四则运算。
补充完善程序,以实现其功能。
程序以文件名sy4_5.c保存。
#include
main()
{
inta,b,d;
charch;
printf("Pleaseinputaexpression:
");
scanf("%d%c%d",);/*输入数学表达式*/
switch(ch)
{
case'+':
d=a+b;
printf("%d+%d=%d\n",a,b,d);
break;
case'-':
d=a-b;
printf("%d-%d=%d\n",a,b,d);
break;
case'*':
d=a*b;
printf("%d*%d=%d\n",a,b,d);
break;
case'/':
if()/*如果除数为0,则显示出错提示信息*/
printf("Divisoriszero\n");
else
printf("%d/%d=%f\n",a,b,()a/b);/*强制类型转换*/
break;
default:
printf("InputOperatorerror!
\n");
}
}
(3)下列程序的功能为:
猜价格,用户输入自己估计的价格,程序判断其正确性。
补充完善程序,以实现其功能。
程序以文件名sy4_6.c保存。
#include"stdio.h"
main()
{floata,b;
printf("请主持人输入时尚手机的实际价格\n");
scanf("%f",&b);
printf("\n\n请观众猜时尚手机的价格\n");
scanf("%f",&a);
if()
printf("低了\n");
if()
printf("猜对了!
\n");
if()
printf("高了\n");
}
3.编程题
(1)从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值。
程序以文件名sy4_7.c保存。
(2)有一分段函数如下,要求用scanf函数输入x的值,求y值并在屏幕上输出。
程序以文件名sy4_8.c保存。
0,x<5
y=x-1,5≤x<15
6x2-1,x≥15
(3)从键盘输入一个数字0~6,输出相应星期几的英文单词,其中数字0对应Sunday,数字1~6对应Monday~Saturday,如果输入的不是0~6的数字,则显示错误信息。
程序以文件名sy4_9.c保存。
实验5循环结构程序设计
一、实验目的
1.掌握循环结构程序设计的3种控制语句——while语句、do···while语句、for语句的使用方法。
2.了解用循环的方法实现常用的算法设计。
二、实验内容
1.改错题
(1)下列程序的功能为:
求1~100之和(和值为5050)并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy5_1.c保存。
#include
main()
{
inti,sum=0;
i=1;
while(i<100)
sum=sum+i;
i++;
printf(“Thesumfrom1to100is%d\n”,sum);
}
(2)下列程序的功能为:
倒序打印26个英文字母。
纠正程序中存在的错误,以实现其功能,程序以文件名sy5_2.c保存。
#include
main()
{
charx;
x='z';
while(x!
='a')
{
printf("%3d",x);
x++;
}
}
(3)下列程序的功能为:
输入一个大写字母,打印出一个菱形。
该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A出现在第一行和最末行为止。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy5_3.c保存。
例如,输入字母D,打印出如下图形:
A
BBB
CCCCC
DDDDDDD
CCCCC第k行
BBB第k-1行
A第1行
#include
main()
{
inti,j,k;
charch;
scanf("%c",&ch);
k=ch-'A'+1;
for(i=1;i<=k;i++)
{
for(j=20;j>=i;j--)
printf("%c",'');
for(j=1;j<=i-1;j++)
printf("%c",'A'+i-1);
printf("\n");
}
k=ch-'A';
for(i=k;i>=1;i--)
{
for(i=20;i>=i;i--)
printf("%c",'');
for(j=1;j<2*i-1;j++)
printf("%c",'A'+i-1);
printf("\n");
}
}
2.程序填空题
(1)用辗转相除法求两个正整数的最大公约数和最小公倍数。
补充完善程序,以实现其功能,程序以文件名sy5_4.c保存。
“辗转相除法”求两个正整数的最大公约数的算法如下:
1将两数中大的那个数放在m中,小的放在n中;
2求出m被n除后的余数r;
3若余数为0则执行步骤
,否则执行步骤
;
4把除数作为新的被除数,把余数作为新的除数;
5求出新的余数r;
6重复步骤
~
。
7输出n,n即为最大公约数。
#include
main()
{
intr,m,n,k,;
scanf("%d%d",&m,&n);
if(m/*交换两数*/
k=m*n;
r=m%n;
while(r)
{m=n;
n=r;
r=;
}
printf("%d%d\n",,);/*输出最大公约数和最小公倍数*/
}
(2)假设有1020个西瓜,第一天卖了一半多两个,以后每天卖剩的一半多两个,求几天后能卖完。
补充完善程序,以实现其功能。
程序以文件名sy5_5.c保存。
#include
main()
{
intday,x1,x2;
day=0;
x1=1020;
while()
{
x2=;
x1=x2;
day++;
}
printf("day=%d\n",day);
}
(3)下列程序的功能为:
输出100以内能被3整除且个位数为6的所有整数.补充完善程序,以实现其功能。
程序以文件名sy5_6.c保存。
#include
main()
{inti,j;
for(i=0;___________________;i++)
{j=i*10+6;
if(________________________)
continue;
printf("%d",j);
}
}
3.编程题
(1)计算1~100之间所有含8的数之和。
程序以文件名sy5_7.c保存。
(2)编写程序,利用下列近似公式计算e值,误差应小于10-5。
程序以文件名sy5_8.c保存。
…
(3)某学校有近千名学生,在操场上排队,若5人一行余2人,7人一行余3人,3人一行余1人。
编写程序,求该校的学生总人数。
程序以文件名sy5_9.c保存。
(4)从键盘输入N个学生的学号和每人M门课程的成绩,计算每个学生的总分及平均分。
输出内容包括每个学生的学号、总分和平均分。
程序以文件名sy5_10.c保存。
实验6数组程序设计
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法。
二、实验内容
1.改错题
(1)下列程序的功能为:
为指定的数组输入10个数据,并求这些数据