




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、、選擇題(共22分)1下列變量名中合法的是D) $ABC3.已知ch是字符型變量,下面不正確的賦值語句是C語言期末總復習參考試卷A) B.C.TomB)3a6bC)_6a7b2.C程序的執(zhí)行是從開始執(zhí)行A)第一條語句行D)第一個出現的函數B)主函數C)命令A)ch=a+b;9;D)ch=5+9;B) ch=0;C)ch=7+4.與語句while(x);等價的語句是_A) while(x=0);B) while(x!=0)C) while(x!=1)D) while(x)5.已知int i;float f;下列語句正確的是A)(i nt f)%i int(f%i)B) in t(f)%iD) (
2、in t)f%iC)6.若int a10=1,2,3,4,5,6,7,8,9,10,*p=a;,則數值為6的表達式為A)*(p+6)D)p+6B)* p+6C)* p+=57.以下為一維整型數組a的正確說明是A)i nt a(10);B)i nt n=10,a n;C)i nt n;D)#defi ne SIZE 10scan f(%d,&n);int aSIZE;int a n;8.溫度華氏和攝氏的關系是表達式是:C=5/9(F-32)。已知:float C,F;由華氏求攝氏的正確的賦值A)C=5/9(F-32)B)C=5*(F-32)/9C)C=5/9*(F-32)D)三個表達式都
3、正確9.若有以下說明和語句:10.為了判斷兩個字符串s1和s2是否相等,應當使用struct worker int no;char *n ame;work, * p=&work;則以下引用方法不正確的是A)work .nop-noB)(*p).noD)work-noA)if(s1=s2)(strcm p( s1,s2)B)if(s仁s2)C)if(strcpy(s1,s2)D)if11.下述程序的輸出是_mai n() char c=A;if(0= c =9) prin tf(YES)else prin tf(NO);A) YESYESNOB) NOD)語句錯誤C)二、讀程序寫結果(共
4、18分)1.下面程序段的運行結果是int n=0;while (n+=2);prin tf(%d, n);2.下面程序的運行結果是#in cludevoid mai n() int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+;printf(“s=%dn”,s);switch(b%2)default:m+;case 0:m+;break;prin tf(%drTm);3.下面程序的運行結果是#in clude void mai n()int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(“%d,%d n”
5、,x,y);4.下面程序的運行結果是#in clude void mai n() inti,j, p,s;s=0;for(i=1;i=4;i+)p=1;for(j=1;j=i;j+) p=p*j;s=s+p;5.下面程序的運行結果是#in elude #in clude void mai n()char *p=“abcdefgOhjikO”printf(“dn”,strlen(p);6.下面程序的運行結果是#in clude int Fun(int x)static int y = 0;y += X; return y;void mai n()int X = 10, y = 0, k;for(
6、k=0; k2; k+)y = Fun(X);prin tf(y = %dn, y);三、程序填空(共14分)1下面程序可求出矩陣a的主對角線上的元素之和。#in cludevoid mai n()int a33=1,3,5,7,9,11,13,15,17,sum=0,i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(i=j)sum=sum+prin tf(sum=%dn,sum);2.下面程序用于求含有50個元素的一維數組中的最小值及負數的個數;其中一維數組中的每個元素是由公式y(tǒng)j=600*s in (j*0.16)得到的。#in clude void mai n() f
7、loat y50,mi n;int j,num=0;void fun( float y50,float *min ,i nt *nu m);for(j=0;j50;j+)yj=600*si n(j*0.16);printf(“min=%f, The number of negative is=%dvoid fun (float y50,float *min ,i nt *num)int j;*mi n=y 0;for(j=0;jyj)if(yj0)F面的程序對用戶輸入的一串字符進行處理,統(tǒng)計出其中小寫字母字符的個數?!?min,num);3.四、改寫程序(3分)(60分以上為通過)#in cl
8、udeint s;scan f(%d, &s);#in elude void mai n()char s100;in t letter=0,i=0;printfCpl ease input some charactersn);while();if(letter+;i+;prin tf(letter nu m=%d,letter);if(s=60)printf(通過考試);elseprin tf(沒有通過考試);請用條件運算符:判斷結構改寫程序中的ifelse判斷結構。1.該程序的功能是根據鍵盤輸入的學生考試分數,判斷學生是否通過考試。voidmai n()答案:一、選擇題:CBABD
9、CDBDD A1.C只能有字母、數字、下劃線,但是第一個字符不可是數字2.B3.A中只能是一個字符,a+b不可以0是轉義字符,可以4.B(D中是位運算符號,40學時中沒講到)5.D %兩側必須是整數,注意強制轉換符,括號的位置6.C數組下標從0開始7.D數組在定義的時候,中括號里必須是常量, 不能是變量,否則系統(tǒng)不知道在定義的時候應該 給這個數組多少存儲空間;但是#define是符號常量,也是常量,可以。數字是可以的(實際上就是輸入了對應字符的ASCII碼,char和int是近親)8.B乘號不可以省略,主頁君編程的時候經常忘記乘號;5/9在C語言中得0;5.0/9就不是0了。9.D結構體引用的
10、三種方式:(假設有一個結構體work有一個指針P指向work)work .no (*P). no p-no第三種,左邊必須是一個指針項,不可以是常項,所以錯;10.D字符串不可以直接比大小要使用strcmp函數11.AO =c=9:先計算0=c,得1;再計算1=9,得1;所以輸出YES注意,一旦出現II和&運算符,要考慮這兩個符號的“短路問題”即:如果|的左邊非零,|一定成立,右邊的就不做了,即使右邊有賦值,+符號等也不做了。如果&8左邊為零,%一定不成立,右邊也就不做了,同上。二、讀程序寫結果1.答案:4注意:(1)while后面執(zhí)行的是空語句;(2)n+的意義是:先把n拿出
11、來用,參與運算,運算完了之后n再+最后一次循環(huán),也就是n等于3的時候,n+=2是先判斷n=2,為假,準備退出循環(huán),這個時候n再+,所以n=4如果要實現數學上的“區(qū)間”概念,應該改寫成0=c&c=a&si=60?printf(“通過考試”):printf(“沒有通過考試”);最后,主頁君友情提示:(1)寫輸出結果的時候,一定看看printf中除了你的得數,有沒有別的符號,例如s=或者逗號、回車之類的東西,一塊寫出來;(2)填語句的時候,看看原來有沒有分號,如果沒有的話一定要填上,有的話就不要再填 上。理論上說,多一個分號,少一個分號,代表的含義完全不一樣注意:(1)y=不要丟下,
12、回車不要忘掉C語言程序的基本結構C程序由函數組成,函數是程序的基本單位。/*程序從main()函數開始執(zhí)行;文件包含預處理命令:#inelude文件名”或#include文件名,將存有庫函數的.h頭文件包含到編輯中的程序中,可視為在主函數前自定義一堆子 函數(當然是程序員定義的,咱即使能根據函數原型聲明使用,但也暫時不懂在主函數后頭定義啊);*/函數由函數首部和函數體兩部分組成。/*voidma in ()就是函數首部,void表示函數無返回值,忽略了形參表;函數定義為:返回類型名函數名(形參表),形參表格式:形參數據類型形參名,多個形參用上述格式的逗號分隔式羅列;*/函數體一般包括數據定義部
13、分和執(zhí)行部分,它們都是C語句。/*符號常量定義格式為:#define符號常量 常量,是個編譯預處理命令,用符號代替常 量的值;變量定義格式為:數據類型變量名表;,多個變量名用逗號分隔式羅列于變量名表中;*/在C語言中,一行可以寫多條語句,一條語句也可寫成幾行??梢詫程序中的任何部分做注釋。/*如同本文行文風格;“/*”和“*/”為注釋的開始和結束;可注釋說明程序語句意義或調試程序時括住某些語句達到不同目的等;*/C語言的字符集C語言的字符集由字母、數字、空白符、標點和特殊字符組成。在字符常量、字符串常量和 注釋中還可以使用漢字或其他可顯示的圖形符號。/*詳見P5; */C語言的詞法符號每條語
14、句用分號“;”作結束符,分號是C語句必不可少的組成部分。C語言的詞法符號分為以下幾類:關鍵字、標識符、運算符、分隔符、常量和注釋符。/*C語言規(guī)定,標識符是英文字母或下劃線開始的,英文字母、下劃線及阿拉伯數字組成的 字符串。標識符不許與關鍵字相同,大小寫有別,應盡量見名知意;詳見 運行C程序的步驟 編輯,編譯,連接,執(zhí)行。/*C源程序經過編譯和連接步驟才能生成可執(zhí)行文件;數據類型之基本類型P 6*/*/整型數據包括整型常量和整型變量。 整型類型有int型。/*一般int型就夠用了,詳見P15;整型變量定義格式為:整型類型變量名表;,常用的*/實型數據包括實型常量和實型變量。 實型類型有floa
15、t型和double型。/*指數形式:aEn,等價于a*10An,實型變量定義格式為:實型類型變量名表;,常用的詳見P16;*/字符型數據包括字符常量和字符變量。字符變量定義格式為:/*轉義字符為字符常量,常用轉義字符n為換行命令,詳見charP17;*/變量名表;。變量賦初值格式:類型說明符變量1=值1,變量2=值2,/*根據實際需要使用,對在程序開始就要賦值的情況下省事好多;*/運算符與表達式=表達式;逗號運算符和逗號表算術運算符與算術表達式;賦值運算符與賦值表達式:變量達式:表達式1,表達式2, ,表達式n。/*基本算術運算與數學表達式相同但乘號“*”不可省略,“/”整除為向下取整而非四舍
16、五入,“%為求余運算符,自增自減運算符置于變量左邊先自增自減再參與其他運算,置右 反之;逗號表達式自左至右執(zhí)行,最末一條表達式的值為逗號表達式的值;詳見P18-P20*/各類數值型數據間的混合運算強制類型轉換格式:(數自動類型轉換包括非符值運算的類型轉換和賦值運算的類型轉換;據類型名)表達式。/*一般在賦值運算的類型轉換會有誤差,編譯有警告,你若容不下一個警告, 可以用強制類型轉換解決之;詳見P 21*/數據的輸入輸出標準字符輸出函數格式:P utchar(c)。標準字符輸入函數格式:函數格式:printf(”格式控制字符串” 式說明符格式字符。格式輸入函數格式: 格式字符串格式為:附加格式說
17、明符/*其中d常用于int型數據輸出輸入,型數據輸出輸入,附加格式說明符m.n表示以m位總長 式輸入,附加格式說明符可缺?。黄胀ㄗ兞康刂妨斜砀袷剑?需要使用預處理命令#include命令將頭文件stdio.h包含到用戶源程序中;順序結構程序設計C語言的語句可分為以下5類:表達式語句、函數調用語句、控制語句、空語句和復合語句。/*符號常量、變量、函數等遵循先定義后使用原則;詳見分支結構程序設計getchar()。格式輸出,輸出列表),其中格式字符串格式為:附加格scanf(”格式控制字符串”,地址列表),其中格式字符。%f常用于float型數據輸出輸入,%lf常用于doublen位小數的數據格式
18、輸出不可用此格&a,其中&為取址符;這些函數*/P25*/關系運算和邏輯運算。/*一般用于條件判斷;“=”才是等于 算出來是多少就用它替代左邊變量的值; 假;邏輯運算符:“&與,“II”號,但只是用來判斷真假,“ 運算式從左到右算,最后得到非 或,“! ”非,遵循數學運算規(guī)則;=”號是賦值號,右邊0值為真,0值為詳見P 30-P31*/If語句:if-else分支結構一般形式:if(表達式)語句1;else語句2;if分支結構一般形式:if(表達式)語句1;語句的嵌套:if(表達式1)if語句3;else語句4;if達式3)(表達式語句1;else語句2;else if
19、(表if-else if分支結構一般形式:2; .elseif(表達式n-1)(表達式if語句n-1;1)語句1;else if(表達式2) 語句else語句n;2;表達式3;若分支有多條語句當用大括號組成復合語句,一條語句;一個else總是與其上面距它最近的, 而不能單獨使用;條件表達式先判斷表達式 于嵌套,個人經驗學課本例題那樣多打回車,條件運算符及條件表達式:表達式/*上述所說語句皆表示一條語句,1?表達式并且沒有其他else 1,為真執(zhí)行表達式2, 系統(tǒng)常常幫讀者分層次,系統(tǒng)視之為 與其配對的if相配對, 為假執(zhí)行表達式3;關 當然讀者也得留心*/Switch語句:switch分支語句
20、的一般形式為:c1:語句1;break; case常量表達式 式cn:語句n;break; default:/*此語句中,遇到break或者執(zhí)行到底才跳出該switch(表達式e)c2:語句2;break;語句n+1;break;switch語句,為免錯誤執(zhí)行,還是要在適 case常量表達式 case常量表達break語句一般形式:break;continue語句一般形式:continue;goto語句一般格式:語句標號:可執(zhí)行語句;goto語句標號;/*while語句與do-while語句括號內表達式為循環(huán)條件表達式,非0時執(zhí)行循環(huán)體語句,否則退出循環(huán),執(zhí)行下面的語句;for語句中表達式1用
21、于循環(huán)變量賦初值,表達式2用于循環(huán)條件判斷, 表達式3用于改變循環(huán)變量的值;break語句用于跳出循環(huán)體, 執(zhí)行循環(huán)后 面的語句;continue語句用于結束本次循環(huán),直接執(zhí)行下一次的循環(huán)條件判斷;goto語句用于自動跳轉到指定語句, 有時會破壞程序結構,不倡導使用,但在特定情況下能帶來方便;注意防止死循環(huán),嵌套注意層次,循環(huán)不能交叉*/數組gets(字符數組名);,字符串輸出函數:puts(字符strcat(字符數組1,字符數組2);,字符串復制函數:strcmp(字符串1,字符串2);,strlwr當的地方添加break語句;根據個人經驗,此switch語句,當switchswitch語句
22、中執(zhí)行到break語句后只跳出 語句嵌套在循環(huán)內時,循環(huán)仍舊依循環(huán)條件執(zhí)行而不退出;*/循環(huán)結構程序設計while語句的一般形式:while(表達式)循環(huán)體語句;do-while語句一般形式:do循環(huán)體語句;while(表達式);for語句一般形式:for(表達式1;表達式2;表達式3) 循環(huán)體語句;一維數組: 一維數組的定義: 類型名 標,一維數組的初始化:類型說明符數組名常量表達式;,一維數組的引用:數組名整型常量表達式=初始化列表數組名下;二維數組:二維數組的定義:類型名的引用:數組名行下標列下標,二維數組的初始化:分行初始化:類型名 量表達式1常量表達式2=第0行元素初值表,第1元素初
23、值表始化:類型名 數組名常量表達式1常量表達式2=初值表;數組名常量表達式1常量表達式2;,二維數組數組名常;,按序初字符數組: 一維字符數組的定義:組名數組長度=字符初值表;char數組名常量表達式;,字符數組的初始化:char數 ,一維字符數組的引用:數組名下標。用字符串初始化字符數組:char數組名數組長度=字符串常量;字符串處理函數:字符串輸入函數:數組名);,字符串連接函數:strcpy(字符數組1,字符串2);,字符串比較函數:檢測字符串長度函數:strlen(字符串);,字符串小寫函數:(字符串);,字符串大寫函數:strupr(字符串);。/*數組可視為類型相同的一串變量, 方
24、便循環(huán)求算,循環(huán)賦值;字符串數組結束標志是0 特別的,使用scanf函數以s格式輸入字符串給字符數組時, 字符數組名前無取地址符號& 字符串處理函數作用詳見P 84-P87*/函數函數的定義:返回類型名函數名(行參表)語句名(行參表);,函數的調用:函數名(實參表);,return(表達式);。函數如果直接或間接地調用自身則構成了遞歸函數, 式、找到遞歸規(guī)則以及確定問題結束條件三個要素。值傳遞:函數行參的數據類型為簡單數據類型,在調用函數時,會將實參的具體數值傳遞給被調函數,被調函數利用行參接收這些數據的副本,進行使用。值傳遞的特點是,被調函數中對行參的任何操作都是對主調函數中的對應實
25、參數據副本的操作,對原數據不造成任何影響。地址傳遞:函數行參的數據類型為地址類型,如數組類型,在調用此類函數時,行參變量接收到的是主調函數中某變量的地址,從而使得行參變量擁有了對主調函數中該變量的訪問 權,既包含讀也包含寫的權利, 從而可以在自定義函數中通過行參變量對主調函數相應的變 量進行訪問和修改。變量同名使用規(guī)則:如果一個作用域與其所包含的子作用域內都定義了相同的變量,則在子作用域中定義的變量將屏蔽子作用域外部的同名變量;相互獨立的兩個作用域中的同名變量互不干擾。變量含存儲類型的定義:存儲類型數據類型 標識符; 。 變量的存儲類型包括: (默認)自動型 (auto) ,寄存器型(regi
26、ster),外部型(extern),靜態(tài)型(static)。函數的 存儲類型包括:外部型(extern),靜態(tài)型(static)。/*函數的定義不能嵌套;調用函數時,主調函數的實參將值傳遞給被調函數的形參,運算完畢由return語句為有返回值函數返回一個值給主調函數;函數的調用可以嵌套;自定義函 數定義在主函數后時,需要在使用該自定義函數前聲明;以數組作為函數參數時為地址傳遞,調用函數時行參表只填寫數組名而無需中括號及下標,以數組元素為函數參數時為值傳遞, 需將數組元素名完整填入行參表中;程序的多文件組織中,調用自定義文件函數時,編譯預處理命令為#inelude“文件名”,祥見P109;定義在函數外的變量具有全局作用域,擁有 從定義處起到程序結束的生存期,定義在函數內的變量具有局部作用域,擁有從定義處起到與其前一最近左花
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商丘學院《建筑信息建模(BM)》2023-2024學年第二學期期末試卷
- 九江理工職業(yè)學院《動物病毒與人類健康》2023-2024學年第二學期期末試卷
- 湖南工程學院《數據結構與算法分析課程設計》2023-2024學年第二學期期末試卷
- 《活動二 安全網上行》(教學設計)-2023-2024學年六年級上冊綜合實踐活動蒙滬版
- 遼寧現代服務職業(yè)技術學院《美術表現一中國畫》2023-2024學年第二學期期末試卷
- 海南外國語職業(yè)學院《自然地理基礎》2023-2024學年第二學期期末試卷
- 地震數據采集系統(tǒng)項目效益評估報告
- 山東商務職業(yè)學院《工程技術基礎》2023-2024學年第二學期期末試卷
- 鄭州商貿旅游職業(yè)學院《跨境電商平臺操作》2023-2024學年第二學期期末試卷
- 武漢商學院《文獻檢索與學術訓練》2023-2024學年第二學期期末試卷
- ISO22000體系文件清單
- 體育賽事招商方案
- 西師版三年級下冊第六單元第1課時旋轉與平移市公共課一等獎市賽課金獎課件
- 英語學術論文寫作引言
- 液化石油氣鋼瓶倒殘操作規(guī)程
- 新材料概論課件ppt 第8章 新能源材料
- 毛概課說課課件
- 工藝管道安裝工程質量檢驗、試驗計劃
- 《汽車電子技術》專業(yè)人才培養(yǎng)方案
- 中國重癥加強治療病房(ICU)建設與管理指南
- 《老年服務倫理與禮儀》課程標準
評論
0/150
提交評論