实验安排C.docx
- 文档编号:12291835
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:17
- 大小:79.30KB
实验安排C.docx
《实验安排C.docx》由会员分享,可在线阅读,更多相关《实验安排C.docx(17页珍藏版)》请在冰点文库上搜索。
实验安排C
《C程序设计》
实验目的:
使学生加深对讲授内容的理解,巩固学习内容,熟悉C程序设计思想,熟练掌握在某一软件(如TC,VC等)中编写、编辑、编译和调试程序的基本方法。
实验要求:
1.应做好上机准备
2.学生应做到独立上机操作
3.对实验报告的要求:
学生应填写实验报告,记录实验经过、实验结果。
实验报告的主要内容包括:
(1)实验目的和内容;
(2)实验的简单过程;
(3)实验的结果。
考试(考核)方式:
上机考查——让学生在规定的时间内修改、编译、调试和设计出解决某些问题的程序。
根据考查结果,结合平时各个实验成绩,评定出综合实验成绩。
实验考核成绩占考试总分的%。
表1实验基本情况
编号
实验名称
实验内容与目的
学时
类型
人数
1
简单结构程序设计
熟悉TC等编程环境,编写具有输入、输出等基本功能、结构简单的程序。
6
验证
1
2
控制结构程序设计
编写使用选择和循环等程序控制语句的程序
6
验证
1
3
模块结构程序设计
1.编写使用数组等数据类型的程序2.应用函数实现模块化的程序设计思想,设计功能较复杂的程序。
9
验证
1
4
应用指针技术
使用结构体和指针等技术,设计功能较为复杂的程序。
9
验证
1
实验一简单结构程序设计
一、实验内容与要求:
熟悉TC等编程环境,编写具有输入、输出等基本功能、结构简单的程序。
二、实验内容和步骤:
1、输入并运行一个简单的、正确的程序。
输入如下程序
#include
voidmain()
{
printf(“Thisisacprogram.\n”);
}
根据本书第二部分介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。
操作步骤:
1、打开TC++3.0。
(双击。
。
。
如何打开)
2、新建文件。
(如何如何)
3、对源程序进行编译。
(如何如何,菜单项|快捷键,在哪看到编译信息,是怎样的信息。
。
。
)
4、连接程序。
(菜单项|快捷键,信息)
②如果编译连接无错误,使程序运行,观察分析运行结果。
操作步骤:
运行程序。
(菜单项|快捷键。
。
。
)
运行结果:
Thisisacprogram.(NL)(NL=Newline,LF=Linefeed)
结果分析:
该程序的功能是。
。
。
。
2、输入并编辑一个有错误的C程序。
①输入以下程序
#include
voidmain()
{
inta,b,sum
a=123;b=456;
sum=a+b
print(“sumis%d\n”,sum);
}
②进行编译,仔细分析编译信息窗口,可能显示多个错误,逐个修改,直到不出现错误。
最后请与教材上的程序对照。
分析:
1.inta,b,sum末尾少了分号;
2.。
。
。
。
③使程序运行,分析运行结果。
运行结果:
结果分析:
3、输入并运行一个需要在运行时输入数据的程序。
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
printf(“inputa&b:
”);
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d\n”,c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
编译并运行,在运行时从键盘输入整数2和5,然后回车,观察运行结果。
运行结果:
inputa&b:
25↙
max=5(NL)
③将程序的第3行改为inta;b;c;再进行编译,观察其结果。
结果:
编译不通过,出错提示是——。
。
。
。
(分析:
。
。
。
。
为什么出错)
④将max函数中的第3、4行两行合并写为一行,即if(x>y)z=x;elsez=y;进行编译和运行,分析结果。
编译通过。
运行结果:
分析:
结果与不分行是一样的。
这是因为。
。
。
。
4、输入并运行下面的程序:
#include
voidmain()
{
charc1,c2;
c1=’a’;
c2=’b’;
printf(“%c,%c\n”,c1,c2);
}
①运行此程序;
②在printf语句下面再增加一个printf语句:
printf(“%d%d\n”,c1,c2);
运行分析结果
③将第3行改为:
intc1,c2;
运行,观察结果
④将第4/5行改为:
c1=a;
c2=b;
运行,分析结果
⑤将第4/5行改为:
c1=”a”;
c2=”b”;
运行,分析结果
⑥将第4/5行改为:
c1=300;
c2=400;
运行,分析结果
5、输入教材第2章习题2.6给出的程序
先人工分析结果,再与上机结果对比
6、输入并运行下面的程序:
#include
voidmain()
{
inta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,a,b);
printf(“%u,%u\n”,c,d);
c=a=e;
d=b=f;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,c,d);
}
请对照程序和运行结果分析:
①将一个负整数赋给一个无符号的变量,会得到什么结果
②将一个大于32767的长整数赋给整型变量(以TC为例),会得到什么结果
③将一个长整数赋给无符号变量,会得到什么结果(分别考虑长整数的值大于或等于65536和小于65536的情况)
改变程序中各变量的值,做比较。
7、输入习题2.9
①运行程序,注意i,j,m,n各变量的值。
分别做以下改动并运行
②将第6,7行改为:
m=i++;
n=++j;
再运行。
③程序改为:
#include
voidmain()
{
inti,j;
i=8;
j=10;
printf(“%d,%d\n”,i++,j++);
}
④在c题的基础上,将printf语句改成:
printf(“%d,%d\n”,++i,++j);
⑤再将printf语句改成:
printf(“%d,%d,%d,%d\n”,i,j,i++,j++);
⑥程序改为:
#include
voidmain()
{
inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);
}
8、按要求编好程序。
题目为:
从键盘输入7个字母,并将它们译成密码,密码规律是:
用原来的字母后面第6个字母代替原来的字母。
a.输入程序,运行。
在运行时输入3组不同的字符,分析结果是否正确
b.将译码规律改为:
将一个字母被它前面的第4个字母代替,修改程序并运行,分析结果。
9、通过下面程序掌握各种格式转换符的正确使用方法.
①输入以下程序:
#include
voidmain()
{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,q;
a=61;b=62;
c1=’a’;c2=’b’;
d=3.56;e=-6.87;
f=3157.890121;g=0.123456789;
m=50000;n=-60000;
p=32768;q=40000;
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f\n,e=%6.2f\n”,a,b,c1,c2,d,e);
printf(“f=%15.6f,g=%15.12\nm=%ld,n=%ld\np=%u,q=%u\n”,f,q,m,n,p,q);
}
②运行此程序并分析结果。
③在此基础上,将程序第9~14行改为:
a=61;b=62;
c1=a;c2=b;
f=3157.890121;g=0.123456789;
d=f;e=g;
p=a=m=50000;q=b=n=-60000;
运行程序,分析结果。
④改用scanf函数输入数据而不用赋值语句,scanf函数如下:
scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);
输入的数据如下:
61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000↙
分析运行结果。
(说明:
lf和ld格式符分别用于输入double型和long型数据)。
⑤在④的基础上将printf语句改为:
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,a,b,c1,c2,d,e);
printf(“f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n”,f,g,m,n,p,q);
⑥将p,q改用%o格式输出
⑦将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
10.按要求编写程序,并上机运行。
题目为:
输入一个摄氏温度,要求输出华氏温度。
公式为
F=9/5c+32
输出要有文字说明,取3位小数。
11.编写程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar函数和scanf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
(选做)
实验二控制结构程序设计
一、实验内容与要求:
编写使用选择和循环等程序控制语句的程序。
二、实验内容和步骤:
1、习题4.5(作业)
运行程序,输入x的值(分别为3种情况),检查输出y的值是否正确
2、习题4.6(作业)
①事先编好程序,要求用switch语句来实现。
运行程序,并检查结果是否正确。
②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错”,程序结束。
3、习题4.7(作业)
应准备如下测试数据:
非数值、负数、1位正整数、2位正整数、3位正整数、4位正整数、5位正整数、n(n>5)位正整数。
4、习题4.9(作业)
5、习题5.1(作业)
。
。
。
实验三模块结构程序设计
一、实验内容与要求:
1.编写使用数组等数据类型的程序
2.应用函数实现模块化的程序设计思想,设计功能较复杂的程序。
二、实验内容和步骤:
1.习题7.2(选做)
2.习题7.9(选做)
3.习题7.13
4.习题7.8应当至少准备两组测试数据:
(1)二维数组有鞍点;
(2)二维数组没有鞍点.用scanf函数从键盘输入数组各元素的值,检查结果是否正确.题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组.因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需准备典型的数据即可.
如果指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数.请修改程序以实现之.
5.习题8.2。
6.习题8.10。
7.作业。
输入一个十进制数,输出相应的二进制数。
要求用递归实现。
8.选做:
8.17,8.1,8.16。
实验四应用指针技术
一、实验内容与要求:
使用结构体和指针等技术,设计功能较为复杂的程序。
二、实验步骤:
1.定义一个带参数的宏,使两个参数的值互换。
在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值(习题9.1)
2.
(1)输入如下程序(程序4.2.1),编译运行,观察结果是否达到程序功能要求,分析其原因。
(2)将程序修改为(程序4.2.2):
仔细观察程序的不同,运行并分析结果。
(3)将程序修改为(程序4.2.3):
仔细观察与程序4.2.2的不同,运行并分析结果。
(4)将程序修改为(程序4.2.4):
仔细观察与程序4.2.3的不同,运行查看结果并分析该程序存在的问题。
3.使用题2给出的正确的swap函数编写程序:
输入3个整数,按由大到小的顺序输出。
然后再将程序改为:
输入3个字符串,按由大到小的顺序输出。
4.编写一个函数,声明3×5的数组并初始化,具体数值可以随意。
程序打印出数值,然后数值翻一番,接着再次打印出新值。
编写一个函数来显示数组的内容,再编写另一个函数执行翻倍功能。
数组名和数组行数作为参数由主函数传递给函数。
5.选做:
将题2完成的两个程序改成一个通用的程序,使其能够对3个整数、3个浮点数和3个字符串进行排序。
6.编写一个函数,将某年中第几天的日期表示形式转换为某月某日的表示形式,并在一个程序中测试它。
要求:
(1)程序不能使用全局变量;
(2)结果输出须在该转换函数外,即函数将转换结果返回,在主调函数中进行输出;
(3)输出的日期,月份使用名字而非数字,如Jun.14,2007;
可以编写辅助函数。
7.设计一个结构,保存一个月份名、一个3个字母的该月份缩写、该月的天数,以及月份号。
定义一个含有12个该结构的数组,并把它初始化为一个非闰年的12个月。
使用该结构数组,编写程序:
请求用户输入日、月和年(月份可以是月份号、月份名和月份缩写)。
然后程序返回一年中到给定日子(包括这一天)的总天数。
8.选做:
习题10.9、10.17、10.21
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 安排
![提示](https://static.bingdoc.com/images/bang_tan.gif)