《C语言程序设计》实验报告实验111 3.docx

上传人:b****4 文档编号:24484909 上传时间:2023-05-28 格式:DOCX 页数:31 大小:29.92KB
下载 相关 举报
《C语言程序设计》实验报告实验111 3.docx_第1页
第1页 / 共31页
《C语言程序设计》实验报告实验111 3.docx_第2页
第2页 / 共31页
《C语言程序设计》实验报告实验111 3.docx_第3页
第3页 / 共31页
《C语言程序设计》实验报告实验111 3.docx_第4页
第4页 / 共31页
《C语言程序设计》实验报告实验111 3.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》实验报告实验111 3.docx

《《C语言程序设计》实验报告实验111 3.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告实验111 3.docx(31页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》实验报告实验111 3.docx

《C语言程序设计》实验报告实验1113

 

 

《C语言程序设计》

实验报告

2012~2013学年第二学期

 

班级

姓名

学号

指导教师

 

实验一

实验项目名称:

C程序的运行环境和运行C程序的方法

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.了解在VisualC++6.0环境下如何编辑、编译、连接和运行一个C程序;

2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:

教材《C语言程序设计教程》第1章。

三、实验内容:

1.在VisualC++6.0环境下输入并运行下面的程序:

#include

intmain()

{

printf("ThisisaCprogram.\n");

return0;

}

2.在VisualC++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include

intmain()

{

inta,b,sum

a=3;

b=4;

sun=a+b;

print(“%d+%d=%d\n”,a,b,sum);

return0;

}

四、实验结果:

1.运行结果(或截图):

 

2.

(1)改正后的源程序:

 

(2)运行结果(或截图):

 

五、思考题:

1.一个C程序上机的步骤有哪些?

答:

 

2.组成C程序的基本单位是函数,一个函数包括哪几个部分?

答:

 

成绩指导教师签名

实验二

实验项目名称:

数据类型、运算符和表达式

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握整型、实型与字符型这三种基本类型的概念;

2.掌握常量及变量的使用方法;

3.掌握基本算术运算符及其表达式的使用方法;

4.掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:

教材《C语言程序设计教程》第2章。

三、实验内容:

1.在VisualC++6.0环境下输入下面的程序,编译、连接、调试该程序。

main()

{

charm,n;

m=280;

n=320;

printf(“%d\t%d\n”,m,n);

printf(“%c\t%c\n”,m,n);

}

2.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

intmain()

{

inta=3,b=4,c=8;

floatd,e;

d=a+b/c;

e=a+(float)b/c;

printf("d=%f,e=%f\n",d,e);

}

3.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

main()

{

inta,b,c,d,i,j,m,n;

a=b=c=d=3;

i=a++;

j=++b;

m=c--;

n=--d;

printf("a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);

}

4.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。

#include

main()

{

inta=4;

a+=a-=a*a+a;

printf("a=%d\n",a);

}

四、实验结果:

1.运行结果(或截图):

 

2.运行结果(或截图):

 

3.运行结果(或截图):

 

4.运行结果(或截图):

 

五、思考题:

1.给变量命名应该注意哪些问题?

答:

 

2.程序2的运行结果中,d和e的值为什么不同?

答:

 

3.程序3的运行结果中,i和j的值为什么不同?

m和n的值为什么不同?

答:

 

4.请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。

答:

 

成绩指导教师签名

实验三

实验项目名称:

简单的输入输出及顺序程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);

2.掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);

3.掌握编写顺序程序的方法。

二、预习内容:

教材《C语言程序设计教程》第3章。

三、实验内容:

1.编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。

main()

{inta,b;

floats;

scanf(“%d,%d”,&a,&b);

s=2.0*a*b/(a+b)/(a+b);

printf(“s=%f\n”,s);

}

①输入并调试。

②将scanf函数改为scanf(“%d%d”,&a,&b);再编译,运行。

③观察结果。

2.在VisualC++6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。

#include

intmain()

