C语言程序实验报告谭浩强Word下载.docx

上传人:b****1 文档编号:4185142 上传时间:2023-05-02 格式:DOCX 页数:59 大小:312.70KB
下载 相关 举报
C语言程序实验报告谭浩强Word下载.docx_第1页
第1页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第2页
第2页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第3页
第3页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第4页
第4页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第5页
第5页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第6页
第6页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第7页
第7页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第8页
第8页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第9页
第9页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第10页
第10页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第11页
第11页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第12页
第12页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第13页
第13页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第14页
第14页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第15页
第15页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第16页
第16页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第17页
第17页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第18页
第18页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第19页
第19页 / 共59页
C语言程序实验报告谭浩强Word下载.docx_第20页
第20页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序实验报告谭浩强Word下载.docx

《C语言程序实验报告谭浩强Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序实验报告谭浩强Word下载.docx(59页珍藏版)》请在冰点文库上搜索。

C语言程序实验报告谭浩强Word下载.docx

实验2

1.实验目的与要求

(1)进一步熟悉c语言程序设计环境。

(2)明确c语言程序的结构。

2.程序检测与调试

程序一

错误程序:

main()

printf("

Thisiscprogram."

调试结果:

程序缺少“#include<

”,main函数下面应该是“{}”而不是“()”。

改正后的程序:

#include<

Thisiscprogram.\n"

程序二

;

a=3,b=5;

c=a*b;

Theproductis:

"

c)

“#include<

”后面没有“;

”,对变量a,b,c没有定义,“}”前缺少“;

”。

inta,b,c;

Theproductis:

%d\n"

c);

3.实验总结

程序不能缺少“#include<

”,函数中出现的变量都应该对其进行定义声明,“}”前不能缺少“;

实验3

(1)掌握变量名的构成规则

1>

测试那些字符可以组成变量名。

2>

测试那些单词可以用做变量名。

3>

测试变量名的长度限制。

(2)赋值运算符的意义和正确用法

测试赋值运算符的意义。

测试那些运算符可以放在赋值号的左边。

(1)分析下面字符的功能

#%*()-+=;

”‘等等

测试程序:

Intmain(void)

Inta?

b,c/d;

由此程序可看出变量名中不能有“?

/等等”。

(3)分析程序

错误程序:

#include<

Intmain()

Inta=3,b=5,c=7,x=1,y,z;

a=b=c;

x+2=5;

z=y+3;

return0;

intmain()

inta=3,b=5,c=7,x=1,y,z;

a=b=c;

y=x+2;

z=y+3;

%d,%d\n"

y,z);

return0;

程序分析:

赋值符号左边不能放表达式。

实验4

1.实验目的与要求

(1)理解常用运算符的意义。

(2)掌握c语言表达是的运算规则。

2.实验准备。

(1)整数除的危险性

分析三个表达式的值,再设计程序测试,进行比较和分析。

inta=5,b=7,c=100,d,e,f;

d=a/b*c;

e=a*c/b;

f=c/b*a;

d=0,e=71,f=70.

程序测试:

inta=5,b=7,c=100,d,e,f;

printf("

%d,%d,%d\n"

d,e,f);

结果:

(3)分析下面程序

是比较x++与++x之间的区别。

例如:

inta=5,b=8;

a++=%d\n"

a++);

a=%d\n"

a);

++b=%d\n"

++b);

b=%d\ny"

b);

运行结果:

由上述程序可以看出,x++是先使用x在使x+1,而++x是先使x+1在使用x。

(4)分析下列表达式的值

测试程序:

inta,b,c,d,e,f;

scanf("

a=%d,b=%d\n"

a,b);

c=b+a+++a;

d=b+(a++)+a;

e=b+a+(++a);

f=b+a+++a++;

c=%,d=%d,e=%d,f=%d\n"

c,d,e,f);

实验5

1.试验目的与要求

(1)深入了解c语言数据类型的意义。

(2)测试不同类型数值数据的存储空间大小、取值范围、有效数字位数和精度。

2.实验准备

(1)编写程序测试基本数据类型的取值范围

例如:

测试char类型的取值范围

