1. 有沒有做計算機c語言編程題的app
http://noi.openjudge.cn/
可以在這里做
2. 安卓app主要用什麼編程語言的
安卓App用java和Kotlin作為開發語言。
Google IO 2017宣布了 Kotlin 會成為 android 官方開發語言。在Kotlin 語言出現之前,幾乎所有的安卓應用程序都是使用Java語言編寫的。
(2)kc語言編程到app擴展閱讀
Google在今年I/O2017開發者大會中宣布,正式把Kotlin納入Android程序的一級開發語言(First-classlanguage),並與開發團隊JetBrains合組非牟利基金會推廣Kotlin。據多間外國媒體報導,這是GoogleI/O開發者大會中引來最多歡呼聲的消息。
Kotlin將於AndroidStudio3.0得到支持,JetBrians指開發者不用再安裝額外元件或擔心兼容問題。Kotlin能與Java互通,但擁有Java不支持的功能。Google相信利用Kotlin可使Android程序開發更快捷有趣,但他們補充,此舉絕非取代Java和C++的官方支持。
3. 開發android app需要用到什麼語言
主要有以下方式,基於a d k的java編程,基於ADK的C語言
4. 學C語言現在最好用的編程軟體
GNU編譯器套裝
開發 The GNU Project
最新版本 4.4.2 / 2009-10-15(2個月前)
操作系統 跨平台
類型 編譯器
許可協議 GPL
網站 gcc.gnu.org
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發的編程語言編譯器。它是一套以GPL及LGPL許可證所發行的自由軟體,也是GNU計劃的關鍵部分,亦是自由的類Unix及蘋果計算機Mac OS X 操作系統的標准編譯器。GCC(特別是其中的C語言編譯器)也常被認為是跨平台編譯器的事實標准。
GCC原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java,以及Ada與其他語言。
目錄
[隱藏]
* 1 概觀
* 2 目前支持的語言
o 2.1 內嵌OpenMP支持
* 3 支持的處理器架構
* 4 結構
o 4.1 前端介面
o 4.2 中介介面
o 4.3 後端介面
* 5 替GCC程序除錯
* 6 參考書目及注釋
* 7 參閱
* 8 更多閱讀
* 9 外部鏈接
[編輯] 概觀
GCC是由理查德·馬修·斯托曼在1985年開始的。他首先擴增一個舊有的編譯器,使它能編譯C,這個編譯器一開始是以Pastel語言所寫的。Pastel是一個不可移植的Pascal語言特殊版,這個編譯器也只能編譯Pastel語言。為了讓自由軟體有一個編譯器,後來此編譯器由斯托曼和Len Tower在1987年[1]以C語言重寫[2]並成為GNU項目的編譯器。GCC的建立者由自由軟體基金會直接管理[3]。
在1997年,一群不滿GCC緩慢且封閉的創作環境者,組織了一個名為EGCS《Experimental/Enhanced GNU Compiler System》的項目,此項目匯整了數項實驗性的分支進入某個GCC項目的分支中。EGCS比起GCC的建構環境更有活力,且EGCS最終也在1999年四月成為GCC的官方版本。
GCC目前由世界各地不同的數個程序設計師小組維護。它是移植到中央處理器架構以及操作系統最多的編譯器。
由於GCC已成為GNU系統的官方編譯器(包括GNU/Linux家族),它也成為編譯與建立其他操作系統的主要編譯器,包括BSD家族、Mac OS X、NeXTSTEP與BeOS。
GCC通常是跨平台軟體的編譯器首選。有別於一般局限於特定系統與運行環境的編譯器,GCC在所有平台上都使用同一個前端處理程序,產生一樣的中介碼,因此此中介碼在各個其他平台上使用GCC編譯,有很大的機會可得到正確無誤的輸出程序。
[編輯] 目前支持的語言
以2006年5月24日釋出的4.1.1版為准,本編譯器版本可處理下列語言:
* Ada 《GNAT》
* C 《GCC》
* C++(G++)
* Fortran 《Fortran 77: G77,Fortran 90: GFORTRAN》
* Java 《編譯器:GCJ;解釋器:GIJ》
* Objective-C 《GOBJC》
* Objective-C++
先前版本納入的CHILL前端由於缺乏維護而被廢棄。
Fortran前端在4.0版之前是G77,此前端僅支持Fortran 77。在本版本中,G77被廢棄而採用更新的GFortran,因為此前端支持Fortran 95。
下列前端依然存在:
* Mola-2
* Mola-3
* Pascal
* PL/I
* D語言
* Mercury
* VHDL
[編輯] 內嵌OpenMP支持
OpenMP是一種跨語言的對稱多處理器(SMP)多線程並行程序的編程工具,也非常適合當今越來越流行的單CPU多核硬體環境,因此從gcc4.2開始,OpenMP成為其內嵌支持的並行編程規范,可以直接編譯內嵌 OpenMP語句的C/C++/Fortran95的源代碼。gcc4.2之前如果想在C/C++/Fortran中嵌入OpenMP語句的話,需要額外安裝庫和預處理器才能識別和正確處理這些語句。
* gcc 4.2.0開始支持OpenMP v2.5
* gcc 4.4.0開始支持OpenMP v2.5及v3.0
參見GNU的GOMP計劃
[編輯] 支持的處理器架構
GCC目前支持下列處理器架構(以4.1版為准):
* Alpha
* ARM
* Atmel AVR
* Blackfin
* H8/300
* IA-32(x86)與x86-64
* IA-64例如:Itanium
* MorphoSys家族
* Motorola 68000
* Motorola 88000
* MIPS
* PA-RISC
* PDP-11
* PowerPC
* System/370,System/390
* SuperH
* HC12
* SPARC
* VAX
* Renesas R8C/M16C/M32C家族
較不知名的處理器架構也在官方釋出版本中支持:
* A29K
* ARC
* C4x
* CRIS
* D30V
* DSP16xx
* FR-30
* FR-V
* Intel i960
* IP2000
* M32R
* 68HC11
* MCORE
* MMIX
* MN10200
* MN10300
* NS32K
* ROMP
* Stormy16
* V850
* Xtensa
由FSF個別維護的GCC處理器架構:
* D10V
* MicroBlaze
* PDP-10
* MSP430
* Z8000
當GCC需要移植到一個新平台上,通常使用此平台固有的語言來撰寫其初始階段。
[編輯] 結構
GCC的外部介面長得像一個標準的Unix編譯器。用戶在命令行下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入文件使用的個別語言編譯器,並為輸出代碼使用適合此硬體平台的匯編語言編譯器,並且選擇性地運行連接器以製造可運行的程序。
每個語言編譯器都是獨立程序,此程序可處理輸入的源代碼,並輸出匯編語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的源代碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的寄存器轉換語言《RTL》的後端。編譯器優化與靜態代碼解析技術(例如FORTIFY_SOURCE[1],一個試圖發現緩存溢出《buffer overflow》的編譯器)在此階段應用於代碼上。最後,適用於此硬體架構的匯編語言代碼以Jack Davidson與Chris Fraser發明的演算法產出。
幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。
[編輯] 前端介面
前端的功能在於產生一個可讓後端處理之語法樹。此語法解析器是手寫之遞回語法解析器。
直到最近,程序的語法樹結構尚無法與欲產出的處理器架構脫鉤。而語法樹的規則有時在不同的語言前端也不一樣,有些前端會提供它們特別的語法樹規則。
在2005年,兩種與語言脫鉤的新型態語法樹納入GCC中。它們稱為GENERIC與GIMPLE。語法解析變成產生與語言相關的暫時語法樹,再將它們轉成GENERIC。之後再使用"gimplifier"技術降低GENERIC的復雜結構,成為一較簡單的靜態唯一形式(Static Single Assignment form,SSA)基礎的GIMPLE形式。此形式是一個與語言和處理器架構脫鉤的全局優化通用語言,適用於大多數的現代編程語言。
[編輯] 中介介面
一般編譯器作者會將語法樹的優化放在前端,但其實此步驟並不看語言的種類而有不同,且不需要用到語法解析器。因此GCC作者們將此步驟歸入通稱為中介階段的部分里。此類的優化包括消解死碼、消解重復計算與全局數值重編碼等。許多優化技巧也正在實現中。
[編輯] 後端介面
GCC後端的行為因不同的前處理器宏和特定架構的功能而不同,例如不同的字元尺寸、調用方式與大小尾序等。後端介面的前半部利用這些消息決定其RTL的生成形式,因此雖然GCC的RTL理論上不受處理器影響,但在此階段其抽象指令已被轉換成目標架構的格式。
GCC的優化技巧依其釋出版本而有很大不同,但都包含了標準的優化演算法,例如循環優化、線程跳躍、共通程序子句消減、指令調度等等。而RTL的優化由於可用的情形較少,且缺乏較高級的信息,因此比較起近來增加的GIMPLE語法樹形式[2],便顯得比較不重要。
後端經由一重讀取步驟後,利用描述目標處理器的指令集時所取得的信息,將抽象寄存器替換成處理器的真實寄存器。此階段非常復雜,因為它必須關照所有GCC可移植平台的處理器指令集的規格與技術細節。
後端的最後步驟相當公式化,僅僅將前一階段得到的匯編語言碼藉由簡單的副函數轉換其寄存器與存儲器位置成相對應的機器碼。
[編輯] 替GCC程序除錯
為GCC除錯的首選工具當然是GNU除錯器。其他特殊用途的除錯工具是Valgrind,用以發現存儲器泄漏 (Memory leak)。而GNU測量器(gprof)可以得知程序中某些函數花費多少時間,以及其調用頻率;此功能需要用戶在編譯時選定測量《profiling》選項。
[編輯] 參考書目及注釋
* Richard M. Stallman:Using and Porting the GNU Compiler Collection, Free Software Foundation,ISBN 0-595-10035-X
* Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
* Brian J. Gough:An Introction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3
1. ^ Tower, Leonard (1987) "GNU C編譯器beta測試版釋出" comp.lang.misc USENET新聞組;參閱http://gcc.gnu.org/releases.html#timeline
2. ^ Stallman, Richard M.(1986年2月1日).GNU狀態.GNU的公告版,1(1).自由軟體基金會.
3. ^ Stallman, Richard M. (2001) "GCC貢獻者名單"於使用及移植GCC 2.95版(Cambridge, Mass.: Free Software Foundation)
[編輯] 參閱
[[File:|36x32px|自由軟體主題]] 自由軟體主題首頁
GCC目前包含了Boehm GC,一個為C/C++ 所設計的垃圾回收器。
* distcc - 為分布式編譯所設計的軟體,以GCC為協同軟體。
* LLVM - 低層虛擬機編譯器架構。
* MinGW - 將GNU開發工具移植到Win32平台下的計劃
* Cygwin - 在Windows上運行GNU程序的模擬軟體。
* GCC Summit
* OpenWatcom - 另一個開放原碼的C++/Fortran編譯器。
* Code Sourcery - 一個GCC顧問公司。
* ggcc - 全球化GCC項目。
[編輯] 更多閱讀
* Arthur Griffith, GCC: The Complete Reference. McGrawHill/Osborne. ISBN 0-07-222405-3.
* Kerner, Sean Michael.Open Source GCC 4.0: Older, Faster,internetnews.com,2005年4月22日.
* Kerner, Sean Michael.New GCC Heavy on Optimization,internetnews.com,2006年3月2日.
[編輯] 外部鏈接
* GCC官方網站
* GCC Forum - 由Nabble維持,整理所有gcc通信討論串,並集成入一個可搜索介面中。
5. c語言設計k
10月25日 14:29 一種計算機基本編程語言。
第一章: 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 語言的注釋符是以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調試結束後再去掉注釋符。
揪錯 ┆
6. 怎麼用C語言製作APP,過程是怎樣的,做過的回答
沒有編程基礎的話,可以從編程的入門開始學,比如basic和pascal,再轉C語言,慢慢看看c++,java之類的。
如果你覺得時間有點長,推薦在線應用開發平台——應用之星,這個網站無需編程和代碼,小白用戶也能在線開發app。具體操作:http://tieba..com/p/4447555710
7. 什麼是c語言編程軟體,用c語言怎麼編程
C語言是國際上廣泛流行的,很有發展前途的計算機高級語言.它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體.
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括 UNIX操作系統在內).由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差.為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作,位操作等).人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身.於是,C語言就在這種情況下應運而生了.
C語言是在B語言的基礎上發展起來的,它的根源可以追溯到ALGOL 60. 1960年出現的ALGOL 60是一種面向問題的高級語言,它離硬體比較遠,不宜用來編寫系統程序.1963年英國的劍橋大學推出了CPL(CombinedProgram- ming Language)語言.CPL語言在ALGOL 60的基礎上接近了硬體一些,但規模比較大,難以實現.1967年英國劍橋大學的Matin Richards對 CPL語言作了簡化,推出了BCPL(Basic Combined Programming Language)語言.1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎,又作了進一步簡化,設計出了很簡單的而且很接近硬體的 B語言( 取 BCPL的第一個字母),並用 B語言寫第一個UNIX操作系統,在PDP-7上實現. 1971年在PDP-11/20上實現了B語言,並寫了UNIX操作系統.但B語言過於簡單,功能有限.1972年至 1973年間,貝爾實驗室的 D.M.Ritchie在B語言的基礎上設計出了C語言(取 BCPL的第二個字母).C語言既保持了BCPL和B語言的優點(精練,接近硬體),又克服了它們的缺點(過於簡單,數據無類型等). 最初的C語言只是為描述和實現UNIX操作系統提供一種工作語言而設計的.1973年,K.Thom- pson和D.M.ritchie兩人合作把UNIX的90%以上用 C改寫(UNIX第5版.原來的 UNIX操作系統是1969年由美國的貝爾實驗室的 K.Thompson和D.M.Ritchie開發成功的,是用匯編語言寫的).
後來,C語言多次作了改進,但主要還是在貝爾實驗室內部使用.直到1- 975年UNIX第6版公布後 ,C語言的突出優點才引起人們普遍注意.1977年出現了不依賴於具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統迅速地在各種機器上實現.例如,VAX,AT&T等計算機系統都相繼開發了UNIX.隨著 UNIX的日益廣泛使用,C語言也迅速得到推廣.C語言和UNIX可以說是一對孿生兄弟,在發展過程中相輔相成.1978年以後,C語言已先後移植到大,中,小,微型機上,已獨立於UNIX和PDP了.現在C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一.
以1978年發表的UNIX第7版中的C編譯程序為基礎,Brian W.Kernighan和 Dennis M.Ritchie(合稱K&R)合著了影響深遠了名著《The C Programming Lan- guage》,這本書中介紹的C語言成為後來廣泛使用的C語言版本的基礎,它被稱為標准C.1983年,美國國家標准化協會(ANSI)根據C語言問世以來各種版本對C的發展和擴充 ,制定了新的標准,稱為ANSI C.ANSI C比原來的標准C有了很大的發展.K&R在1988年修改了他們的經典著作《The C Progra- mming Language》 ,按照ANSI C的標准重新寫了該書.1987年,ANSI C又公布了新標准--87 ANSI C .目前流行的C編譯系統都是以它為基礎的.
=========
上面說的87ANSI C已經老了,
現在最新的標準是C98
8. 簡單c語言編程
1.相鄰兩個奇數都為素數的這樣一對數叫雙胞胎素數,輸出100到200之間的所有雙胞胎素數。
#include<stdio.h>
main()
{
int n=101,i,p,s=0;
while(n!=201)
{
p=1;
for(i=2;i<n;++i)
{
if(n%i==0)
{
s=0;
p=0;
n+=2;
break;
}
}
if(p==1)
{
++s;
n+=2;
}
if(s==2)
printf("%d %d\n",n-4,n-2);
}
}
2.求1000以內所有的互滿數,並顯示輸出。所謂互滿數是指:有兩個數,每一個數的所有約數(除它本身以外)的和正好等於對方,則稱這兩個數為互滿數。
#include<stdio.h>
main()
{
int n,i,j,sum=0;
for(n=2;n<1000;++n)
{
sum=0;
for(i=1;i<=n/2;++i)
{
if(n%i==0)
sum=sum+i;
}
if(sum==n)
printf("%d\n",n);
}
}
3.編程輸出下面的菱形圖案,要求菱形的最大寬度由鍵盤輸入。
#include<stdio.h>
main()
{
char a[1000][1000]={' '};
int w,m,i,k;
printf("請輸入菱形的最大寬度:\n");
scanf("%d",&w);
m=(w-1)/2;
for(i=0;i!=m+1;++i)
{
a[i][m+i]=a[w-i-1][m+i]='x';
a[i][m-i]=a[w-i-1][m-i]='x';
for(k=m-i+1;k<m+i;++k)
a[i][k]=a[w-i-1][k]='+';
}
for(i=0;i!=w;++i)
{
for(k=0;k!=w;++k)
printf("%c",a[i][k]);
printf("\n");
}
}
9. C語言編程
程序沒有任何問題!你這是計算機二級的題吧,這個考試把基礎弄明白很容易。來看程序吧!
struct st
{
char c; <----這里定義了一個字元,至少當前我們不知道定義這個字元有什麼用,先往後看
char *s; <----這個數據結構是這道題的核心考點!這是個字元型指針,不僅僅如此,更重要的是字元指針S指向了一個字元數組的頭部地址!也就是有一個字元數組S[ ],且指針S指向S[0],那麼很明顯S[0]==*S,這個就是這道題最重要的地方!到這里你應該能明白吧,要是不明白趕緊翻翻書吧。。。
};
再看這個函數:
char *f(struct st t)
{
int k=0;
while(t.s[k]!='\0')
{
if(t.s[k]==t.c)
return t.s+k;
k++;
}
return t.s;
}
函數的類型是char *,也就是說它的返回值也就是char *------一個字元數組(在C++中叫做C類型的字元串)。它傳進來的參數是一個剛才定義過的st類型,那麼函數裡面必然是對這個類型的某種操作,那我們來看看它有什麼企圖!
int k=0?WHY?這是干什麼?你要是程序做的多,那就能反應過來,一個int型的k還賦了值0,一般有兩種用途:一個是循環計數,一個就是真假條件(0類似於false),從後面的while循環中的k++可以看出這里的k用於循環計數了。
循環計數還有兩種情況:
一個是循環條件的判斷和終止
例如:for(int i=0;i<MAX;i++)
第二是單純的個數的記錄
這里是哪個呢?從while(t.s[k]!='\0')中的條件看來似乎是第二種,現在僅僅是似乎。。。這個過程對於一個老手一瞬間就能判斷過來!下面看那個詭異的循環吧,所有變態的問題就在這了!
先看while中的條件:t.s[k]!='\0',剛剛說了:S指向的是一個字元數組的開頭,這里明顯用的是S的字元數組的形式,也就是字元串。S[0]是字元串中的第一個元素,S[1]是第二個元素,S[2]是第三個元素,這都跟別的數組是一樣的。不一樣的是:由於字元數組很難定義使用的長度,所以字元數組的結尾規定以\0為結束,這個特性廣泛用於C類型字元串的遍歷,用於遍歷的結束條件!也就是這道題中的使用:t.s[k]!='\0',這回明白了吧,說白了就是:只要這個字元串不到尾while就會一直循環下去,直到結束為止!下面我們來偷窺一下while想干什麼。
上來是個條件: if(t.s[k]==t.c),有了剛才的說明這個好理解了吧!就是:如果當前字元串(字元數組)中的第k個元素 ==(等於)預先定義的那個字元。哦,原來st結構中的字元c是用來比較的!如果相等了干什麼呢?
他幹了件大事:return t.s+k; 竟然是return!return意味著要返回值,就是說這個函數要到此為止了!返回的是什麼呢,竟讓他如此囂張!原來是: t.s+k。。。哎呀,這個是?沒錯,這個是這道題最難理解的地方。
不知你知不知道兩個字元串可以用」+「進行連接,」123「+」456「結果是」123456「。所以有人就會認為這里是這樣的:先將K進行隱式的類型轉換,將K轉換為字元串類型,然後與前面的字元串S相連,這對嗎?答案是明顯的:完全錯誤!連接符」+「必須保證左右兩邊皆為字元串型,否則連接絕不成立!那這里幹了什麼?
最前面我說了,指針S指向的是字元數組的首部,請深刻理解這句話!
先闡明一個原理:
S[0]是第一個元素,S[1]是第二個,那麼S[1]也可以這么表示:S[0+1]
由於S指向首元素,即*S是第一個值,那麼第二個S[1]怎麼用指針表示呢?很神奇:*(S+1)。也就是說S+1指向了第二個元素,也可以說成:從第二個元素開始,這個說法我覺得更容易理解後面。為了讓你理解這里舉個例子:
你應該會的:printf("%s\n",s),意思是:從S指向的元素開始到結束符的那串字元,如果S指向頭部,那就是從頭到尾的那串字元。那要是printf("%s\n",(s+1))呢?很明顯了,就是從第二個字元開始到結尾的那串字元了!
回到題中: t.s+k,意思明了了:我讓指針S移動K個位置,這就導致返回的字元串將是從第K-1個元素開始到結尾的字元串,K-1是因為要考慮數組是從0下標開始的。
小結一下:如果在遍歷字元串的過程中,從K=0開始的位置到字元串結束,一旦遇到了字元串中有與給定字元相等的字元時,就將指針S移動位置,移動的距離是:與給定字元相等的那個字元的數組下標,注意下標從0開始!並且將移完位置的指針,也可以叫做新的字元串作為函數返回值返回。
若此次循環沒有找到這個字元,那麼K++,進行下次循環。
若當前字元串中沒有找到給定的字元,那麼就返回原有指針,即原來的字元串。
行了,難點都講完了。看那四行吧:
第一行:輸出f(a[0]),其中a[0]={'1',"123"},根據f()的功能,可以知道:給定字元時『1』,在字元串中的位置是0號位置,指針S移動0個位置,其實就是沒移動嘛,返回原串。選C
第二行:輸出f(a[1]),其中a[1]={'2',"321"},給定字元是2,在1號位置,S移動1個位置,從而返回的是」21「,選A。
第二行:輸出f(a[1]),其中a[1]={'2',"321"},給定字元是2,在1號位置,S移動1個位置,指向『2』,從而返回的是」21「,選A。
第三行:輸出f(a[2]),其中a[2]={'3',"123"},給定字元是3,在2號位置,S移動2個位置,指向『3』,從而返回的是」3「,選A。
第四行:輸出f(a[3]),其中a[3]={'4',"321"},給定字元是4,S中沒有4,那麼返回原串,選D。
我這也僅是參考答案,由於我是計算機專業,所以並沒有考過二級,有什麼錯誤還請原諒!
希望我的答案對你有幫助!若還有什麼問題可以繼續交流!
10. 請問哥,你有什麼好一點的C語言編程軟體,推薦一下,真心感謝😋😋
C語言是一門歷史很長的編程語言,其編譯器和開發工具也多種多樣,其開發工具包括編譯器,現舉幾個開發工具供大家選擇,當然也要根據自己的操作系統來選擇適合自己的開發工具。
好多剛開始接觸c語言的朋友都想知道用上面軟體開發c語言比較好,一般來說微軟的東西肯定是最好的,更適合新手學習,等上手了就可以接觸別的軟體了。
Microsoft Visual C++ 、Microsoft Visual Studio、 DEV C++、Code::Blocks、Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、Turb C、gcc、C-Free和Win-TC、My Tc等等,太多了,由於C語言比較成熟,所以編程環境很多。建議使用Microsoft Visual C++。
在Windows下做軟體開發,編譯器的首選當然是Visual Studio,目前微軟也有免費的Microsoft Visual C++2008Express版本可供下載和使用。但是,如果考慮做跨平台的軟體,選擇gcc作為編譯器無疑是明智的,無論Linux,MacOSX還是其他的Unix變體,大多選用gcc作為編譯器,所以,選擇gcc作為編譯器能夠讓你的軟體提前通過編譯器的驗證,能夠更容易的在不同平台上通過編譯。TDM GCC項目已經幫助大家測試並整合了Windows平台下的gcc安裝工具TDM GCC On-Demand Installer,大家可以根據需要選擇下載並安裝那些工具包。安裝完成後,需要修改環境變數,將安裝目錄加入PATH搜索路徑中。
1、TC 2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠。
菜單命令是alt+菜單項的第一個字母,可以調試,在第一次用的時候,可以需要配置一下目錄,如下:
第一次使用可能感覺不舒服(滑鼠不能用的緣故),慢慢熟悉一段時間,就沒事了,當初在學校學習考試都是這個環境。
2、win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高亮,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。編寫完源代碼,進行編譯運行即可,軟體比較容易上手。
3、dev-C++:是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高亮,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。
4、VC++,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索
c語言編程軟體(支持win7/win8)是一款支持多語言開發的開發系統。c語言編程軟體(支持win7/win8)同時支持c語言,c++以及vb語言的開發,軟體能很好的兼容win7以及win8,用戶只需設置軟體兼容性,把它設為win 98,win xp等等。
為大家提供的c語言編程軟體為vc++6.0。VC++6.0是Microsoft公司推出的一個基於Windows系統平台、可視化的集成開發環境,它的源程序按C++語言的要求編寫,並加入了微軟提供的功能強大的MFC(Microsoft Foundation Class)類庫。
c語言編程軟體(支持win7/win8)的MFC類庫中封裝了大部分Windows API函數和Windows控制項,它包含的功能涉及到整個Windows操作系統。MFC不僅給用戶提供了Windows圖形環境下應用程序的框架,而且還提供了創建應用程序的組件,這樣,開發人員不必從頭設計創建和管理一個標准Windows應用程序所需的程序,而是從一個比較高的起點編程,故節省了大量的時間。另外,它提供了大量的代碼,指導用戶編程時實現某些技術和功能。因此,使用VC++提供的高度可視化的應用程序開發工具和MFC類庫,可使應用程序開發變得簡單。
5、C-Free
C-Free是一款國產的C、C++開發工具,堪稱神器,讓你愛不釋手。
如果你受夠了Visual Studio的龐大臃腫,Visual C++ 6.0在Win7、Win8下的兼容性問題,那麼C-Free將是一個讓你驚喜的選擇。C-Free整個軟體才14M,非常輕巧,安裝簡單,可以自由切換編譯器。
C-Free最新版本是5.0,注冊需要80RMB,可以免費試用30天,過期不注冊將無法使用。雖然本教程提供了注冊碼,但是如果你不缺銀子,還是為國產軟體做點貢獻,購買正版吧。
主要包含如下特性:
支持多編譯器,可以配置添加其他編譯器;
目前支持的編譯器類型:
(1) MinGW 2.95/3.x/4.x/5.0
(2) Cygwin
(3) Borland C++ Compiler
(4) Microsoft C++ Compiler
(5) Intel C++ Compiler
(6) Lcc-Win32
(7) Open Watcom C/C++
(8) Digital Mars C/C++
(9) Ch Interpreter
增強的C/C++語法加亮器,(可加亮函數名,類型名,常量名等);
增強的智能輸入功能;
可添加語言加亮器,支持其他編程語言;
可添加工程類型,可定製其他的工程向導;
完善的代碼定位功能(查找聲明、實現和引用);
代碼完成功能和函數參數提示功能;
能夠列出代碼文件中包含的所有符號(函數、類/結構、變數等);
大量可定製的功能:
可定製快捷鍵
可定製外部工具
可定製幫助(可支持Windows幫助、Html幫助和在線幫助);
彩色、帶語法加亮列印功能;
在調試時顯示控制台窗口;
工程轉化功能,可將其他類型的工程轉化為C-Free格式的工程,並在C-Free中打開。
7、CodeLite
CodeLite是一個功能強大的開源,C/C++編程語言的跨平台IDE(定期在Windows XP SP2 / 3下被測試 ,(K)Ubuntu 7.10/8.04 Gutsy Gibbon,和MacOSX 10.5.2 )。CodeLite的源代碼使用是遵循的GPL v2許可證的。