简单的C语言问题。请大家帮帮忙
若有定义:int k=7;float a=2.5;b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是?
A 2.500000
B 2.750000
我选的B,但是看书上的答案是A,请问答案是对的吗?
另有一个
若有定义:int x=3,y=2;float a=2.8,b=3.2;则表达式(x+y)%2+(int)a/(int)b的值为?
我的答案为1.66,请问错在哪里?
另有一判断闰年的程序。代码如下:
#include<stdio.h>
#include<conio.h>
void main(void)
{
int x,leap;
1 clscr();
scanf("%d",&x);
leap=0'
if(x%4==0&&x%100!=0||x%400==0) leap=1;
if(leap)printf("%d is",x);
else printf("%d isn't",x);
2 printf("a leap");
3 getch()
}
请问第1 2 3行分别有什么作用啊?
谢谢,我是自学C语言的新手。一个人没老师教,很痛苦啊。敬请赐教。俺的QQ是***********
参考答案:1.若有定义:int k=7;float a=2.5;b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是?
答案正确.%,*,/优先级一样,从左向右结合
所以
2.5+k%3*(int)(a+b)%2/4
=2.5+7%3*7%2/4
=2.5+1*7%2/4
=2.5+7%2/4
=2.5+1/4
=2.5+0
=2.5
2.若有定义:int x=3,y=2;float a=2.8,b=3.2;则表达式(x+y)%2+(int)a/(int)b的值为?
(x+y)%2+(int)a/(int)b
=(3+2)%2+(int)2.8/(int)3.2
=1+2/3
=1+0
=1
3.
1 clscr(); 清屏
2 printf("a leap");显示a leap
3 getch() 等待输入,也就是不是黑窗口一闪了