2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩340頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、03:02:51,1,C ++ 程序設計教程(第二版),第二章 基本編程語句 Chapter 2 Basic Programming Statements,清華大學出版社 錢 能,03:02:51,2,第二章內容,說明語句 ( Declarative Statements ) 條件語句 (Condition Statements ) 循環(huán)語句 ( Loop Statements ) 循環(huán)設計(Loop Designs )輸

2、入輸出語句( Input/Output Statements ) 轉移語句 ( Move Statements ) 再做循環(huán)設計(More Loop Designs ),03:02:51,3,1. 說明語句 ( Declarative Statements ),數據說明:求解問題所使用的數據是什么性質,進行什么運算,表達范圍如何,必須預先說明說明方式: 既要指明其名字,也要指明其是什么類型,還可以順便初始化.如: int

3、 a; double d = 3.5;說明數據的另一個目的是創(chuàng)建一個所需大小的實體空間給該名字,以便存儲所用的數據值若數據名字沒有說明,使用其便是非法的,03:02:51,4,過程(函數)說明: 求解中需要通過函數調用來實施求解時,便要對函數的性質進行說明,說明其返回類型,參數類型,參數個數函數說明分函數聲明和函數定義兩種: 函數聲明是說明函數的名字,函數的返回類型,以及函數的參數和個數.如: double are

4、a(double ra); 函數定義是在函數聲明的基礎上,對整個實現過程進行詳細定義.如: double area(double ra){ return ra*ra*3.14; },03:02:51,5,調用函數就是使用函數名字,使用名字前必須清楚名字的性質,所以必須先對函數進行聲明.運行程序中,會涉及到被調用函數的執(zhí)行,所以凡是被調用的函數都必須有函數定義,不管該定義在程序的什么位置.如: double sp

5、here(); // 聲明 int main(){ double result = sphere(); // 調用 cout>r; return r*r*3.14; },03:02:51,6,2. 條件語句(Condition Statements ),if語句的兩種形態(tài):,,語句1,條件,,,,,,語句1,條件,,,,語句2,,,,,,是,是,否,否,03:02:51,7,對應語句: if(a>

6、;b) cout<<a<<endl; if(a==b) cout<<a<<endl; else cout<<b<<endl;,03:02:51,8,錯綜復雜時,必須注意兩義性: if(x>0) if(x<50) cout<<”x is ok.\n”; else cout<<”x is not ok

7、.\n”;,正解:else從屬于緊挨的if if(x>0){ if(x < 50) cout<<”O(jiān)K\n”; else cout<<”NOT OK\n”; },誤解:else從屬于外面的if if(x>0){ if(x < 50) cout<<”O(jiān)K\n”; }else cout<<”NOT OK\n”

8、;,03:02:51,9,條件表達式:對于 if(x) a = 327981; else b = 327981;可表示為: x ? a=327981 : b=327981;如果a和b為同類型,則還可以: (x?a:b) = 327981;,03:02:51,10,switch多分支語句: switch(整數表達式){ case value1: 語句1; break; case value2: 語

9、句2; break; … default: 語句n; }等價于: if(整數表達式==value1) 語句1; else if(整數表達式==value2) 語句2; … else 語句n; },03:02:51,11,雖然switch有等價的復合if表示, 而且,分支判斷值只能是整數,顯得應用范圍狹窄, 但是switch在使用上的直觀和靈活形式, 使得其仍具有編程價值. 如:break

10、可選,甚至case可以重疊: case value1: 語句1; case value2: 語句2; case v1: case v2: case v3: 語句;,03:02:51,12,3. 循環(huán)語句 ( Loop Statements ),for循環(huán)結構:,03:02:51,13,對應語句為: for(int i=1; i<=10; i++) cout<<”h

11、ello.\n”;,,,,,循環(huán)初始狀態(tài),條件判斷,狀態(tài)修正,循環(huán)體,03:02:51,14,每次循環(huán)體執(zhí)行,都改變循環(huán)狀態(tài),直到條件不滿足而終止.如,設置求和的初始值,交給循環(huán)計算,完成循環(huán)后,輸出求和結果:int sum = 0;for(int i=1; i<=100; i++){ sum = sum+i;}cout<<sum<<endl;,循環(huán)開始,循環(huán)結束,03:02:51,15

