C语言程序设计实验.docx
- 文档编号:4738031
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:16
- 大小:20.83KB
C语言程序设计实验.docx
《C语言程序设计实验.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验.docx(16页珍藏版)》请在冰点文库上搜索。
C语言程序设计实验
实验一C语言程序初步
一、实验目的:
1、熟悉TurboC2.0集成开发环境,了解各菜单的功能。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点和书写格式。
二、实验内容:
1、进入TurboC2.0集成开发环境,了解各菜单的功能。
2、下列c程序的功能是:
由键盘依次输入五个实数,计算并输出这五个实数的平均数。
#include"stdio.h"
main()
{floata,b,c,d,e,av;
printf("inputa,b,c,d,e:
”);
scanf(“%f,%f,%f,%f,%f”,&a,&b,&c,&d,&e);
av=(a+b+c+d+e)/5;
printf("av=%e\n",av);
)
(1)输入该程序,然后进行编译连接。
如果在编译过程中有错误发生,则仔细检查并修改程序,修改后再进行编译连接,直到没有错误为止。
(2)运行该程序。
运行时按程序中要求的输人格式依次输入下列五个数:
3.456,-1.789,-2.258,9.886,7.634
三、实验步骤:
四、实验小结:
实验二数据类型、运算符和表达式
一、实验目的:
1、掌握c语言数据类型,熟悉如何定义一个整型、字符型、实型变量,及赋值方法。
2、理解常用运算符的意义,学会使用C的常用运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3、掌握C语言表达式的运算规则。
二、实验内容:
1、写出下列程序的运行结果:
1)main()
{charc1,c2;
c1=97;c2=98;
printf(“%c%c”,c1,c2)。
printf(“%d,%d”,c1,c2);
}
2)#include"stdio.h"
voidmain()
{
intx,y,t;
doublea;
floatb;
intc;
scanf(“%d%d”,&x,&y);
c=b=a=20/3;
t=(x%y,x/y);
printf("%d%d\n",x--,--y);
printf("%d\n",t);
printf("%d\n",(x=5*6,x*4,x+5));
printf("%d%f%f\n",c,b,a);
}
⑴程序运行时,在键盘上输入203
⑵程序运行时,在键盘上输入155
2、编程求任意三个整数的平均数。
三、实验步骤:
四、实验小结:
实验三输入与输出
一、实验目的:
1、掌握scanf和printf的主要用法。
2、掌握常用转义控制符的用法。
二、实验内容:
1、编辑如下的程序,并上机运行3次,在每次运行提供输入数据时分别采用数据之间插入空格、每输入一个数据就按回车键、数据之间用TAB键分隔,看结果有什么不同?
#include"stdio.h"
voidmain()
{
intx,y,t;
printf("Enterx&y:
\n");
scanf("%d%d",&x,&y);
printf("x=%dy=%d\n",x,y);
t=x;
x=y;
y=t;
printf("x=%dy=%d\n",x,y);
}
2、改错题。
下列程序多处有错,请通过上机改正。
使之符合下面的要求。
#include"stdio.h"
voidmain()
{
doublea,b,c,s,v;
printf(Inputa,b,c:
\n);
scanf("%d%d%d",a,b,c);
s=a*b;
v=a*b*c;
printf("a=%db=%dc=%d\n",a,b,c);
printf("s=%f\n",s,"v=%d\n",v);
}
当本程序运行时,要求按如下方式输入数据及显示结果:
Inputa,b,c:
2.02.03.0(此处的2.02.03.0为用户输入的)
a=2.000000b=2.000000c=3.000000
s=4.000000v=12.000000
3、编程题。
编写程序,完成对于任意输入的两个整数,求出它们的商和余数并进行输出。
三、实验步骤:
四、实验小结:
实验四结构化程序设计
一、实验目的:
1、掌握关系表达式和逻辑表达式的使用,掌握逻辑量的表示方法(0表示假,1表示真)。
2、熟悉结构化程序设计的三种基本控制结构。
3、熟练使用if、switch、while、do….while、for等语句进行程序设计。
4、掌握多分支选择和循环嵌套的控制方式。
二、实验内容:
1、程序填空题:
1)下列程序用于完成对输入的整数判断它是奇数还是偶数,并给出相应的提示。
试完成它缺少的部分,并上机验证。
#include"stdio.h"
voidmain()
{
intx;
scanf("%d",&x);
if()printf("x=%disEven\n",x);
elseprintf("x=%disOdd\n",x);
}
2)下列程序用于输出fibnocci数列的前20项,每行输出5个。
提示:
fibnocci数列的前两项均为1,以后各项等于其前两项之和。
#include"stdio.h"
voidmain()
{
inti,f1,f2,f3,n;
f1=1;f2=1;
printf("\n%d%d",f1,f2);
n=2;
for(i=1;;i++)
{
if()printf("\n");
;
printf("%d",f3);n++;
f1=f2;f2=f3;
}
}
2、编程题:
1)求和值1-1/3+1/5-1/7+1/9-....1/n,直到最后一项的绝对值小于0.00001为止。
2)打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=13+53+33
三、实验步骤:
四、实验小结:
实验五函数
一、实验目的
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系,以及“值传递”的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
二、实验内容
1.阅读程序:
1)完成书上126页6.2及6.3题
2)写出程序运行结果,并且上机进行验证。
(1)#include"stdio.h"
intswap(inta,intb)
{
intc,s;
c=a;
a=b;
b=c;
s=a+b;
returns;
}
voidmain()
{
inta,b,s;
a=3;b=4;
s=swap(a,b);
printf("a=%db=%ds=%d\n",a,b,s);
}
(2)#include"stdio.h"
intfun(intnum)
{
intk=1;
do
{
k*=num%10;
num/=10;
while(num);
return(k);
}
voidmain()
{
intn=26;
printf("%d\n",fun(n));
}
2.程序填空:
(根据题意在空白处填入适当的内容,使程序变得完整。
)
(1)下面程序的功能是将输入的十进制数n转换为b进制数,并将转换结果输出。
转换的方法是:
除b取余法。
#include"stdio.h"
voidtransfer(intm,intk)
{
inta[20],i;
for(i=0;m;i++)
{a[i]=;
m/=k;
}
for(;i>=0;i--)
printf("%d",a[i]);
}
voidmain()
{
intb,n;
scanf("%d%d",);
;
}
3、编程:
(根据题意编写程序并上机进行调试)。
(1)孪生素数是指两个相差为2的素数。
例如3和5,5和7,11和13等。
编写程序输出m对(m由键盘输入)孪生素数。
要求设计函数prime用于判断某整数是否素数。
(2)找出2~1000以内的完全数。
说明:
完全数是一个自然数,它等于除本身以外的所有因子之和,例如:
6=1+2+3,6就是一个完全数。
要求定义一个函数来判断并输出
实验六编译预处理命令
一、实验目的
理解C语言预处理命令的作用,学会恰当灵活地使用预处理功能,使编写的程序易读、
易修改、便于调试和移植。
二、实验内容
1.阅读程序:
(并上机调试验证)
(1)#definePR(ar)printf(“%d”,ar)
main()
{
intj,a[]={1,3,5,7,9,11,13,15},i=5;
for(j=3;j;j--)
{
switch(j)
{
case1:
case2:
PR(a[i++]);break;
case3:
PR(a[--i]);
}
}
}
(2)#include
#defineW80
#defineLW+40
intmain(void)
{
intk;
k=L*20;
printf(“%d”,k);
getchar();
return0;
}
①分析此程序的运行结果并上机调试验证。
②将此程序中第3行的W+40改为(W+40),再运行程序,比较并分析其结果
(3)#defineM3
#defineNM+1
#defineSN*N/2
main()
{
printf(“%d,%d”,S,5*S);
}
分析此程序的运行结果并上机调试验证。
运行的结果与你分析的结果一样吗?
为什么?
(4)#defineSQR(X)X*X
main()
{
inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("d\n",a);
}
①分析此程序的运行结果并上机调试验证。
②将此程序中第1行的X*X改为(X)*(X),再运行程序,比较并分析其结果。
2.程序填空:
main()
{
intx=2,y=3;
printf(“%d\n”,pow(x,y));
}
2.填写下表,掌握常用头文件的用途:
头文件
用途
math.h
stdio.h
stdlib.h
string.h
实验七数组
一、目的和要求
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2、掌握字符数组和字符串函数的使用。
3、掌握与数组有关的算法(特别是排序算法)。
二、实验内容与步骤
1、程序填空。
说明:
在主函数中读入一字符串,再读入一字符,然后调用函数delete在字符串中查找并删除该字符,最后输出该字符串。
#include"stdio.h"
voiddelete(charp[],charch)
{
inti=0,j;
while()
{
if(p[i]==ch)
for(j=i;j<;j++)
p[i]=p[i+1];
else
i++;
}
voidmain()
{
charp[80],ch;
inti=0,j;
scanf("%s",p);
scanf("%c",&ch);
delete();
printf("%s",);
}
2、编程:
1)用选择法对10个整数排序。
10个整数用scanf函数输入。
2)两个字符串连接起来,不要用strcat函数。
实验八指针
一、目的要求
1、掌握指针的概念,会定义和使用指针变量;
2、学会使用数组的指针和指向数组的指针变量;
3、学会使用字符串的指针和指向字符串的指针变量;
4、学会使用指向函数的指针变量;
5、了解指向指针的指针的概念及其使用方法。
二、实验内容与步骤
1、调试下面的程序,指出错误的原因。
main()
{
intx=10,y=5,*px,*py;
px=py;
px=&x;
py=&y;
printf(”*px=%d,*py=%d”,*px,*py);
}
2、想使指针变量ptl指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?
swap(int*p1,int*p2)
{int*p;
p=p1;p1=p2;p2=p;
}
main()
{
inta,b;
int*ptl,*pt2;
scanf(”%d,%d”,&a,&b);
ptl=&a;pt2=&b;
if(a
printf(”%d,%d\n”,*ptl,*pt2);
}
上机调试此程序。
如果不能实现题目要求,指出原因并修改之。
3、用指向指针的指针的方法对n个整数排序并输出。
要求将排序单独写成一个函
数。
n和各整数在主函数中输入。
最后在主函数中输出。
4、用一个函数实现两个字符串的比较,即自己写一个strcmp函数:
strcmp(s1,s2)
如果s1=s2,则函数返回值为O;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如"BOY’,与"BAD",第二个字母不同,“O”与“A”之差为79—65=14);如果s1>s2,则输出正值;如s1 两个字符串s1、s2由main函数输入,strcmp函数的返回值也在main函数输出。 (用指针实现) 实验九结构体与共用体 一、目的和要求 1、掌握结构体类型变量的定义和使用; 2、掌握结构体类型数组的概念和应用; 3、掌握链表的概念,初步学会对链表进行操作; 4、掌握共用体的概念与使用。 二、实验内容和步骤 编程序,然后上机调试运行。 1、有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学 生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。 要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max 函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。 2、建立一个链表,每个结点包括: 学号、姓名、性别、年龄。 输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 实验十文件 一、目的要求 1、掌握文件以及缓冲文件系统、文件指针的概念; 2、学会使用文件打开、关闭、读、写等文件操作函数。 3、学会用缓冲文件系统对文件进行简单的操作。 二、实验内容和步骤 1、从键盘输人一个字符串,然后将其以文件形式存到磁盘上。 磁盘文件名为filel.dat。 2、从磁盘文件filel.dat读人一行字符,将其中所有小写字母改为大写字母,然后输出到磁盘文件file2.dat中 3、将已排序的学生成绩文件进入插入处理。 插入一个学生的三门课成绩。 程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 已知学生原有数据为 91101Wang89,98,67.5 91103Li60,80,90 91106Fun75.5,91.5,99 91110Ling100,50,62.5 91113Yuan58,68,71 要插入的学生数据为: 91108Xin90,95,60
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验