中易网

C语言读程序的5道题,有答案,泪求详细的解析啊

答案:3  悬赏:10  
解决时间 2021-01-09 08:49
C语言读程序的5道题,有答案,泪求详细的解析啊
最佳答案
因为"=="是判断等号两边的值是否相等的语句。
c语言中的“=”是赋值,“==”才是判断。
等号左边是x,它的值为3,右边是y+z,因为"+"的运算优先级大于"=="所以先执行y+z,得到表达式的值为1+0=1.
所以if(x==y+z)等价于判断 if(3==1),"3==1"的返回值自然是false
于是不执行if()语句下的语句,而是执行else中的printf("+++");
所以最后的输出是 +++


啊,是五道题啊...不是第五题...
没看清楚,不好意思。
等下补答


1. 前缀"--"和后缀"--"的区别:前缀返回的是值改变之后的值,后缀返回的是改变之前的值。
所以输出的一个是后缀的10,一个是前缀的9.
当然如果你再printf("%d,%d",x,y);就都输出9了。


2. 因为x,y,z都是整型变量,所以x/y的返回值是整除的值,也就是商。
10/3=3余1,而%相当于mod,也就是10对3取模。取模运算只能对整数进行。
在两个数都是正整数的时候就等于除法的余数,也就是1。
z=(x/y)是赋值语句返回的值就是改变后的z。


3. 可以看到,它printf的是两个表达式的值。而且是两个逻辑表达式。
第一个是(a+b>c && b==c) “&&”表示且,也就是当两个都为真的时候返回true,任意一个为假,返回false,可以看到a+b>c是true,而b==c是false,所以返回值是false,因为是以整数形式输出,那么就是true=1,false=0.
第二个式子是c>b>a,c语言中没有连比,这个式子会从左算到右。即(c>b)>a。
其中c>b是true,因为要和a这个整型变量比,所以会强制转int变成1,然后1>a返回值就是false了。


4. 也是前置和后置的问题。m=++i 返回的是i=i+1之后的值。也就是6,n=j--返回的是变化之前的值就是12.




全部回答
// 程序一:
#include 
int main()
{
    int x=10,y=10;
    printf("%d,%d ",x--,--y);// x先输出,再减1,所以结果为10。y先减1,再输出,所以结果为9。
}
// 程序二:
#include 
int main()
{
    int x=10,y=3,z;
    printf("%d,%d ",z=(x/y),z=(x%y));// 除法运算,x和y都是int类型,所以在做除法时,取整,所以结果为3。求余数,10余3等1,所以结果为1。
}
// 程序三:
#include 
int main()
{
    int a=3,b=4,c=5;
    printf("%d,%d",a+b>c&&b==c,c>b>a);// 3加4大于5,正确,4等于5,错误,正确&&错误等于false,所以结果为0。5大于4,正确,数值类型为1,1>3,错误,所以结果为0。
}
// 程序四:
#include 
int main()
{
    int i,j,m,n;
    i=5;
    j=12;
    m=++i;// i先加1,再赋值给m,m等于6。
    n=j++;// j先赋值给n,再加1,n等于12。
    printf("%d,%d",m,n);// 所以输出结果为6,12。
}
// 程序五:
#include 
int main()
{
    int x=3,y=1,z=0;
    if(x==y+z)
    {
        printf("%%%");
    }
    else
    {
        printf("+++");// x不等于y加z,执行这条语句,所以结果为+++。
    }
}
// 程序六:
#include 
int main()
{
    int x=0,y=0;
    switch(x)
    {
        case 3;
        case -1:
            y=2;
            break;
        case 2:
            break;
    }
    printf("%d,%d",x,y);// x等于0,所以都不符合switch语句里的条件,所以结果为0,0。
}
第一题:--x的意思是先计算x=x-1,再用x的值,x--的意思是先用x的值,在计算x=x-1;
第二题:x/y因为x和y有时int类型,所以结果也是int类型,10/3剩3余1,把1去掉,就是3了,10%3余了1;
第五题:x=y+z等效于3==(1+0),就是判断3核0相等码,不相等执行else
第四题:这题和第一题是一样的思路
第三题:相当于(3+4)>5&&4==5和(5>4)>3
其中4==5是假的,所以第一个为0 5>4是真的,所以值为1,等效于1>3,很明 显是家的,为0
望采纳
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魅丽韩妆美容美体地址好找么,我有些事要过去
一人一口打一字
是华(hua)罗庚还是华(hua)罗庚他是华山的华还
C语言中的函数,test() 和test(void)有什
猪肉怎么去皮猪肉去皮机器
46000在建行存58天活期利息是多少
现在是几月份 是说的阴历还是阳历
求金田豪迈HPP180电子开料锯的使用说明书
我想申请一个微信号,请你们帮我申请一个,谢
国寿鑫福宝年金保险三年缴十年期,每年一万,
龙女宝宝秋天出生小名叫秋果好么
谁有The L World 1-6季百度网盘资源 中文字幕
五星是什么意思?求告知
peanut butter什么意思
烟台渤海国际旅行社地址好找么,我有些事要过
推荐资讯
喷漆在四儿子做需要多少钱
尊品集成橱柜电器专卖店怎么去啊,我要去那办
保洁工具间(湖塘镇定安中路2号富克斯流行广场
lac环境容量和旅游容量的区别
猪手和什么煲汤好?
I teαch Mαths 改为She作主语
中国新歌声汪峰写给章子怡什么歌
历史上票据大案都有哪些
苹果手机怎样把和这个人的聊天记录发给另一个
hunta-171里面的这个女演员是谁
奥斯卡金像奖的历届之最
o/99是什么颜色
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?