當前位置:首頁 » 編程語言 » c語言第二部分
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言第二部分

發布時間: 2022-05-12 11:58:53

『壹』 關於c語言的struct問題

三部分:
第一部分:typedef,類型宏替換。用途就是給一個類型定義一個別名,從此以後用本來的類型名還是用類型別名都可以
第二部分:struct node{ int value; int freq;} 聲明一個結構體類型,struct說明是結構體,結構體類型名是node,那麼該類型的類型名全稱就是struct node。大括弧裡面是成員聲明,這個好理解不用多說
第三部分:node,類型別名,也就是struct node這個類型的別名

還有,c中沒有類的概念,c++才有

這個說完了,剩下的就是回顧變數定義的格式了:
類型名 變數名列表 //變數定義的格式

從上面三部分的拆解可以看出,struct node和node都可以用作類型名,那麼你寫哪個都可以了
struct node a;
node a;
這兩種寫法都是一樣的作用

你問的省略,估計是struct node這里的node,
結構體隸屬於構造類型,是構造出來的,下屬有無數種類型。
你要是只寫一個struct a,struct裡面有無數種,誰也不知道你說的是哪種,根本無解,所以,必須指明是結構體中的且已聲明的某種類型名才可以。

但是,有一種特例,就是每次都聲明一種無名的結構體,也就是
struct
{ int value;
int freq;
}
這種格式。因為沒有指明該結構體的類型名,所以以後定義該種類型的變數時,必須每次都指明該類型,也就是:
struct
{ int value;
int freq;
} a,b; //a、b、這次都是變數了
我想你問的是這個

『貳』 C語言問題

樓上有錯:
第6題:#&
第9題:循環次數3,i=0,sum=3
第一部分我說下思路:
(1)應該沒問題
(2)思考一下,為什麼形參中的體積和表面積必須用指針?因為函數只能返回單個值,要傳回多個值,用指針比較方便。
(3)這個最好用指向函數的指針作為函數參數來實現
(4)用do while 可以不限制次數,而且是先執行後判斷,也就是先輸入後判斷,不符合條件就繼續循環。這里樓上的又有問題了,假如輸入錯誤,樓上的還是會執行,所以有問題,而且樓上的不符合第(2)條。

第二部分:調用子函數的時候,傳遞的實參是數組首地址
#include <stdio.h>
float max(float *p, int n)
{
int i,m;
for(i=1,m=*p;i<n;i++)
if(m<*(p+i)) m=*(p+i);
return m;
}
float min(float *p, int n)
{
int i,m;
for(i=1,m=*p;i<n;i++)
if(m>*(p+i)) m=*(p+i);
return m;
}
float sum(float *p, int n)
{
int i,m;
for(i=1,m=*p;i<n;i++) m+=*(p+i);
return m;
}
void main()
{
float h,l,s,a[10]={1,2,3,4,2,5,6,7,8,9};
h=max(a,10);
l=min(a,10);
s=sum(a,10);
printf("max=%f min=%f sum=%f\n",h,l,s);
}
第三部分(程序作用,將輸入字元串倒序輸出)
#include <stdio.h>
#include <string.h>
void main()
{
void inverse(char str[]);
char string[100];
printf("input string:");
gets(string);//獲取輸入字元串,存到string字元數組中
inverse(string);//調用倒序字元串子程序,實參為string數組首地址
printf("inverse string:%s\n",string);
}
void inverse(char str[])
{
char t;
int i,j,m;
m=strlen(str); //得到str[]的長度
for(i=0;i<=(m-1)/2;i++) //將str[]中第n個字元與倒數第n個字元互換
{
j=m-1-i;
t=str[i];
str[i]=str[j];
str[j]=t;
}
}

