c语言上机实验.doc

上传人:b****2 文档编号:1255839 上传时间:2022-10-19 格式:DOC 页数:11 大小:119KB
下载 相关 举报
c语言上机实验.doc_第1页
第1页 / 共11页
c语言上机实验.doc_第2页
第2页 / 共11页
c语言上机实验.doc_第3页
第3页 / 共11页
c语言上机实验.doc_第4页
第4页 / 共11页
c语言上机实验.doc_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

c语言上机实验.doc

《c语言上机实验.doc》由会员分享,可在线阅读,更多相关《c语言上机实验.doc(11页珍藏版)》请在冰豆网上搜索。

c语言上机实验.doc

实验3

(1)程序

#include

intmain()

{

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

a=b=c;

x+2=5;

z=y+3;

return0;

}

程序错误;提示语言

--------------------Configuration:

fd-Win32Debug--------------------

Compiling...

fd.cpp

C:

\DocumentsandSettings\Administrator\桌面\fd.cpp

(2):

errorC2447:

missingfunctionheader(old-styleformallist?

执行cl.exe时出错.

fd.exe-1error(s),0warning(s)

修改为:

#include

intmain()

{

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

a=b=c;

x=5+3;

z=y+3;

return0;

}

分析结果:

在赋值和运算中是从右到左。

分析:

A变量名可以是数字,英文字母(大小写均可)。

下划线。

B大小写可以区分是成不同文件。

C赋值运算的特点是自右向左的。

实验4

(1)整数除的危险性

#include

intmain()

{

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

d=a/b*c;

e=a*c/d;

f=c/b*a;

}

程序在运行结果为:

000;

分析原因:

A5/7*100,结果是5/7等于0,再0乘上100等于0。

B5*100/7,结果是5*100等于500,再500/7等于0。

C100/7*5结果是100/7等于0,再0*5等于0。

结论:

原因在于,当整除不成立时,结果为0,所以结论会影响下一次的运行。

(2)

#include

main()

{

inta=5,b=8;

printf(“a++=%d”,a++);

printf(“a=%d”,a);

printf(“++b=%d”,++b);

printf(“b=%d”,b);

}

得到结论为

分析结果:

i++“先引用,后增值”:

++i“先增值,后引用”

所以a++是5,因为先引用,a是6,因为是增值的结果,++b是9,是因为先增值,b是9,是因为后引用的结果。

(3)对这些表达式进行测试分析。

b+a+++a

b+(a++)+a

b+a+(++a)

b+a+++a++

编程:

#include

main()

{

inta=1,b=1;

printf(“b+a+++a=%d”,b+a+++a);

}

结果:

#include

main()

{

inta=1,b=1;

printf(“b+(a++)+a=%d”,b+(a++)+a);

}

结果:

#include

main()

{

inta=1,b=1;

printf(“b+a+(++a)=%d”,b+a+(++a));

}

结果:

#include

main()

{

inta=1,b=1;

printf(“b+a+++a++=%d”,b+a+++a++);

}

结果:

#include

main()

{

inta=1,b=;

printf(“b+a+++a=%d”,b+a+++a);

}

(4)对这些表达式进行测试分析。

i,j

i+1,j+1

i++,j++

++i,++j

i+++++j

编程:

#include

main()

{

inti=1,j=1;

printf(“i=%d”,i);

printf(“j=%d”,j);

}

结果:

#include

main()

{

inti=1,j=1;

printf(“i+1=%d”,i+1);

printf(“j+1=%d”,j+1);

}

结果:

#include

main()

{

inti=1,j=1;

printf(“i++=%d”,i++);

printf(“j++=%d”,j++);

}

结果:

#include

main()

{

inti=1,j=1;

printf(“++i=%d”,++i);

printf(“++j=%d”,++j);

}

结果:

#include

main()

{

inti=1,j=1;

printf(“i+++++j=%d”,i+++++j);

}

结果:

--------------------Configuration:

Cpp1-Win32Debug--------------------

Compiling...

Cpp1.cpp

C:

\DocumentsandSettings\Administrator\桌面\Cpp1.cpp(5):

errorC2105:

'++'needsl-value

C:

\DocumentsandSettings\Administrator\桌面\Cpp1.cpp(6):

warningC4508:

'main':

functionshouldreturnavalue;'void'returntypeassumed

执行cl.exe时出错.

Cpp1.exe-1error(s),0warning(s)

结论:

程序是错误的。

1.分析结果:

整除有危险性。

A.因为小数不能除大的数字,会显示0。

还有结果一定是整数。

B.算数运算的方向是自左向右。

2.分析结果:

A.i++“先引用,后增值”:

++i“先增值,后引用”

所以a++是5,因为先引用,a是6,因为是增值的结果,

B.++b是9,是因为先增值,b是9,是因为后引用的结果。

3.分析结果:

A.可靠性低

B.不容易读懂

实验5

printf(“long”,sizeof(long));

编程:

#include

intmain()

{

inti=0;

printf("long:

%dbytes\n",sizeof(long));

return0;

}

结果:

(2)编写程序来测试基本数据类型的取值范围下。

编程:

#include

intmain()

{

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

c0=-129,c1=-128,c2=-127,c4=128,c5=127,c6=126;

printf("%d\n%d\n%d\n%d\n%d\n%d\n",sizeof(c0),sizeof(c1),sizeof(c2),sizeof(c4),sizeof(c5),sizeof(c6));

结果为;gjhjhgjh

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

编程:

#include

intmain()

{

floatd1=0.123456789,d2=12345678901234567890.123456789;

printf("%lf,%lf\n",d1,d2);

}

结果:

(2)编写程序来测试不同类型之间的转换所在出现的截取高位,丢失精度和变得不可知等问题。

编程:

#include

intmain()

{

floatf1=2.1234567,f2=12345678901234567.123456789;

inti1,i2;

i1=f1;

i2=f2;

printf("%d,%d\n",i1,i2);

}

结果:

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

编程:

#include

intmain()

{

charc1=35,c2='A',c3;

c3=c1+c2;

printf("%d,%c\n",c3,c3);

}

结果:

(4)编写程序来测试转移字符的用法

如printf("\7,\7,\7”);

编程:

#include

intmain()

{

printf("\7,\7,\7");

}

在程序中只是会输出两个《,》。

因为\7显示的是所在高度,所以只会显示《,》。

实验6

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

Inta=1;

Printf(“%d,%d%d,a++,a++,a+”);

编程:

#include

intmain()

{

inta=1;

printf("%d,%d,%d",++a,++a,++a);

}

结果:

分析结果:

因为程序输出是从右向左进行的。

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

举例:

Doubled=123456789.23456789;

Printf(“%e”,d);

编程:

#include

intmain()

{

doubled=123456789.23456789;

printf("%e",d);

}

结果:

(3)设计一个程序来测试printf()函数定义域与精度的方法。

编程:

#include

intmain()

{

printf("%12.5f\n",123.1234567);

printf("%12f\n",123.1234567);

printf("%12.5g\n",123.1234567);

printf("%5.10s%s\n",”abcdefghijkm”,”a”);

printf("%12.8d\n",12345);

return0;

}

结果:

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

举例:

doublex,y;

scanf("%f,%lf",&x,&y);

printf("%f,%lf",&x,&x);

printf("%f,%lf",&y,&y);

编程:

#include

intmain()

{

doublex,y;

scanf("%f,%lf",&x,&y);

printf("%f,%lf",&x,&x);

printf("%f,%lf",&y,&y);}

结果:

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

举例如下:

Charc1,c2,c3;

Inta1,a2,a3;

Scanf(“%d%d%d,&a1,&a2,&a3”);printf(“%d%d%d,a1,a2,a3”);Scanf(“%c%c%c,&c1,&c2,&c3”);printf(“%c%c%c,c1,c2,c3”);

Scanf(“%c%c%c,&c1,&c2,&c3”);printf(“%c%c%c,c1,c2,c3”);

编程:

#include

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

当前位置:首页 > 工程科技 > 材料科学

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

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