❶ c语言;计算表达式
必须用getch()或getchar()函数,获取单个字符,然后逐个字母进行判断
如果是运算符,直接赋值到数组a里面
如果是连续的数字,应该做一下处理的,把它们组合成数值
关键代码如下:
int i,num;
char ch,flg;
i=0;
num=0;
flg=0;//表示num没有接受赋值
while((ch=getchar())!='\n')
{
if(ch=='+'||ch=='-'||ch=='*'
||ch=='/'||ch=='('||ch==')')
{
if(flg)
{
a[i++]=num;
num=0;
flg=0;
}
a[i++]=ch;
}
else if(ch<='9' && ch>='0')
{
num=num*10+ch-'0';
flg=1;
}
else
{
//ERROR
}
}
需要注意的是,输入的数,不能超过255
因为要赋值到char类型的数组中
❷ c语言中表达式计算问题
这种问题十分没有意义,准确地说,此题答案不唯一,不同的系统会对这个表达式进行不同的解释,
1.
等号是右结合性操作符,所以运算过程是从右到左的,
首先计算
x-=x*x,之后整个表达式变成了
x+=-30,此时,x==6因此,最终结果是-24
2.
等号是右结合性操作符,所以运算过程是从右到左的,
首先计算
x-=x*x,之后,x=-30,然后再执行x+=x所以,结果就是x==-60
❸ c语言表达式的计算
'4'ascii码值52,52+52=104,对应字符'h'
0,自己减自己,结果是0,没什么好说的
'4',ascii码值52,-4后对应字符'0'
'4'ascii码值52,'0'码值对应48,相减差值4
-0等于没减,还是原值
❹ 计算c语言表达式的值
1. -12/5 = -2 只为这个是整数运算,结果只取整数部分
2. 62 1*(6+7) + 7 *(6+1) = 13 +49 62
3. 3.2 *(6+7+1) = 44.8
❺ c语言的逻辑表达式运算
第一个,算术运算>逻辑运算,首先计算b+c=9
b-c=-1
这样三个值都为非0
故而结果不管怎么样都是ture(1)
第二个,考察了更多的优先级问题。首先括号之外,表达式里面的!运算优先级最高,所以有
!7+c-1&&6.5
有0+11&&6.5
11&&6.5
两侧都是非0
故而结果也为ture(1)
❻ C语言中表达式的值怎么算
此式即等同于 (4!=3)&&(2)&&(4+1<5)
1代表真,0代表非,则原式即 1&&1&&0 所以值为0。
例如:
-12/5 = -2 只为这个是整数运算,结果只取整数部分。
62 1*(6+7) + 7 *(6+1) = 13 +49 62
3.2 *(6+7+1) = 44.8
(6)c语言表达式的计算扩展阅读:
一个表达式的赋值和算符的定义以及数值的定义域是有关联的。
两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。
一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。
表达式和其赋值曾在20世纪30年代由阿隆佐·邱奇和Stephen Kleene在其λ演算中被公式化。λ演算对现代数学和电脑编程语言的发展都曾有过重大的影响。
❼ c语言表达式的计算,谢谢!
'h'
0
'0'
4
'4'
❽ C语言计算表达式的值
逗号运算符
左至右计算
取
表达式
值作
整
语句
值
先算a=3,
a赋值
3
算b=4,
b赋值
4
计算c=a+b
实际
c=3+4
c
值
7
终整条语句
值
c
值7.
❾ C语言,求下列表达式的计算过程
赋值运算符的结合性是从从右至左,因此表达式的计算过程如下:
先算:a*=a,即a=a*a,即10*10=100,a=100
然后算a-=a,即a=a-a,即100-100=0,a=0
最后算a+=a,即a=a+a,即0+0=0,a=0
所以,表达式最后的结果为0。验证代码如下:
#include<stdio.h>
intmain()
{
inta=10;
a+=a-=a*=a;
printf("a=%d ",a);
return0;
}
//运行结果
F:c_work>a.exe
a=0
❿ C语言 计算逻辑表达式的值
1.x=3e+5什么意思,x=3*10^5=300000
2.!x*!y?!优先等级高于*,所以!x=0,!y=0,!x*!y=0
3.x||(i=5)&&j-3
优先等级由高到低
()
-
&&
||,这样先计算(i=5),就是i等于5,然后计算j-3=-1
再计算5&&-1,返回真,x||1返回真,这样输出是1(c语言中,真为1,假为0)
上面均是基础知识