麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

編程者說之C語言

2019-11-17 05:10:27
字體:
供稿:網(wǎng)友

  談及C語言,我想凡是學(xué)過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強(qiáng)大、應(yīng)用廣泛,一旦把握了后,你就可以理直氣壯地對(duì)他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。
憂慮的是,C語言如同“少林武功”一般博大精深,太難學(xué)了。其實(shí)就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,把握它的精髓,那么自學(xué)C語言是一件非常輕易且又其樂無窮的事。今天本人就與大家一起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。

  了解一些基本知識(shí)

  一.C語言的背景

  就個(gè)人感慨,無論學(xué)習(xí)哪門語言首先應(yīng)該了解一下自己所學(xué)語言的背景,也可以說它的發(fā)展史。

  C語言屬于高級(jí)程序語言的一種,它的前身是“ALGOL”。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時(shí)是帶有很大的局限性,因?yàn)樗荒苡糜赨NIX系統(tǒng)上。然而隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)工業(yè)的發(fā)展,C語言逐漸脫離UNIX。1987年美國標(biāo)準(zhǔn)化協(xié)會(huì)制定了C語言的國際標(biāo)準(zhǔn),簡(jiǎn)稱“ANSI C”,從此以后它便成為一種廣泛使用的程序語言。C語言的優(yōu)點(diǎn)很多,主要的有如下四點(diǎn):

  1.兼?zhèn)涓呒?jí)語言與低級(jí)語言的優(yōu)點(diǎn),屬于一種中間語言。

  2.它是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,非常適合結(jié)構(gòu)化程序設(shè)計(jì)。

  3.有較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用。

  4.直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松,簡(jiǎn)單。

  二.二大語系二種不同的學(xué)習(xí)方法

  筆者學(xué)習(xí)過很多程序語言,例如:C,C++(C語言的擴(kuò)展),QBASIC,VB(BASIC的可視化),javascript,JSCRIPT ,VBSCRIPT,Java,asp,F(xiàn)OXPRO,PERL等等,就本人實(shí)踐所得,其實(shí)高級(jí)程序語言分為兩大語系。一路是以C為主的程序語言,例如:Javascript,JAVA等,這類語言在函數(shù)的調(diào)用,程序語句的書寫,循環(huán)的控制都極為相似。另一路是以BASIC為首的程序語言,例如:FOXPRO,VBSCRIPT等,此類語言同樣具有相似的函數(shù)調(diào)用,程序語句書寫以及循環(huán)控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那么在學(xué)習(xí)C語言前最好是先洗洗腦,千萬不要把學(xué)習(xí)BASIC的方法以及思路用在C身上。

  講到這里,我想大家對(duì)C語言一定有了感性熟悉吧!下面讓我們?cè)偕A一下,全方位親密接觸它。學(xué)習(xí)C語言必須從以下四點(diǎn)入手,也就是說,只要你能把握這四點(diǎn)的內(nèi)容,那么基本上就大功告成了。 更多文章 更多內(nèi)容請(qǐng)看C/C++進(jìn)階技術(shù)文檔  Java編程開發(fā)手冊(cè)專題,或

  親密接觸C語言

  一.輸入輸出

  C語言的輸入輸出是非常嚴(yán)格的,或許在其他程序語言中我們可以不關(guān)心這個(gè)問題,但在C語言中,我們必須要徹底了解它。由于篇幅有限,因此筆者不能詳談,有愛好的朋友可以參考由聞名程序語言教授譚浩強(qiáng)先生主編,由清華大學(xué)出版社出版的《C程序設(shè)計(jì)第二版》。不過這里筆者還是有幾點(diǎn)要談一下。

  1.二維浮點(diǎn)數(shù)數(shù)組的輸入

  二維浮點(diǎn)數(shù)數(shù)組的輸入(即:通過鍵盤給二維浮點(diǎn)數(shù)數(shù)組賦值)在很多專業(yè)書中都沒有具體講過這個(gè)問題。在給二維浮點(diǎn)數(shù)數(shù)組賦值時(shí)一定要先聲明一個(gè)變量,接著把數(shù)值賦予這個(gè)變量,最后把變量數(shù)值賦予二維浮點(diǎn)數(shù)數(shù)組賦值。實(shí)例如下:

