数控机床学徒:c语言填空处为6.6为什么

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 19:37:03
50
以下程序输出结果是:1为什么?
main() { int x=0.5; char z=' a';printf("%d\n",(x&1)&&(z<'z') );}

char z=' a';是什么意思
printf("%d\n",(x&1)&&(z<'z') 是什么意思

6以下程序输出结果是:2.1为什么?
main(){ int a=1,b=2;a=a+b;b=a-b;a=a-b;printf( "%d,%d\n", a, b);}

7以下程序输出结果是:16.00,请填空
main() { int a=9,b=2;
float x=填空,y=1.1,z;z=a/2+b*x/y-1/2;printf("%5.2f\n",z );}

填空处为6.6为什么

看看我的解释吧,不一定能说明白:

5.
main() { int x=0.5; char z=' a';printf("%d\n",(x&1)&&(z<'z') );}

其中,char z='a'; 表示定义一个字符型变量z,赋初值'a'给z。
printf("%d\n",(x&1)&&(z<'z'); 意思是用十进制格式输出一个变量的值,这个变量具体是指(x&1)&&(z<'z')这个表达式,这个表达式运算的结果是真(C中真用十进制表示=1),所以输出为1。为什么运算的结果是真? &&表示交集运算,&&左右两边都为真,结果就为真;&是位操作与运算,参加运算的两个量 均为1时,结果为1,其他时候均为0. int x=0.5, x=0,左边(x&1)的运算结果是0,右边(z<'z')的运算结果1,所以(x&1)&&(z<'z')的结果是0。

6.
main(){ int a=1,b=2;a=a+b;b=a-b;a=a-b;printf( "%d,%d\n", a, b);}

这段程序是输出两个变量的十进制格式值,两个值之间用","隔开(有点太罗嗦hehe)。
a=1,b=2
a=a+b,=>a=1+2=3
b=a-b,=>b=3-2=1
a=a-b,=>a=3-1=2
输出:2,1

7.
main() { int a=9,b=2;
float x=填空,y=1.1,z;z=a/2+b*x/y-1/2;printf("%5.2f\n",z );}

解方程:
16.0=9/2 + 2*x/1.1 - 1/2
x=6.6
ps: 你的题目中"输出结果是:16.00",是不是应该"输出结果是:16.0"

[完]

char z=' a';
定义一个字符型变量z初值为'a';

printf("%d\n",(x&1)&&(z<'z')
以十进制形式输出一个整数,(x&1)&&(z<'z')布尔值为真输出1;

main(){ int a=1,b=2;a=a+b;b=a-b;a=a-b;printf( "%d,%d\n", a, b);}
不说了吧,a值:1--3--2;b值:2--1,输出2.1;

z=a/2+b*x/y-1/2
z=4+2*x/1.1-0=16.00;
x=6.6;

1. 输出为0
int x=0.5;结果x为0(先将0.5截取为整数)
char z='a';将'a'的值赋给z(ASCII码为97)
x&1;按位与,都为1时才为1:
00000000 00000000 00000000 00000000
1
-------------------------------------
00000000 00000000 00000000 00000000
结果为:0
由于前后两个括号中是与的关系,当前一个为0后,不会再计算后面的表达式,所以(x&1)&&(z<'z')结果为0

2. 结果为:2,1
a=1,b=2;
a=a+b=1+2=3;
b=a-b=3-2=1;
a=a-b=3-1=2;
所以a=2,b=1

3. x=6.6
输出为16.00既z=16.00
a/2+b*x/y-1/2=16.00
a/2+b*x/y=16.5
a/2=4.5 //注意在运算的时候会将所有的变量转换为表达式中最高的类型,此处为float
b*x/y=12.5
2*x/1.1=12.5
x=6.6

要注意要C++/C语言中的算术运算的时候的运算法则和实际的运算是有一定区别的.

(x&1)&&(z<'z')是一个关系表达式.
x&1是位操作,结果为0
z<'z'是关系表达式,结果为1.('a'的ASCII比'z'小)
0&&1的结果为1,所以输出的是0.

a=a+b就是a=1+2=3.
b=a-b就是b=3-2(这时a是3)=1
a=a-b就是b=3-1=2
所以结果是2,1

就是一个解方程啊,把a,b,z的值带入z=a/2+b*x/y-1/2;
就能求出x了