各位大蝦,c語言問題,請教C語言的問題

2023-03-09 08:25:02 字數 4138 閱讀 4285

1樓:匿名使用者

1,窗體設計的話,你最好用mfc,你可以自己去查一下。是微軟的乙個框架。生成乙個窗體很複雜,有許多。但是也有一些現成的函式給你用。

2,指標有很大的用處,他可以讓你直接操作記憶體,這一點的用處,當你編寫一些靠硬體的程式時,你就深有體會了。還有就是對陣列字串的操作,有了指標,就更容易,也更精確。函式本身也是乙個指標,你可以把他當引數傳給別人用。

總之用處hight多,剛入門的話,先了解一下語法吧。

首先你這個程式,有許多語法問題,不知道你是怎麼通過編譯的。下面是修改過的。修改之處做了註釋。

int fac(int a);/申名。

void main()

int fac(int a)

{//你少了{

int f;

if(a==0‖a==1)

f=1;else

f=fac(a-1)*a;//你的n是從哪來的,n是main裡的自動變數,你這引用不到。

return(f);

另外,學習的話可以這麼寫;專業點的話,你要考慮輸入是否合法,還有階乘結果一般是乙個很大的數,你要考慮你用int變數是不是太小了點,很容易超過存貯的範圍,導制結果異常。

請教c語言的問題

2樓:紀景明枚書

既然sum_power(n,k)=pow(n,k)+sum_power(n-1,k)

你至少要定義sum_power(0,k)及sum_power(1,k)兩個初值。

另外你的k是什麼?好象沒有意義喲。

c語言問題

3樓:匿名使用者

首先,手動計算一下怎麼才能交換。

根據題目要求,先算。

0的最小公倍數:18,這說明:最少10個一角、12個五角、9個一元才一樣高,也就是說小明可以交換的倍數是10*0.

1+12*元,而小紅交換的倍數是10元,雙方可以交換的的金額只能是90元、180元……你輸入n=3,那肯定不能交換啊。

來到這裡,如果認為效率為上的話,直接判斷小紅拿出的10元的張數n是不是9的倍數,一步就可以輸出結果了。如果n/9是整數,則一角、五角、一元的數量就是:10*n/9、12*n/9、9*n/9了,否則輸出不能交換。

其次,如果你硬要按照你源程式的思路做,那我只能指出最明顯的邏輯問題:for迴圈沒有大括號,所以它只會一直執行j=6*i/5;這一句直到條件終止,那當然輸不出結果啊。

還有沒有其他問題,既然是考題,自己思考吧。

4樓:匿名使用者

應該是資料型別的問題吧,不能用整型,整型沒有符合的解。

c語言問題

5樓:匿名使用者

首先,這是一道考區分 "表示式" 與 "表示式的值" 的題。

我們要注意,表示式也是有它自己的值的。

一、逗號表示式(表示式1,表示式2,..表示式n)採取從左到右順序求值,並把最後乙個逗號後的表示式的值作為 "逗號表示式的值"。

如:表示式1,表示式2,……表示式n 這個 "逗號表示式的值" 就等於 "表示式n" 的值,與其它值無關。

二、賦值表示式(變數=表示式)採取從右到左求值,並把等號左邊的變數最終得到的值作為 "賦值表示式的值"。

所以,表示式(i=4,j=16,k=32)的值是 k=32 的值,而 k=32 這個賦值表示式的值就是等號左邊變數 k 的最終值,是32。於是,x 值為32。

6樓:匿名使用者

因為你只輸入了乙個數10,系統把這個值賦給了變數a;你的程式中用了兩個變數去接收輸入的值,所以系統選擇了乙個隨機數賦值給了變數b。

另外,虛機團上產品**,超級便宜。

c語言問題

7樓:匿名使用者

首先說明一下,unsigned short佔用2個位元組,long在32位系統中佔用4個位元組;

我們對於指標進行操作時,指標移動的步長和它的型別是有關的,舉例如下:

如果指標p的型別是char* ,那麼p+1,就表示p向後挪動1個位元組;如果指標p是unsigned short* ,那麼p+1就表示p向後挪動2個位元組;如果指標p是long* ,那麼p+1就表示p向後挪動4個位元組;

現在來看你的題,本來myarray+2,其實是向後移動4個位元組,指向4這個元素;但是被轉化為long*後,它就往後移動了8個位元組,指向了0x1284,這是對這個指標進行取值,它的結果應該是。

0x00051284;然後再做型別的強制轉換,從long轉到char,截斷高3位,所以得出結果為0x84

8樓:網友

值是4(long*)是型別轉換。

第三個不清楚自己去試一下吧。

c語言問題

9樓:天上的一條龍

非0數的邏輯值為1

-5為1!8為0

所以-5&&!8為0

c語言問題

10樓:

'a''\101' -101是八進位制,表示字元'a'。

'\\轉義符,表示\。

'x41' -41是16進製制,表示字元'a'。

'' 表示回車符。

這面這些叫字元常量。

char a,b,c='2'; 定義三個字元變數,名稱分別為a,b,c,其中c被賦值為'2'。

11樓:匿名使用者

樓主,其實這個很簡單。字元常量就是不變的字元,比如說'a','b','c'..而字元變數就是可以指向不同字元的變數,比如 char d,當d=『a』時d就代表了'a',當d='b'時d就代表了'b',變數就像乙個碗,可以裝相應的常量。

12樓:姜雯韓旭

字元常量就是單個字元,不給他賦值。例如:a

字元變數就是對字元賦值。例如:int a=1 這個時候 a 就是字元變數。

13樓:帥得有點壞

字元常量是用單引號括起來的乙個字元。

有兩種表示方法: 一種是用該字元的圖形符號,如'b' ,y','

另外還可以用字元的ascii碼表示,即用反斜符(\)開頭,後跟字元的ascii碼,這種方法也稱為轉義序列表示法,具體方法是:有兩種形式: 一種是用字元的八進位制ascii碼,表示為:\odd.這裡,ddd是八進位制值(o可以省略)。

另一種使用字元的十六進位制ascii碼值,表示為 \0xhh或0xhh 這裡hh是兩位十六進位制值。 如:'a' ,101' 和 'x41'都表示同乙個字元常量。

轉義序列表示法還可以用來表示一些特殊字元,用來顯示特殊符號或控制輸出格式。

在c語言中,字元常量有以下特點:

1) 字元常量只能用單引號括起來,不能用雙引號或其它括號。

