本文共 1351 字,大约阅读时间需要 4 分钟。
实验目的:1.理解赋值操作符的作用
2.掌握如何判断一个C表达式是否合法。
3.体会每个C表达式都有一个值的含义。
实验步骤:
1.赋值操作符有何作用?
1.1分析程序并说明赋值操作符的作用。
#include<stdio.h>
int main()
{
int a;
a = 2;
printf("%d\n", a);
}
1.2分析程序中赋值矛盾时的处理方法再次说明赋值操作符的作用。
#include<stdio.h>
int main()
{
short i = -1;
unsigned short ui, uj = 65535;
long li, lj;
unsigned uli, ulj;
ui = i;
li = i;
lj = uj;
uli = i;
ulj = uj;
printf("%hu\n", ui);
printf("%ld,%ld\n", li, lj);
printf("%lu, %lu\n", uli, ulj);
}
分析:
1)程序中的赋值操作哪些矛盾,哪些不矛盾?
2)由赋值矛盾时的处理方法可知 。
1.3通过程序中整型与浮点型之间赋值时的处理方法再次说明赋值操作符的作用。
#include<stdio.h>
int main()
{
short i;
float fa = 3.2;
i = fa;
printf("%hd, %f\n", i, fa);
i = -3;
fa = i;
printf("%hd, %f\n", i, fa);
}
思考:
1)用short型变量给单精度浮点型变量赋值时会出现误差吗?(提示:浮点型变量什么情况下会出现误差?short型变量要考虑有符号和无符号两种情况。)
2)浮点型变量可以用"%d"输出吗?
2.把下面的程序与1.1中的程序进行分析比较。
#include<stdio.h>
int main()
{
int a;
printf("%d\n", a = 2);
}
分析:
1)两程序的输出相同吗?它们分别是什么的值?
2)如何理解语句printf("%d\n", a = 2);。
3.编程验证
3.1如有int型变量a,b,c,如何分析表达式a=b=c=23?
3.2如有int型变量a,如何分析表达式(a=23)=23?
3.3如有int型变量a,表达式a+=a-=a*=a/2合法吗?如合法,则当变量a的值为23、-21时表达式的值是多少?
4.把下面的程序与1.1、2中的程序进行分析比较。
#include<stdio.h>
int main()
{
int a;
printf("%d\n", printf("%d\n", a = 2));
}
分析:
1)程序的输出结果为:
2)如何理解语句printf("%d\n", printf("%d\n", a = 2));?
5.分析下面程序的输出。
#include<stdio.h>
int main()
{
char ca = 'A', cb = 'B';
printf("%c,%c\n", ca, cb);
ca = cb;
cb = ca;
printf("%c,%c\n", ca, cb);
}转载地址:http://obdti.baihongyu.com/