charmain()

charc0,c1,c2,c4,c5,c6;

c0=-129;

c1=-128;

c2=-127;

c4=128;

c5=127;

c6=126;

%d,%d,%d,%d,%d,%d\n"

c0,c1,c2,c4,c5,c6);

有结果可以看出,c0,c4的值发生改变,原因是超过其取值范围。

所以char类型的取值范围是【-128,127】。

(2)编写程序测试基本数据类型的有效数字长度和精度

例如,测试double类型的有效数字长度和精度

floatd1=0.123456789,d2=12345678901234567890.123456789;

%lf\n%lf\n"

d1,d2);

floatf1=2.1234567,f2=12345678901234567.123456789;

inti1,i2;

i1=f1;

i2=f2;

%d\n%d\n"

i1,i2);

有结果显示,只能精确的显示前七位。

(3)编写程序测试不同数据类型之间转换所出现的截取高位。

丢失精度和变得不可知等问题。

charc1=35,c2='

A'

c3;

c3=c1+c2;

%d\n%c\n"

c3,c3);

(4)编写程序测试字符型数据的算术特征

实验6

(1)掌握printf()进行格式化输出的方法。

(2)掌握scanf()进行格式化输入的方法。

(3)掌握其他控制台输入、输出函数。

(1)设计一个程序来测试printf()函数中数据参数被引用的顺序

#include<

inta=1;

%d,%d,%d\n"

++a,++a,++a);

有结果看出,参数被引用的顺序是由右及左。

(2)设计一个程序来测试printf()函数中格式符的意义

doubled=123456789.234567;

%e\n"

d);

%e的意义是数据按指数形式输出。

(3)设计一个程序来测试scanf()函数中格式符的意义

例如

doublex,y;

%f,%lf\n"

&

x,&

y);

x);

y,&

(4)设计一个程序来测试用scanf()输入含有字符型数据的多个选项时,数据之间的分隔问题。

例如;

charc1,c2,c3;

inta1,a2,a3;

%d%d%d"

a1,&

a2,&

a3);

a1,a2,a3);

%c%c%c"

c1,&

c2,&

c3);

c1,c2,c3);

%c%c%c"

%c%c%c\n"

运行结果;

实验7

(1)测试关系表达式和逻辑表达式的意义和取值。

(2)测试关系运算符和逻辑运算符的优先级和结合性。

(3)掌握逻辑运算的基本规律。

(1)编写一个用于测试关系表达式意义和取值的程序。

举例:

inta=5,b=5,c=5;

%d,%d,%d,%d\n"

a==b,a==c,a!

=b,a!

=c);

a>

=b,a>

=c,a<

=b,a<

b,a>

b);

其中运行结果中的“1”和“0”分别表示程序中运算的正确与错误。

(2)阅读下面程序并分析其运行结果

将分析结果与上机结果进行比较

floatx;

scanf(“%1f”,&

if(x=1.23)printf(“OK!

”);

分析结果:

有输入表达式可知,当从键盘输入数据1.23时,运行输出“OK!

与分析结果一致!

(3)编写一个用于测试逻辑表达式的意义和取值程序

inta=3,b=5,c=5;

printf(“%d,%d,%d,%d”,a==b&

&

a===c,a!

=b&

a!

=c,a>

a>

a<

=c);

printf(“%d,%d,%d,%d”,!

(a==b),!

(a>

=b),!

=c),!

(a<

=b));

预先写出程序运行结果,以便与上机结果进行比较。

分析结果:

0,1,0,11,1,1,0

运行结果:

(4)编写程序来测试下列逻辑表达式的值

预先写出程序的执行结果,以便与上级验证的结果进行比较。

(5)分析下面程序段的执行结果并验证自己所做推断的程序

inta=3,b=5,c=6;

%d"

a<

5||(a==b&

b<

c,printf("

OK!

)));

5&

