c语言 二、求出下列表达式的值 三、写出下列程序的输出结果,注意格式
作者&投稿:祢狗 (若有异议请与网页底部的电邮联系)
#include
void main()
{
int a=7;
float x=2.5,y=4.7,r;
r=x+a%3*int(x+y)%2/4;
printf("%f
",r);
}
运行结果 2.500000
a+b=14
2.4*3=1212+18=30
3.是一个右值表达式,结果为右边的值
即 a % b 的值,%求余运算符 故结果为2
(一)设有变量说明语句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).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 //语法错误,题目错误
楼主,各种错误,这题真的不能做,做了就是害自己
满意请采纳,不满意请追问
二(一) (3)是 25 \ 表示八进制
愚常精制: (1) 4.5 + 2%3*8%2/4 = 4.5 + 0 = 4.5 (2) 5.0/2 + 4%3 = 2.5 + 1 = 3.5
忻府区15052179646: c语言:求下列表达式的值: !(a>b)&&!c||1 其中a=1,b=2,c=3 - ?
愚常精制: 结果为1 是是关系表达式,首先进行a>b得假值为0,则式子变为!0&&!c ||1 与或非的运算关系为先进行非运算则式了变为1&&0 ||1 再进行与运算变为0 ||1 最后或运算等1
忻府区15052179646: C语言 求表达式的值 - ?
愚常精制: 逻辑式.解释如下: x++,x的值不为0,所以(x++)为“真”.同理(++y)也为“真”. 所以x++||++y的运算结果为“真”. ++z,这个z的值也不是0,所以(++z)为真. 所以表达式:x++||++y&&++z的逻辑结果为“真”,值就是“1”.所以t=1
忻府区15052179646: c语言求表达式的值?
愚常精制: 运行程序的结果: (1) x*=2/3+5 75 (2)x%=(x%=4)-20 (3)x/=x+x0
忻府区15052179646: C语言题目,设a=2, b=3, x=4.5, y=3.5 求以下表达式的值(要求:写出详细计算过程)3、设a=2, b=3, x=4.5, y=3.5 求以下表达式的值(要求:写出详细计算过... - ?
愚常精制:[答案] (1) 4.5 + 2%3*8%2/4 = 4.5 + 0 = 4.5 (2) 5.0/2 + 4%3 = 2.5 + 1 = 3.5
忻府区15052179646: c语言 求下面表达式的值 1.a=12,3*4/a 2.a=2,a= - =1,a*7 3.a=b=3,a+=3,a%b+2 - ?
愚常精制: #include int main() { int a,b; int result;//1.a=12,3*4/a result=(a=12,3*4/a); printf("1. %d\n",result);//2.a=2,a-=1,a*7 result=(a=2,a-=1,a*7); printf("2. %d\n",result);//3.a=b=3,a+=3,a%b+2 result=(a=b=3,a+=3,a%b+2); printf("3. %d\n",result); } 输出结果为:1. 12. 73. 2
忻府区15052179646: C语言: 写出下面各逻辑表达式的值.设a=3,b=4,c=5. (1) a+b>c && b== - ?
愚常精制: 1) 0 2) 1 3) 1 4) 没有x和y的定义,无法计算. 5) 1
忻府区15052179646: c语言编程 编写程序求下列表达式的值 x+a%3*(x+y)%2/4.设x=2.5,a=7,y=4 - ?
愚常精制: #include <stdio.h> void main() {int a=7;float x=2.5,y=4.7,r;r=x+a%3*int(x+y)%2/4;printf("%f\n",r);} 运行结果 2.500000
忻府区15052179646: C语言题目,写出下列表达式的值,并写出运算过程.设a=10,b=4. a+b,18+(b=4)*3 - ?
愚常精制: 1. a+b=14 2. 2.4*3=12 12+18=30 3. 3.是一个右值表达式,结果为右边的值 即 a % b 的值,%求余运算符 故结果为2
忻府区15052179646: 若有程序段:int b[2][3]={{1,2,3},{4,5,6}}; int *p=&b[0][0]; 则下列哪个表达式的值是3( ) 若有程序段:int b[2][3]={{1,2,3},{4,5,6}}; int *p=&b[0][0]; \x05则下列哪... - ?
愚常精制:[选项] A. b \x05\x05 B. *(b+2) \x05 C. *(p+2) \x05 D. (*(b+1))[2] 初学 c语言 对指针