{

inta,b,sum;

printf("请输入第一个整数:

");

scanf("%d",&a);

printf("请输入第二个整数:

");

scanf("%d",&b);

sum=a+b;

printf("%d+%d=%d\n",a,b,sum);

}

3.设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。

要求用scanf语句输入半径,输出时取小数点后两位。

四、实验结果:

1.

输入数据

4,5

输入修改后的数据

45

4↙5↙

运行结果

运行结果

原因

原因

2.运行结果(或截图):

 

 

3.

(1)程序中用到的变量(类型)

 

(2)算法(用伪代码描述或自然语言)

 

(3)源程序清单

 

(4)运行结果(或截图)

 

五、思考题:

scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?

从两种输入方式的对比中你得到什么启发?

答:

 

成绩指导教师签名

实验四

实验项目名称:

选择结构程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.正确使用关系运算符和关系表达式;

2.正确使用逻辑运算符和逻辑表达式;

3.熟练使用if语句实现选择结构程序;

2.熟练使用switch语句实现多分支选择结构程序。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.下面程序的功能是:

输入学生成绩,若成绩在90分以上,输出“Excellent!

”;若成绩在60—89分之间,输出“Pass!

”;若成绩在60分以下,输出“Fail!

”。

请将程序补充完整,并上机运行程序。

#include

intmain()

{

intscore;

printf("请输入分数(0--100):

");

scanf("%d",);

if(score>100||score<0)printf("InputError!

\n");

elseif()printf("Excellent!

\n");

elseif()printf("Pass!

\n");

printf("Fail!

\n");

}

运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:

输入数据

运行结果

 

2.有如下分段函数:

请输入x的值,求解对应的y值。

3.给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。

90-100为’A’,80-89为’B’,70-79为’C’,60-69为’D’,60分以下为’E’。

用switch语句写。

四、程序中所用的变量及其类型:

2.

3.

 

五、算法(用伪代码或自然语言描述):

2.

 

3.

 

 

六、源程序清单:

2.

 

3.

 

七、实验结果:

2.运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):

 

输入数据

运行结果

 

3.运行结果(执行程序5次,分别输入5组不同的数据,对应5种不同的情况):

输入数据

运行结果

 

成绩指导教师签名

实验五

实验项目名称:

简单循环程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握循环程序的基本结构;

2.熟练掌握while、do—while及for语句,并会用来编写循环结构程序。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.编写一个程序,计算并输出数列:

1,3,5,…,2n-1,…的前几项之和,其中n由键盘输入。

要求分别用3种循环语句实现。

方法1:

用for语句实现。

main()

{longs,n,k,i;

scanf(““,&n);

k=2*n-1;

;

for(i=1;i<=k;)s+=i;

printf(“1+3+…+%ld=%ld\n”,k,s);

}

方法2:

用while语句实现。

main()

{long,n,i=1;

scanf(“%ld”,&n);

while()

{s+=i;

;}

printf(“1+3+…+%ld=%ld\n”,2*n-1,s);

}

方法3:

用do-while语句实现。

main()

{longs=0,n,i=1;

scanf(“%ld”,&n);

do

{s+=i;

i=i+2;}

while();

printf(“1+3+…+%ld=%ld\n”,2*n-1,s);

}

填上所缺的空,运行程序,写出结果。

2.输入两个正整数,求其中最大公约数和最小公倍数。

四、程序中所用的变量(类型及其初值):

2.

 

五、算法(用伪代码描述):

2.

 

六、源程序清单:

2.

 

七、实验结果:

1.在下表中写出输入的数据及其运行结果:

方法1

方法2

方法3

输入数据

运行结果

 

2.运行结果(或截图):

 

成绩指导教师签名

实验六

实验项目名称:

多层循环程序设计及break、continue语句在循环程序中的应用

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握多层循环程序的执行过程及设计方法;

2.掌握break及continue语句在循环程序中的使用方法。

二、预习内容:

教材《C语言程序设计教程》第4章。

三、实验内容:

1.百马百担问题。

有100匹马,驮100担。

大马驮3担,中马驮2担,两个小马驮1担。

问大、中、小马各多少?

(考虑适当减少循环次数)

2.编程输出100以内的所有素数。

3.编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。

四、程序中所用的变量(类型及其初值):

1.

 

2.

 

3.

 

五、算法(用伪代码或自然语言描述):

1.

 

2.

 

3.

 

六、源程序清单:

1.

 

2.

 

3.

 

七、实验结果:

1.运行结果(或截图):

 

2.运行结果(或截图):

 

3.运行结果(或截图):

 

成绩指导教师签名

实验七

实验项目名称:

一维、二维和字符数组程序设计

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2.掌握字符数组的使用。

二、预习内容:

教材《C语言程序设计教程》第5章。

三、实验内容:

1.从键盘输入一个整数n(n<=10)和n个整数,存入数组a中,先依次输入各个数组元素的值,然后对数组a的所有元素值从小到大的顺序重新排列后,再依次输出。

main()

{inta[10],n,i,j,min,ax;

printf(“inputn=”);

scanf(“%d”,&n);

printf(“inputarray[0]a[1]…a[%d]:

\n”,n-1);

for(i=0;i

scanf(“%d”,);

printf(“beforesort:

array\n”);

for(i=0;i

i++)

printf(“%d”,a[i]);

printf(“\n”);

for(i=0;i<;i++)

{min=i;

for(j=;j

if(a[j]

ax=;;

=ax;}

printf(“aftersort:

array\n”);

for(i=0;i

printf(“%d”,a[i]);

}

2.打印出以下杨辉三角形(要求打印出10行)。

1

11

121

1331

14641

……

3.将两个字符串连接起来,不要用strcat函数。

四、程序中所用的变量(类型及其初值):

2.

 

3.

 

五、算法(用伪代码描述):

2.

 

3.

 

六、源程序清单:

2.

 

3.

 

七、实验结果:

1.运行结果(执行程序3次,分别输入不同的n,对应3种不同的情况):

输入整数n

输入n个元素

排序后结果

2.运行结果(或截图):

 

3.运行结果(或截图):

 

成绩指导教师签名

实验八

实验项目名称:

函数调用和参数传递

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系。

二、预习内容:

教材《C语言程序设计教程》第6章6.1~6.4节。

三、实验内容:

1.求2~100间的素数。

intprime(int);/*prime函数声明*/

main()

{intm,flag;

for(m=2;m<=100;m+=1)

{flag=prime(m);

if()

printf(“%4d”,m);

}

}

intprime()

{

inti,flag;

for(i=2;i

if(a%i==0)

;

if(i==a)flag=1;

elseflag=0;

return;

}

2.求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。

从主函数输入a,b,c的值。

四、算法(用伪代码或自然语言描述):

2.

五、源程序清单:

2.

 

七、实验结果:

1.运行结果:

 

2.运行结果(执行程序3次,分别输入不同的a,b,c,对应3种不同的情况):

输入a

输入b

输入c

方程的根

1

4

4

2.5

5

1.5

5

2

1.5

 

成绩指导教师签名

实验九

实验项目名称:

函数与预处理

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握数组名作为函数参数;

2.掌握全局变量与局部变量;

3.掌握宏,文件包含的用法。

二、预习内容:

教材《C语言程序设计教程》第6章6.5~6.9节。

三、实验内容:

1.从键盘输入10个数存入数组a中,调用fmax求数组中的最大值并输出。

#include

main()

{inta[10],i,jmax;

for(i=0;i<10;++i)

scanf(“%d”,&a[i]);

jmax=fmax(,10);

printf(“%d”,jmax);

}

fmax(intb[],intt)

{

inti,imax;

imax=b[0];

for(i=1;i

if(b[i]>imax);

return;

}

2.用“冒泡法”对输入的10个字符排序后按从小到大的次序输出。

#defineN10

charstr[N];

sort()

{inti,j;

chart;

for(j=1;j

for(i=0;i

if(str[i]>)

{t=str[i];

___________;

____________;

}

}

main()

{

inti;

for(i=0;i<10;i++)

scanf("%c",&str[i]);

sort();

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

3.输入10个学生5门课程的成绩,分别用函数求:

①每个学生平均分,并输出;②每门课的平均分,并输出。

4.定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。

输出已交换后的两个值。

四、程序中所用的变量(数据类型):

3.

 

4.

 

五、算法(用伪代码或自然语言描述):

3.

 

六、源程序清单:

3.

 

4.

 

七、实验结果:

1.运行结果(或截图):

 

2.运行结果(或截图):

 

3.运行结果(或截图):

 

4.运行结果(或截图):

 

成绩指导教师签名

实验十

实验项目名称:

指针

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.通过实验进一步掌握指针的概念,会定义和使用指针变量。

2.能正确使用数组的指针和指向数组的指针变量。

3.能正确使用字符串的指针和指向字符串的指针变量。

4.了解指向函数的指针变量。

二、预习内容:

教材《C语言程序设计教程》第7章。

三、实验内容:

1.输入2个整数,交换顺序后输出,程序要求使用指针处理。

程序提示:

自定义交换函数:

voidswap(int*p1,int*p2)//实现*p1与*p2交换

{

}

//main函数结构如下:

intn1,n2;

int*q1,*q2;

  //输入2个数,q1,q2分别指向这n1,n2这2个数

  swap(q1,q2);//调用函数swap

printf(“%5d%5d”,n1,n2);//输出交换后的值

2.将一个数组的10个元素反序,用一函数实现。

程序提示:

在主函数中用for循环通过scanf函数输入数组元素值,调用函数,用for循环输出结果。

voidinverse(int*p)

{

循环for(i=0;i<10/2;i++)

*(p+i)与*(p+9-i)交换,就能实现反序

}

 

3.下面程序是用指针法将一个字符串a复制到字符串b中,修改程序实现问题

(1)

(2)。

main()

{

chara[]="Iamaboy.",b[20],*p1,*p2;

inti;

p1=a;p2=b;

for(;*p1!

=’\0’;p1++,p2++)

*p2=*p1;

*p2=’\0’;

printf("stringais:

%s\n",a);

printf("stringbis:

");

for(i=0;b[i]!

=’\0’;i++)

printf("%c",b[i]);

}

(1)将第一个for循环改为while循环;

(2)分别用指针变量p1和p2输出字符串a和b。

4.用一个函数实现两个字符串的比较,自定义compare函数已给出,编写main函数:

设p1指向字符串s1,p2指向字符串s2。

要求当两个字符相同时返回0,若两个字符串不相等,则返回返回它们二者第一个不同字符的ASCII码的差值。

两个字符串s1,s2由主函数输入,compare函数的返回值也由主函数输出。

程序提示:

使用以下函数进行比较:

intcompare(char*p1,char*p2)

{

inti;

for(i=0;*(p1+i)!

=’\0’;i++)

if(*(p1+i)!

=*(p2+i))

break;//不相等,循环结束

return*(p1+i)-*(p2+i);

}

main()

{

}

5.下面的程序的功能是将字符数组ch中第2维下标是偶数的元素取出后,构成一个十进制整数。

#include

main()

{

charch[2][5]={"1213","8421"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)

p[i]=;

for(i=0;i<2;i++)

for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)

s=;

printf("%d",s);}

四.重要变量用途说明:

1.

 

2.

 

3.

 

4.

 

5.

 

五、源程序补充后完整清单:

1.

 

2.

 

3.

 

4.

 

5.

 

六、实验结果(写出典型测试数据输入和输出)

1.运行结果:

 

2.运行结果:

 

3.运行结果:

 

4.运行结果:

 

5.运行结果:

 

成绩指导教师签名

 

实验十一

实验项目名称:

结构体与共用体

所使用的工具软件及环境:

VisualC++6.0

一、实验目的:

1.掌握结构体的概念;

2.学会通过结构体成员来使用结构体;

3.正确使用结构体数组;

4.学会共用体成员值的输出。

二、预习内容:

教材《C语言程序设计教程》第8章。

三、实验内容:

1.读懂并输入程序,完成填空后输出结果。

建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。

#include

main()

{structgrade/*定义结构体类型*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1