第四部分:主函數中子函數的聲明部分也要改寫。函數調用部分不要改寫
void inverse(char *p)
{
char t;
int i,j,m;
m=strlen(p);
for(i=0;i<=(m-1)/2;i++)
{
j=m-1-i;
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}

『叄』 c語言編程

C語言基礎教程別看了,學習C語言不能脫離具體的系統,不能不了解計算機體系結構和操作系統原理、編譯原理,推薦你看這本開源的書:
《Linux C編程一站式學習》
http://learn.akae.cn/media/index.html
如果是在Windows上學習,可以安裝cygwin來模擬linux環境,下載地址:
http://cygwin.cn/site/install/

下面貼一下這本書的介紹,磨刀不誤砍柴工,看過之後你就會愛上這本書了:

這本書有什麼特點?面向什麼樣的讀者?

這本書最初是為北京亞嵌教育研究中心的嵌入式Linux系統工程師就業班課程量身定做的教材之一。該課程是為期四個月的全日制職業培訓,要求學員畢業時具備非常Solid的C編程能力,能熟練地使用Linux系統,同時對計算機體系結構與指令集、操作系統原理和設備驅動程序都有較深入的了解。然而學員入學時的水平是非常初級而且參差不齊的:學歷有專科、本科也有研究生,專業有和計算機相關的也有很不相關的(例如會計專業),以前從事的職業有和技術相關的也有完全不相關的(例如HR),年齡從二十齣頭到三十五六歲的都有。這么多背景完全不同、基礎完全不同、思維習慣和理解能力完全不同的人來聽同一堂課,大家都迫切希望學會嵌入式開發技術,投身IT行業,這就是職業教育的特點,也是我編這本書時需要考慮的主要問題。

學習編程絕不是一件簡單的事,尤其是對於零基礎的初學者來說。大學的計算機專業有四年時間從零基礎開始培養一個人,微積分、線代、隨機、離散、組合、自動機、編譯原理、操作系統、計算機組成原理等等一堆基礎課,再加上C/C++、Java、資料庫、網路、軟體工程、計算機圖形學等等一堆專業課,最後培養出一個能找到工作的學生。很遺憾這最後一條很多學校沒有做好,來亞嵌培訓的很多學生就是四年這么學過來的,但據我們考查他們的基礎幾乎為零,我不知道為什麼。與之形成鮮明對比的是,只給我們四個月的時間,同樣要求從零基礎開始,最後培養出一個能找到工作的學生,而且還要保證他找到工作,這就是職業教育的特點。

為什麼我說「只給我們四個月的時間」?我們倒是想教四年呢,但學時的長短我們做不了主,是由市場規律決定的。四年的任務要求四個月做好,要怎麼完成這樣一個幾乎不可能的任務?有些職業教育給出的答案是「實用主義」,打出了「有用就學,沒有用就不學」的口號,大肆貶低說大學里教的基礎課都是過時的、無用的,只有他們教的技術才是實用的,這種炒作很不好,我認為大學里教的每一門課都是非常有用的,基礎知識在任何時候都不會過時,倒是那些時髦的「實用技術」有可能很快就過時了。

四年的任務怎麼才能用四個月做好?我們給出的答案是「優化」。現在大學里安排的課程體系最大的缺點就是根本不考慮優化。每個過來人都會有這樣的感覺:大一大二學了好多數學課,卻不知道都是干什麼用的,為什麼要學。連它有什麼用都不知道怎麼能有興趣學好呢?然後到大三大四學專業課時,用到以前的知識了,才發現以前學的數學是多麼有用,然而早就忘得一干二凈了,考完試都還給老師了,回頭重新學吧,這時候才發現很多東西以前根本沒學明白,現在才真的學明白了,那麼前兩年的時間豈不是都浪費了?大學里的課程體系還有一個缺點就是不靈活,每門課必須佔一個學期,必須由一個老師教,不同課程的老師之間沒有任何溝通和銜接,其實這些課程之間是相互依賴的,把它們強行拆開是不符合人的認知規律的。比如我剛上大學的時候,大一上半學期就被逼著學C語言,其實C語言是一門很難的編程語言,不懂編譯原理、操作系統和計算機體系結構根本不可能學明白,那半個學期自然就浪費掉了。當時幾乎所有學校的計算機相關專業都是這樣,大一上來就學C語言,有的學校更瘋狂,上來就學C++,導致大多數學生都以為自己會C語言,但其實都是半吊子水平,到真正寫代碼的時候經常為一個Bug搞得焦頭爛額,卻沒有機會再系統地學一遍C語言,因為在學校看來,C語言課早在大一就給你「上完了」,就像一頓飯已經吃完了,不管你吃飽沒吃飽,不會再讓你重吃一遍了。顯而易見,如果要認真地對這些課程做優化,的確是有很多水份可以擠的。

本書有以下特點:

*

不是孤立地講C語言,而是和編譯原理、操作系統、計算機體系結構結合起來講。或者說,本書的內容只是以C語言為載體,真正講的是計算機的原理和程序的原理。
*

強調基本概念和基本原理,在編排順序上非常重視概念之間的依賴關系,每次引入一個新的概念,只依賴於前面章節已經講過的概念,而絕不會依賴後面章節要講的概念。有些地方為了敘述得完整,也會引用後面要講的內容,比如說「有關XX我們到XX章再仔細講解」,凡是這種引用都不是必要的依賴,可以當它不存在,只管繼續往下看就行了。
*

盡量做到每個知識點直到要用的時候才引入。過早引入一個知識點,講完了又不用它,讀者很快就會遺忘,這是不符合認知規律的。

這是一本從零基礎開始學習編程的書,不要求讀者有任何編程經驗,但讀者至少需要具備以下素質:

*

熟悉Linux系統的基本操作。如果不具備這一點,請先參考其它教材學習Linux系統的基本操作,熟練之後再學習本書,《鳥哥的Linux私房菜》據說是 Linux系統管理和應用方面比較好的一本書。但學習本書並不需要會很多系統管理技術,只要會用基本命令,會自己安裝系統和軟體包就足夠了。
*

具有高中畢業的數學水平。本書會用到高中的數學知識,事實上,如果不具有高中畢業的數學水平,也不必考慮做程序員了。但並不是說只要具有高中畢業的數學水平就足夠做程序員了,只能說看這本書應該沒有問題,數學是程序員最重要的修養,計算機科學其實就是數學的一個分支,如果你的數學功底很差,日後還需惡補一下。
*

具有高中畢業的英文水平。理由同上。
*

對計算機的原理和本質深感興趣,不是為就業而學習,不是為拿高薪而學習,而是真的感興趣,想把一切來龍去脈搞得清清楚楚而學習。
*

勤於思考。本書盡最大努力理清概念之間的依賴關系,力求一站式學習,讀者不需要為了找一個概念的定義去翻其它書,也不需要為了搞清楚一個概念在本書中前後一通亂翻,只需從前到後按順序學習即可。但一站式學習並不等於傻瓜式學習,有些章節有一定的難度,需要積極思考才能領會。本書可以替你節省時間,但不能替你思考,不要指望像看小說一樣走馬觀花看一遍就能學會。

又是一本C語言書。好吧,為什麼我要學這本書而不是譚浩強或者K&R? 請點評

譚浩強的書我就不說什麼了。居然教學生include一個.c文件。

K&R 是公認的世界上最經典的C語言教程,這點毫無疑問。在C標准出台之前,K&R第一版就是事實上的C標准。C89標准出台之後,K&R跟著標准推出了第二版,可惜此後就沒有更新過了,所以不能反映C89之後C語言的發展以及最新的C99標准,本書在這方面做了很多補充。上面我說過了,這本書與其說是講C語言,不如說是以C語言為載體講計算機和操作系統的原理,而K&R就是為了講C語言而講C語言,側重點不同,內容編排也很不相同。 K&R寫得非常好,代碼和語言都非常簡潔,但很可惜,只有會C語言的人才懂得欣賞它,K&R是非常不適合入門學習的,尤其不適合零基礎的學生入門學習。
這本書「是什麼」和「不是什麼」 請點評

本書包括三大部分:

*

C語言入門。介紹基本的C語法,幫助沒有任何編程經驗的讀者理解什麼是程序,怎麼寫程序,培養程序員的思維習慣,找到編程的感覺。前半部分改編自[ThinkCpp]。
*

C語言本質。結合計算機和操作系統的原理講解C程序是怎麼編譯、鏈接、運行的,同時全面介紹C的語法。位運算的章節改編自亞嵌教育林小竹老師的講義,鏈表和二叉樹的章節改編自亞嵌教育朱老師的講義。匯編語言的章節改編自[GroudUp],在該書的最後一章提到,學習編程有兩種Approach,一種是Bottom Up,一種是Top Down,各有優缺點,需要兩者結合起來。所以我編這本書的思路是,第一部分Top Down,第二部分Bottom Up,第三部分可以算填了中間的空隙,三部分全都圍繞C語言展開。
*

Linux系統編程。介紹各種Linux系統函數和內核的工作原理。Socket編程的章節改編自亞嵌教育衛劍釩老師的講義。

這本書定位在入門級,雖然內容很多,但不是一本網路全書,除了C語言基本要講透之外其它內容都不深入,書中列出了很多參考資料,是讀者進一步學習的起點。 K&R的第一章是一個Whirlwind Tour,把全書的內容簡單過了一遍,然後再逐個深入進去講解。本書也可以看作是計算機專業課程體系的一個Whirlwind Tour,學習完本書之後有了一個全局觀,再去學習那些參考資料就應該很容易上手了。
為什麼要在Linux平台上學C語言?用Windows學C語言不好嗎? 請點評

用 Windows還真的是學不好C語言。C語言是一種面向底層的編程語言,要寫好C程序,必須對操作系統的工作原理非常清楚,因為操作系統也是用C寫的,我們用C寫應用程序直接使用操作系統提供的介面。既然你選擇了看這本書,你一定了解:Linux是一種開源的操作系統,你有任何疑問都可以從源代碼和文檔中找到答案,即使你看不懂源代碼,也找不到文檔,也很容易找個高手教你,各種郵件列表、新聞組和論壇上從來都不缺樂於助人的高手;而Windows是一種封閉的操作系統,除了微軟的員工別人都看不到它的源代碼,只能通過文檔去猜測它的工作原理,更糟糕的是,微軟向來喜歡藏著揶著,好用的功能留著自己用,而不會寫到文檔里公開。本書的第一部分在Linux或Windows平台上學習都可以,但第二部分和第三部分介紹了很多Linux操作系統的原理以幫助讀者更深入地理解C語言,只能在Linux平台上學習。

Windows平台上的開發工具往往和各種集成開發環境(IDE,Integrated Development Environment)綁在一起,例如Visual Studio、Eclipse等。使用IDE確實很便捷,但IDE對於初學者絕對不是好東西。微軟喜歡宣揚傻瓜式編程的理念,告訴你用滑鼠拖幾個控制項,然後點一個按鈕就可以編譯出程序來,但是真正有用的程序有哪個是這么拖出來的?很多從Windows平台入門學編程的人,編了好幾年程序,還是只知道編完程序點一個按鈕就可以跑了,把幾個源文件拖到一個項目里就可以編譯到一起了,如果有更復雜的需求他們就傻眼了,因為他們腦子里只有按鈕、菜單的概念,根本沒有編譯器、鏈接器、Makefile的概念,甚至連命令行都沒用過,然而這些都是初學編程就應該建立起來的基本概念。另一方面,編譯器、鏈接器和C語言的語法有密切的關系,不了解編譯器、鏈接器的工作原理,也不可能真正掌握C的語法。所以,IDE並沒有幫助你學習,而是阻礙了你學習,本來要學好C編程只要把語法和編譯命令學會就行了,現在有了IDE,除了學會語法和編譯命令,你還得弄清楚編譯命令和IDE是怎麼集成的,這才算學明白了,本來就很復雜的學習任務被IDE搞得更加復雜了。Linux用戶的使用習慣從來都是以敲命令為主,以滑鼠操作為輔,從學編程的第一天起就要敲命令編譯程序,等到你把這些基本概念都搞清楚了,你覺得哪個IDE好用你再去用,不過到那時候你可能會更喜歡vi或emacs而不是IDE了。

『肆』 C語言程序編寫題瞬間記憶力大考驗 分不多,所以只要第二部分和第四部分

struct User {
char name[20];
char password[20];
int score;
}

保存到普通文件的話 用c語言的標准IO就行阿 fopen() fwrite() fclose()

『伍』 C語言\t 用法

都是轉義字元。空格就是單純的空格。

輸入時可以輸入空格 的意思是 橫向跳到下一製表符位置 的意思是 回車 的意思是回車換行。

(5)c語言第二部分擴展閱讀

轉義字元串(Escape String),即字元實體(Character Entity)分成三部分:第一部分是一個&符號,英文叫ampersand;第二部分是實體(Entity)名字或者是#加上實體(Entity)編號。

比如,要顯示小於號(<),就可以寫 &lt; 或者 < 。用實體(Entity)名字的好處是比較好理解,一看lt,大概就猜出是less than的意思,但是其劣勢在於並不是所有的瀏覽器都支持最新的Entity。

參考資料轉義字元_網路

『陸』 c語言中的三目運算符 a%4a:a/4 是什麼意思

三目元算符 是 3部分 第一部分 ? 前面 也就是 a%4 第二部分 ?後面:前面 就是 a 第三部分 就是 : 後面 也就是 a/4

三目運算符 根據第一部分的運算結果來確定後面的運算 如果 ? 前面 結果為真 計算第二部分 如果為假 計算 第三部分

所以 首先 是求余數運算 a % 4
如果結果為真 計算 ?後:前 就是 a, 那麼這個a%4?a:a/4結果就是 a 表達式變為 b = a; 既 b 的值為a
如果結果為假 計算:後 就是 a/4, 那麼這個a%4?a:a/4結果就是 a/4 表達式變為 b = a/4;既 b 的值a/4

『柒』 什麼是C語言

一種計算機基本編程語言。
第一章: C語言概論

C語言的發展過程

C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的「THE C PROGRAMMING LANGUAGE」一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准學會在此基礎上制定了一個C 語言標准,於一九八三年發表。通常稱之為ANSI C。

當代最優秀的程序設計語言

早期的C語言主要是用於UNIX系統。由於C語言的強大功能和各方面的優點逐漸為人們認識,到了八十年代,C開始進入其它操作系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優秀的程序設計語言之一。

C語言的特點

C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。

C語言版本

目前最流行的C語言有以下幾種:
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·AT&T C
這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。

面向對象的程序設計語言

在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 對象的程序設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。

C和C++

但是,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。

C源程序的結構特點

為了說明C語言源程序結構的特點,先看以下幾個程序。這幾個程 序由簡到難,表現了C語言源程序在組成結構上的特點。雖然有關內容還未介紹,但可從這些例子中了解到組成一個C源程序的基本部分和書寫格式。main()
{
printf("c語言世界www.vcok.com,您好!\n");
}
main是主函數的函數名,表示這是一個主函數。每一個C源程序都必須有,且只能有一個主函數(main函數)。函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示。printf函數是一個由系統定義的標准函數,可在程序中直接調用。
#include
#include
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}

