C语言程序设计

1.已知int a=15,n=7;则以下表达式运算后a的值各为多少?
a+=a
a-=2
a*=2+7
a/=a+a
n%=(n%=2)
a+=a-=a*=a
2.下列程序的输出结果是什么?
main( )
{
int m,n,k;
int x=15,y=20;
m=(- -y==x++)? - y:++x;
}
3.下列程序段的运行结果是什么?
main( )
{
int a=15,b=13;
float x=13.14,y=16.5;
printf("%d,%d\n",a+b!=a-b,x<=(y - =16.1));
}
4.已知圆锥底面半径r为15cm,高为25cm,编写程序求圆锥的体积V=1/3πr^2h。

1.n=0 a=0
从右往左开始运算.
n%=(n%=2)--->n%=(7%=2)---> n%=1--->n = 0
a+=a-=a*=a 这个语句不同的编译器的结果是不一样的。在vc下因为执行了一次a -= a的操作,所以a=0

2.m=17
首先执行(--y==x++)的时候,x的值变为16了,y的值变成19。判断 19==15 显然是false,再执行++x后返回17。

3.输出1,0
先执行a+b和a-b,显然28 != 2,所以为真,值为1
同理 13.14 <= 0.4 ,为假,值为0

4.
#define pi 3.1415926
float GetVolume(const float& r,const float& h)
{
return pi*r*r*h/3;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-20
1. a+=a === a=a+a 30
2. a-=2 === a=a-2 13
3. a*=2+7 === a= a*(2+7) 135
4. a/=a+a === a=a/(a+a) 0
5. n%=(n%=2) === n= n%(n%=2) 先计算n%=2 n=1,然后计算机n%=1 结果0
6. a+=a-=a*=a 先计算a*=a 15*15 a-=a 15*15-15*15 a+=a 0+0 0

第二题:
y先自减1然后和x比较是否相等,比较完成后,x在减一,就相当于(20-1)==15,结果为17

第三题:
a+b=18,a-b=2 18!=2 true==1
y-=16.1 = 16.5-16.1 = 0.4, 13.14<=0.4 false = 0

第四题:
double mj(int r,int h){
const double PI = 3.1415926;
return (1.0/3)*PI*(r*r)*h;
}
第2个回答  2012-05-20
1,2,3可以用Visel C++自己测试。4的答案如下:
#include《iostreat》
main()
{
int r=15,h=25,v,s,pai=3.14159;
s=pai*r*r;
v=(s*h)?3;
cout《《“圆锥的体积V=”《《v《《endl;
}
第3个回答  2012-05-20
a+=a 30
a-=2 28
a*=2+7 252
a/=a+a 0
n%=(n%=2) 0
a+=a-=a*=a 0
main( )
{
int m,n,k; m==17 x==17 y==20
int x=15,y=20;
m=(- -y==x++)? - y:++x;
}
int a=15,b=13;
float x=13.14,y=16.5;
printf("%d,%d\n",a+b!=a-b,x<=(y - =16.1)); 结果为 1 ,0
//.ÒÑ֪Բ׶µ×Ãæ°ë¾¶rΪ15cm£¬¸ßΪ25cm£¬±àд³ÌÐòÇóԲ׶µÄÌå»ýV=1/3r^2h
#include "stdio.h"
#include "math.h"
#define pi 3.1415926
void main()
{
float r=15,h=25;
double V;
printf("%.4f\n",V=(pi*pow(r,2)*h)/3);
}
第4个回答  2012-05-20
写个程序运行下就知道了。