兩道c語言題目,兩道C語言題目

2021-12-23 11:29:27 字數 6098 閱讀 5211

1樓:無法無天

1.for先執行第一個賦值語句,因為第一個賦值語句為空,不理,之後就判斷

10>5,進入迴圈i++,再執行第三個賦值語句++b=6,之後再開始判斷,再i++,再++b如此迴圈

當10>10時跳出迴圈,此時i=5

2.while(1<=x<=2)這個是死迴圈這樣的表示式為邏輯判斷,一步步的做出返回

先(1<=x)返回0或1

然後再判斷(1<=x)<=2,返回0或1

所以返回值永遠是1,所以是死迴圈

如果要寫成判斷,改為while(x>=1 &&x<=2)

2樓:夢_越

題目一:理解一下for迴圈執行的方式,三個引數,第一個是定義值,第二個執行迴圈需要滿足的條件,第三個是迴圈結束後執行的動作. 此題雖然是++b, 但是++b是在執行完迴圈之後進行的,所以首次迴圈判斷條件a>b是10>5; 這樣得出i=5就好理解了

題目二:這個要認真看下, 因為整個程式中沒有對x值進行改變,x始終為3(可以在迴圈最後一行打出來看看),故為死迴圈. y = x--; 這一行是對y賦值,x是不變的,呵呵

c語言tow函式題目一道

3樓:墨汁諾

為了中心對稱,顯然要用空格補齊前面的位置,迴圈才能做到。

#include

void tow(char c,int n)for(int k=1;k<=i;k++)printf("\n");}}

void main()

4樓:匿名使用者

為了中心對稱,顯然要用空格補齊前面的位置,想一想,怎麼才能迴圈才能做到?

5樓:匿名使用者

#include

void tow(char c,int n)for(int k=1;k<=i;k++)printf("\n");}}

void main()

6樓:

pow 函式是 double 型。是否你的編譯器引入了誤差。你只是處理4位數,你可以自己寫 my_pow(int x): int my_pow(int x) 不會引入誤差。

兩道c語言題目求解

7樓:

第一題可能是題目印錯了,如果的確是你所寫的那樣;答案是16,6#define f(x)(x*x)

main()

這樣答案就是c,

第二道題,題目可以這樣看

main()

cnum[2];

cnum[0].x=2;

cnum[0].y=4;

cnum[1].x=3;

cnum[1].y=1;

printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].y);

}第三題 c1='1'對應的是字元1,對應的十進位制為49;

如果c1=49,則等同於c1='1'字元;

而c1=1對應的是ascii第二個字元,也就是這個「☺」

8樓:匿名使用者

第一題:i1=(8*8)/(4)=16 i2=(4+4*4+4)/(2+2)=6

我看原題的意思應該是

#define f(x)(x*x)

main()

結果才會選c

實踐就是最好的證明,我執行過了。結果就是16,6第二題不能執行,亂七八糟的錯誤一大堆。

第三題:include前面要加 # .

至於你問的問題??

你是不是想說char型別變數賦值如果是數字就不能用『』括起來(記住,字串的話用雙引號,單個字元都是用單引號的)?ascll碼裡面有0-9這幾個數字,他們可以是字元,也可以是數值。原題有加單引號,是字元。

9樓:匿名使用者

第一道:#define f(x)(x*x)這個巨集替換將i1=f(8)/(4)替換為:i1=(8*8)/(4*4);i2=f(4+4)/(2+2)=4;替換成:

i2=(4+4*4+4)/(2+2*2+2)=3;其實,巨集替換就好比複製,它只是機械性負責複製,而不會識別運算子的優先順序之類,所以用的時候要特別小心

第二道問題是問題,cnum[2]=結構不明,不知道是你抄錯還是什麼原因;

第三,在c語言中,是把雙引號中的資料看成字元的,而不資料,就比如"1",這樣的表示說明它只是一個字元,而不是表示大小的資料。。。

10樓:匿名使用者

1.i1=f(8)/(4);

經過巨集替換後就成了:

i1=(8*8)/(4);

所以i1=16

i2=f(4+4)/(2+2);

經過巨集替換後就成了:

i2=(4+4*4+4)/(2+2);

所以,i2=6

所以i2

2.struct cmplx cnum[2]=這個式子定義了一個struct cmplx型別的結構體陣列cnum,它有兩個該結構體型別的元素,cnum[0]和cnum[1],cnum[0]有兩個成員變數,分別是cnum[0].x和cnum[0].

y,而且在定義時分別被初始化為2和4,cnum[1]也有x和y兩個成員變數並且在定義時被初始化為3和1

3.後面的'1'和'2'都是字元,不是整數1和2

一道c語言題目

11樓:匿名使用者

#include

char const des[25] = ,};int inputdate(int i)int sumup(int x)

return sum;

}int deduce(int x)

int main()

12樓:鳳祺隨銳精

求輸出結果嗎?

a=y轉化為a=x+1而下x=5;

所以a=6

再看z=?

z=x+1*x/2

把x=5代入得z=7

所以,輸出為75

13樓:唐蘊鐸冰綠

前面幾個都bai

