实验一认识C语言程序上机环境.docx
- 文档编号:12895480
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:19
- 大小:25.76KB
实验一认识C语言程序上机环境.docx
《实验一认识C语言程序上机环境.docx》由会员分享,可在线阅读,更多相关《实验一认识C语言程序上机环境.docx(19页珍藏版)》请在冰豆网上搜索。
实验一认识C语言程序上机环境
实验一认识C语言程序上机环境
一、实验目的
1、认识C程序的上机环境:
TurboC,win-tc,vc++6.0;
2、熟练掌握在vc++6.0环境下运行程序的步骤。
二、实验内容
1、认识三种不同的编译环境,分别在三个环境下调试HelloWord.c的源程序。
HelloWorld.c的源程序代码如下:
2、实现课本P12页的三个程序。
三、上机步骤
1、TurboC开发环境的认识参见课本P6。
2、Vc++6.0集成开发环境运行程序的步骤:
熟悉以上四步后考虑以下问题:
1、每步执行后得到的文件扩展名是什么?
2、若编辑源程序时出错怎么办?
3、若要将本次上机的源程序进行保存,去哪里查找源程序文件?
4、如何重新打开一个已经存在的源程序?
四、实验总结
1、实验中遇到的问题及解决方法。
2、实验体会。
实验二数据类型、运算符与表达式
一、实验目的
1.掌握基本数据类型的使用。
2.掌握运算符的使用方法、优先级及表达式的书写规则。
二、实验内容
1、验证课本相关例题例2.1-2.11。
2、课本P36上机实训的内容
3、验证课后习P39题第4题。
4、分析下列程序的结果并上机验证:
1)以下程序运行后的输出结果是_______。
main()
{inta,b,c;a=25;b=025;c=0x25;
printf("%d%d%d\n',a,b,c);}
程序运行后的输出结果是______
2)数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}
程序运行后的输出结果是______
3)有以下程序
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是______
4)若有语句
inti=-19,j=i%4;printf("%d\n",j);
则输出结果是 ______
三、实验步骤
编写源程序进行调试、运行。
记下实验中遇到的问题及解决方法。
四、实验总结
实验三数据的输出
一、实验目的
1、单个字符的输入。
2、格式输出函数的使用。
二、实验内容和要求
1、验证课本相关例题。
2、验证课本P60的第3,4.1题。
3、有以下程序
main()
{intm=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是
4、有以下程序
main()
{inta=666,b=888;
printf("%d\n",a,b);
}
程序运行结果是:
5、验证以下程序段的输出结果:
intx=2002,y=2003;
printf("%d\n",(x,y));
运行结果:
6、根据三角形的三边长计算三角形的面积。
四、实验总结
实验四数据的输入及顺序程序设计
一、实验目的
1、单个字符的输入。
2、格式输入函数的使用。
3、顺序程序设计。
二、实验内容和要求
1、验证课本相关例题。
2、实现课本P58上机实训和P60的第4题。
3、编写程序,读入三个整数给a、b、c,然后交换他们的值,要求把a的值给b,b的值给c,c的值给a。
源程序:
4、以下程序的功能是:
给r输入数据后计算半径为r的圆面积s,程序在编译时出错。
main()
{intr;floats;
scanf("%d",&r);
s=*p*r*r;printf("s=%f\n",s);
}
请写出出错原因:
修改后运行结果:
5、从终端输入一个三位数,将其百位、十位、个位分三行显示。
例如,从键盘输入153,则显示
1
5
3
三、实验总结
实验五选择结构程序设计
(一)
一、实验目的
1、了解C语言表示逻辑量的方法(以0代表”假”,以1代表”真”)。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if语句。
二、实验内容及步骤
1、验证课本相关例题4.1-4.10。
2、课后题4,5。
3、编写程序实现,输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E
源程序:
三、实验总结:
实验六选择结构程序设计
(二)
一、实验目的
1、熟练掌握if语句和switch语句。
2、结合程序掌握一些简单的算法。
3、进一步熟悉VC集成环境的使用方法。
二、实验内容
1、验证课本相关例题4.11-4.13.
2、上机实训P78。
3、阅读下面的c30111.c程序,要求对输入的数字1~7转换成文字星期几,对其它数字不转换。
例如,输入5时,程序应该输出Friday。
程序如下:
#include
voidmain()
{intday;
scanf("%d",&day);
switch(day)
{case1:
printf("Monday,");
case2:
printf("Tuesday,");
case3:
printf("Wednesday,");
case4:
printf("Thursday,");
case5:
printf("Friday,");
case6:
printf("Saturday,");
case7:
printf("Sunday,");
}
}
编译、连接和运行该程序,然后输入4。
其输出结果是什么?
为什么是这样的结果?
该程序有哪些错误?
如何修改?
4、输入一个三位的正整数,判断它是否是水仙花数。
(“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=13+53+33。
)
源程序:
四、实验总结:
实验七循环结构程序设计
(一)
一、实验目的
1、掌握循环的三种基本结构,重点掌握while语句和do-while语句的使用。
2、掌握在程序设计中用循环的方法实现各种算法。
二、实验内容
1、验证课本例题5.1-5.8.
2、实现课后3,4.1,4.2,4,4.
3、若输入12345,分析输出结果是多少?
上机验证。
#include
voidmain()
{longdata;
scanf("%ld",&data);
while(data)
{printf("%ld,",data%10);
data=data/10;
}
}
4、有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,…,求出这个序列的前20项之和。
三、实验总结
实验八-九循环结构程序设计
(二)
一、实验目的
1、掌握用for语句,while语句和do~while语句实现循环的方法。
2、掌握嵌套循环结构的执行过程。
3、理解循环结构程序段中语句的执行过程,进一步练习程序的跟踪调试技术。
4、掌握continue与break在循环结构中的作用与区别。
二、实验内容
1、验证课本例题5.9-5.14.
2、实现课后4.3,4.5,4.6.
3、课本P102实训。
4、写出以下程序结果并上机验证。
(验证)
#include
voidmain()
{inti,j,x;
for(i=0,x=0;i<2;i++)
{x++;
for(j=0;j<3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
思考:
用一句话概括if(j%2)语句的作用。
三、实验总结
实验十一维数组的应用
一、实验目的
1、掌握数组的含义
2、掌握定义一维数组的方法。
3、学会用一维数组进行编程。
二、实验内容
1.验证课本例题6.1-6.5。
2.验证课后P141的3.1,3.2并编程实现4.1,4.2。
3、P135上机实训6.4。
4、将一个数组中的值按逆序重新存放。
例如,原来顺序为1,2,3,要求改为3,2,1.
源程序:
5.用数组处理Fibonacci数列问题。
已知Fibonacci数列:
112358132134……
源程序:
三、实验总结:
实验十一-十二二维数组、字符数组及函数的应用
一、实验目的
1、掌握二维数组元素的引用。
2、掌握字符数组和字符串函数的使用。
二、实验内容
1、验证课本相关例题。
2、编程实现课后练习3.3,4.4,4.5.
3、定义一个二维数组来存放一个矩阵,然后将矩阵转置输出。
源程序:
4、编写一密码验证程序。
原始密码由用户在程序中定义。
若用户输入的密码和原始密码一致,则显示:
“Youareright!
”,否则显示”Youarewrong!
”
源程序:
三、实验总结:
实验十三函数的声明及调用
一、实验目的
1、掌握定义函数的方法。
2、掌握函数形参与实参的对应关系,以及“值传递”的方式。
3、掌握函数的嵌套调用和递归调用的方法。
二、实验内容
1、验证课本例题7.1-7.9.
2、课本P176上机实训一.
3、编程实现课后练习5.1.
4、下面的程序的功能是:
输入三个整数,输出其中最大的数,补足所缺语句。
#include
/*函数max的声明*/
/*函数max3的声明*/
voidmain()
{
inta,b,c,m;
/*从键盘接收3个整数*/
m=max3(a,b,c);
printf("Maxis%d\n",m);
}
intmax(intx,inty)/*函数功能:
返回x、y的最大值*/
{
return(x>y?
x:
y);
}
intmax3(intx,inty,intz)/*函数功能:
返回x、y、z的最大值*/
{
intm;
returnm;
}
五、实验总结:
实验十四函数
(二)
一、实验目的
1、学习递归程序设计,掌握递归函数的编写规律。
2、掌握参数的传递过程。
3、局部变量与成员变量
二、实验内容
1、验证课本例题7.10-7.18.
2、课本P176上机实训二和综合实训。
3、编程实现课后练习5.2,5.4,5.5.
4、编写程序,实现由主函数输入m、n,按下述公式计算并输出
的值。
提示:
定义一个求阶层的函数,然后在主函数中调用三次即可求得。
实验总结:
源程序:
三、实验总结
实验十五指针应用
(一)
一、实验目的
1、了解指针与地址的概念,准确使用地址算符&和*.
2、掌握指针与一维数组的关系及使用方法。
二、实验内容
1、验证课本相关例题8.1-8.4。
2、为了实现输出数组的全部元素,可以使用几种表示数组元素的方法?
3、将数组中的元素按逆序重新存放(借助指针实现)。
源程序:
4、想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?
swap(int*p1,int*p2)
{int*p;
p=p1;p1=p2;p2=p;_}
main()
{inta,b;
int*pt1,*pt2;
scanf("%d,%d",&a,&b);
pt1=&a;pt2=&b;
if(a
printf("%d,%d\n",*pt1,*pt2);
}
上机调试此程序.如果不能实现题目要求,指出原因并修改之。
5、从键盘输入三个整数,要求设三个指针变量p1,p2,p3,使p1指向三个数的最大者,p2指向次大者,p3指向最小者,然后按由小到大的顺序输出这三个数。
三、实验总结:
实验十六指针应用
(二)
一、实验目的
1、掌握指针与二维数组的运用。
2、掌握指向字符串的指针的使用。
二、实验内容
1、验证课本例题8.5,8.6。
2、课后上机实训。
3、编程实现课后3.
4、填空题
str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。
请补充函数fun(),该函数的功能是:
统计字符串str中的单词个数,结果由变量num传回。
每个单词之间都由空格隔开,并且字符串str开始不存在空格。
例如:
str="howdoyoudo",结果为:
num=4。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#defineN80
voidfun(char*s,int*num)
{
inti,n=0;
for(i=0;【1】;i++)
{
if(s[i]>='a'&&s[i]<='z'&&(s[i+1]==
''||s[i+1]=='\0'))
【2】;
}
【3】;
}
main()
{
charstr[N];
intnum=0;
printf("Enterastring:
\n");
gets(str);
while(str[num])
num++;
fun(str,&num);
printf("Thenumberofwordis:
%d\n\n",num);
}
5、编程题
请编写函数fun(),它的功能是:
求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
voidfun(int*a,int*n)
{
}
main()
{
intaa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k if((k+1)%10==0) { printf("%5d",aa[k]); printf("\n");/*一行写10个数*/ } else printf("%5d",aa[k]); } 三、实验总结: 实验十七、十九结构体 一、实验目的 1、掌握结构体类型变量的定义和使用。 2、掌握结构体类型数组的概念和使用。 3、掌握共用体的使用方法。 二、实验内容 1、验证课本相关例题。 2、上机实训一、二。 3、编程实现实现课后习题。 4、读入五位学生的信息(学号,姓名,成绩),输出最高分学生的信息。 (通过函数实现) 源程序: 5、编程题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是: 按分数的高低排列学生的记录,低分在前。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #defineN16 typedefstruct { charnum[10]; ints; }STREC; intfun(STRECa[]) { } main() { STRECs[N]={{"GA005",88},{"GA003",64},{"GA002",77},{"GA004",89}, {"GA001",54},{"GA007",72},{"GA008",72},{"GA006",65}, {"GA015",83},{"GA013",95},{"GA012",55},{"GA014",68}, {"GA011",78},{"GA017",53},{"GA018",92},{"GA016",82}}; inti; FILE*out; fun(s); printf("Thedataaftersorted: \n"); for(i=0;i { if((i)%4==0)/*每行输出4个学生记录*/ printf("\n"); printf("%s%4d",s[i].num,s[i].s); } printf("\n"); out=fopen("out21.dat","w"); for(i=0;i { if((i)%4==0&&i) fprintf(out,"\n"); fprintf(out,"%4d",s[i].s); } fprintf(out,"\n"); fclose(out); } 三、实验总结: 实验十八文件 一、实验目的 掌握文件以及缓冲文件系统、文件指针的概念 学会使用文件打开、关闭、读、写等文件操作函数 二、实验内容和要求 1、验证课本相关例题。 2、上机实训。 3、编程实现课后习题。 4、从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止(要求文件名统一用file1,不包含路径) 源程序: 三、实验总结:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 认识 语言 程序 上机 环境