实验2 C语言基本数据类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 C语言基本数据类型
一、实验目的:
1.掌握C语言的基本数据类型(整型、字符型和实型)。
2.掌握C语言变量的定义和赋值方法。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:
1.验证性实验
(1) 分析下面程序结果,并上机验证(整型、字符型数据表示和输出)。
#include
void main()
{
int x=010,y=10,z=0x10; /*前导中的'0'是数字0而不是字母o*/
char c1='M',c2='\x4d',c3='\115',c4=77,c; /*字符型数据表示*/
/* 整型数据的输出*/
printf("x=%o,y=%d,z=%x\n",x,y,z);
/* 数据以原进制输出,注意是否有前导0或0x */
printf("x=%d,y=%d,z=%d\n",x,y,z);
/* 数据以10进制输出,换算到10进制,结果对吗?*/
/* 字符型数据的输出*/
printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4);
/* 数据以原进制输出,注意是否有前导0或0x */
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
/*结果都是什么字符?,也就是说字符可以自由的表示成几种形式?*/
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/ /* 字符型数据参与算术运算*/
c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码*/
printf("c=%c,c=%d\n",c,c);
/*看看这个字符是什么?'M'+32就变为'm'了字母的大小写转换原来如此!*/ }
(2)分析下面程序结果,并上机验证(整型、实型数据的表示、输入和输出)。
#include
void main()
{
inti,j;
floatm,n;
longx,y;
unsignedintu,v;
char c1,c2;
scanf("%d,%d",&i,&j);
scanf("%f,%f", &m,&n);
scanf("%ld,%ld",&x,&y);
scanf("%o,%o",&u,&v);
scanf("%c,%c", &c1,&c2);
printf("\n");
printf("a=%4d,b=%4d\n",i,j);
printf("c=%8.2f,d=%8.2f\n",m,n);
printf("e=%16ld,f=%16ld\n",x,y);
printf("u=%u,v=%u\n",u,v);
printf("c1=%c,c2=%c\n",c1,c2);
}
(3) 分析下面程序结果,并上机验证(常见预定义的转义字符对输出的控制作用)。
#include
void main()
{
int a,b,c;
a=5,b=6,c=7;
printf("12345678123456781234567812345678\n");
/* 打印一个标尺以便检查输出结果*/
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);/*打印1个字符串*/
printf("c:\\a.txt"); /* 打印一个文件名*/
printf("\n");
}
2.填空性实验
以下程序的程序功能是:从键盘输入圆柱体的底面半径r和高h,计算其底面积s和体积v并输出。
#include
void main()
{
float pi=3.14;
float r,h,s,v;
printf("Please input r,h:\n");
scanf("%f,①",&r,②);
s=③;
v=④;
printf("area=%f,volume=%f\n",s,⑤);
}
3.程序改错(标有★的程序行有错,下同)
(1)下列程序的功能是对a+b的值进行四舍五入取整后输出。
#include
void main( )
{floata,b;
int x;
a=3.1;
b=4.5;
x=a+b;
printf("%f",x);★
}
(2)下列程序的功能是输出任意一个整数的个位数字。
#include
void main( )
{float x; ★
int a;
x=12345;
a=x/10; ★
printf("%d",a);
}
4.设计性实验
(1)从键盘输入变量x, y的值,交换它们的值并输出。
提示:
①用scanf( )函数输入x,y的值;
②用第三个变量辅助交换x,y的值;
③用printf( )函数将交换后的x,y输出。
(2)写出一个演示字符型数据溢出的程序。
提示:整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,以下程序将会出现什么情况?
#include
void main()
{
inta,b;
a=32767;
b=a+1;
printf("a=%d,a+1=%d\n",a,b);
a=-32768;
b=a-1;
printf("a=%d,a-1=%d\n",a,b);
getch();
/*获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。*/
}