c语言 二、求出下列表达式的值 三、写出下列程序的输出结果,注意格式

二、求出下列表达式的值
(一)设有变量说明语句
int a=8,b,c,d;
float x=5.2 ,y,z;
求下列表达式的值:
(1)b=5>14||x>2.5
(2)!(a<x)
(3)c=’\24’+5
(4)b=x+a%3+x/2
(二)设有变量说明语句
int a=3,b=4,c=5;
求出下列表达式的值:
(5) a+b>c&&b==c 0
(6) a||b+c&&b>c 1
(7) !a||!c||b
(8) a*b&&c+a
(三)设有变量说明语句
int a=3,*pi=&a;
求出下列表达式的值:
(9) *pi+a
(10) *pi++
三、写出下列程序的输出结果,注意格式
(1)void main()
{ float x,y;
int a,b;
x=3.1415;
a=y=b=x;
ptintf(“%d %d %f %f”,a,b,x,y);
}
(2)void main()
{ int i=1;
while(i<=100) i++;
printf(“%d”,I);
}
(3) void main()
{ int a[10]={10,2,3,1,5,6,7,8,-1,-10},i,j,t;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[j]>a[i])
{ t=a[j];a[j]=a[i];a[i]=t;
}
for(i=0;i<10;i++) printf(“%d ”,a[i]);
}
(4)void main()
{ char a[]=”I am a student.”;
int i=0;
while(a[i]!=0) putchar(a[i++]);
}

(5)void main()
{ int a=5,b=6,c;
int *p1,*p2,*p3=&c;
*p1=&a;*p2=&b;
*p3=*p1;*p1=*p2;*p2=*p3;
cout<<a<<’\t’<<b;
}
(6) int min(int a,int b)
{ return(a>b?b,a);
}
void main()
{ intx=5,y=6;
printf(“%d %d \n”,x,y);
printf(“%d”,min(x,y));
}

二、求出下列表达式的值
(一)设有变量说明语句int a=8,b,c,d;float x=5.2 ,y,z;求下列表达式的值:
(1)b=5>14||x>2.5
=> 5>14||x>2.5 = 0||1=1
(2)!(a<x)
=>!(8<5.2)=!(0)=1
(3)c='\24'+5
=> \24是8进制24 即十进制20 所以c=25
(4)b=x+a%3+x/2
=>b=x+a%3+x/2=5.2+8%3+5.2/2=5.2+2+2.6=(int)9.8=9
(二)设有变量说明语句int a=3,b=4,c=5;求出下列表达式的值:
(5) a+b>c&&b==c 0
=>b==c为0 左边不用算,结果为0
(6) a||b+c&&b>c 1
=>1
(7) !a||!c||b
=>!3||!4||5=1
(8) a*b&&c+a
=>1

(三)设有变量说明语句int a=3,*pi=&a;求出下列表达式的值:
(9) *pi+a
=>6 *运算优先于+,所以先取值,再加,即3+3=6
(10) *pi++
=> 3 打印的实际上就是*pi, 在打印结束后pi指针会做++运算,但是已经和题目无关了

三、写出下列程序的输出结果,注意格式
(1)void main()
{
float x,y;
int a,b;
x=3.1415;
a=y=b=x;
printf("%d %d %f %f",a,b,x,y);//这里打错了,应该是printf

}

=>输出3 3 3.141500 3.000000
从右往左算,b=x取整为3 y=b为3 a=y为3 输出整数为3,浮点数默认带6位小数
(2)
void main()
{ int i=1;
while(i<=100)
i++;
printf("%d",i);//i应为小写
}
=>101
(3)
void main()
{
int a[10]={10,2,3,1,5,6,7,8,-1,-10},i,j,t;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[j]>a[i])
{ t=a[j];a[j]=a[i];a[i]=t;
}
for(i=0;i<10;i++) printf("%d ",a[i]);

}

=>10 8 7 6 5 3 2 1 -1 -10
=>就是从大到小排序然后输出 注意%d后面有空格,所以输出也有空格间隔

(4)
void main()
{
char a[]="I am a student.";
int i=0;
while(a[i]!=0)
putchar(a[i++]);
}
=>I am a student.
=>就是把数组按位输出
(5)
void main()
{
int a=5,b=6,c;
int *p1,*p2,*p3=&c;
*p1=&a;//这里应该是 p1=&a 不然初始化时对p1没有定义值,直接*p1会程序崩溃
*p2=&b; //应该是p2=&b, 理由同上
*p3=*p1;
*p1=*p2;
*p2=*p3;
cout<<a<<'\t'<<b;
}
=>如果按照p1 = &a; p2=&b计算,那么输出
=>6 5
=>注意在6 5中间有一个tab(水平制表符)
=>ab交换值

(6)

int min(int a,int b)
{
return(a>b?b,a);//这里的逗号应该是冒号 a>b?b:a 取较小值
}

void main()
{
int x=5,y=6; //int和x中间要有一个空格
printf("%d %d \n",x,y);
printf("%d",min(x,y));
}

=>输出
5 6
5
=>注意输出有两行,第一行数字中间有三个空格
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-21
二(一)(1).0
二(一)(2).0
二(一)(3).标准未定义,题目错误
二(一)(4).9
二(二)(5).0
二(二)(6).1
二(二)(7).1
二(二)(8).1
二(三)(9).6
二(三)(10).4
三(1).3 3 3.141500 3.000000 //语法错误
三(2).101 //语法错误
三(3).1087654321-1-10 //语法错误

三(4).I am a student. //语法错误,题目错误
三(5).6 5 //语法错误,题目错误
三(6).5 6
5 //语法错误,题目错误

楼主,各种错误,这题真的不能做,做了就是害自己

满意请采纳,不满意请追问
第2个回答  2013-06-21
二(一) (3)是 25 \ 表示八进制