1. 關於c語言入門的菜鳥級問題,,求大俠來
任何語言都是順序執行的,也就是一個語句一個語句的執行,執行完一個語句,再執行下一個語句。所以兩個for循環肯定是有先後順序的,當然是第一個先執行,第一個執行完再執行第二個。
for循環中有三個語句,像你上邊寫的i = 0;是一個,i<10是一個,i++是一個。
在for循環開始執行時,都是先執行第一個語句,也就是初始化語句,賦值i=0;(注意:這個語句在循環開始到結束只執行一次)再執行循環體({}內的東東),然後再執行第三個語句(一般是++操作),在於執行第二個語句(條件語句),判斷條件是否成立,如果成立,則繼續執行循環體。然後又是執行++,在執行條件語句,依次類推,直到條件不成立。
第一個for循環中p++雖然導致p最後指向數組之外了,但是第二個for循環的賦值語句p=a;又使p指向數組的首地址了。所以它可在用p++再一次遍歷數組,找到最大值。
第二個for循環不可以換成for(i=0;i<10;i++,P++),因為正如你所說的,p已經指向數組外了。你要想通過p再次訪問數組,那麼就要想辦法讓p再次指向數組的首地址。
2. 菜鳥學習C語言
c語言從基礎的書中能學到好多東西 ,學c語言要有長期努力的准備,要想學通c語言還真的需要下一番功夫,但是上手比較快。
把知識和實踐結合起來,這樣能讓你進步的更快。
學習方法:
1. 學習c語言要注意細節,因為很多東西,不仔細看不看不出來的,需要仔細。
2. 不要認為有些語句比較簡單和熟練就可以,不看,或者忽略。
3.先從教材的例子出發,慢慢了解與使用。
4.學會自查,對簡單的錯誤自己進行檢查,同一個錯誤不要犯2次
5.多交流多思考多練習。
一點經驗,祝你成功。
3. 菜鳥學編程,c語言的。。。
1、首先要明白學c語言要做什麼,有的人只是為學其他語言打個基礎,有的就是一生都在弄c語言,這兩種情況對學c語言的深度是不一樣的
2、剛開始學,入門很重要,直接影響到你對c語言的興趣,一旦學了很長時間還沒入門,就會失去興趣
3、多上網查查,或去翻翻那些c語言案例的書,看看c語言能做些什麼,哪些地方是它的強項,對你學c語言指導方向;實際中一個項目光有語言的知識是遠遠不夠的,所以要看看別人做的項目,一個具體項目會涉及到哪些知識,這些了解點就好。這些會讓你對c語言有個大局觀,它在項目中是如何應用它的
4、由於剛開始學,如果看不進書,可以到網上下視頻教程,結合著看,效果較好
5、編程是要實踐的,一定要多練的,手頭最好有本小實例的書,學了點理論知識就看看有沒有小實例可以編的,這些小實例你還可以通過不斷改,去實現一些你想要的功能,這樣的學習進步比較快;編了點小實例,你可以去看大點的實例,看看你會多少了,還有哪些是不會的需要補充。千萬不要等學完理論,我再來編程,那樣幾乎白學了,理論到那時都忘得差不多了
6、有目的性的學習:用到什麼就學什麼,所以需要案例來引導你,讓你知道學了這部分知識有什麼用
引用別人的話:
在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺的。大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學得好?
學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
4. 菜鳥自學C語言. 一大堆問題..
第一,lz用了中文的標點,所以才會不能編譯成功
if (x>y) ;z=x; ,此處的>是中文標點,改為英文的
另外,還有錯誤
正確的程序應該為
#include <stdio.h>
void main() /*主函數*/
{
int max(int x,int y); /*對被調用函數max的聲明*/
int a,b,c; /*定義變數a,b,c*/
scanf("%d,%d",&a,&b); /*輸入變數a和b的值*/
c=max(a,b); /*調用max函數,將得到的值賦給c*/
printf("max=%d\n",c); /*輸出c的值*/
}
int max(int x,int y) /*定義max函數,函數值為整型,形式參數x,y為整型*/
{
int z; /*max函數中的聲明部分,定義本函數中用到的變數z為整型*/
if (x>y)
z=x; /*如果x>y,則將x的值賦給z*/
else
z=y; /*否則,將y的值賦給變數z*/
return(z); /*將z的值返回到主函數中調用的函數的位置*/
}
還有輸入時要注意兩個數中間要用逗號分隔開
5. 簡單C語言條件判斷
呵呵,從左往右直接判斷就行了啊。
第一個;1<2為真,那麼其布爾值就為1,在判斷1<2,當然為真啊。
第二個;2<1為假,那麼其布爾值就為0,在判斷0<1,當然為真啊。
第三個,1<2為真,那麼其布爾值就為1,在判斷1<0,當然為假啊。
6. 菜鳥應該怎麼學習c語言
很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言?我是一個教師,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序,這簡直就是天方夜譚。為什麼C語言如此重要呢?
第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述演算法,大多數的程序員願意使用C語言去描述演算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。
第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。
第三:很多新型的語言都是衍生自C語言,C++,J ava,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。
那麼究竟怎樣學習C語言呢?
1:工欲善其事,必先利其器
這里介紹幾個學習C語言必備的東東:
一個開發環境,例如turbo C 2.0,這個曾經占據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。
一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。
除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個「C語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。
2:葵花寶典
學習計算機語言最好的方法是什麼?答曰:讀程序。
沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習它們的常式。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有常式,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以為常式你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程序,反反復復,直到你手到擒來為止,祝賀你,你快入門了。
3:登峰造極
寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(演算法)。
是不是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶元寫驅動程序,無非就是掌握這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些io函數罷了。
那麼怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個例子:你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:你挨個去問「你是不是張三?」,直到問到的這個人就是張三。第三種方法:你去挨個問一個人「你認不認識張三,指給我看」。不要小看這個問題,你說當然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設計中找到解決問題的最優方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用演算法,是登峰造極的必然之路。最後給大家推薦嚴尉敏的《數據結構》清華大學出版社,希望每一個想成為程序設計高手的人研讀此書。
《轉帖》
7. c語言if語句多個條件怎麼編寫
當有多個分支選擇時,可採用if-else-if語句,其一般形式為:
if(表達式1)
語句1;
else if(表達式2)
語句2;
else if(表達式3)
語句3;
…
else if(表達式m)
語句m;
else
語句n;
其語義是:依次判斷表達式的值,當出現某個值為真時,則執行其對應的語句。然後跳到整個if語句之外繼續執行程序。 如果所有的表達式均為假,則執行語句n。然後繼續執行後續程序。 if-else-if語句的執行過程如下圖所示。
參考代碼如下:
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character ");
else if(c>='0'&&c<='9')
printf("This is a digit ");
else if(c>='A'&&c<='Z')
printf("This is a capital letter ");
else if(c>='a'&&c<='z')
printf("This is a small letter ");
else
printf("This is an other character ");
return 0;
本例要求判別鍵盤輸入字元的類別。可以根據輸入字元的ASCII碼來判別類型。由ASCII碼表可知ASCII值小於32的為控制字元。在「0」和「9」之間的為數字,在「A」和「Z」之間為大寫字母, 在「a」和「z」之間為小寫字母,其餘則為其它字元。
這是一個多分支選擇的問題,用if-else-if語句編程,判斷輸入字元ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為「g」,輸出顯示它為小寫字元。
(7)跟著菜鳥學習c語言條件判斷擴展閱讀:
在使用if語句中還應注意以下問題:
1、在if關鍵字之後均為表達式。 該表達式通常是邏輯表達式或關系表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變數。例如:
if(a=5) 語句;
if(b) 語句;
都是允許的。只要表達式的值為非0,即為「真」。如在:
if(a=5)…;
中表達式的值永遠為非0,所以其後的語句總是要執行的,當然這種情況在程序中不一定會出現,但在語法上是合法的。
2、在if語句中,條件判斷表達式必須用括弧括起來,在語句之後必須加分號。
3、在if語句中,所有的語句應為單個語句,如果要想在滿足條件時執行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復合語句。但要注意的是在}之後不能再加分號。
Microsoft-if-else(C# 參考)
菜鳥教程-C#if 語句
8. 菜鳥學習C語言的一道習題求解答
#include"stdio.h"
p(n)
{
int i;
for(i=2;i<=n/1;i++)
if(n%i==0)return 0;
else return 1;
}
main()
{
int n;
scanf("%d",&n);
if(p(n))printf("yes");
else printf("no");
getch();
}
9. 菜鳥C語言幾個小問題
呵呵
===================================================
針對你所提出的第一個問題:
首先闡明一個名詞哈---
「不帶參數的宏定義」:
用一個指定的標識符(即名字)來代表一個字元串,正如你上面定義的一樣,它的一般形式為
#define 標識符 字元串
在預編譯時將所定義的標識符替換成指定字元串的過程稱為「宏展開」。
好啦,接下來就來回答你所提出的第一個問題。
對宏的展開只是將程序中的那個標識符直接換為你所指定的內容,而不會進行其他任何處理。具體的說,你在程序中定義了#define b a+40
在進行預處理的時候,直接將語句"c=b*20;"中的b替換為了a+40,請注意,不是(a+40)。所以替換後的語句就變為了:c=a+40*20;
由於乘法運算符的優先順序高於加法運算符,所以先計算40*20,為800,再計算a+800,所以c的值為880。
如果你想使計算120*20的話,你需要在這樣定義:#define b (a+40)
你的第二個程序是類似的情況,在預處理後NN為3+1*3+1/2
有一點需要注意:在C程序中兩個整型變數運算,結果還是整型變數,故1/2=0,所以NN=3+3+0=6。
=======================================================
針對你所提出的第二個問題:
switch(w++)
{
case 0:
case 1:
case 2:
case 3:printf("%d",w++);
}
如果是switch(0)或者是switch(1)或者是switch(2)或者是switch(3),則共同執行一條語句printf("%d",w++);且只執行一次。
否則什麼也不執行。
接下來分析此程序是如何運行的:
for(i=0;i<3;i++)
switch(w++)
{
case 0:
case 1:
case 2:
case 3:printf("%d",w++);
}
w初值為0
i=0,判斷i<3?成立,故進入for的第一次循環
進入switch語句,因為w++的值為0(此時w已自加1,即w=1),
故尋找case 0,故執行printf("%d",w++);輸出1,並且w再自加1,w=2。
i++;i=1
此時i=1,判斷i<3?成立,故進入第二次for循環,進入switch語句,w++的值為1(此時w已自加1,即w=3),
故尋找case 1,故執行printf("%d",w++);輸出3,並且w再自加1,w=4。
i++;
此時i=2,判斷i<3?成立,故進入第三次for循環,進入switch語句,w++的值為4(此時w已自加1,即w=5),尋找不到相應的case(),從而退出switch語句。
i++;
此時i=3,判斷i<3?不成立,故退出for循環,從而結束整個程序。
綜上所述,輸出結果為13
=====================================================
針對你所提出的第三個問題:
後來我想了一下,結果在TC中是2,在VC中是4,我用的是VC,運行結果為4。其實輸出的是一個整型變數在該編譯系統下所分配的存儲空間的大小。一個int型變數在TC中占兩個位元組,在VC中佔四個位元組。
呵呵 好久沒看了。
分析如下:
字元數據在內存中的存儲形式是以該字元相應的ASCII碼存放的,例如字元'a'的ASCII碼是97,在內存中實際上是以該字元的ASCII碼(也就是97)的二進制形式存放的,程序在讀取的時候認為它是一個整型變數,其值為97。
【所以可以對字元型變數作算術運算,其實就是對它們的ASCII碼進行算術運算】
直接用 sizeof'A',sizeof函數就把後面的看作是一個整型變數,計算其所佔的位元組數。
【呵呵 考點啊 這個題目相當的二級啊 呵呵】
=======================================
希望我的回答能幫助你。
10. 菜鳥怎麼樣學習C語言
1、學習C語言,要從入門到精通,需要讀哪些書(從簡單的到難的排序,越詳細越好,最好都能注釋下選擇這本書的理由)?
入門階段:還是老譚那本。
理由:雖然不能說它寫得有多好,但是你現在要做的是入門,要快速的掌握c的基本語法,這本書很好理解,能夠讓你在最短的時間內大致掌握這門語言的概更。
第二階段:《c程序設計語言》(The C Programming Language)和《C語言解惑》(The C puzzle book)
理由:《the c programming language》號稱c語言聖經。其實它也只是一本介紹基礎語法的書,不做入門教程是因為對於初學者來說,它難度稍大,之所以推薦,是因為它能讓你---系統而嚴密的---把C語言知識構架整理一遍。《c語言解惑》,系統的整理了c語法中容易讓你產生迷惑或容易犯錯的地方(如a+++++b等),這時候你才算真正開始學習c語言了.(以上兩本現在出重印了,應該在書店可以買到)
第三階段:《C陷阱與缺陷》(C Traps and Pitfalls)和《高質量c/c++編程指南》
理由:《c陷阱與缺陷》是讓對c的理解有質變得一本書,如如何理解(*(void(*)())0)()等問題,我的感覺是看完這本書讓我真正從小菜鳥變成了老菜鳥。《高質量...》,終於有一本國產的了,呵呵,我認為這本書是把你從土匪變成正規軍的最好指南,該書涉及編程風格、效率、重載、健壯性等一些列之前很難注意的問題。(以上兩本《c陷阱...》已絕版,不過網上可以下載到中英文版,《高質量...》本身就是網路書,很容易找到)
其它推薦書:《c專家編程》《c和指針》
說實話這兩本書我並沒有看過(或看完),但有口皆碑,都是經典之作,不過都已經絕版,仔細找找網上有下載的。
2、有哪些好的C語言練習(越難的越好)?
對語言本身的練習其實就是你對它的理解,用得多了,注意得多了,自然就ok了。其它思維上的練習主要是演算法和數據結構方面的,嚴老的《數據結構題集(C語言版)》如果你能做完就相當了不起了。
3、要學精C語言,還要具備哪些條件?
其實c語言也只是一個工具而已,就像鋤頭一樣,你每天挖地鋤田自然就精通它了。只要不是白痴,應該都沒有問題。
4、C語言學完後接下去要學哪些語言好?
這個我就沒有資格回答了,因為除了少量匯編和c++,我大部分只用到了c,不過也許是一脈相承的c++吧。c是面向過程的語言,學習c++面向對象的思想。
5、各位網友如果在學習計算機語言方面還有一些獨到的見解,歡迎提出!
不是我提出的,不過真的很經典——「天下程序一大抄」,呵呵。