CB上机指导书.docx
- 文档编号:27441624
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:35
- 大小:235.42KB
CB上机指导书.docx
《CB上机指导书.docx》由会员分享,可在线阅读,更多相关《CB上机指导书.docx(35页珍藏版)》请在冰豆网上搜索。
CB上机指导书
《C程序设计B实验指导书》
计算机实验教学示范中心
2011年12月
目录
上机实验要求1
实验一熟悉C语言的运行环境2
一、实验目的2
二、实验要求2
三、实验内容2
实验二简单程序设计8
一、实验目的8
二、实验要求8
三、实验内容8
实验三选择程序设计10
一、实验目的10
二、实验要求10
三、实验内容10
实验四循环程序设计12
一、实验目的12
二、实验要求12
三、预习内容12
四、实验内容13
实验五函数程序设计14
一、实验目的14
二、实验要求14
三、预习内容14
四、实验内容15
实验六数组程序设计17
一、实验目的17
二、实验要求17
三、预习内容17
四、实验内容18
实验七指针程序设计19
一、实验目的19
二、实验要求19
三、预习内容19
四、实验内容20
实验八综合设计实验22
一、实验目的22
二、实验要求22
三、实验内容22
VC6.0编译常见错误23
第一部分编译错误23
第二部分链接错误25
上机实验要求
上机实验一般经历上机前的准备(预习并且编程)、上机调试运行和实验后的总结三个步骤。
1.上机前的准备
根据问题,进行分析,选择适当算法并编写程序。
上机前一定要仔细检查程序(称为静态检查)直到找不到错误(包括语法和逻辑错误)。
分析可能遇到的问题及解决的对策。
准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。
上机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了;如果抄写或复制一个别人编写的程序,到头来自己一无所获。
2.上机输入和编辑程序,并调试运行程序
首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。
下一步是调用连接程序,产生可执行程序(扩展名为EXE)。
使用预先准备的测试数据运行程序,观察是否得到预期的正确结果。
若有问题,则仔细调试,排除各种错误,直到得到正确结果。
在调试过程中,要充分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。
整个过程应自己独立完成。
不要一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。
3.整理上机实验结果,写出实验报告
实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。
实验报告一般包括如下内容:
⑴记录实验名称、实验时间、实验人等。
(2)实验目的
实验要达到的目的。
(3)实验内容
实验题目与要求。
(4)算法说明
用文字或流程图说明。
(5)程序清单
(6)运行结果
原始数据、相应的运行结果和必要的说明。
(7)分析与思考
调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他算法的存在与实践等。
若最终未完成调试,要认真找出错误并分析原因等。
本实验指导书中对部分内容的要求说明如下:
预习内容:
上机实验课前必须要求完成。
实验内容中编程题:
上机实验前要求必须预习并在上机实验课程中完成调试及上传。
实验内容中附加题:
实验完成后学有能力的同学自己完成。
实验一熟悉C语言的运行环境
一、实验目的
1.熟悉C语言运行环境。
2.掌握C语言程序的书写格式和C语言程序的结构。
3.掌握C语言上机步骤,了解运行一个C程序的方法。
二、实验要求
1.学习VC的基本操作,编写程序。
2.运行程序并记录运行结果。
3.将源程序保存、上传并撰写本次实验心得体会
三、实验内容
1.了解VC++环境的组成。
启动MicrosoftvisualC++6.0,熟悉VC++的编程界面。
跟大多数的Windows应用程序一样,VC最上面是菜单,然后是工具栏,中央是工作区,最下面一行是状态栏。
我们现在看到的工作区,左边是Workspace窗口,右边是灰底的空白窗口。
2.了解工作区(Workspace)、工程(Project)、文件夹及源文件等概念。
1)VC是按照工作区(Workspace)来管理项目和代码的。
一次必须打开一个Workspace。
2)一个Workspace中可以包含一个或者多个工程(Project)。
3)一个工程可以包含一个或者多个逻辑文件夹。
4)一个文件夹里面可以包含零个或者多个文件。
5)一个工程至少包含一个源代码文件。
6)当创建新工程的时候,一个同名的Workspace同时被创建;该workspace只包含一个项目,就是新创建的这个项目。
或者稍稍详细一点说,VC在管理项目和代码的时候,是按照如下一个树型的结构来组织的:
Workspace(工作区)
⏹Project1(工程1)
●Heaerfiles(一个或者多个头文件)
●Sourcefiles(一个或者多个源代码文件)
●Otherfiles(一个或者多个其他文件)
⏹Project2(工程2)
●Heaerfiles(一个或者多个头文件)
●Sourcefiles(一个或者多个源代码文件)
●Otherfiles(一个或者多个其他文件)。
3.编程步骤
1)创建一个新的C语言的工程
2)添加一个文件到一个空的工程中
3)编写程序
4)运行程序
5)调试程序
具体步骤如下:
1)创建一个新的C语言的工程。
选择菜单:
文件-->新建...,选择工程。
打开下面窗口:
我们看到可以创建许多种类型的工程;并且可以指定工程的名字,和存储位置。
事实上如果要开发简单的C语言程序,我们只需要创建一种工程:
Win32ConsoleApplication,也就是Windows32控制台程序,或者俗称“黑屏”程序。
我们进行如下设置:
顺序
选项
操作
说明
1
工程类型
选择“Win32ConsoleApplication”
2
位置
自己先建立的目录
3
工程名
输入自己的工程名
位置部分将在原来路径的后面自动加入“工程名”。
4
完成
点击“确定”按钮
在这里我们选择第一个选项,也就是默认选项:
一个空的工程。
然后选择完成。
在窗口的左半部分的workspace上,我们可以看到有两个Tab页,ClassView和FileView。
ClassView页面会显示当前工程中所声明的类、全局变量等;对于写C语言程序来说,这个页面没有什么大的作用。
FileView页面显示了当前项目中的所有文件。
在该工程下面,我们发现了三个预定义的逻辑文件夹,分别是:
"SourceFiles"、"HeaderFiles"、"ResourceFiles"。
在每一个文件夹下面,都没有文件;这是因为此前我们选择的是创建一个空的工程。
这三个文件夹是VC预先定义的,就编写简单的单一源文件的C程序而言,我们只需要使用SourceFiles一个文件夹就够了。
查看物理文件夹。
打开Windows资源管理器,定位到自己的目录。
下面是这些文件和文件夹的简单说明:
文件和文件夹
说明
文件11.dsw
这是workspace描述文件。
文件11.dsp
这是DemoQuestion项目配置文件。
包括逻辑文件夹在内的关于该项目的所有配置,都保存在此文件中。
文件11.ncb
这是VC内部使用的一个临时文件。
我们不必关心此文件。
文件夹Debug
Debug版本的编译输出文件将被保存在该文件夹中。
2)添加一个文件到一个空的工程中。
选择菜单:
文件-->新建...。
打开下面窗口:
在“文件”页面中,进行如下操作:
顺序
选项
操作
说明
1
文件类型
选择“C++SourceFile”
2
文件名
输入:
11.c
注意:
11.c后面的".c"后缀是必要的。
如果是要创建.cpp文件,该后缀就可以不写了。
3
位置
保持默认值,不需要修改。
4
完成
点击“确定”按钮
当该.c源文件创建后,在左边Workspace窗口的“FileView”页面中,可以看到该新创建的11.c节点。
3)编写程序
a)输入源代码。
请输入以下源代码。
b)编译。
我们可以通过菜单或者工具栏按钮进行编译。
如果使用菜单,可以选择:
“组建-->编译11.cctrl+F7”或者直接“ 组建-->组件11.exeF7”。
如果使用工具栏,请使用鼠标右键单击工具栏的空白处,在弹出的菜单中选中“编译”一项,就可以打开编译工具栏,再使用相应的按钮。
如果编译完全成功,会显示“0error(s),0warning(s)”。
另外,即便有一些warning,也可能编译成功。
Warning表示该代码应该不会影响程序运行,但是有可能存在潜在的问题,编译器不推荐这么写。
c)除错
一般情况下,代码在编写过程中可能会发生各种错误。
编译器检查出来的错误会被显示在VC++6.0环境的“组件”窗口。
4)运行程序
我们可以通过菜单或者工具栏按钮进行运行程序。
(运行程序之前要生成exe文件。
可以通过“ 组建-->组件11.exeF7”完成。
菜单:
“组件-->执行11.exe”。
编译工具栏:
按钮。
5)调试程序
其他调试技巧在以后的实验中会逐步体会到。
4.输入并验证运行下述程序
1)分析程序,预测其运行结果,并上机验证。
2)参照上述例题,编写一个C程序,输出如下信息:
*********************
VeryGood!
*********************
3)输入验证以下程序。
(数据的输出通过文件进行)
附加题:
仿照4-3中函数的写法,编写一程序,求高为5.4,半径为2.3的圆柱体的体积。
实验二简单程序设计
一、实验目的
1.熟悉C语言的表达式、空语句及复合语句。
2.熟悉输入输出函数语句。
3.能设计简单的顺序结构程序。
二、实验要求
1.复习赋值语句和输入输出函数各种格式符的使用。
2.复习数据类型和运算符的有关概念。
3.编写程序,运行程序并记录运行结果。
4.将源程序保存、上传并撰写本次实验心得体会
三、实验内容
1.改错题
该程序输入一个三位数,然后进行个位和百位的置换,如234,转换成432。
#include
intmain()
{
scanf("%d",n);
a=n%10;
b=(n/10)%10;
c=(n/100)%10;
m=100*a+10*b+c;
printf("%d=>%d\n",n,m);
return0;
}
该程序中有哪些地方存在错误或不妥的地方?
请标记出来,并在旁边提出修改意见。
2.程序填空题
求
的值。
(设a=25,b=5)
#include
intmain()
{floata=25,b=5;
floatc;
c=____________;
printf("c=____________\n",c);
return0;
}
3.编程题
1)编程求
。
要求a和x从键盘输入,计算当a=5.5,x=2.4时,y的值(提示:
y=16.723221)。
提示:
调用数学库函数,还要在程序中包含math.h头文件。
2)编程:
根据本金a、存款年数n和年利率p计算到期利息l。
输出要有文字说明,取2位小数。
提示:
利息公式l=a*(1+p)n-a
(本金a=1000,存款年数=2,年利率=0.05时,利息l=102.50)
附加题:
编程从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。
实验三选择程序设计
一、实验目的
1.正确理解C语言表示逻辑量的方法。
2.学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。
3.熟悉并掌握if和switch语句。
4.熟悉选择结构程序中语句的执行过程。
二、实验要求
1.复习关系表达式、逻辑表达式和if语句、switch语句。
2.学习程序的调试方法。
3.编写程序,运行程序并记录运行结果
4.将源程序保存、上传并撰写本次实验心得体会
三、实验内容
1.改错题
有一函数关系如下:
x-3x<0
y=0x=0
x+3x>0
以下程序表示上面的函数关系。
#include
intmain()
{
intx,y;
scanf("%d",&x);
y=x-3;
if(x!
=0)
if(x>0)y=x+3;
elsey=x-3;
printf("y=%d\n",y);
return0;
}
该程序中有哪些地方存在错误或不妥的地方?
请标记出来,并在旁边提出修改意见。
2.程序填空题
以下程序把大写字母转换成对应的小写字母,其他字符不转换:
#include
intmain()
{
charch;
scanf(____________);
ch=(____________)?
____________:
ch;
printf(“char=%c\n”,____________);
return0;
}
3.编程题
1)编写程序,学生单科成绩按下列标准分等(其中x为每个学生的单科成绩)
总成绩等级英文名称
x<60bad
60<=x<80middle
80<=x<90good
90<=xexcellent
现输入某个学生的单科成绩,请输出他的等级标准。
实验源程序代码:
2)编写程序,从键盘输入两个实数和一个四则运算符(+、-、*、/),执行相应的运算并输出运算结果。
(如输入12.5*5,输出:
12.5*4=62.5)
实验源程序代码:
附加题:
编写程序,输入a,b,c三个整数,输出其中值居中的那个数及其值。
例如输入12,40,23,输出值居中的那个数是c,其值为23
实验四循环程序设计
一、实验目的
1.熟悉并掌握while语句,do-while语句和for语句实现循环的方法。
2.掌握程序设计中循环的常用各种算法,例如穷举法、迭代法等。
3.理解循环结构程序中语句的执行过程。
二、实验要求
1.复习for、while、do-while语句和continue、break语句。
2.在程序调试中,要实现准备充分的测试用例,学会单步调试程序的技巧。
3.编写程序,运行程序并记录运行结果。
注意程序的书写格式。
4.将源程序保存、上传并撰写本次实验心得体会
三、预习内容
1.改错题
下面程序的功能是计算n!
。
#include
intmain()
{
inti,n,s;
s=0;
printf("Pleaseentern:
");
scanf("%d",&n);
for(i=1,i<=n,i++)
s=s*i;
printf("%d!
=%d\n",n,s);
return0;
}
该程序中有哪些地方存在错误或不妥的地方?
请标记出来,并在旁边提出修改意见。
2.程序填空题
以下程序的功能是计算正整数2345的各位数字平方和,请在_________上填写正确内容。
#include
intmain()
{intn,sum=0;
n=2345;
do
{sum=sum+____________;
______________________;
}while(n>0);
printf("sum=%d\n",sum);
return0;
}
四、实验内容
1.编程题
1)在输入的一批正整数中求出最大者(输入0结束)。
2)从键盘输入一个数n,打印高度为2*n-1行的菱形,例如:
n=4时,打印图形如下:
2.附加题:
编写程序,计算
。
要求:
a)用单循环编写程序
b)使最后一项
的值小于等于给定的ε即可结束运算,例如假设ε=10-5(提示:
此时e=2.718279)
c)除了输出e以外,同时还要输出总的项数n
实验五函数程序设计
一、实验目的
1.掌握定义函数的方法及函数的调用过程(函数的调用格式、调用方式及被调用函数的使用说明);
2.掌握函数实参与形参的对应关系以及“值传递”的方式;
3.掌握函数的嵌套调用方法。
4.掌握全局静态变量和局部动态变量的概念和使用方法;
二、实验要求
1.复习函数的定义、调用和宏定义。
2.在程序调试中,要实现准备充分的测试用例。
3.编写程序,运行程序并记录运行结果。
注意程序的书写格式。
4.将源程序保存、上传并撰写本次实验心得体会
三、预习内容
1.改错题
1)下面程序在显示器上输出1-100之间的所有素数,源代码如下,程序中存在错误,请将其改正写在旁边。
#include
intisPrime(intn);
intmain()
{
inti,flag;
for(i=2;i<100;i++){
flag=isPrime(intn);
if(flag==1){
printf("%5d",i);
}
}
return0 ;
}
/**
2)函数功能:
判断一个数是否是素数,如果是,返回1。
如果不是,返回0
参数n:
需要判断的数
**/
intisPrime(intn)
{
inti;
for(i=2;i<=n/2;i++)
if(n%i==0)
break;
if(i>n/2)
return1;
else
return0;
}
该程序中有哪些地方存在错误或不妥的地方?
请标记出来,并在旁边提出修改意见。
2.程序填空题
以下函数的功能是:
求x的y次方,请填空。
#include
doublefun(doublex,inty) ;
intmain()
{
doublea=2.5;
intn=3;
printf(“a^3=%f”,fun(a,n));
return0;
}
doublefun(doublex,inty)
{
inti;
doublez;
for(i=1,______________;i returnz; } 四、实验内容 1.编程题 1)计算并输出 (要求: 阶乘使用函数实现) 2)若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数。 例如,6的因子之和为1+2+3=6,因此6与6为一对亲密数(即6自身构成一对亲密数);又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数。 编写程序,求500以内的所有亲密数对。 (要求: 求一个正整数的所有因子之和用函数实现) 2.附加题 已知, ,编写一程序,从键盘输入x,求s(x)的值(计算后面的20项的和,当x=1时,s=0.74682)。 (要求: 阶乘及幂运算分别使用单独的函数实现) 提示: 各个分项的值很大,注意函数类型 实验六数组程序设计 一、实验目的 1.掌握数组声明、数组初始化赋值、数组元素引用和数组输入输出的使用。 2.掌握字符数组和字符串函数的使用。 3.了解一些与数组相关的非数值计算方法,如查找、插入、删除和排序等。 二、实验要求 1.复习数组的定义、数组的输入输出和常用的字符串函数。 2.在程序调试中,要实现准备充分的测试用例。 3.编写程序,运行程序并记录运行结果。 注意程序的书写格式。 4.将源程序保存、上传并撰写本次实验心得体会 三、预习内容 1.改错题 下面程序是从键盘输入10个数,保存在一个数组中,然后将10个数在显示器上输出,源代码如下,程序中存在错误,请将其改正写在旁边。 #include intmain() { inta[10],i=0; for(i=0;i<10;i++) scanf("%d",a); for(i=0;i<10;i++) printf("%d",a); } 2.程序填空题 已知下面的程序是输入一个整数,判断该整数的位数,并依次输出各位数字。 请将程序补充完整。 #include main() { longnum; inta[10],i=0; scanf("%ld",&num); while(num! =0) { ______________________; ______________________; } printf("thisnumberis%dweishu.\n",i); for(i--;i>=0;i--) printf("%d",a[i]); } 四、实验内容 1.编程题 1)编程: 将一个字符串翻转,例如把字符串”abcd”翻转为”dcba”。 (要求: 翻转单独使用函数实现) 2)编程: 首先完成一个包含10个整型元素的数组的升序排序,然后完成最小和最大元素的位置互换。 (要求: 排序和交换分别用2个单独的函数完成) 2.附加题: 求从一个字符串中删除所有指定字符的其余字符串。 如字符串为“abcaca”,删除字符“a”后,为“bcc”。 (要求: 删除字符串中的指定字符要求使用函数实现) 实验七指针程序设计 一、实验目的 1.掌握指针变量的定义与引用。 2.掌握指针与变量、指针与数组的关系。 3.掌握用数组指针作为函数参数的方法。 4.正确使用指针操作数组元素。 二、实验要求 1.复习指针的定义、引用和指针与数组的关系。 2.在程序调试中,要实现准备充分的测试用例。 3.编写程序,运行程序并记录运行结果。 注意程序的书写格式。 4.将源程序保存、上传并撰写本次实验心得体会 三、预习内容 1.请上机运行下面程序,分析它的功能和运行结果。 (1). #include voidsub(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CB 上机 指导书