c实验指导12Word下载.docx
《c实验指导12Word下载.docx》由会员分享,可在线阅读,更多相关《c实验指导12Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
编写C源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。
C源文件的扩展名为“.c”。
3.编译程序。
编译源程序,检查语法错误,生成目标代码文件。
目标代码文件的扩展名为“.obj”。
4.连接程序。
将一个或多个目标程序与库函数进行连接后,生成一个可执行文件。
可执行文件的扩展名为“.exe”。
5.运行程序。
执行可执行文件,分析运行结果。
若有算法错误,可进一步进行修改、编译、调试。
在编译、连接和运行程序的过程中,都有可能出现各式各样的错误,要不断地修改源程序,重复以上过程,直到获得正确的结果为止。
(二)VC上机操作方法
VC++6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发Windows环境下的C程序而设计的工具。
通过该集成环境,程序员可以观察和控制整个开发进程。
使用VC++6.0调试C程序要经过以下几个步骤:
1.启动VC++6.0系统
2.输入和编辑源程序
在源程序编辑窗口输入例1.1中的源程序代码。
3.保存源程序文件
选择“File”菜单中的“Save”命令,将源程序保存到相应的文件中。
4.编译和连接
选择“Compile”菜单中的“Compile”或“Build”命令,将源程序编译或编译连接,产生可执行文件。
系统自动加上文件扩展名“.exe”。
在编译和连接期间,若出现错误,则在信息输出窗口给出错误或警告信息。
改正错误后,重新编译或编译连接源程序,直到没有错误为止。
5.运行
选择“Run”菜单中的“Run”命令,则在TC集成环境的控制下运行程序。
被启动的程序在控制台窗口下运行,与Windows中运行DOS程序的窗口类似。
注意:
也可以按快捷键“Ctrl+F5”,直接编译与运行源程序。
6.退出VC++6.0集成环境
选择“File”菜单中的“Exit”命令,可以退出集成环境。
(三)验证分析程序
1.设计一个C++程序,输出以下信息:
***************
Hello!
解:
#include<
stdio.h>
voidmain()
{
printf("
***************\n"
);
printf("
Hello!
\n"
***************"
<
}
运行结果:
2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。
floats,r;
请输入圆的半径:
\n"
cin>
>
r;
s=3.14159*r*r;
圆的面积为:
%f\n"
s);
请输入圆的半径:
5
圆的面积为:
78.5397
三、完成实验项目
1.设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。
2.输入一个球的半径,求其表面积和体积。
实验二结构化程序设计
1.掌握数据类型的定义方法、运算符和表达式;
2.掌握数据控制台输入与输出;
3.掌握if语句、witch语句、while、do~while和for语句的使用方法。
二、内容:
1.编写程序,从键盘输入一个三位正整数,将其倒序输出。
例如:
输入861,输出为168。
#include<
{
intn,i,j,k;
printf("
输入一个三位正整数n:
"
scanf("
%d"
&
n);
i=n%10;
//i存放个位数
n=(n-i)/10;
//去掉个位数
j=n%10;
//j存放十位数
n=(n-j)/10;
//去掉十位数
k=n;
//k存放百位数
n=i*100+j*10+k;
逆转数为:
%d\n"
n);
2.编写程序,求两个自然数m和n的最大公约数和最小公倍数。
分析:
最大公约数就是能同时整除m和n的最大正整数,可用欧几里德算法(也称辗转相除法)求解。
应用欧几里德算法计算两个数的最大公约数的方法是:
求两个数(m、n)相除的余数r(r=m/nm>
n),当余数不为零时,m取n的值,n取r的值,再求两个数相除的余数,反复进行直到余数为零,除数n是最大公约数。
最小公倍数=m×
n/最大公约数。
#include<
intm,n,e,r,t;
enterm,n:
%d%d"
m,&
t=m*n;
r=m%n;
while(r!
=0)
{
m=n;
n=r;
r=m%n;
}
e=t/n;
最大公约数为:
%d\n"
最小公倍数为:
e);
3.编写程序打印如图4-2所示蝶形图形。
此图形为上下对称结构,用-3~3的整数标识行号i,则每行字符“B”的个数可表示为6*|i|+1。
每行字符“B”前空格的个数随着|i|的增大而减少,空格的个数要大于0。
BBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBB
BBBBBBBBB
BBB
图4-2蝶形
inti,j,k,d;
for(i=-3;
i<
=3;
i++)
{
d=i;
if(i<
0)d=-i;
for(j=1;
j<
=10-3*d;
j++)
printf("
"
for(k=1;
k<
=6*d+3;
k++)
B"
}
\n"
1.将三位正整数倒序输出
2.编写程序,实现下列函数功能:
3.编写程序打印如图4-2所示蝶形图形。
实验三函数
一、目的:
1.掌握函数的定义方法、函数实参和形参的对应关系和值传递的方式、函数的嵌套调用和递归调用的方法、
2.全局和局部变量动态变量,静态变量的概念和使用。
二、内容
1.编写程序,输入m和n(n>
m),求的值。
:
已知
根据公式,只要自定义一个函数计算阶乘,即可通过函数调用求出的值。
阶乘函数定义如下:
doublefact(intk)
intp=1;
if((k==0)||(k==1))
returnp;
else
{
for(inti=1;
=k;
i++)
p=p*i;
intm,n;
doublec;
l1:
pleaseinputm,n:
if(n<
m){
nmustbiggerthanm!
pleasereinput:
gotol1;
}
c=fact(n)/(fact(m)*fact(n-m));
c=%f\n"
c);
2.求出100~200之间的所有素数,输出时一行打印五个素数。
判断一个数a是否为素数,只需将它整除以2~(取整)即可,如果都不能整除,则a就是素数。
intsushu(intn)
intm,flag=1;
//printf("
请输入要测试的整数:
//scanf("
for(m=2;
m<
=n/2;
m++)
if(n%m==0)
flag=0;
/*设置非素数标志*/
break;
/*一旦找到一个m,断定该n非素数,不需再验证*/
if(flag)
return1;
else
return0;
intn,k;
k=0;
\nTheprimersfrom100to200is:
for(n=101;
n<
=200;
n+=2)/*仅测试100~200间的奇数*/
if(sushu(n))
%4d"
k++;
if(k%5==0)
程序运行后,输出,:
101103107109113
127131137139149
151157163167173
179181191193197
199
1.已知5个学生4门课的成绩,要求主函数分调用各函数实现:
(1)找出每门课成绩最高的学生序号;
(2)找出课程有不及格的学生的序号及其各门课的全部成绩;
(3)求每门课程的平均分数,并输出;
(4)将学生按总分高低排序。
编写函数求:
实验四数组
1.掌握一维数组和二维数组的定义、赋值、字符数组和字符串数组的使用
2.掌握和数组有关的算法特别是排序算法。
二、内容
例1将下列10个数按由小到大的顺序排列输出。
15,8,0,-6,2,39,-53,12,10,6
这是对数组中元素的排序问题。
对数据进行排序的算法是一种常用的重要算法。
排序的方法很多,这里介绍两种比较简单的排序方法:
选择排序和冒泡排序。
(1)选择排序
选择排序的基本思想(由小到大的顺序排列):
在一组数据中选择一个比较小的数放在排头,在剩余的数据中再选择一个比较小的数放在次排头,…,按照这种方法一直排下去,直到剩下最后一个数为止。
假设有n个数据,要排序n-1轮。
以数列:
15,8,0,-6,2,39,这6个数为例,下面给出这6个数的选择排序过程。
第五轮:
①15,39
结果:
15,39
选择排序的最后结果为:
-6,0,2,8,15,39。
实现选择排序的程序为:
#