2) 字元常量只能是單個字元,不能是字串。

3) 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能參與數值運算。如'5'和5 是不同的。'5'是字元常量,不能參與運算。

字元變數是存放字元常量的變數,其取值是字元常量,即單個字元。

字元變數的型別說明符是char。

定義形式: char 識別符號1,識別符號2,… 識別符號n

例如: char c1, c2, c3, ch ; c1=『a』 ;c2=『b』 ;c3=『c』 ;ch=『 d』 ;

說明: 1.字元變數在記憶體中佔乙個位元組。

2.在記憶體中,是把字元對應的ascii碼值放到儲存單元中。

3.字元型資料與整型資料之間可以通用。

每個字元變數被分配乙個位元組的的記憶體空間,因此只能存放乙個字元。字元值是以ascⅱ碼的形式存放在變數的記憶體單元之中的。如x的十進位制ascⅱ是120,y的十進位制ascⅱ是121。

對字元變數a,b賦予'x'和'y'值:a='x';b='y';實際上是在a,b兩個單元內存放120和121的二進位制**: a 01111000 b 01111001 所以也可以把它們看成是整形變數。

c語言允許對整形變數賦予字元值,也允許對字元變數賦整形值。在輸出時,允許把字元變數按整形量輸出,也允許把整形量按字元量輸出。整形量為二位元組量,字元量為單位元組量,當整形量按字元量處理時,只有低八位位元組參與處理。

不懂還可以問我。

14樓:匿名使用者

這你應該去百科上看下。

c語言問題 50

請教各位C語言問題

首先提醒一下你的 define寫錯啦 正題你定義的是 define add x x x 而不是你看看這有啥區別啊 就是add和 x 中間間開啦 你的是定義add x 整體是 x x 所以d add a b c 就是 a b a b c就是80啦定義 define add x x x 就是你要的結果哈...

幾個簡單的C語言問題 請教C語言的問題

確實是小菜,不過題太多。又沒懸賞。為你默哀一分鐘後離開!是很簡單,但是你這些都不會,你就要多練習,努力一點就回了。都是c語言教材上的例題,建議找本c語言教材翻翻,問題就解決了!直接求程式?建議你還是親自動手寫一下。請教c語言的問題 既然sum power n,k pow n,k sum power ...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...