c语言实验报告1.docx
《c语言实验报告1.docx》由会员分享,可在线阅读,更多相关《c语言实验报告1.docx(41页珍藏版)》请在冰点文库上搜索。
c语言实验报告1
(此文档为word格式,下载后您可任意编辑修改!
)
实验名称:
熟悉C程序的运行环境
一、实验目的和要求
了解TurboC++3.0的基本操作方法,学会独立使用该系统
编辑、编译、连接和运行一个C程序
通过运行简单的C程序,初步了解C源程序的特点
二、实验内容和原理
1.输入并运行一个简单、正确的程序
#include{
printf("Thisisacprogram\n");
}
2.输入一个有错误的程序,修改错误,直到程序能正确运行,分析程序运行结果。
#include{inta,b,sum
a=123;b=456;
sum=a+b
printf("sumis%d\n",sum);
}
3.输入并运行一个需要在运行时输入数据的程序,输入数据,观察运行结果。
#include{intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
intmax(intx,inty)
{intz;
z=y;
if(x>y)z=x;
return(z);
}
三、实验环境
1.硬件:
PC机;
2.软件:
Windows操作系统、TurboC++3.0。
四、算法描述及实验步骤
1.内容1
(1)启动TC++3.0,新建一个C文件;
(2)输入程序1;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功,再次保存文件;
(5)连接程序、运行程序,观察运行结果。
2.内容2
(1)启动TC++3.0,新建一个C文件;
(2)输入程序2;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序,观察运行结果。
3.内容3
(1)启动TC++3.0,新建一个C文件;
(2)输入程序2;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入数据,观察运行结果。
五、调试过程
1.输入后,按Alt+F9编译,出现如下信息:
成功编译。
2.输入后,按Alt+F9编译,出现如下信息:
经分析是由于inta,b,sum与sum=a+b俩句未加;导致。
3.输入后,按Alt+F9编译,出现如下信息:
经分析是由于inta,b,c句未加;导致。
修改后编译结果如下:
六、实验结果
1.
2.
3.输入123,654运行结果如下:
输入1989,1988运行结果如下:
七、总结
经过本次上机实验,我基本了解TurboC++3.0的操作方法,学会在该系统上编辑、编译、连接和运行一个C程序。
同时也明白在编译过程中应留心一些细节问题(如一个语句结束要加“;”),也学会通过编译错误信息找出错误,并修正错误。
实验名称:
数据类型、函数和表达式
八、实验目的和要求
掌握C语言数据类型,熟悉如何定义整型、字符型和实型变量并赋值
掌握不同类型数据之间赋值的规律
学会使用C的有关算法运算符及表达式,特别是自加(++)和自减(--)运算符的使用
进一步熟悉C程序的编辑、编译、连接和运行的过程
九、实验内容和原理
2.输入并运行下面程序,分析运行结果。
#include{charc1,c2;
c1='a';
c2='b';
printf("%c%c",c1,c2)
}
3.输入并运行下面程序,分析运行结果。
#include{charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c",c4,c5);
}
4.输入并运行下面程序,分析运行结果。
#include{inta,b;
unsignedc,d;
longe,f;
a=100;b=-100;
e=50000;f=32767;
c=a;d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,d);
c=a=e;d=b=f;
printf("%d,%d\n",a,b);
printf("%u,%u\n",c,d);
}
5.输入并运行下面程序,分析运行结果。
#include{inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
一十、实验环境
1.硬件:
PC机;
2.软件:
Windows操作系统、TurboC++3.0。
一十一、算法描述及实验步骤
(1)启动TC++3.0,新建一个C文件;
(2)输入程序;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序,观察分析运行结果。
一十二、调试过程
1.
经分析错误是由于printf("%c%c",c1,c2)后未加;导致。
修改后运行如下:
2.
成功运行
3.
printf("%u,%u\n"a,b);改成printf("%u,%u\n",a,b);成功运行
4.
成功运行。
一十三、实验结果
1.
2.
3.
4.
一十四、总结
通过这次上机实验我掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型变量并对它们赋值的方法,学会使用C的有关算法运算符及表达式,特别是自加(++)和自减(--)运算符。
并进一步熟悉C程序的编辑,编译,连接和运行的过程。
实验名称:
顺序结构程序设计
一十五、实验目的和要求
掌握赋值语句的使用方法
掌握各种类型数据的输入输出方法,能正确使用各种格式控制符
一十六、实验内容和原理
6.输入并运行下面程序,分析运行结果。
#include{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,q;
a=61;b=62;
c1=’a’;c2=’b’;
d=3.56;e=-6.87;
f=3157.890121;g=0.;
m=50000;n=-60000;
p=32768;q=40000;
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);
printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
}
7.编程序求一个圆的周长、面积,圆球表面积和圆柱体积。
用scanf输入数据,输出计算结果。
输出时要有文字说明,取小数点后两位数字。
8.编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
9.(选作)有自学或有兴趣同学可以编写程序判断一个年份是否为闰年。
一十七、实验环境
计算机及TurboC++3.0。
一十八、算法描述及实验步骤
1.
(1)启动TC++3.0,新建一个C文件;
(2)输入程序1;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序,观察分析运行结果。
2.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
3.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
一十九、调试过程
1.
longm,n后加;
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n,a,b,c1,c2,d,e);少了”
无错误,成功运行。
2.
经分析为定义常量时使用=错误导致,修改后成功运行。
3.
无错误,成功运行。
二十、实验结果
1.
2.
输入123,456,结果如下:
输入2,6,结果如下:
3.输入ac结果如下:
二十一、总结
经过本次上机实验,我已基本掌握赋值语句的使用方法,也掌握各种类型数据的输入输出方法,能正确使用各种格式转换符,同时更进一步了解C程序的运行环境。
附录:
2.
#definepi3.
#include{
floatr,");
scanf("%f,%f",&r,&",result);
result=pi*r*r;
printf("circlemianji=%6.2f\n",result);
result=4*pi*r*r;
printf("ballbiaomianji=%6.2f\n",result);
result=4*pi*r*r*r3;
printf("balltiji=%6.2f\n",result);
result=pi*r*r*",result);
}
3.
#include{
charc1,c2;
printf("Pleaseinputtwochar:
\n");
c1=getchar();
c2=getchar();
printf("Putcharresult:
\n");
putchar(c1);
putchar(c2);
printf("\nPrintfresult:
\n");
printf("%c\n",c1);
printf("%c\n",c2);
}
实验四:
逻辑结构程序设计
二十二、实验目的和要求
了解C语言表示逻辑量的方法
正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句
结合程序掌握一些简单算法,并学习调试程序
二十三、实验内容和原理
1.有一函数:
x (x<1)
y=2x-1 (1≤x<10)
3x-11 (x≥10)
写一程序,用scanf函数输入x,输出y值。
2.编程实现:
给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。
3.给一个不多于5位的正整数,要求:
①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。
二十四、实验环境
1.硬件:
PC机;
2.软件:
Windows2000、TurboC++3.0。
二十五、算法描述及实验步骤
1.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
2.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
3.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
4.
(1)启动TC++3.0,新建一个C文件;
(2)输入事先设计好的程序(见附录);
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入测试数据,检查程序执行结果是否正确。
二十六、调试过程
1.无错误,出现如下信息:
2.
3.
没有给indiv先定义,修改后成功运行。
二十七、实验结果
1.输入0,运行结果如下:
输入5,运行结果如下:
输入13,运行结果如下:
2.输入94,运行结果如下:
输入86,运行结果如下:
输入74,运行结果如下:
输入61,运行结果如下:
输入52,运行结果如下:
输入-70时结果:
3.输入18795运行结果如下
二十八、总结
通过本次上机实验我了解C语言表示逻辑量的方法,能正确使用逻辑运算符和逻辑表达式,基本掌握了if语句和switch语句和一些简单的算法,并大体上学会了调试程序。
附录:
1.
#include{
inta,b;
printf("Pleaseinputa:
\n");
scanf("%d",&a);
if(a<1)
printf("b=%d",a);
elseif(1<=a<10)
{b=2*a-1;
printf("b=%d",b);
}
elseif(a>=10)
{b=3*a-11;
printf("b=%d",b);
}
}
2.
#include{floatscore;
chargrade;
printf("pleaseinputscores:
");
scanf("%f",&score);
while(score>100||score<0)
{printf("\nWrong!
");
scanf("%f",&score);
}
switch((int)(score10))
{case10:
case9:
grade='A';break;
case8:
grade='B';break;
case7:
grade='C';break;
case6:
grade='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
grade='E';
}
printf("score:
%5.1f,grade:
%c\n",score,grade);
}
3.
#include{longintnum;
intindiv,ten,_thousand,place;
printf("pleaseinputanumber:
");
scanf("%ld",&num);
if(num>9999)place=5;
elseif(num>999)place=4;
elseif(num>99)place=3;
elseif(num>9)place=2;
elseplace=1;
printf("place=%d\n",place);
printf("Eachnumber:
");
ten_thousand=num10000;
thousand=(int)(num-ten_thousand*10000)1000;
_thousand*10000-thousand*1000)100;
ten=(int)(num-ten_thousand*10000-thousand*1000-_thousand,thousand,,indiv);
printf("\nChangednumber:
");
printf("%d,%d,%d,%d,%d\n",indiv,ten,_thousand);
break;
case4:
printf("%d,%d,%d,%d",thousand,,indiv);
printf("\nChangednumber:
");
printf("%d,%d,%d,%d\n",indiv,ten,,indiv);
printf("\nChangednumber:
");
printf("%d,%d,%d\n",indiv,ten,,indiv);
printf("\nChangednumber:
");
printf("%d,%d\n",indiv,ten);
break;
case1:
printf("%d",indiv);
printf("\nChangednumber:
");
printf("%d\n",indiv);
break;
}
}
实验名称:
循环结构程序设计
二十九、实验目的和要求
熟悉掌握用while语句、do-while语句和for语句实现循环的方法
掌握在程序设计中用循环方法实现一些常用算法(如穷举、迭代、递推等)
进一步学习调试程序
三十、实验内容和原理
1.输入两个正整数m和n,求其最大公约数和最小公倍数。
2.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
3.猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,就只剩一个桃子了。
求第一天共摘多少桃子。
三十一、实验环境
1.硬件:
PC机;
2.软件:
Windows操作系统、TurboC++3.0。
三十二、算法描述及实验步骤
见附录
三十三、调试过程
1.没有给“P”定义
改为
2.没有加“””和“;”
改为
3.无错误,见附录。
三十四、实验结果
1.
2.
3.
三十五、总结
通过本次上机实验,我基本熟悉掌握while语句,do-while语句
和for语句实循环的方法,掌握在程序设计中用循环的方法实现一些常用算法,并进一步学习调试程序。
但是总是忘记对变量进行定义和添加符号(如“;”)。
附录:
实验1:
#include{intp,r,n,m,temp;
printf("pleaseinputtwonumbers:
");
scanf("%d,%d,",&n,&m);
if(n{temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!
=0)
{r=n%m;
n=m;
m=r;
}
printf("Thebig:
%d\n",n);
printf("thesmall:
%d\n",pn);
}
实验2:
#include{charc;
intletters=0,space=0,digit=0,other=0;
printf("pleaseinputaline:
\n");
while((c=getchar())!
='\n')
{if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
other++;
}
printf("letter:
%d\nspace:
%d\ndigit:
%d\nother:
%d\n",letters,space,digit,other);
}
实验3:
#include{
intday,x1,x2;
x1=1;
for(day=9;day>0;day--){
x2=(x1+1)*2;
x1=x2;
printf("total=%d",x2);
}
实验名称:
数组
三十六、实验目的和要求
掌握一维数组、二维数组的定义、赋值和输入输出
掌握字符数组和字符串函数的使用
结合程序掌握一些简单算法
三十七、实验内容和原理
1.用选择法对10个整数排序。
10个整数用scanf函数输入。
2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。
如果该数不在数组中,则输出“无此数”。
3.(选做)找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
4.将两个字符串连接起来,不要用strcat函数。
三十八、实验环境
1.硬件:
PC机;
2.软件:
Windows操作系统、TurboC++3.0。
三十九、算法描述及实验步骤
见附录
四十、调试过程
1.数组符号为“[]”,错写成“{}”
改为
2.经过查找发现是voidmain()误输入为voinmain()
4.忘记添加一对单引号
改为
四十一、实验结果
1.
2.
4.
四十二、总结
通过本次上机实验我大体上掌握了数组的定义,赋值和输入方
法,也掌握了字符数组和字符串函数的使用,并能结合一些简单程序了解与数组有关的算法。
但是刚接触数组对其符号用得不是很应手,还有输入时总出现一些简单错误,所以自己应该多进行上机实验。
附录:
实验1:
#include{inti,j,min,temp,a[11];
printf("enterdate:
\n");
for(i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("Theorginalnumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10