
正文
c语言h的对应值为什么是1,c语言中h和c的区别
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言我想问为什么输出的结果都是1啊。。。
首先是你的A,B,C都是定义成了INT型。然后在做A/B的时候得出来的结果值就是1了。然后和0.4相加的结果本来应该是4,但是呢,由于你把C给定义成了INT型,所以呢,只有进行四舍五入了。把0.4给舍弃掉了。
printf(%d\n,a=100); //程序执行的是这行。a=100成立,结果为真,以%d输出就是1。
调用函数时,函数的参数是从右往左压入栈的。因此,对于f(i,i++)调用,先计算i++,再计算i,相当于调用的是f(3,2),所以输出1。
这是因为在C语言中,两个整数的商,也是一个整数(任何小数的部分,都会被直接“丢弃”)所以,3/2就等于1了。
因为在fun函数的修改的s指针所指向的变量为fun中局部变量,而并不修改main函数中s指针指向的变量,这个关键在于fun函数的参数s和main函数中的s不要混淆。
相关问答
Q1: c语言问题为什么输出为1
printf(%d\n,a=100); //程序执行的是这行。a=100成立,结果为真,以%d输出就是1。
这是因为在C语言中,两个整数的商,也是一个整数(任何小数的部分,都会被直接“丢弃”)所以,3/2就等于1了。
这个结果是a = 100,由于a是100,a = 100这个表达式是true,对应的数字结果就是1。在C语言中布尔值就是0和非0,0就是false,非0就是true。不过这种表达式的结果类型是布尔型的值,就只有0和1。
Q2: 为什么c语言赋值1.5,出来的是1?
你应该变量设为了int类型,int类型是整形,保存整数,不能保存小数。
所以 如果a=3 b=2的话 那么(float)a/b的值是5 至于赋值给y 取决于y的类型。如果y为float或者double型,那么y值就是计算结果。
是应该为1,整型变量不能存储小数部分,所以会自动截取小数部分,直接取其整数值,并非是四舍五入,你可以看看C语言类型转换这一节,然后看一下整型和浮点型之间的转换就知道了。
表达式1:表达式2;是三目运算符,如果?前面的条件成立,则表达式的值就是表达式1的值,否则是表达式2的值。xy?1:5的条件是xy即,21成立,所以表达式值就是1而不是5。所以条件表达式最终的值为1。
scanf函数默认将输入的数字字符转换成对应的整数,即忽略前导的零。因此如果要保留前导零,需要对其进行格式化输出。
Q3: c语言为什么输出的是1
1、调用函数时,函数的参数是从右往左压入栈的。因此,对于f(i,i++)调用,先计算i++,再计算i,相当于调用的是f(3,2),所以输出1。
2、printf(%d\n,a=100); //程序执行的是这行。a=100成立,结果为真,以%d输出就是1。
3、但是呢,由于你把C给定义成了INT型,所以呢,只有进行四舍五入了。把0.4给舍弃掉了。所以得出来的结果就是1了。实际上就是进行了一个隐式的类型转换的。这种情况在实际当中一定要多注意的。稍不注意就会出错的。
4、因为在fun函数的修改的s指针所指向的变量为fun中局部变量,而并不修改main函数中s指针指向的变量,这个关键在于fun函数的参数s和main函数中的s不要混淆。
5、scanf函数默认将输入的数字字符转换成对应的整数,即忽略前导的零。因此如果要保留前导零,需要对其进行格式化输出。
Q4: C语言基础中的运行问题,问一下其运行结果为什么是1
printf(%d\n,a=100); //程序执行的是这行。a=100成立,结果为真,以%d输出就是1。
这是因为在C语言中,两个整数的商,也是一个整数(任何小数的部分,都会被直接“丢弃”)所以,3/2就等于1了。
调用函数时,函数的参数是从右往左压入栈的。因此,对于f(i,i++)调用,先计算i++,再计算i,相当于调用的是f(3,2),所以输出1。
其实这行程序等效于:d=(!a)&&(!b)||(!c);a=4,b=5,可见a,b的值都是非零。所以!a=0,!b=0。c=0,所以!c=1。
Q5: c语言吧。为什么输出会是1,而不是0.
1、一直以来,++ --语法浪费了太多人的时间。说句实在话,++ -- 在C语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。
2、可以使用printf函数的格式控制字符串,指定输出的数字位数和前导零即可,如下所示:int num;scanf(%d, &num);printf(%03d, num); // 输出3位数字,若不足3位,在前面补0 这样就可以输出001了。
3、所以在判断完n=ba(此表达式的值为1)后并不会计算m=ab 也就是说m并没有被重新赋值,他的值就是初始化的0.而k的值由于或运算符左边的值为真,所以k的值为所以输出时1,0。
4、第一次结果为2 第二次结果为5(这是你想象的结果),由于s是int类型(整数类型),所以小数点后的内容会被自动删掉即:第二次的正确结果为1 所以循环了,第三次又是2,第四次又是1。
关于c语言h的对应值为什么是1和c语言中h和c的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





