1 / 5
文档名称:

青岛大学C语言实验解答-3.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

青岛大学C语言实验解答-3.doc

上传人:yunde112 2015/6/23 文件大小:0 KB

下载得到文件列表

青岛大学C语言实验解答-3.doc

相关文档

文档介绍

文档介绍:实验3 运算符与表达式
实验目的
1. 练****使用各种运算符
2. 理解表达式的概念
3. 熟悉各种运算符的优先级
4. 熟悉常用数学函数的使用
实验预****br/>1. 记忆各种运算符的作用及优先级
2. 预先完成实验内容部分的填空和程序编写
实验内容
1. 运行下面程序并写出下列程序的输出结果
#include <>
void main()
{
int i,a,b;
i=1;
a=i++;
b=a++;
printf("a=%d,b=%d,i=%d\n",a,b,i);
}
输出:a=2,b=1,i=2
2. 运行下面程序并写出下列程序的输出结果
#include <>
void main()
{
float f=;
printf("f=%f,(int)f=%d\n",f,(int)f);
}
输出:f=,(int)f=5
3. 运行下面程序并写出下列程序的输出结果,a,b的值为何不同?
#include <>
void main()
{
int a,b,c,d;
c=(a=(2,3));
d=(b= 2,3 );
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
}
输出: a=3,b=2,c=3,d=3
解释: 在表达式b=2,3 中,由于“=”的优先级高于“,”,所以b的值为2;而在表达式
a=(2,3)中,用括号改变了运算符的计算次序,将先计算括号内的逗号表达式,其
值为3,然后再赋给a,因此a的值为3。
4. 运行下面程序并写出下列程序的输出结果,a的值为多少?
#include <>
void main()
{
int a=12;
a+=a-=a*a;
printf("a=%d \n",a);
}
输出: a=-264
5. 先分析下面程序的输出,然后执行程序,对照自己的计算结果是否正确,并找出原因。
#include <>
void main()
{
int a=0,b=1,c=2,d=3;
b=a++&&c++;
d=a++||++c;
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
}
输出:a=2,b=0,c=2,d=1
为什么c的值是2而不是4呢?这是因为在表达式b=a++&&c++中,由于&&左边的值为0,不需要计算&&右边的值,就能知道b的值为0,因此&&右边的c++运算没有执行;同理在d=a++||++c中,由于||左边的值为1,右边的值无须计算,就能知道d的值为1,因此||右边的++c运算也没有执行。这种情况,称为逻辑运算符的“短路”现象。
6. 先分析下面程序的输出,然后执行程序,对照自己的计算结果是否正确,并找出原因。
#include <>
void main()
{
int x,a;
x=(a=3,6*a);
printf("%d,%d\n",a,x);
x=a=3,6*a;
printf("%d,%d\n",a,x);
}