當前位置:首頁 » 編程語言 » c語言的表達式的題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的表達式的題

發布時間: 2022-07-12 22:16:21

c語言題目,表達式8>6>3的值是什麼為什麼

在C中,這個表達式的值為「假」,即0——因為關系運算符>是左結合的,所以8>6>3被編譯器解釋為(8>6)>3,而8>6為「真」卻1,1>3就不成立,為「假」了,即整式結果為0。

❷ C語言題目 表達式計算

假設沒有括弧匹配錯誤, 支持多餘空白, 支持負數

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<assert.h>

charstr[110];
doubleseq[110];
intis_op[110];
intstk[110];

intlevel(intv){
switch(v){
case'+':
case'-':
return1;
case'*':
case'/':
return2;
}
return-1;
}

intmain(){
intlen;
doublepre_num=0,num=0,sign=1;
intsql=0,stk_top=0;
inti;
scanf("%s",str);
len=strlen(str);
seq[sql]='(';
is_op[sql++]=1;
for(i=0;i<len;++i){
if(isspace(str[i])){
continue;
}elseif(isdigit(str[i])){
num*=10;
num+=str[i]-'0';
pre_num=1;
}else{
if(pre_num){
pre_num=0;
seq[sql++]=num*sign;
sign=1;
num=0;
}elseif(str[i]=='-'){
sign=-1;
continue;
}
seq[sql]=str[i];
is_op[sql++]=1;
}
}
if(pre_num){
seq[sql++]=num*sign;
}

seq[sql]=')';
is_op[sql++]=1;
for(i=0;i<sql;++i){
if(seq[i]=='('){
stk[stk_top++]=i;
}elseif(seq[i]==')'){
intlr=stk[--stk_top];
intj;
intpre_op='+';
doublepre1_num=0,pre2_num=seq[lr+1],ans;
for(j=lr+2;j<i;++j){
if(level(seq[j])>1){
if(seq[j]=='*'){
pre2_num*=seq[++j];
}else{
pre2_num/=seq[++j];
}
}else{
if(pre_op=='+'){
pre1_num+=pre2_num;
}else{
pre1_num-=pre2_num;
}
pre_op=seq[j];
pre2_num=seq[++j];
}
}
if(pre_op=='+'){
ans=pre1_num+pre2_num;
}else{
ans=pre1_num-pre2_num;
}
seq[lr++]=ans;
memmove(seq+lr,seq+i+1,(sql-i)*sizeof(double));
memmove(is_op+lr,is_op+i+1,(sql-i)*sizeof(int));
sql-=i-lr+1;
i=lr;
}
}
printf("%.3lf",seq[0]);
}

❸ 求教C語言中表達式的問題,求解!!!

在c語言中真是1,假是0。
任何比較<=,>,!=等的結果只可能是真或假,亦即1或0。

1
對於a<=x,不論a和x的值是多少,結果只可能是0或1,而0或1都是小於b(100)的。
所以,a<=x<=b的值是1(真)。
2
在c中5>2>7>8是允許的。
與1同理,5>2>7的結果肯定是小於8的。
所以,5>2>7>8的值是0(假)。
3
%是求余。因j等於7,7除以4的余數是3不等於0,所以(j%4!=0)為1(真),a=1+1=2,最後a的值是2。

❹ C語言習題,關於數據類型表達式

1.A main()函數是一個程序(工程)的入口且有且僅有一個;
2.A 相當於求a=a%(n%2)即可
3.A 4.C
5.C 對於邏輯運算,C語言規定,0表示為假,一切非零整數為真
6.A 模運算要求兩個數必須是整型數據,故答案b是錯誤的。答案c是錯誤的原因是不能將一個常數賦給一個表達式。答案d也是錯誤的,應該給float加上括弧才對,不符合強制類型轉換的格式;
7.C /與*的運算級相同,只要遵照從左向右的運算順序即可
8.B 9.D
10.A 字元型常量分兩種(1).用單引號括起來的一個字元 如:'a',' #','*'...注意:'ab'不是字元 常量(2)轉義字元也是字元常量;所以選A

我把我覺得需要注意的給你寫下來了,希望對你有所幫助哦!呵呵

❺ c語言的一道關於邏輯表達式的題!!求解!!

1.關系運算符「>」的優先順序比條件運算符「? :」高,並且,「>」運算方向是從左往右,「? :」運算方向是從右往左,根據該規則,可以計算上式。
2.上式等價於:(2>1>0 ? 3>2>1 :(4>3>2 ? 5>4>3 :6>5>4) )
從內往外展開,4>3>2等價於(4>3)>2,4>3為真,值為1,從而得1>2,該式的結果為假,值為0,所以4>3>2的值為0;
3.同理可以依次推出結果為0

❻ C語言表達式問題

原式: k=10*min(i,j);
宏定義是在編譯 前做 字元串替代,
min(i,j) 替代 成 (i)<(j)?(i):(j)
於是 k=10*(i)<(j)?(i):(j);
k=10*(10)<(15)? (10):(15)
100 < 15 為假,取 冒號後的 15 賦給 k, k 得15。
如果原式是 k=10* ( min(i,j)) ; 結果才會是100。

❼ C語言 表達式 多選題

1) BD
2) ACD
3) BCD
4) AD
5) BD

❽ C語言邏輯表達式的習題

d1=(a<b)||(++a==5)||(c>b--); 因為都是或運算,有一個為真,那麼整個表達式都為真,a<b為真,所以後面的表達式程序都不會去管,所以d1 =1,a=4,b=8,c=5
d2=(a>b)&&(++a==5)||(c>b--);先是與運算,一個為假那麼就是假,a>b為假,所以&&(++a==5)不執行,後面是或運算,再判斷,c>b--,也是假,0||0=0,所以d2=0,a=4,b=7,c=5
d3=(a<b)||(++a==5)&&(c>b--);因為&&的優先順序高所以可以改寫成(a<b)||((++a==5)&&(c>b--)),a<b為真,後面的不判斷,所以d3=1,a=4,b=7,c=5
d4=(a>b)&&(++a==5)&&(c>b--);a〉b為假,後面的也不判斷d4=0,a=4,b=7,c=5

❾ c語言條件表達式題目,請看下題如何解答

答案是選c,就是如果a小於b時判斷a是否小於c,成立則k等於a,否則k等於c;如果a不小於b時判斷b是否小於c成立則k等於b,否則k等於c。

❿ 關於C語言表達式的題

y
=y-=m*=y

這其中有=
-=
*=
先確定它們的順序,
先算*=,再-=,最後=
1.
m*=y;
就是m內部乘以y,結果
10
2.
y-=10
就是y內部減去10,
而y事先是2,所以現在是-8
3.y=-8,
當然
結果就是
-8