# include "stdio.h"
main()
{
 float a[2][3],x ;
 int i,j;
 for(i=0;i<2;i++)
  for(j=0;j<3;j++)
   {scanf("%f",&x);
    a[i][j]=x;}
   }
不能寫成:

# include "stdio.h"
main()
{
 float a[2][3] ;
 int i,j;
 for(i=0;i<2;i++)
  for(j=0;j<3;j++)
   scanf("%f",&a[i][j]);
}
  同樣道理,在結(jié)構(gòu)性浮點(diǎn)數(shù)組變量中也一定要按照這種格式輸入。實(shí)例如下:


# include "stdio.h"
 strUCt student
 {float b[3];
  int x;
 }a[2];
 main()
 {
  float x ;
  int i,j;
  for(i=0;i<2;i++)
   for(j=0;j<3;j++)
    {scanf("%f",&x);
     a[i].b[j]=x;}
    }
  2.注重輸出格式中“%”后的字符

  C語言的輸出說復(fù)雜不復(fù)雜,因?yàn)槌S玫亩己芎?jiǎn)單。可說不復(fù)雜也未必,記得曾在一次等級(jí)考前輔導(dǎo)我們C語言的教授講道:“假如C語言要考得很難的話,根本不用考什么指針,只要專考輸出格式,我想百分之九十九的學(xué)生都不及格。”當(dāng)時(shí)我們無不認(rèn)同。從這則事例中可以看出C語言的輸出格式之復(fù)雜程度。因此大家在學(xué)習(xí)它時(shí)千萬要學(xué)會(huì)辨別輸出格式中“%”后的字符,每個(gè)字符都有其意義,也都有其作用。

  二.優(yōu)先級(jí)

  說道優(yōu)先級(jí),有很多朋友都不是很了解或說很模糊。為此筆者想先通過一個(gè)例子讓各位有個(gè)概念。什么叫優(yōu)先級(jí)?比方說,我們?cè)诠卉嚱K點(diǎn)站排座隊(duì)時(shí)總會(huì)碰到70歲以上的老人不需要排隊(duì)就能上車的情景,這就是優(yōu)先級(jí)的涵義。C程序在運(yùn)行時(shí)也象排隊(duì)坐車一樣,首先照顧那些優(yōu)先級(jí)高的運(yùn)算符,若是優(yōu)先級(jí)相同,那么就象碰到兩位(或兩位以上)70歲以上的老人那樣,讓他們依次上車。但是C語言中的優(yōu)先級(jí)的運(yùn)算并不是千篇一律的,只能說是在大多數(shù)情況下,有些運(yùn)算符的優(yōu)先級(jí)有其自己的特點(diǎn),因此這點(diǎn)大家要注重。例如條件表達(dá)式:條件?結(jié)果1:結(jié)果2,這種表達(dá)式很多朋友都知道,它的作用與IF…ELSE…條件判定語句很雷同,它運(yùn)算時(shí)的優(yōu)先級(jí)就不是按照C語言的規(guī)則來完成的。所以說對(duì)于優(yōu)先級(jí)各位編程愛好者一定靈活把握,不要死記硬背。

  三.指針

  就個(gè)人認(rèn)為,C語言中的指針是最有特色的,當(dāng)然也是最難學(xué)的。指針說穿了,其實(shí)是變量的一種表現(xiàn)形式,只不過這種變量記載的不是數(shù)值而是地址。就象一個(gè)人可以用姓名來表示自己,也可以用身份證號(hào)碼來表示自己一樣。筆者涉足編程已經(jīng)有三年多了,在這期間曾經(jīng)收到過很多網(wǎng)友的電子郵件詢問學(xué)習(xí)指針的方法。就本人感慨,學(xué)習(xí)指針最好是先學(xué)些計(jì)算機(jī)硬件工作的原理,例如:直接尋址,間接尋址等,只有了解了這些內(nèi)容以后,你再學(xué)指針就比較輕易理會(huì),究竟C語言是一門介于機(jī)器語言與高級(jí)語言中間的語言,沒有一些硬件工作知識(shí)是很難領(lǐng)悟它的真諦的。然而事事并非絕對(duì),假如你沒有這些知識(shí)也不要緊,只要清楚知道以下筆者總結(jié)的二點(diǎn)再加上多練習(xí)便可:

  1.指針是地址變量:它的值有兩種:其一是地址,其二是內(nèi)容。不同的表達(dá)方式可以取不同的值,這有點(diǎn)象一個(gè)家庭地址在不同的場(chǎng)合標(biāo)識(shí)的人物也不同。例如:父母親在他們的單位所登記的家庭地址就代表他們自己,而你在學(xué)校中登記的同樣的家庭地址就代表你自己。

  2.指針是可以運(yùn)算的,它的運(yùn)算法則與變量是一致的。

  另外,在編寫一個(gè)程序時(shí),除非萬不得已,一般不要使用指針變量。因?yàn)橹羔樖潜容^復(fù)雜的,用不好就“當(dāng)機(jī)”。所以筆者建議各位對(duì)于指針只要能看懂就行,當(dāng)然假如你是預(yù)備參加考試的就另當(dāng)別論了。 更多文章 更多內(nèi)容請(qǐng)看C/C++進(jìn)階技術(shù)文檔  Java編程開發(fā)手冊(cè)專題,或
  四.函數(shù)

  雖說很多程序語言都有函數(shù)這一內(nèi)容,但筆者覺得C語言的函數(shù)是最有魅力的。假如你能完全把握C語言的函數(shù),那么學(xué)習(xí)C++就不成問題了(C++是一門建立在C語言上,但又不同于C語言的高級(jí)程序語言,它增添了很多函數(shù)。)。
