簡單的C語言題,C語言題目簡單的題目?

時間 2021-08-30 11:20:57

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...