C字母生成4組3位不同組合,並且不能有重複

2021-03-04 00:47:16 字數 5087 閱讀 5757

1樓:

static void main(string args)console.readkey();

}static listgetassembly(string str)}}

return list;}

2樓:陽光的雷咩咩

class program

;foreach (var ***b in ***binations(lst, 0, 4, 3))

console.readline();

}public static ienumerable> ***binations(

listsq, int i0, int n, int c)}}

private static void rl(listsq, int i0, int n)

}//5位取3個

//listlst = new list;

//foreach (var ***b in ***binations(lst, 0, 5, 3))

3樓:迷之冰路

樓上的回答已經很到位了。

c#程式語言的特點與優勢

4樓:戰歌王朝

c#比其它語言的優勢

c#(讀做 "c sharp")是微軟公司在去年六月釋出的一種新的程式語言,並定於在微軟職業開發者論壇(pdc)上登台亮相.c#是微軟公司研究員anders hejlsberg的最新成果.c#看起來與java有著驚人的相似;它包括了諸如單一繼承,介面,與java幾乎同樣的語法,和編譯成中間**再執行的過程.

但是c#與java有著明顯的不同,它借鑑了delphi的乙個特點,與***(元件物件模型)是直接整合的,而且它是微軟公司.*** windows網路框架的主角.

在本文中,我將考察建立一種新計算機語言的一般動機,並將特別指明是什麼原因導致了c#的出現.然後我將介紹c#和它與java,c,c++的相似之處.其次我將討論一些存在於java和c#之間的高層次的,和基礎的差別.

我將以衡量在用多種語言開發大型應用程式的時候所需的知識(或者對這種知識的缺乏程度)來結束本文,而這正是.***和c#的乙個主要戰略.目前,c#和.

***還只能以c#語言規則,以及windows 2000的乙個"d預覽版本",還有msdn上迅速增多的文件集子的形式獲得(還沒有最終定型).

微軟c#語言定義主要是從c和c++繼承而來的,而且語言中的許多元素也反映了這一點.c#在設計者從c++繼承的可選選項方面比java要廣泛一些(比如說structs),它還增加了自己新的特點(比方說源**版本定義).但它還太不成熟,不可能擠垮java.

c#還需要進化成一種開發者能夠接受和採用的語言.而微軟當前為它的這種新語言大造聲勢也是值得注意的.目前大家的反應是:

"這是對java的反擊."

c#更象java一些,雖然微軟在這個問題上保持沉默.這也是意料中的事情,我覺得,因為java近來很成功而使用java的公司都報告說它們在生產效率上比c++獲得了提高.

java所帶來的巨大影響和大家對它的廣泛接受已經由工作於這種語言和平台之上的程式設計師數量明顯的說明了(估計世界範圍內共有兩百五十萬程式設計師使用java).由這種語言寫成的應用程式的數量是令人驚訝的並已經滲透了每乙個級別的計算,包括無線計算和移動**(比如日本發明的java**).c#能夠在使用者領域獲得這樣的禮遇嗎?

我們必須等待並觀望,就象已經由ssi公司的ceo和主席kalpathi s. suresh指出來的那樣,"我發現所有這些都是漸進的.如果c#不存在,我們總能回到java或c和c++.

這些都不完全是新技術;它們在更大的意義上來說只是大公司製造的市場噱頭.我們必須給他們時間安頓下來看看這些是不是真的對it工業有什麼影響."

c#從java繼承而來的特點

類:在c#中類的申明與java很相似.這是合理的因為經驗告訴我們java模型工作得很好.

java的關鍵字import已經被替換成using,它起到了同樣的作用.乙個類開始執行的起點是靜態方法main().下面的hello world程式展示了基本的形式:

using system;

class hello

}在這個例子中,system這個名字指向乙個包括了基本c#實用類集合的命名空間(namespace).這個命名空間包括了console類,它在這個例子中被用來輸出乙個字串.類可以是抽象的和不可繼承的:

乙個被申明成abstract的類不能被例項化;它只能被用做乙個基類.c#關鍵字lock就象java關鍵字final,它申明乙個類不是抽象的,但是它也不能被用做另乙個類的基類.介面:

就象在java中一樣,乙個介面是一組方法集合的抽象定義.當乙個類或結構體實現乙個介面的時候,它必須實現這個介面中定義的所有方法.乙個單一的類可以實現幾個介面.

也許以後會出現一些微妙的差別,但是這個特點看起來與java相比沒有變化.布林運算:條件表示式的結果是布林資料型別,布林資料型別是這種語言中獨立的一種資料型別.

從布林型別到其他型別沒有直接的轉換過程.布林常量true和false是c#中的關鍵字.錯誤處理:

如java中那樣,通過丟擲和捕捉異常物件來管理錯誤處理過程.記憶體管理:由底層.

***框架進行自動記憶體垃圾**.

c#從c和c++繼承的特點

編譯:程式直接編譯成標準的二進位制可執行形式.如果前面的hello world程式被儲存成乙個文字檔案並被命名為hello.

cs,它將被編譯成命名hello.exe的可執行程式.

結構體:乙個c#的結構體與c++的結構體是相似的,因為它能夠包含資料申明和方法.但是,不象c++,c#結構體與類是不同的而且不支援繼承.

但是,與java相同的是,乙個結構體可以實現介面.

預編譯:c#中存在預編譯指令支援條件編譯,警告,錯誤報告和編譯行控制.可用的預編譯指令有:

#define

#undef

#if#elif

#else

#endif

#warning

#error

#line

