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語言題目簡單的題目?
在下姓周 結果是 4 是c語言中的右移運算子,它將運算元按位右移,即把低位去掉然後在高位補0或者補1 當運算元是無符號數或者正數時,高位補0 是負數時高位補1如 無符號數 11100000 右移3位的結果為 00011100有符號數 11100000 右移3位的結果為 11111100所以 8 也就...
C語言入門題求解,簡單的C語言入門題目求解
答案是289,步驟與思路 int i 289 定了乙個整型變數i,便賦初值為289 char c 定義乙個char型變數c c i 把i的值賦給c 這裡是指289 printf d n c 在預設終端列印出字元c的值,d就是以整型列印,後面那個 n就是換行的意思 char c,c乙個位元組,值範圍 ...