每行注釋

include稱為文件包含命令擴展名為.h的文件也稱為頭文件或首部文件
定義兩個實數變數,以被後面程序使用
顯示提示信息
從鍵盤獲得一個實數x
求x的正弦,並把它賦給變數s
顯示程序運算結果
main函數結束

程序的功能是從鍵盤輸入一個數x,求x的正弦值,然後輸出結果。在main()之前的兩行稱為預處理命令(詳見後面)。預處理命令還有其它幾種,這里的include 稱為文件包含命令,其意義是把尖括弧""或引號<>內指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統提供的,其擴展名為.h。因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標准庫函數的函數原型。因此,凡是在程序中調用一個庫函數時,都必須包含該函數原型所在的頭文件。在本例中,使用了三個庫函數:輸入函數scanf,正弦函數sin,輸出函數printf。sin函數是數學函數,其頭文件為math.h文件,因此在程序的主函數前用include命令包含了math.h。scanf和printf是標准輸入輸出函數,其頭文件為stdio.h,在主函數前也用include命令包含了stdio.h文件。

需要說明的是,C語言規定對scanf和printf這兩個函數可以省去對其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函數,也省略了包含命令。

在例題中的主函數體中又分為兩部分,一部分為說明部分,另一部分執行部分。說明是指變數的類型說明。例題中未使用任何變數,因此無說明部分。C語言規定,源程序中所有用到的變數都必須先說明,後使用,否則將會出錯。這一點是編譯型高級程序設計語言的一個特點,與解釋型的BASIC語言是不同的。說明部分是C源程序結構中很重要的組成部分。本例中使用了兩個變數x,s,用來表示輸入的自變數和sin函數值。由於sin函數要求這兩個量必須是雙精度浮點型,故用類型說明符double來說明這兩個變數。說明部分後的四行為執行部分或稱為執行語句部分,用以完成程序的功能。執行部分的第一行是輸出語句,調用printf函數在顯示器上輸出提示字元串,請操作人員輸入自變數x的值。第二行為輸入語句,調用scanf函數,接受鍵盤上輸入的數並存入變數x中。第三行是調用sin函數並把函數值送到變數s中。第四行是用printf 函數輸出變數s的值,即x的正弦值。程序結束。

