2个回答
展开全部
第一个题;
那个赋值过程是从右向左的
a-=a+a;//先进行这里的时候,a的值就为9-(9+9)= -9了
而再进行 a+=(a-=a+a);就是a+=a;而因为上一步的时候a都为-9.所以此时a结果就为-9+(-9)=-18
所以结果为(C)-18;
第二个题;
从右到左
一开始的20/3的时候,就是一个整形除另一个整形,得到一个整形结果6。
i=f=l=d=20/3;相当于i=f=l=d=6;
故都是6
浮点型的就为6.0,整形的还是6;
所以结果就是:(A)6,6,6.0,6.0;
那个赋值过程是从右向左的
a-=a+a;//先进行这里的时候,a的值就为9-(9+9)= -9了
而再进行 a+=(a-=a+a);就是a+=a;而因为上一步的时候a都为-9.所以此时a结果就为-9+(-9)=-18
所以结果为(C)-18;
第二个题;
从右到左
一开始的20/3的时候,就是一个整形除另一个整形,得到一个整形结果6。
i=f=l=d=20/3;相当于i=f=l=d=6;
故都是6
浮点型的就为6.0,整形的还是6;
所以结果就是:(A)6,6,6.0,6.0;
展开全部
13, B) float a=b=10.0;
定义变量时的变量名要用逗号隔开,改成这样才对:
float a,b;
a=b=10.0;
18,只有赋值输入时,需要书写格式,输出是不会有格式符的;
23 !=为逻辑运算符,符号两边不相等返回1,相等返加0;
27 数组可以分两种定义,一种叫显示定义,一种叫赋值定义
A) int a[][3]; //显示定义,但第一维未指明
B) int a[][3]=; //赋值定义,第一维是1;
C) int a[][3]={}; //未赋值,第一维未指明
D) int a[2][3]=,,}; 赋值越界
42
main()
{ char s[]"Yes\n/No",*ps=s; //串中的\n为一个字符,
puts(ps+4); //从下标为4的位置输出字符串也就是:/No
*(ps+4)=0; //在下标为4的位置赋值为ascii码0;也就是'\0'
puts(s);//输出字符串,也就从第0个字符到*(ps+4)
//所指的'\0'这个置
}
43,补码知识
13,编译预处理
#define N 2
#define M N+1
#define K M+1*M/2
K=M+1*M/2=N+1+1*N+1/2=2+1+1*2+1/2=2+1+2+0=5 //其中int 1/2=0
for(i=1;i<K;i++)
i=1,2,3,4成立执行循环体四次;
定义变量时的变量名要用逗号隔开,改成这样才对:
float a,b;
a=b=10.0;
18,只有赋值输入时,需要书写格式,输出是不会有格式符的;
23 !=为逻辑运算符,符号两边不相等返回1,相等返加0;
27 数组可以分两种定义,一种叫显示定义,一种叫赋值定义
A) int a[][3]; //显示定义,但第一维未指明
B) int a[][3]=; //赋值定义,第一维是1;
C) int a[][3]={}; //未赋值,第一维未指明
D) int a[2][3]=,,}; 赋值越界
42
main()
{ char s[]"Yes\n/No",*ps=s; //串中的\n为一个字符,
puts(ps+4); //从下标为4的位置输出字符串也就是:/No
*(ps+4)=0; //在下标为4的位置赋值为ascii码0;也就是'\0'
puts(s);//输出字符串,也就从第0个字符到*(ps+4)
//所指的'\0'这个置
}
43,补码知识
13,编译预处理
#define N 2
#define M N+1
#define K M+1*M/2
K=M+1*M/2=N+1+1*N+1/2=2+1+1*2+1/2=2+1+2+0=5 //其中int 1/2=0
for(i=1;i<K;i++)
i=1,2,3,4成立执行循环体四次;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询