c语言实验报告Word下载.docx
- 文档编号:16896309
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:72
- 大小:61.76KB
c语言实验报告Word下载.docx
《c语言实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《c语言实验报告Word下载.docx(72页珍藏版)》请在冰豆网上搜索。
【实验六】数组
(一)
【实验七】数组
(二)
【实验八】指针
【实验九】结构体、共用体和文件
【实验十】C程序综合性实验
三、有关说明
1、与其它课程和教学环节的联系:
先修课程:
计算机文化
后续课程:
面向对象程序设计、Java程序设计、数据结构、软件工程
2、教材和主要参考书目:
(1)教材:
《C程序设计习题解答与上机指导》,谭浩强吴伟民著,:
清华大学,2003年。
(2)主要参考书目:
《C语言程序设计》谭浩强主编,清华大学,2003年。
三、实验容
实验一最简单的C程序---顺序程序设计
(验证性实验2学时)
(一)、实验目的
1.熟悉win-tc程序运行环境
2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、方法
3.掌握C语言中使用最多的一种语句——赋值语句
4.掌握数据的输入输出方法,能正确使用各种格式控制符
(二)、实验容
1.写出下列程序的运行结果
(1)#include<
stdio.h>
voidmain()
{
printf(“*****************\n”);
printf(“Thisisacprogram.\n”);
printf(“****************\n”);
}
运行结果及分析:
运行结果:
*****************
Thisisacprogram
分析:
1.c程序中的#include<
是指一个标准输入输出文件,它包含了标准输入输出函数。
2.一个c程序中必须只能有一个main函数,voidmain()是指子最后不给程序返回任何值;
3.这个程序中的prinft函数是用来显示输出的,这三条命令全都会显示输出。
将程序中的\n去掉后,运行结果及分析:
************************Thisisaprogram***************************
1.一个c程序中必须只能有一个main函数,voidmain()是指子最后不给程序返回任何值;
2.c程序支持一些特殊的反斜杠字符常量,这些常量常用于输出函数中,\n是指换行输出,所以将\n去掉后,printf中的三条语句就不会换行输出,只显示在一排。
(2)#include<
inta=100,b=20,sum,sb;
sum=a+b;
sb=a/b;
printf("
sum=%d,sb=%d"
sum,sb);
sum=120.sb=5
1.这是一个关于数的简单加法计算和除法计算并显示出结算结果的c程序;
一个c程序中必须只能有一个main函数,voidmain()是指子最后不给程序返回任何值;
2.用int将变量定义成了整型变量;
3.在定义变量时就将a和b初始化了值用于后面计算;
4.将a和b的和赋值到了sum中,将a和b的商赋值到了sb中,并显示输出;
5.%d是指输出的时候是输出整数型
(3)#include<
voidmain()
{
charc1,c2;
c1=97;
c2=98;
printf("
%c,%c\n"
c1,c2);
%d,%d\n"
%c%c\n"
c1+1,c2+2);
ab
97,98
c,d
1.一个c程序中必须只能有一个main函数,voidmain()是指子最后不给程序返回任何值;
2.用char将c1和c2定义成字符变量,并给其赋值;
所以;
3.用printf("
c1,c2)输出c1和c2所对应的字符,而97、98所对应的ASCII值是a和b
4.用printf("
c1,c2)输出所对应的值;
5.printf("
c1+1,c2+2)是指将c1和c2中的值加上1和2后所对应的字符值输出。
(4)#include<
voidmain()
inti=8,j=10,m,n;
m=++i;
n=j++;
printf("
%d,%d,%d,%d"
i,j,m,n);
9,11,9,10
2.用int将i,j,m,n定义成整型变量;
3.m=++i是指将i加1后赋值给m和i,n=j++是指先将j的值赋给n,然后j=j+1;
4.用printf("
i,j,m,n)显示输出各变量所对应的值。
再将本程序的第3行改为m=i++;
n=++j;
9,11,8,11
3.m=i++是指先将i的值赋给m,然后i=i+1的值;
n=j++是指将j+1的值赋给j和m;
2.程序填空
任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用b5,b4,b3,b2,b1表示),请将程序补充完整。
#include<
main()
intb1,b2,b3,b4,b5;
longintx;
Scanf(“%ld”,&
x);
b5=(x/10000)%10;
b4=(x/1000)%10;
b3=(x/100)%10;
b2=(x/10)%10;
b1=x%10;
printf(“thenumberis%ld\n”,x);
printf(“itsbitis:
%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);
}
程序分析:
1.由于此程序要输出一个五位数,所以应将变量的类型定义成longint,以免超出围后导致乱码输出;
2.scanf函数用于键盘输入,此命令将用户输入的值赋给x;
3.将输入的五位数的每一位的值通过运算公式转换成数,并用prinft函数显示输出。
3.程序改错(注意:
题中的编号为行序号,并非程序本身)
计算任意一个半径为r的圆的面积和周长(结果保留两位小数)
(2)main()
(3)floatr;
p=3.14,c,area;
(4)printf(“inputr:
”);
(5)scanf(“%f”,r);
(6)c=2p*r;
(7)area=p*r*r
(8)printf(“c=%-7.2f,area=%-7.2f”,c,area);
(9)}
错误语句的行号:
(3)
改正后的语句全行:
floatr,p=3.14,c,area;
(5)
scanf(“%f”,&
r);
(6)
c=2*p*r;
(7)
area=p*r*r;
改错分析:
1.在c程序中,一个语句中声明多个变量是需要用“,”隔开;
2.用scnf函数时,变量前面必须加操作符&
,指明该变量的地址;
3.乘法表示要用*号表示;
4.每一个执行语句结束后必须用分号“;
”结束。
实验二逻辑运算和判断选取控制
1.了解逻辑量在C语言中的表示方法
2.学会使用逻辑运算符和逻辑表达式
3.熟练掌握if语句和switch语句
inta,b,x=10,y=9;
a=(--x==y++)?
--x:
++y;
b=y;
printf(“%d,%d\n”,a,b);
8,10
1.此程序是关于逻辑运算符、递增和递减运算符以及条件运算符的应用;
2.voidmain()是指程序结束后不返回任何值;
3.inta,b,x=10,y=9;
是定义int类型的整数变量及给想x和y初始化值;
4.a=(--x==y++)?
是指当x-1的值等于y的值时x=x-1,否则x=++y,因为—x=9=y,所以条件成立,a的值就等于—x,而在前面的运算中x=9、y=10,因此—x=8;
b=y=9;
5.printf函数显示输出所运算出来的结果。
inta=2,b=-1,c=2;
If(a<
b)
if(b<
0)c=0;
elsec+=1;
else
printf(“%d\n”,c);
2
1.此程序时关于if函数和c+=1类型的复合函数语句的应用;
2.当if条件成立时就执行if下面的语句,不成立时则直接执行else语句,此程序中的if(a<
b)不成立,所以直接执行elsec+=1;
3.c+=1;
是指c=c+1,
inta=0,b=0,c=0;
if(++a>
0||++b>
0)++c;
printf(“\na=%d,b=%d,c=%d”,a,b,c);
a=1,b=0,c=1;
1.此程序是关于if函数和递增运算符的应用;
2.inta=0,b=0,c=0;
是定义整形变量并给其赋值;
3.if(++a>
是值当++a>
0和++b>
0同时满足时,执行后面的++才,因为前面条件满足,所以执行++c;
因此a=1,c=1,而因为在逻辑条件成立时,值进行前面的运算,所以b还是等于0;
4.Printf输出运算结果。
(4)#include<
intx=-1;
switch(x)
default:
printf(“a”);
case1:
printf(“b”);
case2:
printf(“c”);
abc
1.此程序是关于switch语句的应用,在C语言中它经常跟Case一起使用,是一个判断选择代码。
其功能是控制业务流程流转的;
intx=-1,是指定义整形变量并给其赋值;
3.在switch()开始时,从default处开始执行,输出a,在往下执行,不满足case1,输出b,再执行case2,也不满足,因此输出c。
在case1:
printf(“b”);
后加上break;
语句,结果如何?
修改程序并上机调试。
ab
3.在switch()开始时,从default处开始执行,输出a在往下执行,不满足case1出c.
在遇到break时退出执行。
输入两个整数,从用户处获取这两个整数,显示其中较大的数,在其后跟随“islarger”。
如果这两个数相等,显示“Thesenumbersareequal.”。
请在_____填入正确容。
inta,b;
printf(“pleaseinputtwonumbers,a,b!
“);
scanf(“%d%d”,&
a,&
b);
if(a>
b)printf(“%dislarger”,a);
elseif(______a=b________)printf(“Thesenumbersareequal”);
else_____printf(“%dislarger”,b);
}
填空①:
a>
b
填空②:
__a=b__
填空③:
_printf(“%dislarger”,b);
结果分析:
5islarger
1.此程序涉及到了scanf键盘输入和if条件语句的应用;
2.scanf(“%d%d”,&
b)指用户输入两个数保存到a和b中;
3.if(a>
指当a>
b成立时输出aislarger,若a=b时输出Thesenumbersareequal,若前面都不成立,a<
b时,输出bislarger.;
3.编写程序
(1)编写一个程序,读入5个整数,然后确定并显示这组数中的最大整数和最小整数。
程序清单:
#include<
intmax,min,x,n;
printf("
pleaseinputthefirstnumber:
"
);
scanf("
%d"
&
max=min=x;
for(n=2;
n<
=5;
n++)
{
pleaseinputthe%dnumber:
n);
if(x>
max){max=x;
continue;
if(x<
min)min=x;
}
thebiggestnumberis:
%d;
thesmallestnumberis:
%d.\n"
max,min);
getch();
程序编写注意事项:
1.此程序要连续输入五个数,可用for循环输出五条printf函数;
2.五个数排列大小,在输入第一个数的时候这个数既是最大数也是最小数,在之后没输入一个是数的时候就与前一个数进行比较,大的储存在max里,小的话就存在min里,直到第五个数比较完后输出结果,printf("
实现了这个功能。
(2)编写程序,读取一个整数,判断并显示出这个整数是奇数还是偶数。
(提示:
使用求模运算符。
偶数是2的倍数。
任何2的倍数除以2时,余数均为零。
)
intn;
pleaseinputanumber"
n);
if(n%2==0)
Thisnumberisevennumber"
else
Thisnumberisoddnumber"
1.键盘输入函数不能丢掉位置控制符号&
;
2.%是模运算符,取两数相处的余数;
3.判断是奇数还是偶数要用条件运算符if。
。
else语句。
(3)编写一个程序,从键盘中输入3个不同的整数,然后显示这3个整数的和、平均数、积、最小数和最大数。
(用if语句)屏幕中的对话容如下所示:
Inputthreedifferentintegers:
132714
Sumis54
Averageis18
Productis4914
Smallestis13
Largestis27
inta,b,c,m,n;
\n"
Inputfirstnumber:
%d,"
a);
Inputscendnumber:
b);
Inputthirdnumber:
c);
Sumis%d\n"
a+b+c);
Averageis%d\n"
(a+b+c)/3);
Productis%d\n"
a*b*c);
if(a>
b&
&
a>
c)m=a;
elsem=b;
if(b>
c)m=b;
elsem=c;
Maxis%d\n"
m);
if(a<
b)n=a;
elsen=b;
if(b<
c)n=b;
elsen=c;
Minis%d\n"
n);
1.函数要在main函数中进行定义,然后用scanf函数给定义好的三个变量赋值;
2.对函数进行算术运算是要用c语言中特定的运算符,乘号用*表示,除号用/表示,括号代表优先级运算;
3.比较三个数大小的时候要用if..else条件函数进行比较;
4.如果要在一条语句中显示,要注意c语言中的运算顺序。
实验三循环结构程序设计
(一)
1.熟悉用while语句、do-wile语句和for语句实现循环的方法
2.掌握在程序设计中用循环方法实现的算法
intcount=1;
while(count<
=10)
count++;
printf(“%s\n”,count%2?
“****”:
“++++++++++”);
++++++++++
******
++++++++++
++++++++++
1.while是入口控制循环语句,先计算测试条件,如果该条件为真,那么就运行其循环体语句,运行完后,再次计算测试条件,如果仍为真,则继续计算循环体,直到条件为假,所以在本程序中,直到将count++运行到count等于10时停止运算;
2.在prinrf语句中,count%2是对count进行求模运算,并用?
条件语句,当count%2时输出******,否则就输出++++++++++。
因为count一直循环到10,所以就各出了五次。
introw=10,Column;
while(row>
=1)
{
Column=1;
while(Column<
printf(“%s”,row%2?
“<
”:
“>
Column++;
row--;
printf(“\n”);
>
>
<
<
1.while是入口控制循环语句,先计算测试条件,如果该条件为真,那么就运行其循环体语句,运行完后,再次计算测试条件,如果仍为真,则继续计算循环体,直到条件为假;
2.while可进行循环的嵌套,在本程序中就进行了循环的嵌套,在第一个循环下,再进行while循环,第二个循环是对Column进行求模和用?
判断输出<
一直循环到Column=10为止,第一个while循环是控制换行输出的,直到row>
=1时退出循环。
inty=9;
for(;
y>
0;
y--)
if(y%3==0)printf("
%d\n"
--y);
8
5
2
1.for语句也是一种入口控制循环,在本程序中for(;
y--)是循环条件,先将y初始化为9,每执行一次后面的循环体y就自减一次,知道y>
=0是停止循环;
2.if(y%3==0)printf("
是循环体,意识是当y除以3没有余数时就输出y-1的值;
3.该程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)