12、,因為并不是所有循環(huán)都有明顯的循環(huán)初始狀態(tài)和狀態(tài)修正的,所以,while循環(huán)是一種for循環(huán)的簡潔形式.如,同樣的求和:int sum=0, i=1;while(i<=100) sum += i++;cout<<sum<<endl;,循環(huán)開始,循環(huán)結束,03:02:51,16,4. 循環(huán)設計 ( Loop Designs ),(1)簡單字符圖形的雙重循環(huán)MMMMMMMMMMM

13、MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM,03:02:51,17,分析方法:該圖形一共10行,每一行增加一個字符,所以,應循環(huán)10次,每次輸出一行,其循環(huán)模式為:for(int i=1; i<=10; ++i){ 輸出第i行(循環(huán)) 換行}行 i M個數 1 1 1 2 2 2 3

14、 3 3 4 4 4...10 10 10,03:02:51,18,for(int i=1; i<=10; ++i){ for(int j=1; j<=i; ++j) cout<<”M”; cout<<endl;},03:02:51,19,(2)判斷素數:(利用數學定律)m=i×j 假定i≤j, 則

15、 i2≤i×j=m≤j2 即 i2≤m≤j2 即 i≤√m≤j bool isPrime(int m){ double sqm=sqrt(m*1.0); for(int i=2; i<=sqm; ++i) if(m%i==0) return false; return true; },,03:02:51,20,5. 輸入輸出語句( Input/Output S

16、tatements ),標準輸出流:可以控制輸出格式cout3)3); // 0 falsecout<<fixed<<12345.678; // 12345.678000cout<<scientific<<123456.678; // 1.234568e+05,03:02:51,21,控制寬度和填充字符的操

17、作是帶參數的,注意width(n)為一次性操作,即第二次顯示時將不再有效。默認為width(0),表示僅顯示數值。例如:cout.width(5);cout.fill(‘S’);cout…cout<<setw(6)<<setfill(‘$’)<<27<<endl; // 輸出: $$$$27,03:02:51,22,文件流的輸入出操作與標準輸入出基本相同,只是需要以一定

18、方式打開和關閉如,將文件a.in打開,逐行讀入字符,輸出到文件a.out: ifstream in(“a.in”); ofstream out(“a.out”); for(string s; getline(in, s); ) out<<s<<endl;其中文件流讀入操作總是伴隨著狀態(tài)返回,判斷狀態(tài)就可以確定文件是否正常讀入,如getline(in,s)當讀到文件尾時,便返回false,以使

