C语言程序设计实验指导书E4.docx

上传人:b****6 文档编号:3639539 上传时间:2022-11-24 格式:DOCX 页数:18 大小:26.54KB
下载 相关 举报
C语言程序设计实验指导书E4.docx_第1页
第1页 / 共18页
C语言程序设计实验指导书E4.docx_第2页
第2页 / 共18页
C语言程序设计实验指导书E4.docx_第3页
第3页 / 共18页
C语言程序设计实验指导书E4.docx_第4页
第4页 / 共18页
C语言程序设计实验指导书E4.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验指导书E4.docx

《C语言程序设计实验指导书E4.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书E4.docx(18页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验指导书E4.docx

C语言程序设计实验指导书E4

实验一C程序环境认识

――掌握在集成环境中编辑、编译、连接和运行C语言程序的方法

(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。

一,实验目的:

1,掌握TC的使用.

2,理解C程序的结构.

3,掌握C程序设计,调试,运行的步骤,方法.

4,理解最简单的C程序设计方法.

二,实验准备:

1,计算机基本操作练习.

2,TC软件使用预习.

3,设计出习题1.5、习题1.6的程序.

三,实验内容:

1.VC6.0或TC程序运行环境;

2.程序调试的全部过程;

3.菜单的用法;

4.常用功能键的用法。

四,实验要求:

1.认真阅读和掌握和本实验相关的教材内容;

2.认真阅读和掌握本章相关内容的程序,例1.1、例1.2、例1.3;

3.上机运行程序;

4.保存和打印出程序的运行结果,并结合程序进行分析;

5.按照你对运行环境的操作需要,编写一简单C程序并运行,打印出文件清单和运行结果。

五,实验步骤:

1,开机,启动TC.

(1)开机.

(2)进入TC目录.

(3)启动TC.

命令格式:

TC[文件名[.扩展名]]

说明:

若缺省文件名,则直接启动.进入TC界面,并显示版本信息.此时按ESC键进入编辑状态.

若给定文件名,(缺省扩展名则默认为.C)则打开该文件(若不存在则新建该文件)进行编辑.

2,TC的使用

(1)启动TC后,进入TC的界面.该界面分为四部分:

菜单区,编辑区,信息区,提示行.

A,菜单区:

TC界面的最上面一行,是TC的主菜单.包括8项:

File文件操作

Edit编辑操作

Run运行

Compile编译

Project工程(项目)

Option选项

Debug调试

Break/Watch中断/监视

每个菜单项下都包含有各项具体功能,用户可以通过选择,执行相应的功能.

B,编辑区.TC界面的主要部分,由标题Edit,状态行和文本编辑区域组成.状态行中指示光标所在行,列.现在是否处于插入状态(若有Insert标志表示处于插入状态,没有则处于改写状态)以及正在编辑的文件名.

C,信息区.由标题message和信息显示区域组成,用来显示编译文件后的错误.单步执行时要监测变量的值等信息.

D,提示行.TC界面的最下面一行,用于提示用户一些最常用的操作:

F1――帮助,F5――窗口的缩放,F6――窗口的切换,F8――单步执行程序,F9――编译连接,F10――激活主菜单.

(2)菜单的操作

A,激活菜单F10或Alt

B,移动光条方向键

C,选择某项回车

D,放弃选择ESC

E,主菜单项的直接选中Alt―高亮度的字符

如:

要选中File按Alt―F

F,子菜单的直接选中选中主菜单项后,直接按高亮度的字母

如:

选中File后,要选中Save按"s"Ⅶ.部分快捷键(直接按该键就会击活菜单项具体的功能)

除前面提示行中列出的以外,常用的还有:

F2――保存

F3――装入文件

F4――从坐标所在位置单步执行

F7――单步跟踪

Alt-F1:

查看最近一次的帮助信息

Alt-F3:

选择文件装入

Alt-F5:

查看运行结果

Alt-X:

退出TC

Ctrl-F1:

查看与光标所在位置内容相关的帮助信息

Ctrl-F2:

取消单步执行

Ctrl-F8:

设置断点

Ctrl-F9:

编译,连接并运行

(3)文件操作

A,新建文件可采用以下方法:

(a)在启动TC时不带文件名,则系统默认为NONAME.C,存盘时再输入文件名.

(b)启动TC时带新文件名.

(c)在TC环境下选择File下的New.

B,打开文件可采用以下方法:

(a)启动TC时带文件名.

(b)在TC环境下选择File下的Load,再输入文件名.

(c)以通过Load打开过的文件再次打开,可选择File下的Pick,进行选择.

C,保存文件可采用以下方法:

(a)选择File下的Save,存盘.若原文件名是NONAME.C,则存盘时还要输入文件名.

(b)选择File下的Writeto,输入文件名,则将文件换名存盘.

(4)编辑操作

TC采用的是全屏幕编辑器,即凡输入过内容的地方都可将光标移到该处直接修改.

A,移动光标:

左移一个字符→

右移一个字符←

上移一行↑

下移一行↓

移动到行首Home

移动到行末End

向下翻页PageDown

向上翻页PageUp

移动到窗口左上角Ctrl-Home

移动到窗口右上角Ctrl-End

移动到文件头Ctrl-PageUp

移动到文件尾Ctrl-PageDown

B,删除内容:

删除光标前的字符Backspace(退格)

删除光标位置上的字符Delete(del)

删除一行Ctrl-Y

C,块操作:

定义块首Ctrl-KB定义块尾Ctrl-KK

块复制Ctrl-KC块移动Ctrl-KV

块删除Ctrl-KY块取消Ctrl-KH

(5)C程序的调试,运行

A,输入程序

B,编译,运行形成可执行文件

选择Compile下的

CompiletoOBJ编译生成目标文件

Compile/linkEXEfile将目标文件连接成可执行文件

Compile/makeEXEfile编译直接生成可执行文件

(程序输入后,用快捷键F9即表示makeexefile,完成编译和连接).

C,执行

选择Run下的Run(Ctrl-F9).

D,查看结果

运行按Alt-F5,查看后按任意键返回.

(6)退出TC

选择File下的Quit或直接按Alt-X.

3.简单的C程序设计,调试,运行.

六,实验报告:

1,源程序.

2,调试过程中出现的错误及修改情况.

3,实验结果.

4,实验的感受及体会.

实验二顺序结构程序及基本I/O

(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。

一,实验目的:

1,掌握C语言中使用最多的一种语句――赋值语句的使用.

2,掌握数据的输入输出方法,能正确使用各种格式转换符.

二,实验准备:

1,复习C语言的赋值运算符"=",同时区分"="和"=="的区别.

2,复习printf和scanf的格式及要求.

3,源程序.

三,实验步骤及内容:

1,输入并运行以下程序:

main()

{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,e=%6.2f\n",a,b,c1,c2,d,e);

printf("f=%15.6f,g=%15.2f\nm=%ld,n=%ld\n

p=%u,q=%u\n",f,g,m,n,p,q);}

在以上基础上,做以下改动:

(1)将程序第8―13行改为

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;

运行程序,分析结果.

(2)在

(1)的基础上将printf语句改为:

printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.6f\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);}

(3)将p,q改用%o格式符输出.

(4)改用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型数据)分析运行结果.

2,程序填空

(1)输入一球体的半径求球体的体积.

____________________________________

main()

{

doubler,v;

printf("inputr:

");

scanf("_d%______",&r);

v=_4/3.0________*PI*_r*r*r________;

printf("=%.2lf\n",v);

}

问题:

第3个空白处填写4/3是否合理,为什么?

答:

不合理,因为那样就不精确了。

(2)任意输入一个整数X,求它的平方根.

提示:

平方根函数在库函数math.h文件中定义,他的格式为:

doublesqrt(doublex)

__#include_____________________

main()

{intx;

printf("Inputx:

");

scanf("%d",_&x_______);

printf("sqrt(x)=%.2lf\n",_sqrt(x)___________);

}

3,运行程序并回答问题

#include 

main()

{intn,x,y,z;

printf("请输入一个不大于1000的整数:

");

scanf("%d",&n);

x=n/100;

y=(n-x*100)/10;

z=(n-x*100-y*10);

printf("\n%d%d%d\n",x,y,z);

}

问题:

此程序的功能是什么你能用其他方法实现同样的功能吗请上机调试.

4,编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数输出这两个字符.(即P90习题3.8,附带的三道小题也需回答)

四,实验报告:

1,源程序.

2,调试过程中出现的错误及修改情况.

3,实验结果.

4,根据实验结果分析原有程序和修改后的程序的差别.

5,实验的感受及体会.

实验三选择结构程序设计

(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。

一,实验目的:

1,了解C语言表示逻辑量的方法(以0代表"假",以1代表"真").

2,学会正确使用逻辑运算符和逻辑表达式.

3,熟练掌握if语句和switch语句.

二,实验准备:

1,复习关系,逻辑,条件运算符和表达式.

2,复习if语句的三种形式.

3,复习if语句的嵌套并能够正确分析.

4,复习多分支选择switch语句.

5,源程序.

三,实验步骤及内容:

1,运行程序并回答问题

main()

{inta,b,max,min;

scanf("%d%d",&a,&b);

if(a>b)

{max=a;min=b;}

else

{min=a;max=b;}

printf("max=%d,min=%d\n",max,min);

}

问题:

a,此程序的功能是什么答:

比较两个数的大小,先输出大的后输出小的。

b,请用条件表达式语句(?

:

)修改程序使之完成相同的功能.

2,输入一个不大于4位的正整数,判断它是几位数,然后输出各位之积.

main()

{intx,a,b,c,d,n;

printf("请输入个不大于4位的正整数X:

");

scanf("%d",&x);

if(x>__999____________)

n=4;

elseif(x>__99____________)

n=3;

elseif(x>____9__________)

n=2;

else

n=1;

a=x/1000;/*x的个,十,百,千位分别用d,c,b,a表示*/

b=_x/100_____________________;

c=_x/10_____________________;

d=_x_____________________;

swith(_n__)

{

case4:

printf("%d*%d*%d*%d=%d\n",a,b,c,d,a*b*d*c);

___break__________________________;

case3:

__printf("%d*%d*%d=%d\n",a,b,c,a*b*c)___;

___break__________________________;

case2:

_printf("%d*%d=%d\n",a,b,a*b)____;

___break__________________________;

case1:

__printf("%d*%d=%d\n",a,a____;

___break__________________________;

}

}

3,编程

(1)

解答P112习题4.4

(2)

解答P112习题4.5

(3)

解答P112习题4.6

(4)

解答P113习题4.8

(5)

解答P113习题4.10

四,实验报告:

1,源程序.

2,调试过程中出现的错误及修改情况.

3,实验结果.

4,实验的感受及体会.

实验四循环控制

(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。

(实验课后的下一周的周三,请班长分别收好预习报告和实验报告,交电气学院403室。

一,实验目的:

1.熟悉用while语句,do―while语句和for语句实现循环的方法.

2.掌握在程序设计中用循环的方法实现各种算法(如穷举,迭代,递推等).

二,实验准备:

1,复习while语句,do―while语句和for语句的特点和适用条件.

2,复习continue语句和break语句的区别.

3,源程序.

三,实验步骤及内容:

1,以下程序是用来计算S=1+2+3+…+10,请更正下列程序的错误,并上机调试.

(1)main()

{inti=1;

while(i<10)

sum+=i;

++i;

printf("sum=%d\n",sum);

}

(2)main()

{inti=sum=0;

do{sum+=i;

++i;

}while(i<10)

printf("sum=%d\n",sum);

}

(3)main()

{inti,sum=0;

for(i=1;i<10;++i)

{sum=sum+i;

printf("sum=%d\n",sum);

}

}

2,完善程序并回答问题

下列程序用来计算S=1+1/1!

+1/2!

+1/3!

+…+1/N!

main()

{intt,n,i;

floats;

s=0__________;t=_1__________;

scanf("%d",&n);

for(i=1;i<=__n_________;++i)

{

t=_t*i_____________;

s=s+1/t_________________;}

printf("s=%f\n",s);

}

问题:

1)此程序用双循环怎么实现请写出程序上机调试(提示:

内循环计算阶乘,外循环实现累加).

(2)若要计算S=1/2!

+1/4!

+1/6!

+…+1/10!

用哪种算法比较合适请编程上机调试.

3,编写下列问题的源程序并上机调试.

(1)输入两个正整数,求其中最大公约数和最小公倍数.(习题5.3)

(2)输入一行字符,分别统计出其中的英文字母,空格,数字和其它字符的个数.(习题5.4)

(3)用牛顿迭代法求方程2x^3-4x^2+3x-6=0在1.5附近的根.(习题5.14)

(4)猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少桃子.(习题5.12)

三,实验报告:

1,源程序.

2,错误原因及其修改记录.

3,实验结果记录.

4,实验体会.

实验五数组

一,实验目的:

1,掌握一维数组和二维数组的定义,赋值和输入输出的方法.

2,掌握字符数组和字符串函数的使用.

3,掌握与数组有关的算法(特别是排序算法).

二,实验准备:

1,复习数组的基本知识.

2,复习字符串数组的特点和常用的字符串处理函数.

3,源程序.

三,实验步骤及内容:

1,编程求两个3*3二维数组的和:

2,编程计算3*3矩阵两条对角线元素之和:

3,编写下列问题的源程序并上机调试运行.

(1)用选择法对10个整数排序(10个整数用scanf函数输入).(习题6.2)

(2)找出一个二维数组的"鞍点",即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点.(习题6.8)

此二维数组可以设定如下:

98020540

90-60961

210-310189

数组元素的值用赋初值方法在程序中指定.

(3)将两个字符串连接起来,不要用strcat函数.(习题6.13)

四,实验报告:

1,源程序.

2,错误原因及其修改记录.

3,实验结果记录.

4,实验体会.

实验六函数

一,实验目的:

1,掌握定义函数的方法.

2,掌握函数实参与形参的对应关系,以及"值传递"的方式.

3,掌握函数的嵌套调用和递归调用的方法.

4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.

二,实验准备:

1,复习函数调用的基本理论知识.

2,复习函数的嵌套调用和递归调用的方法.

3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用.

4,源程序.

三,实验步骤及内容:

1,运行程序并回答问题

(1)程序

main()

{play(3);

}

voidprint_star()

{printf("**********\n")

}

voidprint_message()

{printf("GoodFriend!

\n");

}

voidplay(n)

intn;

{inti;

for(i=1;i<=n;++i)

{print_star();

print_message();

}

}

问题:

运行后出现什么错误为什么应如何修改请上机调试.

(2)以下程序用于计算1+2+3+4+5.

main()

{inti,sum;

for(i=1;i<=5;++i)

sum=add(i);

printf("sum=%d\n",sum);

}

add(a)

inta;

{ints=0;

s=s+a;

return(s);

}

问题:

此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.

(3)程序

intx=567;

main()

{printf("x=%d,y=%d\n",x,y);

}

inty=890

问题:

运行程序后出现什么错误为什么如何修改

2,程序填空

本程序的作用是在三位正整数中寻找符合下列条件的整数,它既是完全平方数,又有两位数字相同,例如144,676等,下列程序要找出所有满足上述条件的三位数并输出.

main()

{intn,k,a,b,c;

for(k=10;;k++)

{

___________;

if(n>999)

__________;

a=n/100;

b=___________;

c=n%10;

if(flag(a,b,c))

printf("N=%d=%d*%d\n",n,k,k);

}

}

flag(x,y,z)

____________;

{return!

((x-y)*(____)*(y-z));

}

3,编写下列问题的源程序并上机调试运行.

(1)用一个函数来实现将一行字符串中最长的单词输出.此行字符串从主函数传递给该函数.(习题7.10)

(2)写一个函数,输入一个十六进制数,输出相应的十进制数.(习题7.16)

四,实验报告:

1,源程序.

2,错误原因及其修改记录.

3,实验结果记录.

4,实验体会.

实验七编译预处理

一,实验目的要求:

1,掌握宏定义的方法.

2,掌握文件包含处理方法;.

3,掌握条件编译的方法.

二,实验准备:

1,复习宏定义,文件包含,条件编译的概念.

2,复习宏定义,文件包含,条件编译的使用方法.

3,源程序.

三,实验步骤及内容:

程序填空:

(1)#include__________

main()

{printf("%d\n",2);

}

(2)#include_________

#include_________

main()

{inta=4;

printf("%d\n",sqrt(a));

}

(3)#include______

#include______

main()

{charstr[12]={'s','t','r','i','n','g'};

printf("%d\n",strlen(str));

}

2,编写下列问题的源程序并上机调试运行.

(1)定义一个带参数的宏,使两个参数的值互换.在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值.

说明:

在程序主函数使用宏时只能用两个实参,如SWAP(A,B),不能用三个实参.

(2)设计输出实数的格式,包括:

1>一行输出一个实数;

2>一行内输出两个实数;

3>一行内输出三个实数.实数用"%6.2f"格式输出.

用一个文件"print-format.h"包含以上用#define命令定义的格式.在自己的文件(自己命名)中用#define命令将"print-format.h"文件包含进来.在程序中用scanf函数读入三个实数给f1,f2,f3.然后用上面定义的三种格式分别输出

(1)f1;

(2)f1,f2;

(3)f1,f2,f3.

(3)用条件编译方法实现以下功能:

输入一行电报文字,可以任选两中输出,一为原文输出;一为将字母变成其下一字母(如'a'变成'b',...,'z'变成'a'.其它字符不变).用#define命令来控制是否要译成密码.例如:

#defineCHANGE1

则输出密码.若

#defineCHANGE0

则不译成密码,按原码输出.

用条件编译方法来处理.

四,实验报告:

1,源程序.

2,错误原因及其修改记录.

3,实验结果记录.

4,实验体会.

实验八指针

一,实验目的:

1,掌握指针的概念,会定义和使用指针变量.

2,学会使用数组的指针和指向数组的指针变量.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1