《C程序设计基础》实验指导Word文件下载.docx
- 文档编号:20708991
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:20
- 大小:42.26KB
《C程序设计基础》实验指导Word文件下载.docx
《《C程序设计基础》实验指导Word文件下载.docx》由会员分享,可在线阅读,更多相关《《C程序设计基础》实验指导Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
,sum);
①输入该程序,然后进行编译和连接,如果出错,仔细检查并修改错误,再进行编译连接,直到没有错误为止。
~
②按Ctrl+F9运行程序,按照屏幕提示输入a、b、c三个变量的值,变量值之间用空格分隔,输入完毕按回车键【Enter】。
③查看运行结果,判断结果正确与否。
④保存文件,查看你的工作目录下是否有该文件。
实验2数据类型和表达式计算
1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
《
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间赋值的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学表达式的程序表示方法。
5.进一步熟悉C程序的编辑、编译、连接和运行的过程。
1.编程计算下面数学表达式的值
(1)
(2)c×
(3)lnln+2)
2.下面表达式计算中,哪些地方会发生类型转换各个转换从什么类型转换到什么类型表达式计算的结果是什么试编程进行验证。
\
(1)+2*7%2/4
(2)4*(2L+-12
(3)10/(5*3)(4)2*(5*3)
3.设:
x=,a=8,y=,编程计算下面表达式的值:
y+a%5*(int)(x+y)/2%4
4.输入并运行下面程序,对照程序分析运行结果:
(1)将一个大于32767的长整型数赋给整型变量,会得到什么结果。
(2)将一个负整数赋给一个无符号的变量,会得到什么结果。
(3)将一个字符型变量赋给一个整型变量,会得到什么结果。
·
程序如下:
#include<
main()
{inta,b;
longd,e;
unsignedf,g;
charc;
a=100;
]
b=-100;
c='
a'
;
d=50000;
e=32767;
%d,%d\n"
a,b);
%ld,%ld\n"
d,e);
%c,%d\n"
c,c);
f=a;
…
g=b;
%u,%u\n"
f,g);
a=c;
a,c);
a=d;
b=e;
|
实验3顺序结构程序设计
1.熟练掌握格式输入与格式输出函数的使用,理解scanf函数的工作过程。
2.熟练掌握赋值语句的使用方法。
3.进一步体会C程序的结构组成,体会主函数main的作用。
%
4.使用顺序结构解决几个简单的计算问题。
1.编写程序,使用格式输入函数,从键盘按顺序输入下列数据,再将其用合适的格式分类输出到屏幕上。
注意scanf函数的格式要求。
‘a’、15、‘c’、100、、60000、3500、32768、、
2.编程计算半径r=的圆面积、圆周长、球面积、球体积及球表面积。
如果高h=,计算圆柱体的表面积和体积。
显示结果保留两位小数。
3.输入下面程序并运行
{inta,b,c;
a=getchar();
b=getchar();
c=getchar();
a=%db=%dc=%d\n"
a,b,c);
a=%cb=%cc=%c\n"
输入:
1【Enter】
<
ab【Enter】
分析本题程序的输出结果,解释scanf函数的工作过程,试用其他输入数据验证你的分析结果。
4.以下C程序的功能是:
从键盘依次输入4个整数,计算并输出这4个数的平均值。
{inta,b,c,d,av;
Inputa,b,c,d:
);
%d,%d,%d,%d"
c,&
d);
av=(a+b+c+d)/4;
av=%f\n"
av);
观察运行结果,想一想为什么,将最后一句中的“%f”改为“%d”,观察结果有什么变化,如果想使计算结果为实数,如何修改程序如果想计算4个实数的平均数,如何修改程序
实验4选择结构程序设计
1.理解C语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
{
2.掌握利用if结构实现选择结构的方法。
3.掌握利用switch结构实现多分支选择结构。
4.掌握若干简单算法。
5.学习选择结构程序的调试。
1.编写程序计算下面分段函数的值:
2x+5(x<
0)
f(x)=x2-x+3(0≤x<
10)
(
x3-7x(x≥10)
具体要求如下:
(1)用if语句实现分支,自变量和函数值均用双精度类型。
(2)自变量用scanf函数输入,给一些输入提示。
(3)分别输入三种区间中x的值,检查输出函数值是否正确。
2.编写程序,用scanf函数输入一个年份,计算该年2月份有多少天。
闰年的条件为:
年份能被4整除但不能被100整除,或者年份能被400整除。
3.下面的程序,按颜色代码和颜色名称的对应关系,根据输入的颜色号,输出对应的颜色名称:
0--Black,1--Blue,2--Green,3--Red,4--Yellow
:
#include<
{intcolor;
/*用整型数表示颜色号*/
Entercolornumber:
%d"
color);
switch(color)
{case0:
Black\n"
break;
case1:
Blue\n"
case2:
Green\n"
break;
case3:
Red\n"
case4:
Yellow\n"
default:
ErrorInput\n"
运行程序,使用TurboC中跟踪执行功能(功能键F8)查看程序执行过程。
体会break语句的作用。
去掉若干个break语句,观察运行结果有什么变化。
并试着将程序结构改为嵌套if结构。
运行并查看结果。
4.scanf函数输入一个百分制成绩,输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下分为E。
要求百分制成绩用整数输入,在输入前要有提示,输入后要判断成绩的合理性,对不合理的成绩,应输出出错信息。
输出结果中应包括百分制和等级成绩,并要有文字说明。
使用if语句和switch语句分别实现。
实验5循环结构程序设计
1.练习并掌握利用while语句、for语句、do_while语句实现循环结构的方法。
2.掌握循环结构和选择结构的嵌套设计方法。
3.掌握多重循环的设计方法,掌握控制语句break、continue、goto语句的使用方法。
4.调试和修改循环结构的程序。
1.编写程序,分别用while循环、for循环和do_while循环计算12+22+...+n2的值。
比较三个程序在循环控制上的特点。
2.用迭代法求方程x3-x-1=0在x=附近的根。
要求:
首先把方程变换为迭代公式:
x=
,用作迭代的初值,结束条件为两次近似解之差的绝对值小于。
参考程序如下:
{floatx1,x=;
do{
x1=x;
x=pow((x+1),;
}while(fabs(x-x1)>
=;
x=%\n"
x);
3.编写程序,计算菲波那契数列第n项的值。
注意数列项的数据类型,应考虑足够大项的数据表示要求。
4.以下程序,输出下三角形状的乘法九九表。
{inti,j;
for(i=1;
i<
=9;
i++)/*打印表头*/
%4d"
i);
printf("
%c"
'
\n'
for(i=0;
=50;
i++)
_'
for(i=1;
i++)/*循环体执行一次,打印一行*/
{for(j=1;
j<
=i;
j++)
》
i*j);
/*循环体执行一次,打印一个数据*/
/*每行尾换行*/
输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。
@
实验6模块化程序设计
1.掌握C语言中定义函数的方法
2.掌握函数嵌套调用和递归调用的方法。
3.掌握通过“值传递”调用函数的方法。
4.理解变量作用域和存在期的概念,掌握全局变量和局部变量,动态变量和静态变量的定义、说明和使用方法。
5.学习多文件程序的组织方法
1.(
2.编写程序,设计一个判别素数的函数,在主函数中输入一个整数,调用这个判别函数,并输出是否为素数的信息。
参考例相应程序,准备5个以上测试数据。
验证程序执行结果是否正确。
2.编写程序,计算下面公式并输出结果。
(1)编写一个函数计算n!
(2)编写主函数,由键盘输入n和m,调用
(1)中的函数完成计算。
(3)输入n和m要给出提示,并检查n和m的合理性,不合理的输入应输出错误信息,并不再进行计算。
(4)运行程序并计算
、
!
3.将一个正整数n以相反的顺序输出的递归算法可以如下描述:
如果要输出的整数只有一位
则输出该整数
否则输出整数的个位数字
反向输出除个位以外的全部数字
结束
据此算法设计的递归算法如下:
voidprintn(intn)
{if((n>
=0)&
&
(n<
=9))
n);
else
{printf("
n%10);
printn(n/10);
请编写主程序,调用上述算法,反向输出正整数n。
如输入123,则输出321。
4.按步骤完成多文件程序的设计过程,掌握多文件程序的设计方法。
(1)输入源文件和。
的内容如下:
externvoidcount(int);
/*函数count的定义在本文件以外。
{intk;
【
for(k=5;
k<
=10;
k++)
count(k);
voidcount(intn)
{staticintnum=0;
num++;
mainn=%dcountnum=%d\n"
n,num);
函数count显示该函数被调用的次数及从调用函数传入的参数值。
(2)建立项目文件,TurboC建立项目文件的方法非常简单:
建立一个新文件,输入下列内容:
存盘时,指定文件名的扩展类型为prj即可。
本例将文件存盘为。
(3)执行Project/ProjectName,在输入框中输入回车。
(4)编译连接,生成的执行文件应为。
如果源文件中出错,编译程序会将出错文件打开。
修改错误后重新进行编译。
实验7编译预处理
1.掌握宏定义的方法
2.掌握文件包含的处理方法
3.掌握条件编译的方法
1.下面定义的宏,互换两个参数的值。
在主函数中调用此宏分别完成两个整数、实数的互换,输出已交换后的值。
#definechange(a,b)t=b;
b=a;
a=t;
floatc,d;
{intt;
Enterintegera&
b:
"
%d%d"
b);
change(a,b);
Nowa=%db=%d\n"
{floatt;
Enterfloatc&
d:
%f%f"
change(c,d);
Nowc=%fd=%f\n"
c,d);
输入并运行该程序,观察运行结果,体会宏定义实现的过程。
比较宏调用与函数调用的区别。
3.输入并运行下面的程序,体会编译程序对包含文件的处理过程。
(1)在当前目录中建立下面头文件
#defineOK"
passed"
#defineERROR"
error"
intg;
(2)在当前目录中建立下面程序文件
#include"
{intk=1;
g=5;
g=%dk=%d\n"
g,k);
OK=%sERROR=%s\n"
OK,ERROR);
包含文件的处理:
将文件内容就地展开,相当于定义了两个字符串常量和一个全局整型变量。
3.用条件编译方法实现以下功能:
定义一个控制条件编译的宏,对输入的一个字符串,或者按原文输出,或者按倒序输出。
(1)定义宏ORDER,控制字符串的输出方式。
(2)定义倒序输出字符串的函数reverse(char*);
(3)编写主函数用条件编译实现对输出方式的控制。
实验8使用数组程序设计
1.掌握一维数组与二维数组的定义、使用及初始化方法。
2.学习数组作为函数参数的用法。
3.掌握字符数组和字符串函数的使用方法。
4.掌握数组的一种排序算法,进一步理解模块化程序设计的方法。
实验内容
:
1.设计程序按步骤完成下列任务:
(1)编写函数sort,实现对整数数组排序的功能,具体排序方法可以使用冒泡或选择法,由用户自定。
(2)主函数中,定义数组并使用初始化方法给出数组初值。
测试数据为{16,5,8,12,1,17,3,6,10,2}。
(3)主函数中调用sort函数实现对测试数据排序的功能。
要求分别打印出排序前后数组元素的值。
2.下面程序实现将一个字符串倒置的功能,编写程序,从键盘接受一个字符串,利用给出的函数daozhi判定输入的字符串是否为回文。
倒置是指将字符串中的字符按相反顺序排列,如abcde倒置后变为edcba。
所谓回文是指正序和反序字符排列方式相同的字符串,如abcDcba是回文。
字符串倒置的函数如下:
voiddaozhi(charstr[])
{inti,k,n;
charc,*s=str;
for(n=0;
s[n]!
='
\0'
n++);
/*统计串长*/
n--;
/*最后一个字符位置*/
n=%d\n"
=n/2;
{c=str[i];
str[i]=str[n-i];
/
str[n-i]=c;
提示:
使用字符串函数strcpy和strcmp。
3.使用字符指针数组表示一个星期中每天的英文名称,编写程序,从键盘输入0-6中间的一个数字,输出对应星期几的英文名称。
使用switch结构。
4.设有下列矩阵:
A=
编写程序,用二维数组存储矩阵元素,从键盘输入数据,将矩阵转置后按行输出。
实验9使用指针的程序设计
1.掌握使用指针变量的方法。
2.掌握带有指针形参的函数的定义及调用方法。
3.正确使用函数指针调用函数。
4.正确使用指针操作数组元素。
5.正确使用指针数组操作字符串。
1.编写程序,使用指针实现打印一维数组所有元素的操作。
每行打印4个元素。
从键盘输入下面一组数据进行测试:
5,12,2,6,1,24,15,11,7,3,19,20,13,8
2.编写程序,实现交换两个变量值的操作。
¥
使用形参为指针的函数swap完成交换功能。
主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换。
输出交换前后的变量值进行比较。
3.编写程序,实现两个字符串拷贝的函数strcopy。
不允许使用C的字符串函数strcpy。
目标串的长度不应该超过源串的长度。
对这个条件进行检查。
主程序中从键盘输入两个字符串。
调用strcopy函数实现字符串拷贝操作。
输出拷贝前后,两个字符串的内容。
】
4.下面的程序是一个使用函数指针调用函数的实例。
阅读程序,输入、编译、连接,运行并观察结果。
体会使用函数指针调用函数的步骤。
intmax(intx,inty)
{intm=x;
if(y>
m)
m=y;
returnm;
int(*funp)(int,int);
/*定义函数指针*/
Inputa,b:
funp=max;
/*函数指针指向具体的函数*/
c=(*funp)(a,b);
/*用函数指针调用函数*/
max=%d\n"
c);
实验10使用结构和联合进行程序设计
1.掌握结构类型变量与数组的定义和使用。
2.掌握使用结构指针和结构变量名使用结构成员的方法。
3.掌握链表的基本概念和操作。
4.掌握联合的概念与使用。
1.从键盘输入5个人的姓名、年龄和性别,然后输出。
分别通过结构指针和结构变量名输出信息。
用函数data_in实现数据输入,用函数data_pout实现通过结构指针输出结构数据的操作,用函数data_nout实现通过结构变量名输出结构数据的操作。
2.输入10本书的名称和单价,按照单价进行排序。
采用结构数组存储数据,使用冒泡或选择排序算法实现排序。
3.下面的程序,构造一个如下图所示的三个结点的链表,并顺序输出链表中结点的数据。
#
h
abc
实验10第3题图示
structnode
{intdata;
structnode*next;
/*指向本结点类型的指针是实现链表的基础*/
};
{structnodea,b,c,*h,*p;
/*定义三个结点h是头指针*/
=10;
=20;
=30;
/*结点的数据赋值*/
h=&
a;
/*头指针指向a结点*/
=&
b;
/*a结点的指针指向b结点*/
c;
/*b结点的指针指向c结点*/
=NULL;
/*c结点的指针值为空,表示最后一个结点*/
p=h;
/*遍历每一个结点,打印数据*/
while(p)
%d"
p->
data);
p=p->
next;
/*指针移到下一个结点*/
体会构造和使用链表的方法。
4.输入并运行下面程序,观察结果,分析联合变量的存储特点。
{union
!
{inti[2];
longk;
charc[4];
}t,*s=&
t;
s->
i[0]=0x39;
/*按照整型成员的类型赋值*/
i[1]=0x38;
%lx\n"
s->
k);
/*按照长整型成员的类型使用储存内容*/
%c\n"
c[0]);
/*按照字符型成员的类型使用储存内容*/
程序的输出结果为:
380039
9
实验11使用文件的程序设计
1.掌握文件与文件指针的概念。
2.学习使用文件打开、文件关闭、读写文件等基本的文件操作函数。
编写程序,从键盘输入某宿舍楼6家住户某月的水电消耗量及水费和电费标准,计算各户应交纳的水费和电费。
数据及要求如下:
1.水费标准为:
元/吨,电费标准为:
元,6户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计基础 程序设计 基础 实验 指导