19、循環(huán)結束,03:02:51,23,6. 轉移語句 ( Move Statements ),break除了用在switch之外,主要的是用在終結本次循環(huán)for(int i; ; ){ for( ; ; ) { // ... if(i==1) break; // ... } a=1; // ...},break跳到此處,03:02:51,24,continue一般是用條件判斷執(zhí)

20、行的,通過反條件,可以免去continue的使用,所以,它用來構筑良好的程序風格 for(int n=100; n<=200; ++n) { if(n%3==0) continue; cout<<n<<endl; }免去continue的情形: for(int n=100; n<=200; ++n) if(n%3!=0) cout

21、<<n<<endl;,03:02:51,25,goto的程序段除了系統跟蹤和架構困難外,閱讀也相對復雜: int a; goto Init; Forward: a = a + 1; Print: cout<<a<<endl; goto Down; Init: a = 1; goto Print; Down:

22、 if(a<100) goto Forward;等價于: for(int i=1; i<=100; ++i) cout<<i<<“\n”;,03:02:51,26,break語句的可取之處:// 用break語句的代碼段bool flag=false; // 用于做退出記號for(int i=1; i<100; ++i){ for(int j=1

23、; j<100; ++j) if(i*j==651){ flag=true; break; }else{ // ... } if(flag) break;}// goto語句的代碼段for(int i=1; i<100; ++i)for(int j=1; j<100; ++j){ if(i*j==651) goto End; // ...

24、}End:,03:02:51,27,7. 再做循環(huán)設計( More Loop Designs ),邏輯判斷類的語句控制結構: for(所有可能情況){ // 可為多重循環(huán) if(條件1不滿足) continue; if(條件2不滿足) continue; // … if(條件n不滿足) continue; 輸出所要的結果 },03:02:51,28,百雞問題的例子: f

25、or(int c=1; c<=13; ++c) for(int h=1; h<=18; ++h) for(int s=1; s<=96; ++s){ if(7*c+5*h+s/3-100) continue; if(c+h+s-100) continue; if(s%3) continue; cout<<"Cock:"<<c

26、 <<", Hens:"<<h <<", Chicks:"<<100-c-h<<endl; },03:02:51,29,級數逼近問題前后項之差與0的鄰域(精度要求)的比較作為循環(huán)退出條件,是控制精度的必要方法項值計算由循環(huán)變量,根據通項公式,直接求第i項的值也可先給出第一項的值,然后反復根

27、據前項求后項,03:02:51,30,求級數的例子:double sum=0, item=1;for(int n=1; abs(item)>1e-6; ++n){ item *= (-1.0)*(2*n-3)/(2*n-1); sum += item;}cout<<"Pi = “ <<setiosflags(ios::fixed) <<sum*

28、4<<endl;,,03:02:51,31,C ++ 程序設計教程(第二版),第三章 數據類型 Chapter 3 Data Types,清華大學出版社 錢 能,03:02:51,32,數據類型:一定的數據在計算機的內部表示;該數據所表示的值的集合;在該數據上的一系列操作。內部數據類型: 1.整型長整型,短整型,字符型,布爾型 2.浮點型單精度,雙精度,03:02:51,33,第三章內容,整型 ( i

29、nt Types ) 整型子類 ( sub-int Types ) 浮點型 ( Floating-Point Type ) C-串與string ( C-string & string ) 數組 ( Arrays ) 向量 ( vectors ) 指針與引用 ( Pointer & References ),03:02:51,34,1. 整型 ( int Types ),整型數的內部表示:二進制

30、補碼 位數既定的二進制補碼運算沒有加減的區(qū)別;對于溢出,只是簡單的舍棄而不是錯誤整型數的表示范圍:取決于二進制位數整型數的操作:+,-,*,/,%,>,>=,!,^,,>=,==,^=,&,|,&=,|=,&&,||,&&=,||=,!=,=,+=,-=,*=,/=,%=,++,--,,,? :,03:02:51,35,編譯器的機器字長總是與整型的位長有關.

31、如: 32位編譯器的整型數一定為32位長 整型字面值分八進制,十進制和十六進制不同表示.如: 0123 // 8進制 0x12af3 // 16進制 12345 // 10進制 超過表示范圍的整型數其值不可預料或者出錯.如: int a = 12345678912345678912345; // 錯,03:02:51,36,2. 整型子類(

32、Sub-int Types ),字符型: 表示范圍: 有符號:-128~127 無符號:0~255 輸出形式與整型數不同: int a = 65; char b = 65; cout<<a<<“\n”; cout<<b<<“\n”; 結果為: 65 A,03:02:51,37,枚舉型: 自定義整數區(qū)間,甚

33、至列舉單個整數值 enum Week{ Mon, Tue, Wed, Thu, Fri, Sat, Sun }; 最大特點是可以給每個值指定一個在程序中直接使用的標記(枚舉符). 編程中將其當作整數常量用.如: int a = 7; if ( a == Sun) cout <<“Sunday\n”;,03:02:51,38,布爾型:表示范圍僅含整數0和1,也可以表示成true和fal

34、se,相當于: enum bool{ false, true };因為條件表達式、邏輯運算的結果都是0或1,所以,相當大數量的表達式的值與布爾型對應,03:02:51,39,3. 浮點型 ( Floating-Point Types ),浮點數的內部表示: 國際標準IEEE754浮點表示法,它與編程所用的浮點數字面量以及輸出的十進制浮點數之間有一個轉換關系浮點數的表示范圍: 32位浮點數±3

35、.4×1038 64位浮點數±1.8×10308浮點數的操作: 常規(guī)的加、減、乘、除等操作,03:02:51,40,4. C-串與string ( C-string & string ),C-串結構 每個字符占據1個字節(jié) 一個C-串是一個字符序列,用來表示各種名字或者文字說明 C-串的字符序列的最后總是添加有一個結束標志.即在6個字符的字串(“Hello!”)其空間存儲有7個

36、字節(jié) 左邊三圖是不同細節(jié)的同一空間結構描述,’H’’e’’l’’l’’o’’!’’\0’,,,,,,,72 101 108 108 111 33 0,,,,,,,03:02:51,41,知道了C-串首地址,即可知道整個串,所以可以藉字符首址(字符指針)來操作C-串,但要注意,串的第一個字符與整個串的操作不同,如,C-串的輸出操作: char* str = ”Hello”; cout &l

37、t;< *str <<endl; // 顯示H cout << str << endl; // 顯示Hello,03:02:51,42,C-串不能直接比較,因為字符指針的比較只是地址值的比較而不是C-串的字典序比較: cout<<(“join”==”join” ? ”” : ”not “)<<”equal\n”; // 字面值比較 cha

38、r* str1=”good”; char* str2=”good”; cout<<(str1==str2 ? ”” : ”not “)<<”equal\n”; // 字符指針比較 char buffer1[6]=”Hello”; char buffer2[6]=”Hello”; cout<<(buffer1==buffer2 ? ”” : ”not “)&l

39、t;<”equal\n”; // 字符數組比較 結果: not equal not equal not equal,03:02:51,43,不得不配備專門操作C-串的庫函數:strcpy(s1, s2); //從s2拷貝到s1strcmp(s1, s2); //比較s1與s2strcat(s1, s2); //連接s2到s1strrev(s); //將s倒排

40、 strset(s, ‘c’); //將s全置為cstrstr(s, “ell”); //查找s中的子串strchr(s,‘c’); //查找s中的字符 等等,03:02:51,44,但字符指針操作C-串的安全性受到質疑:char* str1;char* str2 = new char[5];strcpy(str2, ”ugly”);strcpy(str1,str2);

41、 // 錯: str1沒有空間可儲strcpy(str2, ”Hello”); // 錯: str2空間不夠大str2 = ”Hello”; // 錯:原來的”ugly”空間脫鉤,導致內存泄漏根源:復制操作須以足夠的目的地空間為前提,而所有C-串操作的空間調配都是人為安排的,C-串庫函數一概不管,03:02:51,45,類串string—串類—自定義串對應字符指針的C-串操作: string

42、 a, s1 = "Hello "; string s2 = "123"; a = s1; // copy cout<<(a==s1 ? "" : " not")<<"equal\n&quo

43、t;; // compare cout<<a+s2<<endl; // concatenate reverse(a.begin(), a.end()); cout<<a<<endl;

44、 // reverse cout<<a.replace(0,9,9,'c')<<endl; // set cout<<(s1.find("ell")!= -1 ? "" : "not ")<<"found\n";// find string co

45、ut<<(s1.find('c')!= -1 ? "": "not ")<<"found\n"; // find char,03:02:51,46,輸入C-串的string承載方式:cin>>的讀入方式總是將前導的空格(所謂空格,即包括空格、回車、水平或垂直制表符等)濾掉,將單詞讀入,在遇到空格時結束本次輸入getl

46、ine總是將行末的回車符濾掉,將其整行輸入對字串”Hello, How are you?”的兩種輸入方式 for ( string s; cin>>s; ) cout<<s<<” “; cout<<endl; string s; getline(cin, s); cout<<s<<endl;,0

47、3:02:51,47,string流:將string實體看作是一個輸入設備.給一個像cin這樣的取名,作為流來操作,會很有用 例如,如果一個文件aaa.txt,有若干行,每行中含有不知道幾個的整數,要輸出每行的整數和: ifstream in ( "aaa.txt" ) ; for ( string s ; getline ( in, s ) ; ) { int a

48、, sum=0 ; for ( istringstream sin ( s ) ; sin >> a ; sum += a ) ; cout << sum << “\n” ; },,03:02:51,48,5. 數組( Arrays ),數組是同類元素的集合,它的元素排列在連續(xù)的空間中,按下標來標記描述數組必須給出元素類型,元素個數元素個數必須在編程

49、時確定,任何變量都不允許 int a[’a’] ; // 表示int a[97]; int n = 100 ; int a[n] ; // 錯: 元素個數必須預知 const int n = 100 ; int a[n] ; // ok int a[ ] ; // 錯: 無元素個數 int a[ ] = { 1, 2, 3, 4, 5 } ; // ok

50、:通過初始化確定元素個數,03:02:51,49,數組初始化可選,但須遵循語法.無初始化的數組按規(guī)定取默認值 int array1[5] = { 1, 2, 3, 4, 5, 6 } ; // 錯: 初始值個數超元素個數int array2[5] = { 1, , 2, 3, 4 } ; // 錯: 不能以逗號方式省略int array3[5] = { 1, 2, 3, } ;

51、 // 錯: 同上int array4[5] = { } ; // 錯: 初始值不能為空int array5[5] = { 1, 2, 3 } ; // ok: 后面元素取0int array6[5] = { 0 }; // ok: 元素全為0int array7[5] ;

52、 // ok: 元素值不確定int a[3][5] = { { 1, 2, 3, 4, 5 }, { 2, 3, 4, 5, 6 }, { 3, 4, 5, 6, 7 } } ;,03:02:51,50,數組有諸多缺陷,造成編程艱難和不安全 int a[5] = {1,2,3,4,5}, c[5]; int b[5] = a; // 錯:無法拷貝創(chuàng)建 c = a;

53、 // 錯:無法整體拷貝和局部拷貝 a[8] = 10; // 錯:無法動態(tài)擴容和隨意增減元素 for(int i=0; i<=5; ++i) // 錯:無法防范下標溢出 a[i] = i+1; if(a==c) a[0] = 2; // 錯:不可比較 int a[5] = {1}; // 初始化呆板,無法獲得全1初值,03:02:51,51,二維數組的初始化,下

54、標訪問及輸出 int array1[2][3]={1,2,3,4,5}; int array2[2][3]={{1,2},{4}}; cout<<"array1: "; for(int i=0; i<2; ++i) for(int j=0; j<3; ++j) cout<<array1[i][j]<<","; co

55、ut<<"\narray2: "; for(int i=0; i<2; ++i) for(int j=0; j<3; ++j) cout<<array2[i][j]<<","; cout<<"\n";結果為: array1: 1,2,3,4,5,0, array2: 1,2,0,4,0,

56、0,,03:02:51,52,6.向量( vector ),向量與數組的共同特征是元素的排列在邏輯上是線性序列結構,可以用下標進行訪問 向量可以按需創(chuàng)建,拷貝創(chuàng)建,局部拷貝創(chuàng)建,異類拷貝和創(chuàng)建 靈活的初始化 隨意擴容和元素增減 可通過異常來進行下標溢出追蹤和處理 可比較 等等,03:02:51,53,int n=10;int t[5]={1,2,3,4,5};vector a(n); //按需創(chuàng)建vect

57、or b(10, 1); //元素賦全1,靈活的初始化vector c(b); // 整體拷貝創(chuàng)建vector f(t, t+5); //異類拷貝創(chuàng)建vector d(b.begin(), b.begin()+3); //局部拷貝創(chuàng)建d為b的前3個元素a.assign(100); //動態(tài)擴容至100個元素,03:02:51,54,向量常用操作a.assign(b.begin(), b.begin()+3); //

58、 b的前3個元素賦給aa.assign(4,2); // a向量含4個元素,全初始化為2int x = a.back(); // a的最后一個元素賦給變量xa.clear(); // a向量清空(不再有元素)if(a.empty()) cout<<”empty”; // a判空操作int y = a.front(); // a的第一個元素賦

59、給變量ya.pop_back(); // 刪除a的最后一個元素a.push_back(5); // a最后插入一個元素,其值為5a.resize(10); // a元素個數調至10。多刪少補,其值隨機a.resize(10,2);//a元素個數調至10。多刪少補,新添元素初值為2if(a==b) cout<<”equal”; // a與b的向量比較操作,03:02:51,55,向量操作尤其適合于函數

60、參數傳遞(2-D以上的數組參數的傳遞十分丑陋):傳遞一個矩陣,無論其每行中的元素個數不同.輸出之:typedef vector > Mat;void print(const Mat& a){ for(int i=0; i<a.size(); ++i){ for(int j=0; j<a[i].size(); ++j) cout<<a[i][j]<<&q

61、uot; "; cout<<endl; }},03:02:51,56,7. 指針與引用 ( Pointers & Reference ),指針指向存放數據的地址指針必須初始化或者賦值(指向了數據)后,才能進行間接訪問(間訪)操作int* ip;int iCount = 18;int* iPtr = &iCount; // 初始化ip = &iCount;

62、 // 賦值*ip = 8; // 間訪操作,03:02:51,57,指針操作與指向數據的類型密切相關 float f = 34.5; int* ip = reinterpret_cast(&f); cout””34.5 iAddr: 1245064=>1107951616 int: 100 float: 1.4013e-43,03:02:51,58,指針加減整數的操作表示空

63、間位置上的挪動但是挪動的字節(jié)數與其數據類型相關:對float指針加6實際增加了24個字節(jié)對long int指針加5實際增加了20個字節(jié)對char指針減7實際減少了7個字節(jié)對double指針減2實際減少了16個字節(jié),03:02:51,59,數組名本身就是表示元素集合的首地址可以將數組名賦給指針 int a[3]; for(int i=0; i<3; ++i) a[i] = i*2; for(int*

64、 iP=a; iP<a+3; iP+=1) cout<<iP<<“: ”<<*iP<<“\n”; 結果為: 1245036: 0 1245040: 2 1245044: 4,,03:02:51,60,指針限定const int a = 78;int b = 10;int c = 18;const int* ip = &a; // const修飾

65、指向的實體類型——常量指針int* const cp = &b; // const修飾指針*cp——指針常量int const* dp = &b; // 等價于上一句——指針常量const int* const icp = &c; // 常量指針常量*ip = 87; // 錯:常量指針不能修改指向的常量,*ip只能做右值ip = &c;

66、 // ok:常量指針可以修改指針值*cp = 81; // ok:指針常量可以修改指向的實體cp = &b; // 錯:指針常量不能修改指針值,即使是同一個地址*icp = 33; // 錯:常量指針常量不能修改指向的常量icp = &b; // 錯:常量指針常量不能修改指針值int d = *icp;

67、 // ok,03:02:51,61,引用必須初始化,因為引用總是附屬于某個實體int someInt = 5;int& rInt = someIne; //初始化修改引用的值,即是修改了附屬的實體值int a = 5;int& ra = a;ra = 8;cout<<a<<“\n”;結果為:8引用多用在函數參數的傳遞上,03:02:51,62,C ++

68、程序設計教程(第二版),第四章 計算表達 Chapter 4 Computational Expressing,清華大學出版社 錢 能,03:02:51,63,計算表達: 表達計算使用一系列操作,它依賴于特定語言的操作符功能,關乎數據類型的內在特性,故計算表達目的在于深入剖析數據類型對于編程的影響,從而準確使用操作符學習方法: 1.掌握操作符的功能和相互關系(優(yōu)先級和結合性) 2.針對內部數據類型,對一些典型的操作中的典

69、型問題留下深刻印象,03:02:51,64,第四章內容,名詞解釋( Name Explainations ) 算術運算問題 ( Arithmetic Problems ) 相容類型的轉換 ( Cast Campatible Type ) 關系與邏輯操作 ( Relation & Logic Operations ) 位操作 ( Bit Operations ) 增量操作 ( Increment Operatio

70、ns ) 表達式副作用 ( Expression’s Side Effects ),03:02:51,65,1. 操作符 ( Operators ),單目操作符:在一個操作數上施加的操作,如:-3雙目操作符:在二個操作數上施加的操作,如:5-3 故有些操作符既是單目操作符,又是雙目操作符表達式:若干個操作數和操作符按語法規(guī)則構成的操作,如: a = -3-5+6*7/-8,03:02:51,66,優(yōu)先級

71、:表達式中多個操作符的執(zhí)行順序的規(guī)定性,如: *x++; // 先做x++ 結合性:同級操作符的執(zhí)行順序的規(guī)定性,如: a=b=6; // 先做b=6,03:02:51,67,2. 算術運算問題( Arithmetic Problems ),整型數表示范圍有限,如: 1+2+3+...+10000 不能用整型變量累計的一般循環(huán)方法來解: int sum = 0; for(int i=1;

72、 i<=10000; ++i) sum += i; cout<<sum<<“\n”;,03:02:51,68,整型數的周而復始性,如: unsigned int a = 2000000000; unsigned int b = 3000000000; cout<< a+b<<“\n”; 結果為: 705032704 超過

73、表示范圍的整型數不是報錯,而是表示成一個去掉進位后的余數,03:02:51,69,中間結果溢出導致計算錯誤,如:  int a = 100000; int b = 100000; int c = 1000; cout<<a*b/c<<"\n"; cout<

74、<a*(b/c)<<"\n"; 結果為: 1410065 10000000,03:02:51,70,浮點數的精度和有效位 影響比較的正確性,如: float f1 = 7.123456789; float f2 = 7.123456785; if ( f1==f2 ) cout<<“f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論