C语言上机指导Word格式文档下载.docx
《C语言上机指导Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言上机指导Word格式文档下载.docx(67页珍藏版)》请在冰豆网上搜索。
●Edit-----编辑程序
●Run------运行程序,或使用快捷键CTRL+F9
●Compile------编译,或使用快捷键F9
●Project-------项目
●Options--------选项
●Debug---------调试
●Break/Watch--------窗口
1、按“F10”键,光标在屏幕顶端出现:
用键盘上的“←”和“→”键来移动屏幕上的光标,光标指到哪一个命令时,按回车键就表示执行该命令。
开始时,光标指向“FILE”,表示对文件进行操作。
按回车键,屏幕上“FILE”下面出现一个窗口。
它是一个子菜单,提供多项选择。
用“↓”键将光标移到“LOAD”或“NEW”处,按回车键,表示要输入源程序。
屏幕又出现一个小窗口,所图所示。
要你指定文件名:
f.c↙
如果原来不存在此文件名,则表示建立一个新文件。
如果已存在此文件,则将此文件调入并显示在屏幕上。
此时自动转为编辑(EDIT)状态。
2、编辑源文件。
根据需要输入或修改源程序。
3、编译源程序。
按“F9”键即可进行编译、连接。
在编译和连接过程中,如果发现错误,编译信息窗口中会显示警告和错误信息(包括错误
说明和位置)。
并将错误所在的行反相显示,自动进入编辑状态。
用户只要按一下回车键,就可对出错程序行进行编辑修改。
全部修改完成后,还要重新编译和连接。
如此反复进行到不出现错误为止。
4、运行源程序:
用“→”键将光标移到“RUN”,按回车键或直接按“Ctrl+F9”键进行运行。
执行已编译好的目标文件,此时,屏幕上会显示出程序应输出的运行结果。
如果程序需要输入数据,则应在此时输入所需数据,然后接着执行程序,输出结果。
5、查看运行结果:
用户需要看清屏幕显示的结果,可按AltF5,进入用户屏幕,可阅读程序运行结果,看清后,按任一键可返回TC集成环境。
如果想再修改源程序,可以重新执行步骤1,并打开源程序即可。
6、保存文件:
选择文件主菜单FILE中的SAVE项或直接按F2键。
如果要另存为另一文件名,则选writeto项。
7、取文件:
选择文件主菜单FILE中的LOAD项或直接按F3键。
屏幕上提示用户输入文件名。
有两种方法可以输入文件名:
①如果知道文件名,可以直接键入该文件名;
②如果对文件名没有把握,直接按回车键,Turboc会显示在当前目录下所有带.C扩展名的文件,如图所示:
用箭头键将光标亮区移到所需文件上,并按回车键选中。
确定文件名后,文件内容会出现在编辑窗口内,即可对文件进行编辑操作。
第二部分在VC系统中编译和运行c语言
本部分主要介绍在VisualC++中编译和运行单个C程序的情况。
1、打开VC,出现如图2.1所示界面:
图2.1VC初始界面
2、打开“file”(文件)菜单,选择“new”(新建),会出现“new”(新建)对话框,如
图2.2所示:
图2.2“new”对话框
3、在“new”(新建)对话框中选择“Files”(文件)选项卡,选择“C++SourceFile”,如图2.3所示:
图2.3选择“C++SourceFile”
4、单击“
”按钮,即可在出现的程序编写窗口中编写源程序了,注意:
此时程序文件名和存放位置由系统默认,如图2.4所示:
程序编写窗口
图2.4程序编写窗口
5、若要确定程序文件名为“TEST1.CPP”(VC中编写的源程序扩展名为.CPP),存放位置为“D:
\CPrograms”,可以在图2.3中单击右边的“
”按扭,在出现的“ChooseDirectory”(选择目录)对话框中选择文件存放路径,如图2.5所示。
图2.5选择程序存放位置
6、在图2.3右边的“file”(文件)文本框中写入文件名“TEST1”,如图2.6所示。
文件名
存放位置
图2.6确定程序文件名
7、单击“
”按钮,即可在出现的窗口的空白区域中编写源程序了,设程序代码如图2.7所示。
图2.7
8、在程序输入完毕后,单击工具栏上的按钮组“
”中的“
”按钮或选择“build”菜单中的“compileTest1.cpp”(Test1.cpp为文件名),在出现的对话框中单击“
”按钮,即可对该程序文件进行编译。
在编译过程中,如果发现错误,窗口下方的编译信息窗口中会显示错误信息(包括错误说明和位置),如图2.8所示。
错误信息:
丢失“;
”
图2.8编译出错信息
9、如果程序没有语法错误,编译通过,生成.obj文件,编译信息窗口中会显示信息:
Compiling...
Test1.cpp
Test1.obj-0error(s),0warning(s)
10、单击工具栏中按钮组“
”按钮,或选择“build”菜单中的“BuildTest1.exe”项,就会连接生成一个可执行文件“Test1.exe”,编译信息窗口中会显示信息:
。
Linking...
Test1.exe-0error(s),0warning(s)
11、单击工具栏中的“
”按钮或选择“build”菜单中的“ExecuteTest1.exe”,即可执行文件“Test1.exe”,执行效果如图2.9所示:
注意:
当一个程序编译调试并执行完成后,如果还要再编写另一个程序,应先选择“File”菜单中的“CloseWorkspace”项,将当前工作空间关闭,再从第一步开始,重新建立一个程序及其工作空间。
而不能在没有关闭原来的工作空间的情况下再新建一个“C++SourceFile”,这样容易出错。
如果原来的程序只是一些简单的、验证性的程序,并且又不需要保存的情况下,可以不用关闭工作空间,只需在程序编辑窗口中将原来的程序删除,重新编写新程序即可。
第三部分上机指导
实验一
实验名称
C程序的运行环境和运行C程序的方法
实验日期
实验目的
1.了解TurboC2.0系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C程序的特点。
实验内容
1、分析下面程序,预测其运行结果,并上机验证你的预测。
main()
{
printf(“*\n”);
printf(“***\n”);
printf(“*****\n”);
printf(“*******\n”);
}
运行结果为:
2、下面是一个加法程序,程序运行时等待用户从键盘输入两个整数,然后求出它们的和并输出。
观察运行结果,上机验证该程序。
{
inta,b,c;
printf(“Pleaseinputa,b:
”);
scanf(“%d,%d”,&
a,&
b);
c=a+b;
printf(“%d+%d=%d\n”,a,b,c);
3、下面的程序是用来求三个数的平均值,请将程序补充完整,并上机验证该程序。
main()
{
floata,b,c,aver;
printf(“Pleaseinputa,b,c:
scanf(“%f%f%f”,&
b,&
c);
;
printf(“Theaveragevalueis:
%f\n”,aver);
实验人员
实验地点
教师
评语
优
良
中
及格
不及格
批改日期
实验二
数据类型、运算符和表达式
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2.掌握不同类型的数据之间赋值的规律。
3.学会使用C的有关算术运算符以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
4.进一步熟悉C程序的编辑、编译、连接和运行的过程。
1、写出下面程序的输出结果:
intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(“%f\n”,x);
2、要将“China”译成密码,密码规律是:
用原来字母后的第4个字母代替原来的字母。
例如:
‘A’后面第4个字母是‘E’,则密码中用‘E’代表‘A’。
因此,“China”译为密码是“Glmre”。
试编一程序,用赋初值的方法使c1、c2、c3、c4、c5五5个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5的值分别变为’G’、’l’、’m’、’r’、’e’,并输出。
3、写出程序运行的结果。
{inta=10,x=5,y=6;
a+=a*=6;
x=y++;
y=++x;
a=(x++)+y;
printf(“%d,%d,%d”,a,x,y);
4、以下程序的功能是实现将两个数进行对调的操作,如:
读入后,a=10,b=20;
交换后a=20,b=10。
(1)使用一个中间变量t,将a,b的值进行交换,请将程序补充完整:
#include<
stdio.h>
inta,b,t;
printf(“Entera,b:
scanf(“%d%d”,&
;
;
printf(“changeda,b:
printf(“a=%d,b=%d\n”,a,b);
(2)如果不借助中间变量,如何将a,b的值进行交换?
请将程序补充完整:
inta,b;
a=;
b=;
printf(“changeda,bis:
实验三
顺序结构程序设计
1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3.熟悉顺序结构程序中语句的执行过程。
4.能设计简单的顺序结构程序。
1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积.用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
编写程序实现。
2、输入三角形的三边长,求三角形的面积。
输出时要有格式说明,取2位小数。
注:
为简单起见,设输入的三边长a,b,c(如a=3,b=4,c=5)能构成三角形。
求三角形的面积公式为:
area=
其中s=(a+b+c)/2;
3、编程序求一元二次方程
+bx+c=0的解。
用a=3,b=-12,c=-15来验证结果。
输出时要求有文字说明,格式要直观。
思考题:
第2题若三角形的三个边不能构成三角形,该如何处理?
第3题中的一元二次方程
的三个系数若出现b*b-4*a*c<
0的情况,该如何处理?
程序的跟踪调试和变量值的监视
在TurboC环境中单步跟踪调试(逐条语句跟踪调试)可按功能键F7或F8进行,要监视某变量的值时,按Ctrl+F7,然后输入相应的变量名。
就可在监视消息窗口中查看到该变量的值。
如果要逐段运行程序,可采用如下方式:
●让程序每次运行到光标所在处。
首先将光标移到某条语句,然后按功能键F4。
●首先利用Ctrl+F8在各行光标处设置若干断点,然后按Ctrl+F9从程序的第一条语句运行到设置的第一个断点,再按Ctrl+F9从设置的第一个断点运行到设置的第二个断点。
实验四
选择结构程序设计
1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。
3.熟练掌握if语句和switch语句。
4.结合程序掌握一些简单的算法。
5.学习跟踪调试程序。
1、下面的程序是从键盘输入一个字符,把它归类为字母字符(a-z或A-Z)、数字字符(0-9)、还是其它字符。
请分析此程序,并在每个语句后面加上注释。
charc;
printf(“Enterasinglecharacter:
\n”);
scanf(“%c”,&
if((c>
=’a’&
&
c<
=’z’)||(c>
=’A’&
=’Z’))
printf(“It’sanalphabeticcharacter.\n”);
else
if(c>
=’0’&
=’9’)
printf(‘It’sadigit.\n”);
elseprintf(“It’saspecialcharacter.\n”);
2、给一百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’,‘E’。
90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
3、输入3个整数,输出其中最大的数。
4、给一个不多于3位的正整数,要求:
求出它是几位数;
分别打印出每一位数字;
按逆序打印出各位数字。
原数为321,应输出123。
5、将实验3中第3题改为求解任意的一元二次方程的根。
a,b,c由键盘输入(考虑解的各种情况)。
实验五
循环结构程序设计
1.熟练掌握用while语句,do-while语句和for语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现一些常用的算法(如穷举、迭代、递推等)。
3.理解循环结构程序段中语句的执行过程。
4.进一步学习调试程序。
1.阅读下面程序,写出运行结果:
inti,j,k=0,m=0;
for(i=0;
i<
2;
i++)
for(j=0;
j<
3;
j++)k++;
k-=j;
m=i+j;
printf(“k=%d,m=%d\n”,k,m);
2.下面的程序是用“辗转相除法”求出两个正整数的最大公约数。
请填空。
注:
求最大公约数的算法如下:
1)求出m除以n的余数,存放在变量r中;
2)若余数r为0则执行步骤6,否则执行步骤3;
3)把除数作为新的被除数;
把余数作为新的除数;
4)求出新的余数r;
5)重复步骤2到4;
6)输出n,n即为最大公约数。
intm,n,r;
printf(“PleaseEnterm,n:
scanf(“%d%d”,);
printf(“m=%d,n=%d\n”,m,n);
r=;
while()
{m=;
n=;
printf(“H.C.F=%d\n”,n);
3。
打印出所有的“水仙花数”。
所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为153=13+53+33。
4、用迭代法求x=
求平方根的迭代公式为:
=
要求前后两次求出的x的差的绝对值小于10-5。
5.编写程序输出如下图案:
*
***
*****
*******
实验六
数组(4学时)
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2、掌握字符数组和字符串函数的使用;
3、掌握与数组有关的算法:
①排序算法:
起泡法、选择法。
②查找:
顺序查找、折半查找③统计④将数组逆序存放⑤删除
1.阅读下面的程序,写出运行结果:
{inti,j,m,n,a[3][4]={43,32,22,12,15,18,56,78,33,17,19,42};
m=n=0;
for(i=0;
for(j=0;
4;
j++)
if(a[m][n]>
a[i][j]){m=i;
n=j;
printf(“a[%d][%d]=%d,m=%d,n=%d\n”,m,n,a[m][n],m,n);
该程序的功能是:
2.从键盘输入10个成绩,然后求出最高成绩和它在数组中的位置。
分析运行结果。
要求掌握用一维数组求若干个元素的最大(小)值的方法。
掌握顺序查找的思想。
3.从键盘输入一个字符串,将其中的小写字母改为大写字母,其它字符不变。
并输出这个字符串,分析运行结果。
用字符数组处理。
4.编程序:
从键盘输入10个成绩,将这10个成绩按降序排序。
并输出排好序的10个成绩。
掌握对n个数进行排序的思想
5.从键盘上输入若干个学生(小于20人)的成绩,计算出平均成绩,并统计输出低于平均分的学生成绩及人数,当输入负数时结束输入。
6、编程序:
从键盘输入一个4行2列的矩阵,将其行列互换,并输出互换后的矩阵。
7、假设a数组中的数已按大小顺序存放,以下程序把a数组中相同的数删得只剩一个,然后以每行5个数的形式输出数组中的数。
请填空:
inta[10],i,j,n;
10;
scanf(“%d”,;
//该语句是将10个数读入到a数组中
n=i=9;
while()
{if(a[i]==a[i-1])//相同则删除
{
for(j=;
=n;
j++)
a[]=a[j];
n;
i;
n;
{if()printf(”\n”);
printf(“%3d”,a[i];
实验七
函数
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递“的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握数组作为函数参数的调用方式。
1、写一个判素数的函数intfun(intx),判断x是否是素数,若是则函数返回1,否则返回0。
在主函数中输入一个整数,输出是否素数的信息。
intfun(intx)
intn;
printf(“Pleaseinputaintger:
scanf(“%d”,&
n);
if(fun(n))printf(“%disprime!
\n”,n);
elseprintf(“%disnotprime!
2、将实验六的第4题写成一个函数sort(inta[]),要求在主函数中从键盘输入10个成绩,调用sort函数将这10个成绩按降序排序。
并在主函数中输出排好序的10个成绩。
3、将实验六的第6题写成一个函数change(inta[][2]),要求在主函数中从键盘输入一个4行2列的矩阵,用函数change(inta[][2])实现将其行列互换,并在主函数中输出互换后的矩阵。
4、已知二阶Fibonacci数列:
定义递归函数求Fib(n)。
5、掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。
写出下面程序的输出结果,并上机运行:
(1)inta=3;
{ints=0;
{inta=5;
s+=a++;
printf(“%3d”,s);
(2)voidfun()
{staticinta=0;
a+=2;
printf(“%d,”,a);
{intc;
for(c=1;
c<
c++)fun();
实验八
指针
1.掌握指针的概念,会定义和使用指针变量;
2、能正确使用数组的指针和指向数组的指针变量
3、能正确使用字符串的指针和指向字符串的指针变量;
4、能正确使用指向函数的指针变量;
5、正确掌握取地址运算符