实验一 C程序的运行环境和运行方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言》实验指导书
2016年10月
实验一 C程序的运行环境和运行方法
一、实验目的
1.掌握所用的C语言环境的基本操作方法。
2.掌握编辑、编译、连接和运行C程序。
二、实验内容和要求
1.学习使用Visual C++6.0环境开发C程序。
(1)在磁盘上建立自己的文件夹,用于存放C程序,如“e:\cexam”。
(2)启动Visual C++6.0。
执行“开始”——“所有程序”——“Microsoft Visual Studio 6.0”——“Microsoft Visual Studio 6.0”命令,进入VC++编程环境,如图1 所示。
图1 Microsoft Visual Studio 6.0窗口
(3)新建C 程序文件。
执行“文件”——“新建”命令,单击如图2所示的“文件”选项卡,选中“C++Source File”;
图 2 新建文件
在“文件”文本框中输入文件名test1, 则C 源程序被命名为test1.cpp ,若想指定扩展名为.c ,则需在“文件”文本框中输入文件名test1.c ;在“目录”下拉列表框选择已经建立的文件夹,如,单击“确定”按钮,就新建了C 源程序文件,并显示编辑窗口和信息窗口,如图3所示,然后在编辑窗口中输入程序。
(4)保存程序。
在如图 3的界面输入程序代码。
由于完全是Windows 界面,输入及修改可借助鼠标和菜单进行,十分方便。
当输入结束后,执行“文件”——“保存”命令,保存源文件。
图 3 编辑源程序
(5)编译程序。
执行“组建”——“编译[test1.cpp]”命令,弹出消息框,如图 4所示,单击“是”
信息窗口
编辑窗口
按钮,开始编译,并在信息窗口中显示编译信息。
如果信息窗口中显示“test1.obj-0 error(s),0 warning(s)”,表示编译正确,没有发现错误和警告,并生成了目标文件test1.obj。
图 4 产生工作区消息框
如果显示错误信息,说明程序中存在严重的错误,必须改正,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口的提示分别予以纠正;如果显示警告信息,说明这些错误并未影响目标文件的生成,但通常也应该改正。
(6)连接程序。
执行“组建”——“组建[test1.exe]”命令,开始连接,并在信息窗口中显示连接信息。
如果信息窗口中出现“test1.exe-0 error(s),0 warning(s)”,表示连接成功,并生成了可执行文件test1.exe。
(7)运行程序。
执行“组建”——“执行[test1.exe]”命令,自动弹出运行窗口,如图5所示,显示运行结果。
其中“Press any key to continue”提示用户按任意键退出运行窗口,返回到VC++编辑窗口。
图 5 显示运行结果
(8)关闭程序工作区。
当一个程序编译连接后,VC++系统自动产生相应的工作区,以完成程序的运行和调试。
若想执行第二个程序时,必须关闭前一个程序的工作区,然后通过新的编译连接,产生第二个程序的工作区。
否则的话运行的将一直是前一个程序。
执行“文件”——“关闭工作区命令”,弹出的对话框如图 6所示,单击“是”按钮,关闭工作区。
图 6 关闭所有文档窗口
(9)打开文件。
如果要再次打开C源文件,可以执行“文件”——“打开”命令,在查找范围中找到正确的文件夹,调入指定的程序文件。
或是直接在文件夹中双击扩展名为.c或.cpp的C 语言源程序。
(10)查看C源文件和可执行文件的存放位置。
经过编辑、编译、连接和运行后,在文件夹e:\cexam和e:\cexam\Debug中存放着相关文件。
其中,源文件test1.cpp在文件夹e:\cexam中,目标文件test1.obj和可执行文件test1.exe都在文件夹e:\cexam\Debug中。
2、将书上1.4节简单的C语言程序输入,得到输出结果。
实验二简单C语言算法程序设计
三、实验目的
1.掌握所用的C语言环境的基本操作方法。
2.掌握编辑、编译、连接和运行C程序。
3.掌握C程序的数据类型、运算符、表达式和算法。
四、实验内容和要求
1.判断一个数n是否同时被3和5整除。
2. 在屏幕上显示下列图形:
* * * *
* * *
* *
*
3. 将例2.16和2.17的算法进行实操验证。
实验三顺序结构程序设计
一、实验目的
1.掌握基本输入输出函数、库函数的使用。
2.能够编程实现简单的结构化程序。
二、实验内容和要求
1.执行程序,写出运行结果。
#include <stdio.h>
void main()
{
float a = 9.1234567891234567890;
double b = 9.1234567891234567890;
printf("%f, %lf\n",a,b);
printf("%.15f,%.15lf\n",a,b);
};
2.运行程序,写出结果。
#include <stdio.h>
void main()
{float x1;
double y1 ;
scanf("%f %lf ",&x1,&y1) ;
printf("x1=%f,y1=%lf ",x1,y1) ;
}
程序运行时输入x的值123456789,输入y的值123456789。
3.输入三角形的三边长,求三角形面积。
实验四选择结构程序设计
一、实验目的
1.理解C语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2.掌握利用if结构实现选择结构的方法。
3.掌握利用switch结构实现多分支选择结构。
4.掌握switch语句中break语句的作用。
5.掌握使用断点调试程序的方法。
二、实验内容及要求
1.输入两个数,输出较大的数。
2.编写程序,用scanf函数输入一个年份,计算该年2月份有多少天。
闰年的条件为:年份能被4整除但不能被100整除,或者年份能被400整除。
3.输入五级制成绩(A-E),输出相应的百分制成绩(0~100)区间,要求使用switch
语句。
五级制成绩对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D(60~69)和E(0~59)。
实验五 循环结构程序设计
一、实验目的
1.掌握while 循环结构的用法。
2.掌握do-while 循环结构的用法。
3.掌握for 循环结构的用法。
二、实验内容及要求
1.编写程序,计算2+4+6+…+100的和。
2. 打印所有水仙花数,水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
例如153是水仙花数。
3. 输入一个正整数n ,计算下式的和求e 的值(保留4位小数)。
e=1+!11+!21+!31+……+!
1n
输入输出示例: Input n:10 e=2.7183
实验六数组程序设计
一、实验目的
1.熟练掌握一维数组编程的方法。
2.熟练掌握二维数组编程的方法。
3.掌握字符数组的使用方法。
4.熟练掌握排序算法,进一步理解模块化程序设计的方法。
二、实验内容及要求
1. 从键盘输入任意10个数,计算其中所有非负数之和。
2.输入7个整数,将它们从大到小排序后输出。
3.输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。
输入输出示例:
Enter a string:123
Digit=123
实验七函数程序设计
一、实验目的
1.掌握C语言中定义函数的方法,2.熟练掌握使用函数编写程序。
3.掌握通过“值传递”调用函数的方法。
二、实验内容及要求
1.编写程序,设计一个判别素数的函数,在主函数中输入一个整数,调用这个判别函数,并输出是否为素数的信息。
2. 定义函数void sort(int a[],int n),用冒泡法对数组a中的元素降序排列。
3. 编一个函数void fun(char tt[]),它的功能是:将字符串tt中的大写字母都改为对应的小写字母,其它字符不变。
实验八 指针程序设计
一、实验目的
1.掌握使用指针变量的方法。
2.掌握带有指针形参的函数的定义及调用方法。
3.掌握结构体变量使用。
二、实验内容及要求
1 运行下列程序,写出运行结果。
#include "stdio.h "
main()
{ int a[5],*p,j;
for(j=0;j<5;j++) a[j]=j+1;
p=a;
for(j=0;j<5;j++) printf("*(p+%d)=%d\n ",j,*(p+j));
}
2 函数void fun(float *sn,int n)的功能是:根据以下公式计算S ,计算结果通过形参指针sn 传回;n 通过实参传入,n 的值大于等于0。
请填空,并编写出主函数,使之成为完整程序,上机调试运行。
1
217151311+⋯+-+-=n S void fun(float *sn,int n)
{ float s=0.0,w,f=-1.0;
int i=0;
for (i=0;i<=n;i++); { f= * f;
w=f/(2*i+1);
s+=w;
} =s;
}
3 想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的?
#include "stdio.h"
void s *p1,int *p2)
{ int *p;
p=p1;p1=p2;p2=p;
}
void main()
{ int a,b; int *pt1,*pt2 ;
scanf("%d%d",&a,&b);
pt1=&a; pt2=&b ;
if(a<b) s);
printf("%d,%d \n",*pt1,*pt2) ;
}
上机调试此程序。
如果不能实现题目要求,指出原因并修改之。
4 分析并验证以下程序的运行结果。
#include "stdio.h"
main()
{ char str[]="ABC",*p=str;
printf("%c\n",*(p+1));
}
5 分析以下程序运行结果,说明程序的作用。
#include "stdio.h"
char *strc(char *s1,char *s2)
{ char *p=s1;
while(*s2!='\0') { *p++=*s2++; }
return s1;
}
main()
{ char s1[30]="computer ok!",s2[]="language",*pt;
pt=strc(s1,s2);
printf("%s\n",pt);
}。