(a==b||b<

推断:

不会输出“OK!

输出:

10

实验8

(1)掌握分支程序的基本结构。

(2)掌握分支程序的测试与调试方法。

(1)观察图3.1所示分支算法。

图见书

要求:

编写一个C语言程序,要求使用上述分支结构,并使其能接受由键盘输入的a,b,x。

编写程序如下:

inta,b,x;

scanf("

%d,%d,%d"

a,&

b,&

if(a>

1&

b==0)

x=x*a;

if(a==2||x>

1)

x=x+2;

a,b,x);

能够达到要求!

(2)语句覆盖测试

设计一组a,b,x,是程序中的所有语句都能至少执行一遍,目的是测试这些语句能否正确执行。

要求这组数据量最少。

a=a+1;

b=a+b;

x=a*b;

每个语句都能够正常运行!

(3)分支覆盖测试

设计一组a,b,x,使程序中的每个分支都能至少执行一遍,目的是测试这些分支能否正确执行。

每个分支能够正确执行!

(4)条件覆盖测试

设计一组a,b,x,使程序中的每个条件都能至少执行一遍,目的是测试这些条件能否正确执行。

每个条件都正确执行了!

(5)修改上面的程序以使操作者知道这些语句、分支或条件已被执行

提示:

在恰当的位置插入输出语句。

修改程序如下:

x);

由运行结果知这些语句、分支或条件已被执行!

(5)进一步的测试问题

从键盘输入三个数,用以代表3条线段的长度。

先编写一个程序,判断由着3条线段所组成的三角形的类型——不等边三角形、等腰三角形、等边三角形、直角三角形或不能构成三角形。

画出这个问题的流程图,设计程序,并未该程序分别设计语句覆盖、分支覆盖、条件覆盖的测试用例。

为检测测试用例的好坏,可人为的设置一些错误。

inta,b,c,max,m,x,y,z;

c);

max=b;

=max)max=a;

if(c>

=max){max=c;

m=a+b+c-max;

x=a^2+b^2;

y=a^2+c^2;

z=b^2+c^2;

if((m>

max)&

(a!

=0)&

(b!

(c!

=0))

if((x==(c^2))||(y==(b^2))||(z==(a^2)))

此三角形为直角三角形!

if(a==b==c)

此三角形为等边三角形!

if(a!

=b&

a!

=c&

b!

=c)

此三角形为不等边三角形!

if(((a==b)&

=c))||((a==c)&

=b))||((b==c)&

(b!

=a)))

此三角形等腰三角形"

elseprintf("

不能构成三角形!

实验9

1..实验目的与要求

(1)掌握在设计条件性循环结构时,如何正确的设定循环条件以及如何控制循环次数。

(2)了解条件型循环结构的基本测试方法。

(1)阅读下面程序,画出流程图或N-S图,分析程序功能。

doublee=1.0,x=1.0,y,detax;

inti=1;

\npleaseenteraerror:

%1f"

detax);

y=1/x;

while(y>

=detax)

{

x=x*i;

e=e+y;

++i;

}

%12.101f"

e);

流程图:

功能:

计算出当y>

=detax时e的值!

(2)设计一组detax,使程序能分别按照下面的要求运行。

A、不进入循环。

当时detax>

1.0。

B、只循环一次。

当1>

=detax>

=0.5时。

C、只循环两次。

当0.5>

detax>

=1/6时。

D、进入死循环。

当detax<

=0时。

(3)为了获取程序循环次数,应该在程序中增加怎样一条语句?

改进后程序:

inti=1,n=0;

while(y>

x=x*i;

e=e+y;

n++;

%12.101f,%d"

e,n);

3.实验内容与步骤

(2)试将while的控制表达式y>

=detax,分别替换成一下语句。

A,y>

detax时程序仍然正确。

但是循环区间变为0<

=detax<

1。

为了不会进入死循环,修改程序如下:

inti=1,;

if(0<

detax)

{

}

B,y=detax时程序让然正确。

但是程序只有在当detax=1时才会循环,当detax为其他值是将直接跳出循环。

为了不会进入死循环,修改程序如下:

if(detax=1.0)

while(y=detax)

C,y<

=detax时程序仍然正确。

但是当detax<

1时将直接跳出循环,当detax>

=1将进入死循环。

if(detax<

while(y<

D,y<

但是当detax=<

1将进入死循环。

\nplea

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

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2