不按題目要求來編du程,題目說要用兩zhi個子函式實dao現,所以應該是這版樣.

#include

"stdio.h"

inta(int

n)return

sum;

}double

b(int

n)return

nn;}

intmain(int

argc,

char*

ar**)

14樓:郭怡和拜豔

首先,你的程式應該有抄問題,變數c沒有定義,所以應該會報錯。如果把定義語句改為float

a,b,c;並且把賦值語句都加上分號的話應該會輸出如下結果:

a=123.450000

b=32.560000

c=123.450000

解釋:%f禁止使用指數形式來表示浮點數,但注意它的精度要求:也是小數點後6位有效數字。

15樓:福獻仉河

#include

#include

#include

struct

node*

insert(struct

node*

head,struct

node*

end);

struct

node

;int

main()

printf("\n");

t=head;

printf("請輸入要插入的節點值\n");

scanf("%d",&s);

while(t!=null)

else

else

}else}}

t=head;

while(t!=null)

printf("\n");

}這串**是我之前寫的,作用是建立一個連結串列後,插入一個節點,位置在比新節點值大的節點之前,你根據我這個改一下就行了

16樓:闞壽扶經綸

樓主不要被

bai樓上忽悠了,while(y--);與while(y);

y--;可不能du畫等號.就

zhiy而言,while(y--);比while(y);

y--;多運算了一次dao.while(y);

y--;

y==0;

while(y--);當y等於

內0的時候,這個迴圈實容際上已經結束了,此時y=0,但y--還有個自減1,所以0-1=-1;

(y--,減號在後,執行玩之後再自減,如果是--y,則是先自減再執行以下程式,如果是--y的話輸出就是0了.)

while(y);

y--;則是,y=0時,如果有個printf的話,此時輸出y=0迴圈結束,而y--在迴圈之中,迴圈都結束了,自然不會再執行y--了,所以y依然等於0.

樓主懂了否?

17樓:万俟秋英謇詩

主**:bai

比如輸du入的字串存

zhi放在str中;dao

if(str[i]>=65&&str[i]<=87)/*大寫字母

內*/str[i]+=3;

else

if(str[i]>=88&&str[i]<=90)str[i]=65+str[i]-88;

else

if(str[i]>=100&&str[i]<=122)/*小寫字母*/

str[i]-=3;

else

if(str[i]>=97&&str[i]<=99)str[i]+=23;

else

if(str[i]>=49&&str[i]<=58)/*數字容*/str[i]=58-str[i];

18樓:象友鮮彬彬

我今天剛回答過bai類似的

du問題

在c/c++中,自運算(+=,-=,*=,/=)及函式zhi的引數調dao用順序是沒有標準

回規定的

所以,不同編譯答器在處理這類語句時,結果會因編寫編譯器的人對標準語法的理解不同而生成不同的**,而執行時會有不同的結果

如你上面的程式,除結果為給出的答案中的資料為,還可能為30,30,0,0(gcc

4.9.2

32位)

所以,我上一個問題就說過,出這種題目的老師根本不瞭解c/c++的s標準,也沒有實際多個編譯器使用的經驗,不配教c語言的

這類語句的執行結果只與編譯器有關

且只要符合c/c++語法,它都不會報錯的

19樓:伊禧施知慧

最後一次執行y--,取y的值等於0時就結束迴圈,然後y再自減1,所以while迴圈結束後y就等於版-1。

(後置自增權/減:

i++/i--,先取i的值,然後再自加/減操作(這在下次得到這個值)。)

一般的技巧是

如果不關心迴圈結束後迴圈變數的值,可以用前置自加減和for一起比較方便

/*while(y)

*/for(y

=10;

y;++y)

printf("%d\n",

y);printf("最後y=%d\n",y);

20樓:豆新臺問筠

while(y--);這句會先判斷y是否為0,但不管是不是為0,都會減1,只是如果等於0了就跳出迴圈了,所以當y=0時在執行while(y--);時就相當於while(y);

y--;

21樓:載孝羅嬋

我的答bai

案是c我是用這個du程式驗證zhi

的,你也可dao以自己驗證一下

#include"stdio.h"

main()

輸出時答案c和答案d輸出的a值和s值都是一樣的,你可能會以為有兩個答案。只要你仔細分析就會明白答案是c

22樓:隗淑蘭司釵

我自己寫bai的,加了註釋,認為可以du就給分吧#include

"stdio.h"

void

main()

23樓:鄧塵姚珠

答案是c

stutype是結構體變數。

兩道c語言題目求解

第一題可能是題目印錯了,如果的確是你所寫的那樣 答案是16,6 define f x x x main 這樣答案就是c,第二道題,題目可以這樣看 main cnum 2 cnum 0 x 2 cnum 0 y 4 cnum 1 x 3 cnum 1 y 1 printf d n cnum 0 y c...

誰能幫我解決一道C語言題目C語言一道題目,誰能幫我解得

include include include include define eps 1e 6 用於控制商的精確度 main else printf 回答錯誤 n break case 2 for i 1 i 10 i while c 0 printf d.d d n i,a,b scanf d d...

求教!一道C語言題目,求教一道C語言的題目!

你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...