printf("input number:\n");
scanf("%lf",'C10F10&x);
s=sin(x);
printf("sine of %lf is %lf\n",'C10F10x,s);
運行本程序時,首先在顯示器屏幕上給出提示串input number,這是由執行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數,如5,按下回車鍵,接著在屏幕上給出計算結果。

輸入和輸出函數

在前兩個例子中用到了輸入和輸出函數scanf和 printf,在第三章中我們要詳細介紹。這里我們先簡單介紹一下它們的格式,以便下面使用。scanf和 printf這兩個函數分別稱為格式輸入函數和格式輸出函數。其意義是按指定的格式輸入輸出值。因此,這兩個函數在括弧中的參數表都由以下兩部分組成: 「格式控制串」,參數表 格式控制串是一個字元串,必須用雙引號括起來,它表示了輸入輸出量的數據類型。各種類型的格式表示法可參閱第三章。在printf函數中還可以在格式控制串內出現非格式控制字元,這時在顯示屏幕上將原文照印。參數表中給出了輸入或輸出的量。當有多個量時,用逗號間隔。例如:
printf("sine of %lf is %lf\n",x,s);
其中%lf為格式字元,表示按雙精度浮點數處理。它在格式串中兩次現,對應了x和s兩個變數。其餘字元為非格式字元則照原樣輸出在屏幕上
int max(int a,int b);
main(){
int x,y,z;
printf("input two numbers:\n");scanf("%d%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
int max(int a,int b){
if(a>b)return a;else return b;
}
此函數的功能是輸入兩個整數,輸出其中的大數。
/*函數說明*/
/*主函數*/
/*變數說明*/
/*輸入x,y值*/
/*調用max函數*/
/*輸出*/
/*定義max函數*/
/*把結果返回主調函數*/
上面例中程序的功能是由用戶輸入兩個整數,程序執行後輸出其中較大的數。本程序由兩個函數組成,主函數和max 函數。函數之間是並列關系。可從主函數中調用其它函數。max 函數的功能是比較兩個數,然後把較大的數返回給主函數。max 函數是一個用戶自定義函數。因此在主函數中要給出說明(程序第三行)。可見,在程序的說明部分中,不僅可以有變數說明,還可以有函數說明。關於函數的詳細內容將在第五章介紹。在程序的每行後用/*和*/括起來的內容為注釋部分,程序不執行注釋部分。

上例中程序的執行過程是,首先在屏幕上顯示提示串,請用戶輸入兩個數,回車後由scanf函數語句接收這兩個數送入變數x,y中,然後調用max函數,並把x,y 的值傳送給max函數的參數a,b。在max函數中比較a,b的大小,把大者返回給主函數的變數z,最後在屏幕上輸出z的值。

C源程序的結構特點

1.一個C語言源程序可以由一個或多個源文件組成。

2.每個源文件可由一個或多個函數組成。

3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。

4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。

5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。

6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

書寫程序時應遵循的規則

從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時 應遵循以下規則:

1.一個說明或一個語句佔一行。

2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

C語言的字元集

字元是組成語言的最基本的元素。C語言字元集由字母,數字,空格,標點和特殊字元組成。在字元常量,字元串常量和注釋中還可以使用漢字或其它可表示的圖形符號。
1.字母 小寫字母a~z共26個,大寫字母A~Z共26個

2.數字 0~9共10個

3.空白符 空格符、製表符、換行符等統稱為空白符。空白符只在字元常量和字元串常量中起作用。在其它地方出現時,只起間隔作用, 編譯程序對它們忽略。因此在程序中使用空白符與否,對程序的編譯不發生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。

4.標點和特殊字元

C語言詞彙

在C語言中使用的詞彙分為六類:標識符,關鍵字,運算符,分隔符,常量,注釋符等。

1.標識符

在程序中使用的變數名、函數名、標號等統稱為標識符。除庫函數的函數名由系統定義外,其餘都由用戶自定義。C 規定,標識符只能是字母(A~Z,a~z)、數字(0~9)、下劃線()組成的字元串,並且其第一個字元必須是字母或下劃線。

以下標識符是合法的:

a,x, 3x,BOOK 1,sum5

以下標識符是非法的:
3s 以數字開頭
s*T 出現非法字元*
-3x 以減號開頭
bowy-1 出現非法字元-(減號)
在使用標識符時還必須注意以下幾點:
(1)標准C不限制標識符的長度,但它受各種版本的C 語言編譯系統限制,同時也受到具體機器的限制。例如在某版本C 中規定標識符前八位有效,當兩個標識符前八位相同時,則被認為是同一個標識符。
(2)在標識符中,大小寫是有區別的。例如BOOK和book 是兩個不同的標識符。
(3)標識符雖然可由程序員隨意定義,但標識符是用於標識某個量的符號。因此,命名應盡量有相應的意義,以便閱讀理解,作到「顧名思義」。

2.關鍵字

關鍵字是由C語言規定的具有特定意義的字元串,通常也稱為保留字。用戶定義的標識符不應與關鍵字相同。C語言的關鍵字分為以下幾類:
(1)類型說明符
用於定義、說明變數、函數或其它數據結構的類型。如前面例題中用到的int,double等
(2)語句定義符
用於表示一個語句的功能。如例1.3中用到的if else就是條件語句的語句定義符。
(3)預處理命令字
用於表示一個預處理命令。如前面各例中用到的include。

3.運算符

C語言中含有相當豐富的運算符。運算符與變數,函數一起組成表達式,表示各種運算功能。運算符由一個或多個字元組成。

4.分隔符

在C語言中採用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數參數表中,分隔各個變數。空格多用於語句各單詞之間,作間隔符。在關鍵字,標識符之間必須要有一個以上的空格符作間隔, 否則將會出現語法錯誤,例如把int a;寫成 inta;C編譯器會把inta當成一個標識符處理,其結果必然出錯。

5.常量

C 語言中使用的常量可分為數字常量、字元常量、字元串常量、符號常量、轉義字元等多種。在第二章中將專門給予介紹。

6.注釋符

C 語言的注釋符是以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調試結束後再去掉注釋符。

『捌』 (第二部分)急。。。。。C語言程序 用Dev-C++ 編譯 報錯。。誰能幫我改一下。正常運行就可以!

哎,現在才看到你的main()函數,還以為你沒寫呢

第一部分的程序已經幫你改好了,寫代碼注意一下縮進,你的排版很難看的。
看的偶都不想再看了。。。呵呵

『玖』 c語言 二級部分問題。。

第二題樓上的回答是對的,我幫你回答其它兩個

  1. t = 表達式1 || 表達式2 ,我告訴你吧,表達式2怎麼變化,y 的值都是 3;

    t 的值是 1;因為||是邏輯運算符,表達式1成立後面表達式2就不會執行了。

    所以表達式2 無論是 ++y ,y++。y的結果都不會變

3. a = b =5

b = a++ 等價於 b = a +1 = 6;

b++ 等價於 b = b +1 = 7

++b 等價於 b +1 ;

你看b 是不是變為 7了


『拾』 c語言問題

1.MAIN()裡面的 內容 是主函數。也就是你的第二部分。
2.這兩個部分可以對調的,但是對調之後要在主函數之前加一個函數聲明,
3.因為程序是從主函數開始運行的,主函數 就相當於一個程序的入口,進去了一步步的執行,遇見調用函數就進入被調用的函數裡面執行。所以要先執行主函數中在被調用函數之前的語句