1樓:
①(c=getchar( )) != "\n’的含義是什麼?——從鍵盤接收一個字元賦給變數c,若c不是回車,while進入下一輪迴圈,若是回車則退出迴圈。
②如果輸入kas2i9e則程式的最後輸出結果是什麼——輸出是29。因為if(c>='0'&& c<='9')限制只處理0~9這10個字元,n的初值是0,遇到2時n=10*0+'2'-'0'==0+2==2('2'-'0'把字元2變成了數字2);下一次遇到9時n=10*2+'9'-'0'==20+9==29。畢。
2樓:向幸福開門
第一個問題,\n是c語言中的轉義字元,代表回車的意思,不等於回車,就說明字元變數必須從輸入流得到一個字元,作為它的值,這樣才能進行迴圈。
第二個問題,輸入kas2i9e,逐個分析,輸入k,進行迴圈之後,首先if語句判斷字元變數c的值要在字元0~9之間,如果不在這個範圍內就無法進行下一語句,那麼實際上,只有2和9這兩個字元可以執行if後面的語句。但是,因為你發的**看著太亂了,結果我猜應該是2*10+9=29.
3樓:歐璟衛思山
第一題:a*=16+(b++)-(++c)等價於a=a*
(16+(b++)-(++c));
"()"優先順序最高,所以先執行:(b++),在使用b之後,使b加一,因此(b++)=3;(++c),在使用c之前,使c加一,因此(++c)=5。然後將按照加減的結合性.
"自左向優"計算,因此16+(b++)-(++c)=14;之後
執行a*(16+(b++)-(++c))=28,所以a=28;
第2題:結果應該是1,因為unsigned
short型別的數值範圍是0到65535,(-
-!汗,你可找c\c++程式設計的書,那裡可以找到資料型別的數值範圍)因為int是範圍要大多,又因為signeed是以補碼形式存放,而unsigned是全部2進位制位都用本身表示自己,所以
程式的輸出結果是-1;
第3題:x/y=0.5,但要自動轉換成int型別,因此x/y=0
,所以1.0+x/y的值為1.0;
第4題:x-=y-z等價於x=x-(y-z),用小學的演算法計算x-(y-z)=5,
x的值為5;
x%=y+z等價於x=x%(y+x),因為x%(y+x)=0.5,又因為x,y都為整形(int),所以x的值為0;
第5題;在此語句中printf("#d&%d\n",(++x+y++),z+2);
#d&是字元輸出,%d是輸出第一個表示式(自左向右),即是(++x+y++),先執行自增運算子++x值為4,(原理看第一題的說明),y++的值為3,所以(++x+y++)
=7,所以程式執行結果是#d&7;
第6題:我覺得你這個題目是你抄錯題"a=2,b=3,c=4.5,y=1.
6,"中的c應該為x,這題是這樣的,先執行(int)x=4,(int)=1,再執行(int)x%(int)y=4(注意,這裡4是float型別),在執行(float)(a+b)/2=2.5,所以此表示式的值為6.5
第7題:-
-!你有抄錯題沒有?
main()
/*覺得是printf("%d,%d,%d,%d",i,j,m,n);
*/m=++i;因此m=9,這裡i為9,這個容易理解(第一題);j第一次執行的時候n=j--,這裡n=3,j=3;到第2次執行j的時候,即是執行printf("%d,%d,%d,%d,i,j,m,n)語句,這裡的j就為2
因此執行結果為:9,2,9,3
第8題:因為a>b>c是真,在c中都用數值1表達真,0表達假,所以m=1,所以表示式m=a>b>c的值是1;
第9題:又抄錯題?-
-!“b=2”?
先執行!,在執行關係運算子,a>b為真,c>a為假,ab為假,在執行邏輯運算子a>b&&c>a為假,a>b&&c>a‖ab&&c>a‖ab為假,所以a>b&&c>a‖ab的值是0;
第10題:答案肯定為0;"設a=3,b=4,c=5,則表示式!(x=a)&&(y=b)&&0的值是"這題你做的出請告訴我,我也不會。
(但可以敢肯定的是他的值為0,因為這個表示式的後面那個資料為0)如果將這題這樣改寫的話“10.設a=3,b=4,c=5,則表示式!(c=a)&&(c=b)&&0的值是”,我就有感覺怎做,首先(c=a)為假,!
(c=a)為真,(c=b)為假,!(c=a)&&(c=b)為假,!(c=a)&&(c=b)&&0為假,即是0;
c語言題目簡單的題目?
4樓:
定義陣列,長度必須是個確定的值,char p[n],這樣肯定不對
字元比較,,不用strcmp,這個是比較字串的,只用用if( p[i]== 'a' )這樣就可以了
str[i]是個什麼?看不出來
5樓:武聰司寇璐
要看區別直復
接,替換到語句中
制就明白了:
1,設有一以下巨集定義
#define
width
80#define
length
width+40
則執行賦值語句
v=length*20
v=?替換得:
v=80+40*20
這顯示不是你想要結果
2,設有一以下巨集定義
#define
width
80#define
length
(width+40)
則執行賦值語句
v=length*20
v=?替換得:
v=(80+40)*20
所以一看就明白結果是不一樣的。
6樓:匿名使用者
mian
else if(str[i]=='b')
else if(str[i]=='c')
}printf("%d,%d,%d",a,b,c);}
7樓:匿名使用者
#include
int main()
;while((c=getchar())!專='\n')屬r[c-'a']++;
printf("%d %d %d",r[0],r[1],r[2]);
return 0;}
8樓:青島第一仙女
?啊啊啊啊啊啊啊啊啊
9樓:匿名使用者
11111111111
一道簡單的c語言題
10樓:匿名使用者
選d 111 才對,
n 不解釋,
++n 計算完後 n=1, 也就是 ++n; printf("%d",n) //答案為1
n-- 計算完後 n=0, 也就是 n--; printf("%d",n) //答案為0
但現在printf 的是計算時,此時各值均未作變化,均為1。
一道簡單的c語言題
11樓:聽不清啊
#include
unsigned set_n(unsigned x,int pos,int n)
{for(int i=pos;i
簡單的C語言程式設計 題目如下 ,簡單C語言程式設計 題目如下
include main int mcm int m,int n while t return m include int a,b int gongbei int n n int gongyue int n n void main 幽迪 最好還是自己想想咯 下面的 是直接在主函式裡求的,沒有寫成子函...
一道簡單的c語言題目,一道簡單的C語言題目
s 2 是一個指標陣列,指向兩個字串 s 0 s 1 while s 1 0 迴圈,條件為 s 1 0 字串的最後一個值是 0 這裡遍歷s 1 字串,一共會遍歷4次。 寒鐵礦 你定義了一個指標陣列,s 0 指向的是第一個 字串的起始地址,s 1 指向的是第二個 字串的起始地址。while s 1 0...
問個簡單的C語言題
先算a a 意思是a a a 結果a 144然後算a a 意思是a a a 結果a 0最後算a a 意思是a a a 結果a 0 是賦值的意思,才是等於的意思 a a肯定是0啊 語句是從後往前執行的 a a a a 等效於a a a 12 12 24a a a 24 24 0 a a a 0 0 0...