沒有了#include 偽指令.你無法再用#define 語句對符號賦值,所以就不存在源**替換的概念--這些符號只能用在#if和#elif偽指令裡.在#line偽指令裡的數字(和可選的名字)能夠修改行號還有#warning和#error輸出結果的檔名.

操作符過載:一些操作符能夠被過載,而另一些則不能.特別的是,沒有乙個賦值運算子能夠被過載.能夠被被過載的單目操作符是:

+ - ! ~ ++ -- true false

能夠被過載的二元運算子是:

+ - * / % & | ^ << >> == != > < >= <=

c#獨有的特點

c#最引人入勝的地方是它和java的不同,而不是相似的地方.這一節(和這個系列第二部分的大部分地方)講述了c#實現的和java不同的地方或者java根本沒有的特點.

中間**:微軟在使用者選擇何時msil應該編譯成機器碼的時候是留了很大的餘地.微軟公司很小心的聲稱msil不是解釋性的,而是被編譯成了機器碼.

它也明白許多--如果不是大多數的話--程式設計師認為java程式要不可避免的比c編寫的任何東西都要慢.而這種實現方式決定了基於msil的程式(指的是用c#,visual basic,"managed c++"--c++的乙個符合cls的版本--等語言編寫的程式)將在效能上超過"解釋性的"java**.當然,這一點還需要得到事實證明,因為c#和其他生成msil的編譯器還沒有釋出.

但是java jit編譯器的普遍存在使得java和c#在效能上相對相同.象"c#是編譯語言而java是解釋性的,"之類的宣告只是商業技巧.java的中間**和msil都是中間的彙編形式的語言,它們在執行時或其它的時候被編譯成機器**.

命名空間中的申明:當你建立乙個程式的時候,你在乙個命名空間裡建立了乙個或多個類.同在這個命名空間裡(在類的外面)你還有可能宣告介面,列舉型別和結構體.

必須使用using關鍵字來引用其他命名空間的內容.

基本的資料型別:c#擁有比c,c++或者java更廣泛的資料型別.這些型別是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.

象java一樣,所有這些型別都有乙個固定的大小.又象c和c++一樣,每個資料型別都有有符號和無符號兩種型別.與java相同的是,乙個字元變數包含的是乙個16位的unicode字元.

c#新的資料型別是decimal資料型別,對於貨幣資料,它能存放28位10進製數字.

兩個基本類:乙個名叫object的類是所有其他類的基類.而乙個名叫string的類也象object一樣是這個語言的一部分.

作為語言的一部分存在意味著編譯器有可能使用它--無論何時你在程式中寫入一句帶引號的字串,編譯器會建立乙個string物件來儲存它.

引數傳遞:方法可以被宣告接受可變數目的引數.預設的引數傳遞方法是對基本資料型別進行值傳遞.

ref關鍵字可以用來強迫乙個變數通過引用傳遞,這使得乙個變數可以接受乙個返回值.out關鍵字也能宣告引用傳遞過程,與ref不同的地方是,它指明這個引數並不需要初始值.

與***的整合:c#對windows程式最大的賣點可能就是它與***的無縫整合了,***就是微軟的win32元件技術.實際上,最終有可能在任何.

***語言裡編寫***客戶和伺服器端.c#編寫的類可以子類化乙個以存在的***元件;生成的類也能被作為乙個***元件使用,然後又能使用,比方說,jscript語言子類化它從而得到第三個***元件.這種現象的結果是導致了乙個執行環境的產生,在這個環境裡的元件是網路服務,可用用任何.

***語言子類化.

索引下標:乙個索引與屬性除了不使用屬性名來引用類成員而是用乙個方括號中的數字來匿名引用(就象用陣列下標一樣)以外是相似的.

public class listbox: control

set }}

可以用乙個迴圈器來匿名引用字串內部陣列成員,就象下面這樣:

listbox listbox = ...;

listbox[0] = "hello";

console.writeline(listbox[0]);

**和反饋:乙個**物件包括了訪問乙個特定物件的特定方法所需的資訊.只要把它當成乙個聰明的方法指標就行了.

**物件可以被移動到另乙個地方,然後可以通過訪問它來對已存在的方法進行型別安全的呼叫.乙個反饋方法是**的特例.event關鍵字用在將在事件發生的時候被當成**呼叫的方法宣告中.

如果用EXCEL,如何生成數字與大寫字母組成的32位字串

用vba 實現!按alt f11進入vbe編輯視窗,然後在工程視窗插入一個模組 把下面的 複製進去 儲存,再次按alt f11返回excel視窗 這時,按alt f8開啟巨集視窗,執行randnum巨集,如果你選中的是 一個單元格,就會產生32位 abcdef跟0123456789 的隨機組合字串 ...

C語言程式設計輸入數字和大寫字母,輸出由字母組成的Z圖形

根據題意,需要輸入字元c,和數字n,然後輸出由c組成的n n大小的z形圖案,即 1 輸出n個c 2 輸出n 2行,逐行遞減形成 3 輸出n個c 如下 int main for i 0 i n i putchar c putchar n include int main printf n return...

補體C3C4低,怎麼樣增強,補體C3C4低說什麼可以補

您好,補體c3c4低與自身免疫力低下有關的,需要注意平時的飲食生活與鍛鍊了,必要時用一些調節免疫的藥物。除了藥物,在飲食上怎樣補充補體c3,c4?補體是存在於正常人和動物血清與組織液中的一組經活化後具有酶活性的蛋白質。早在19世紀末bordet即證實,新鮮血液中含有一種不耐熱的成分,可輔助和補充特異...