學(xué)習(xí)函數(shù)的方法是比較簡(jiǎn)單的,只有兩個(gè)字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。有些朋友認(rèn)為,程序語言中的函數(shù)沒有多大用處,其實(shí)這并不正確,函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時(shí)間,一個(gè)聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數(shù)來代替的。筆者曾經(jīng)作過一個(gè)比較字符串的實(shí)驗(yàn),用C語言中的strcmp()函數(shù)只要一句話,而自己編寫的話30句話都擺不平,可想而知函數(shù)是多么實(shí)用呀!

  寫到這里筆者該告一段落了,下面送一個(gè)本人自己用C 語言編寫的注冊(cè)表比較程序給諸位。此段程序的注釋請(qǐng)看“/*…*/”后的文字,程序運(yùn)行時(shí)(在DOS模式下)輸入的方式如下:compare xx1.reg xxx2.reg xxx3.txt,注重字段與字段之間是有空格的。(compare是程序名)

  程序代碼:

 # include "stdio.h" /*定義頭文件或說包含文件*/

 main(argc,argv) /*定義帶參數(shù)的主函數(shù)*/

  int argc; /*定義參數(shù)類型*/
  char *argv[]; /*定義第二參數(shù)類型*/
  { FILE *fp1,*fp2,*fp3; /*定義文件指針*/
   char a,b; /*定義字符變量*/
   if((fp1=fopen(argv[1],"r"))==NULL)
    /*打開第一的注冊(cè)表備份文件,假如不存在則跳出程序并顯示“The file don`t open!”*/
    { printf("The file don`t open!");
     exit(0); }
   if((fp2=fopen(argv[2],"r"))==NULL) /*打開第二的注冊(cè)表備份文件,假如不存在則跳出程序并顯示    “The file don`t open!”*/
    { printf("The file don`t open!");
     exit(0);}
   if((fp3=fopen(argv[3],"w"))==NULL) /*建立新的文本文件,用于存放比較結(jié)果。
*/
    {printf("The file don`t open!");
     exit(0);}
   rewind(fp1); /*規(guī)定文件指針fp1指向第一個(gè)注冊(cè)表文件頭部*/
   rewind(fp2); /*規(guī)定文件指針fp2指向第二個(gè)注冊(cè)表文件頭部*/
   while(!feof(fp1)!feof(fp2)) /*開始比較*/
    { a=fgetc(fp1); /*讀取第一個(gè)注冊(cè)表文件內(nèi)容并賦予給字符變量a*/
     b=fgetc(fp2); /*讀取第二個(gè)注冊(cè)表文件內(nèi)容并賦予給字符變量b*/
     if(a!=b) fputc(b,fp3);
      /*字符變量a與b不相同的話,那么把不同之處寫入新建的文本文件中*/
      if(feof(fp1)) fputc(b,fp3);
        /*假如第一個(gè)注冊(cè)表文件已經(jīng)讀完,第二個(gè)文件還有未讀取部分,那么把第二個(gè)文件的剩余部分全部寫入新建文件中*/
      if(feof(fp2)) fputc(a,fp3);} /*假如第二個(gè)注冊(cè)表文件已經(jīng)讀完,第一個(gè)文件還有未讀取部分,那么把第一個(gè)文件的剩余部分全部寫入新建文件中*/
      fclose(fp1); /*關(guān)閉第一個(gè)注冊(cè)表文件*/
      fclose(fp2); /*關(guān)閉第二個(gè)注冊(cè)表文件*/
     fclose(fp3); /*關(guān)閉新建文件*/
}
  對(duì)于高深莫測(cè)的C語言來說,寥寥3千字并不能說清楚的什么問題。但只要您看了此文后,我想對(duì)于您學(xué)習(xí)此語言一定有很大的幫助,同時(shí)也能了知曉如何用最短的時(shí)間學(xué)會(huì)C語言以及把握C語言的精髓所在。另外,此文中所涉及的知識(shí)點(diǎn)都是筆者通過實(shí)踐得出的,因此若是其他專業(yè)書籍沒有講到過的問題可以參考本文。最后祝大家學(xué)習(xí)C語言順利! 更多文章 更多內(nèi)容請(qǐng)看C/C++進(jìn)階技術(shù)文檔  Java編程開發(fā)手冊(cè)專題,或

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久人人爽人人爽人人片av高清 | 男女亲热网站 | 亚洲片在线观看 | japanesexxxxxxxhd| 欧美黄色一级片视频 | 免费一级毛片电影 | 线观看免费完整aaa 久久不雅视频 | 国产精品成人一区二区三区电影毛片 | 国产无限资源在线观看 | 久久精品一区二区三区国产主播 | 国产精品成人一区二区三区电影毛片 | 一级做受毛片免费大片 | h视频免费观看 | 国产一级免费片 | 国产精品午夜未成人免费观看 | 97中文字幕第一一一页 | 日韩大片在线永久观看视频网站免费 | 精品少妇v888av | 成人毛片av在线 | 成年人网站视频免费 | 久久精品国产精品亚洲 | 欧美精品一级 | 久久久裸体视频 | 成人性生活视频在线观看 | 国产一区二区三区黄 | 激情久久一区二区 | 日韩毛片免费观看 | 韩国精品视频在线观看 | xxxⅹ96日本护士hd | aa国产视频一区二区 | 国产亚洲精品久久久久久久久 | 国产成人综合在线观看 | 一级性色 | 一级免费观看 | 欧美一级免费在线观看 | 久久激情免费视频 | 一级裸体视频 | 99欧美精品 | 综合网天天射 | 国产色视频在线观看免费 | 中文字幕在线播放一区 |