版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實驗一認(rèn)識c語言程序C語言是一種高級語言(但更多的接觸機器硬件,較其他語言低級,也可稱為中級語言),本身沒有輸入輸出語句,輸入操作由庫函數(shù)scanf完成,輸出操作由庫函數(shù)printf完成。用高級語言編寫的程序叫“源程序”,用機器語言編寫的程序叫“目標(biāo)程序”。C語言的主要特點。語言簡潔、緊湊,使用方便、靈活。運算符和數(shù)據(jù)類型豐富。 (3)程序設(shè)計結(jié)構(gòu)化、模塊化。語法限制不太嚴(yán)格,程序設(shè)計自由度大??芍苯釉L問物理地址、進(jìn)行位操作、直接對硬件操作。生成目標(biāo)代碼質(zhì)量高。 (7)可移植性好。C語言產(chǎn)生的目的:為描述和實現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的。C語言中共有32個關(guān)鍵字、34種運算符(課本365頁),9種控制語句(課本370頁)。C語言的風(fēng)格。a)嚴(yán)格區(qū)分大小寫。b)用“;”作為語句分隔符。c) 一行內(nèi)可寫幾個語句,一個語句也可寫在幾行上。d)注釋部分以“/*”開始,以“*/”結(jié)束,允許出現(xiàn)在程序任何位置(不可插在標(biāo)識符中間),不可嵌套,編譯程序時不做任何處理(也無法發(fā)現(xiàn)注釋中的拼寫錯誤)。e)花括號{}配對使用標(biāo)識一個語句組,即構(gòu)成一個復(fù)合語句。C語言的構(gòu)成。C程序由一個或多個函數(shù)組成(至少要有一個主函數(shù),即main函數(shù),位置可以任意),每個函數(shù)完成相對獨立的功能。函數(shù)是C程序的基本單位.函數(shù)由函數(shù)的首部和函數(shù)體(包括聲明部分和執(zhí)行部分)組成。C程序總是從main函數(shù)開始執(zhí)行,在main函數(shù)中結(jié)束,其他通過嵌套調(diào)用執(zhí)行.一般形式為: 函數(shù)類型函數(shù)名(形參)形參說明(內(nèi)部變量說明;執(zhí)行語句部分;).優(yōu)秀程序員的素質(zhì)。(1) 使用Tab鍵縮進(jìn)代碼而不是按空格。 (2) 花括號{}對齊.(3) 有足夠的注釋。 (4) 有合適的空行.&道序的開發(fā)過程。編輯。源程序文件擴展名“.cpp”;編譯。(快捷鍵CE+F7)生成目標(biāo)程序,文件擴展名“.obj”;連接。生成可執(zhí)行程序,文件擴展名“.exe”;執(zhí)行。(快捷鍵Ctrl+F5)9.目前程序設(shè)計采用的基本方法有面向過程的程序設(shè)計和面向?qū)ο蟮某绦蛟O(shè)計.習(xí)題部分1.以下不是C語言特點的是( )。A.運算符豐富 B.數(shù)據(jù)結(jié)構(gòu)豐富
2.C.可以直接訪問物理地址以卜對C2.C.可以直接訪問物理地址以卜對C語言敘述正確的是(A.比其他語言高級D.C函數(shù)包含的語句數(shù)R沒有限制)0B.可以不用編譯就能被計算機識別執(zhí)行C.以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式D.出現(xiàn)最晚,具有其他語言的一切優(yōu)點3.下面程序格式錯誤的是( )?A.main()B.A.main()B.{inta,b,z;C.a=2:b=3;.C語言的程序一行寫不下,可以用()oA.逗號換行B..C語言的程序一行寫不下,可以用()oA.逗號換行B.分號換行C.在任意一分隔符或空格處換行 D.回車符換行.卜.面把一條語句寫在兩行時錯誤的是()oA.inta,B.intaC.intD.inta,bb; ,b;b; ,b;6.程序段中,錯誤的注釋是(#in/*包含*/clued<stdio.h>voidmain(){IC.#include<stdio.h>a,b; ;)o#include<stdio.h>voidmain/**/(/*主函數(shù)*/)(}D.#include<stdio.h>voidmain(){intxvoidmain(){intx/*初始化=10;/*打印*/primf("%d”,x); }7.一個C程序的執(zhí)行是從( )ovoidmain(){intx=10;printf("%d''.x);/*打印x的值*"*=10*/)A.本程序的main函數(shù)開始,到main函數(shù)結(jié)束B.本程序文件的第一個函數(shù)開始,到本程序文件的最后?個函數(shù)結(jié)束C.本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束D.本程序文件的第?個函數(shù)開始,到本程序main函數(shù)結(jié)束判斷敘述的正確性。?個好程序要有詳盡注釋;C程序中的#include和#define均不是C語句。C程序書寫程序比較自由,一行內(nèi)必須寫一個語句,并要有行號。?個C程序只有在編譯、連接成?exe程序才能執(zhí)行。)括起來;C語言的函數(shù)體由()括起來;C語言的函數(shù)體由()部分,其后是( )部分。)程序。開始,用符號( )結(jié)束;函數(shù)體的前面是(C程序編譯后生成( )程序,連接后生成(C編譯程序的功能是什么?習(xí)題參考答案?.1.Do參考知識點2。 2.C 3.C。語句間用應(yīng)用“;”隔開。 4.CDo分號作為語句的結(jié)束標(biāo)志,同一行里前面要有內(nèi)容。Ao不允許在預(yù)編譯命令中插入注釋。 7.A. (1)正確(2)錯誤。一個語句可寫在多行,一行內(nèi)也可寫多個語句(3)正確.花括號{}; { ; }:變量說明;執(zhí)行語句。.目標(biāo)(或.obj);可執(zhí)行(或.exe)o.答:功能:將C源程序進(jìn)行語法檢查,無語法錯誤再翻譯成目標(biāo)代碼,最后通過和標(biāo)準(zhǔn)庫鏈接后形成可執(zhí)行文件。若沒有C編譯程序,編寫的C程序是無法執(zhí)行的。實驗二簡單的C語言程序設(shè)計運行結(jié)果:運行結(jié)果:HellolWorld!例1輸出一行信息。/*第一個簡單的C語言程序*/#include<stdio.h>voidmain() {printf(MHeilo!World!\nw);/*注釋*//?編譯預(yù)處理*//*主函數(shù)*/) /*語句*/說明:(1)void表示此函數(shù)是“空類型”,即執(zhí)行此函數(shù)后不產(chǎn)生一個函數(shù)值。(2)函數(shù)體由花括號{}括起來。“\n”是換行符。(3)放在C程序開頭的頭文件也稱包含文件或標(biāo)題文件,用#include"文件名”或者include<文件名)的格式,其中文件名為頭文件名,一般用h作擴展名。習(xí)題編寫一個C習(xí)題編寫一個C程序,輸出以下信息:**********Good!求兩數(shù)之積。#include<stdio.h>voidmain(){inta,b,sum; /*聲明部分,定義變量a、b、sum為整型數(shù)據(jù)*/a=10;b=20; /*為a,b賦值*/sum=a*b; 運行結(jié)果:printf("sumis%d\nn,sum): } sumis200說明:“%d”是輸入輸出的“格式字符串”,表示“以十進(jìn)制整數(shù)類型”。習(xí)題 編寫一個程序并運用加減乘除中的3種運算使1-15內(nèi)的4個數(shù)的運算結(jié)果為24;例3例3求2個數(shù)中的較大者。#include<stdio.h>voidmainO{intmax(intx,inty);inta,b,c;scanf(w%d,%d",&a,&b)c=max(a,b);printf(Mmax=%d\nw,c);/*對被調(diào)用函數(shù)max的聲明*//*定義整型變量a,b,c*//*輸入變量a,b的值*//*調(diào)用max函數(shù)。將得到的值賦予c*//*輸出c的值*/intmax(intx,inty){intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z); }/*定義函數(shù)max,函數(shù)值為整型,形式參數(shù)x,y為整型*//*max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型*//*將z的值返回,通過max帶會到調(diào)用函數(shù)的位置*/說明:“&”的含義是“取地址”。習(xí)題編寫一個C程序,要求能輸入a,b,c3個值,輸出其中的最大者。
習(xí)題習(xí)題參考答案:#include<stdio.h>voidmainO(printf(w**********\nM); printf(“\n”);printf(uGood!\nw); printf(u\nff):printf(a**********\nn); }#include<stdio.h>voidmainO{intayb,c,d,sum; a=2;b=4;c=8;d=10;sum=(d-c/a)*b: printf(Msumis%d\nn,sum): }解法h解法h#include<stdio.h>voidmainOIintmax(intx,inty,intz);inta,b,c,d;scanf("%d,%d,%d”,&a,&b,&c);d=max(a,b,c);printf("max=%d\n",d); }/*對被調(diào)用函數(shù)max的聲明*//*定義整型變量a,b,c,d*//*輸入變量a,b,c的值*//*調(diào)用max函數(shù)。將得到的值賦予d*//*輸出d的值*/intmax(intx,inty,intz){ /*定義函數(shù)max,函數(shù)值為整型,形式參數(shù)x,y,z為整型*/intp;/*max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量p為整型*/if(x>y)p=x;else p=y;if(y>z)p=y;else p=z;if(x>z)p=x;else p=z;return(p);/*將P的值返回,通過max帶會到調(diào)用函數(shù)的位置*/解法2#include<stdio.h>voidmain(){運行結(jié)果:pleaseinputa,b,c:運行結(jié)果:pleaseinputa,b,c:6,5,1/Thelargestnumberis6printf(Mpleaseinputa,b,c:\nw);scanf(u%d,%d,%dM,&a,&b,&c);max二a:if(max<b) max=b;if(max<c) max=c;printf("Thelargestnumberis%d”,max);實驗三程序的靈魂一算法程序的內(nèi)容.對數(shù)據(jù)的描述。在程序中制定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)。.對操作的描述。即操作步驟,也就是算法.二.算法.含義:為解決一個問題而采取的方法和步驟。.分類:a.數(shù)值運算算法。目的是求數(shù)值解,如求方程的根等:b.非數(shù)值運算算法.如圖書檢索、人事管理、行車調(diào)度管理等。.特點:①有窮性。一個算法應(yīng)包含有限的操作步驟:②確定性。算法中的每個步驟都應(yīng)該是確定的;③有零個或多個輸入。輸入是指執(zhí)行算法時需從外界獲得必要信息:有一個或多個輸出。算法是為了求解,“解”就是輸出。有效性。算法中的每個步驟都應(yīng)能有效地執(zhí)行,并得到確定的結(jié)果。三.算法的表示.表示方法:自然語言、傳統(tǒng)流程圖、結(jié)構(gòu)流程圖、偽代碼、PAD圖等..流程圖表示算法的優(yōu)點:流程圖是用一些圖框表示各種操作。用圖形表示算法,直觀形象,易于理解。.常用的流程圖符號:起止框 輸入輸出框 判斷框 處理框 連接點 注釋框.流程圖的內(nèi)容:表示相應(yīng)操作的框、帶箭頭的流程線、框內(nèi)外必要的文字說明。四.三種基本結(jié)構(gòu).順序結(jié)構(gòu)。當(dāng)型(while)循環(huán)結(jié)構(gòu)在執(zhí)行完A框所指定的操作后,必然接著執(zhí)行B框所指定的操作。順序結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu)。.選擇結(jié)構(gòu)。又稱為選取結(jié)構(gòu)或分支結(jié)構(gòu)。該結(jié)構(gòu)中必包含一個判斷框。根據(jù)給定的條件p是否成立而選擇執(zhí)行A框或B框(允許有一個框為空)。.循環(huán)結(jié)構(gòu)。又稱為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分的操作。有“當(dāng)''型和“直到''型兩種結(jié)構(gòu)。a.當(dāng)給定條件pl成立時,執(zhí)行A框操作,執(zhí)行完A后,再判斷條件pl是否成立,如果仍然成立,再執(zhí)行A框,當(dāng)某一次pl條件不成立,此時不執(zhí)行A框,而從b點脫離循環(huán)結(jié)構(gòu). .b.直到型(until)循環(huán)結(jié)構(gòu):相當(dāng)于do~while():先執(zhí)行A框,然后判斷條件p2是否成立,如果p2不成立,則再執(zhí)行A框,然后再對p2條件作判斷,如果p2仍然不成立,又執(zhí)行A,如此反復(fù)執(zhí)行A,直到給定的條件p2成立為止,此時不再執(zhí)行A,從b點脫離本循環(huán)結(jié)構(gòu)。.以上三種結(jié)構(gòu)的共同點:.只有一個入口。2.只有一個出口.3.內(nèi)部的每一部分都有機會被執(zhí)行到。.結(jié)構(gòu)內(nèi)不存在“死循環(huán)”(無終止的循環(huán))。.一個結(jié)構(gòu)化算法由一些基本結(jié)構(gòu)順序組成;基本結(jié)構(gòu)間不存在向前或向后跳轉(zhuǎn),流程的跳轉(zhuǎn)只存在了一個基本結(jié)構(gòu)范圍內(nèi)(如循環(huán)中流程的跳轉(zhuǎn));一個非結(jié)構(gòu)化的算法可用等價的結(jié)構(gòu)化算法代替,其功不變.五.結(jié)構(gòu)化程序.定義:用高級語言表示的結(jié)構(gòu)化算法。.方法:(1)自頂向下:(2)逐步細(xì)化:(3)模塊化設(shè)計:(4)結(jié)構(gòu)化編碼。實驗四標(biāo)識符和常量--標(biāo)識符定義:用來標(biāo)識變最、常量、函數(shù)等的字符序列。命名規(guī)則:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線。特點:大小寫敏感(如sum與Sum不一樣);不能使用關(guān)鍵字(如int)。長度:最長32個字符,建議不要超過8個字符。類型:關(guān)鍵字:又稱保留字,特定的標(biāo)識符,不允許用大寫字母:預(yù)定義標(biāo)識符:主要用于系統(tǒng)提示的庫函數(shù)名(如printf)和預(yù)編譯處理命令(如define);用戶標(biāo)識符:用戶根據(jù)需要定義的標(biāo)識符,允許使用預(yù)定義標(biāo)識符(如scanf)但失去原特定意義。習(xí)題1.合法的C語言關(guān)鍵字是( )。A.VARB.cherC.integerD.defaultE.FloatF.signedGChar2.以下屬于合法的用戶標(biāo)識符的分別是( )。A.Pad和p#d B.scanf和alO C.void和max D.a*和forA.INT和Jsw B.keep%和<fr> C.023和一am D.abc.c和file二.常量定義:在程序運行過程中,其值不能改變的量,分為數(shù)值常量和符號常量。類型:(1)符號常量(用一個標(biāo)識符代表的一個常量)①定義格式:#define常量名常量值 (如:#definePI3.14)②說明:a.“#define”是定義符號常量的關(guān)鍵字,是必須的:b.符號常量名一般用大寫字母表示;符號常量值在其作用域內(nèi)不能改變或賦值:c.使用好處:含義清楚,在需要改變一個常量時能“一改全改”。(2)數(shù)值常量a.整型常量。(即整常數(shù),3種形式)①十進(jìn)制整數(shù); ②八進(jìn)制整數(shù)(形式為0d,d取值。?7之間)9 1A如:0123=(1238=IX8+2X8+3X8=83-011=(-11)=一(lx8+1x8)=-9③十六進(jìn)制整數(shù)(以O(shè)xd,d取值0?9或從“a"?"f"的字母)。如:0x123=Q23,6=lx162+2x161+3X160=291-0x12=(-12|6=-Qxld+2x16°)=-18b.實型常量.(即浮點型常量,是用一個十進(jìn)制表示的符號實數(shù))①十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點組成;②指數(shù)形式:由數(shù)字、小數(shù)點和e(或E)組成,且e(或E)之前必須有數(shù)字,e(或E)之后的指數(shù)必須為整數(shù)。(“規(guī)范化的指數(shù)形式":字母e(或E)前的小數(shù)部分中小數(shù)點左邊只有一位非零數(shù)字,如1.23e5)c.字符常量.①定義:用單撇號('')括起來的一個字符。如:言,W,,?J等。②特殊的字符常量一轉(zhuǎn)義字符,以反斜杠(\)開頭,并將反斜杠(\)后面的字符轉(zhuǎn)換為另外的意義。如:
字符型式含義字符型式 含義\n回車換行\(zhòng)t 水平制表制表區(qū)占8列)\b退格V 回車不換行\(zhòng)f換頁\\ 反斜杠字符7單撇號字符雙撇號字符\ddd1到3位8進(jìn)制所代表的字符每個d代表1位8進(jìn)制)\xhh1到2位16進(jìn)制所代表的字符每個h代表1位16進(jìn)制,x是必須的)d.字符串常量.①定義:用雙撇號("")引起來的字符序列稱為字符串常量。如:"Howdoyoudo.","#12345”等。(只能夠把字符常量賦給一個字符變量,而不能把字符串常量賦給一個字符變量。如:charc='A'是正確的,而charc="A"則是錯誤的。)字符常量與字符串常量的區(qū)別:②字符串常量存儲時,在字符串的結(jié)尾加一個“字符串結(jié)束標(biāo)志''(即'0')。如:對丁字符串"CHINA”在內(nèi)存中存放的形式如下:CHINA\0它占6個字節(jié)而不是5個字節(jié)。(書寫字符串的時候不要寫VT)③在程序設(shè)計中一般用字符是否等于V)’來判斷字符串是否結(jié)束。整型數(shù)據(jù)在內(nèi)存中的存儲形式存在形式:二進(jìn)制方式。(最高位是符號位,0為正,1為負(fù))十進(jìn)制整數(shù)轉(zhuǎn)化為補碼。(一個整數(shù)占16位)對于正數(shù),其補碼表示與原碼相同。對于負(fù)數(shù),其補碼為它的絕對值的:進(jìn)制形式,按位取反加1。字符數(shù)據(jù)在內(nèi)存中的存儲形式將一個字符常量放到一個字符變量中,實際是將該字符的相應(yīng)的ASCH代碼放到存儲單元中.如'a','A','O'的ASCII碼分別是97,65,48。字符數(shù)據(jù)的存儲方式與整數(shù)相似,因此字符數(shù)據(jù)可以和整型數(shù)據(jù)相通用,一個字符數(shù)據(jù)既可以以字符形式(%c)輸出,也可以以整數(shù)形式(%d)輸出。字符數(shù)據(jù)只占一個字節(jié),只能存放0-255范圍的整數(shù)。浮點型數(shù)據(jù)在內(nèi)存中的存儲形式①一個浮點型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),按照指數(shù)形式進(jìn)行存放,分為小數(shù)部分和指數(shù)部分進(jìn)行存儲。②不少系統(tǒng)以24位表示小數(shù)位(包括符號),以8位表示指數(shù)部分(包括指數(shù)符號)。小數(shù)部分占位數(shù)越多,發(fā)示有效數(shù)字越多。指數(shù)部分占的位數(shù)越多,則能表示的數(shù)越大。習(xí)題3.字符型常量在內(nèi)存中存放的是(C.內(nèi)部碼 D.十進(jìn)制碼C.C.內(nèi)部碼 D.十進(jìn)制碼C.68 D.D.-8在內(nèi)存中的存儲形式是(TOC\o"1-5"\h\z.合法的字符常量是( ).A."B" B.'\010'.錯誤的字符串常量是( ).0',D.A.'abc'B.''12'0',D..數(shù)值029是一個( ).
C.非法數(shù) D.十六進(jìn)制數(shù))C.非法數(shù) D.十六進(jìn)制數(shù));字符串常量"BB\n\\\'\r”在內(nèi)存中所占C.''D.,\483,C.''037'D."\"④“ab6"⑤OeO“\nab\t"⑨'\07‘ ⑩''a,b,c表示各位的數(shù),則從左到右各個數(shù)字是bac的.字符串常量“\\\22a,0\n”的長度是(字節(jié)數(shù)為( ),長度是(TOC\o"1-5"\h\z.不合法的常量是( ).A. ''2‘ B."".非法的C語言轉(zhuǎn)義字符是(A. '\b' B.'\0xf'.將下面的常量歸類。①0x7a②57L ③,m'(6)1E0 ⑦0.012e003 ⑧.假設(shè)m是一個三位數(shù),從左到右用三位數(shù)的表達(dá)式為( )?習(xí)題參考答案:3.A6.A10.B浮3.A6.A10.B浮點型常量有:⑤@⑦12.(m/10)%10*100+m/100*10+m%104.1111111111111000 5.B7.C8.6:7;6o9.D11.整型常量有: ①②字符型常量有:③?⑧⑨⑩實驗五常量的簡單程序應(yīng)用例一符號常量的使用#include<stdio.h>^definePRICE40 /*定義常量PRICE,其值為40*/voidmain(){intnum1,num2,total1,total2;num1=10;num2=20; 運行結(jié)果:totall=num1*PRICE;total2=num2*PRICE; total2=800printf(*totall=%d\n*,total1);printf(*total2=%d\n*,total2); }例二轉(zhuǎn)義字符的使用程序一:#include<stdio.h>main(){charch='\124'; 〃定義字符變量ch,其值為轉(zhuǎn)義字符’\124’printf(a%c\nw,ch); } 運行結(jié)果: T解析:轉(zhuǎn)義字符<\124,為八進(jìn)制數(shù),需轉(zhuǎn)換成十進(jìn)制數(shù)得到其對應(yīng)的ASCII碼。9 1 n即(124)8=1X8+2X8+4X8=84。程序二:
ftinclude<stdio.h>voidmain(){printf(*ab_c\tde\rf\tg\n*); printf(*h\ti\b\bjk*); }解析:第一個printf函數(shù):先在第一行左端輸出“ab_c”,遇到“\t”(“跳格”經(jīng)8列的“制表區(qū)”到下一個“制表位置”,即第9列)。第9?11列輸出“de”,遇到“\r”(不換行“回車”返回本行最左端第一列位置),再輸出“f”,得“fabcde”。再遇到“\t”,移到第9行輸出“g”,得"fab_c__gde\第二個printf函數(shù):現(xiàn)在第一行左端輸出“h”,遇到“\t”跳至第9行輸出“i”,得“h iwo(此時當(dāng)前輸出位置在第10列)遇到“\b"(退一格)2次,即退到第8列,輸出“j_k”,得“h j_k”。在屏幕輸出的結(jié)果是: 在打印機輸出的結(jié)果:fabcgde f gdeh jk h jik不同結(jié)果的原因說明:使用“\r”和“\b”后所輸出的字符(包括空格和跳格所經(jīng)過位置)在屏幕顯示時將取代原來屏幕上該位置原顯示的字符。其實,扉幕上完全按程序要求輸出了全部的字符,只是因為在輸出前面的字符后很快又輸出后面的字符,還未看清楚就被新的字符取代舊的字符。習(xí)題1.定義一個符號常量TIME和一個整型常量num,其值為12和20在主函數(shù)中將它們的乘積輸出。2.利用轉(zhuǎn)義字符編寫一個C程序,要求運行結(jié)果為ASCII碼值為014對應(yīng)的“音符圖形”。習(xí)題參考答案:/*定義符號常量TIME,其值為12*//*定義符號常量TIME,其值為12*//*定義整型常量TIME,其值為20*/printf(*total=%d\n”,total);intnum=20;total=num*TIME;根據(jù)題意,必須先求出ASCII碼值為014的八進(jìn)制數(shù),進(jìn)而轉(zhuǎn)換成轉(zhuǎn)義字符。而(16)8=1X8、6X8°=14,故題意所指的轉(zhuǎn)義字符為'\16'。#include<stdio.h>voidmain(){chara='\016’; 〃定義字符變量a,其值為轉(zhuǎn)義字符'016'printf(a%c\nw,a); }實驗六變量變量.定義:其值可以改變的量。(變量代表內(nèi)存中具特定屬性的一個存儲單元,即地址,用來存放數(shù)據(jù)).類型:整型變量(int)、浮點型變量(float)、字符型變量(char)。.格式:數(shù)據(jù)類型[變量1,變量2,…,變量n];例:inta=3;(a是變量名,3是變量值).數(shù)據(jù)類型(int、float、char)決定分配字節(jié)數(shù)和數(shù)的表示范圍。一般整型占2個字節(jié),浮點型占4個字節(jié),字符型占1個字節(jié)。.賦值方式。a、定義時賦值。如:inta=l,b=-3,c:b、以語句的形式賦值。如:floatx;x=10.5;要求變量先“定義后使用”a、凡未被事先定義的不作為變量名,保證程序中變量名使用正確。如:intstudent;而在程序執(zhí)行中錯寫為:stadent即stadent=40;這時就會出現(xiàn):'statent':undeclaredidentifier(不明確定義)的錯誤提示。b、每一個變量被指定為一確定類型,在編譯時就能為其分配相應(yīng)的存儲單元。c、指定每一變量屬于某一個類型,這就便于在編譯時,據(jù)此檢杳該變量所進(jìn)行的運算是否合法。如:只能對整型變量a和b可以進(jìn)行求余運算a%b(“%”為求余運算符),而對浮點型變量a和b就不可以進(jìn)行求余運算。整型變量的分類.定義格式:int變量名1[,變量名2,???,變量名n]:整型變量的基本類型符為into可根據(jù)數(shù)值范圍定義三種整型變量。(1)基本整型:以int表示。如:inta;(2)短整型:以shortint或short表示。如:shortb;(3)長整型:以longint或long表示。如:longc:4321;0L;數(shù)值的范圍:short<int<long.為充分利用變量的表示范圍,將變量定義為“無符號”類型,即加上unsigned修飾符。如果不指定為unsigned則默認(rèn)為有符號的。(1)有符號基本整型:[signed]into如:inta,b;(2)無符號基本整型:unsigned[int],,如:unsigneda,b:(3)有符號短整型:[signed]short[int]0如:shorta,b;(4)無符號短整型:unsignedshort[int]0如:unsignedshorta,b;(5)有符號長整型:[signed]long[int]o如:longa,b;(6)無符號長整型:unsignedlong[into如:unsignedlonga,b;3.標(biāo)準(zhǔn)定義的整形數(shù)據(jù)(方括號部分可以省略不寫,尤其是signed股不寫)類型比特數(shù)取值范圍輸出格式[signed]int16(2字節(jié))-32768?32767%dunsigned[int]16(2字節(jié))0?65535%u[signed]short[int]16(2字節(jié))-32768?32767%dunsignedshort[int]16(2字節(jié))0-65535%ulong[int]32(4字節(jié))-2147483648?2147483647%1unsignedlong[int]32(4字節(jié))0?4294967295%lu
浮點型變量的分類定義格式:float變量名1[,變量名2,??%變量名n];浮點型變量的基本類型符為float。float和double的輸出格式都是%f。分為:單精度型(float)、雙精度型(double)和長雙精度型(longdouble).類型比特數(shù)有效數(shù)字?jǐn)?shù)值范圍float326~7-3.4X10"(-38)"3.4X10~38double6415'16-1.7X107-308)"1.7X10-308longdouble12818~19-1.2X10-(一4932)」.2X10(932字符變量.字符變量用來存放字符常量,一個字符變量只能放一個字符常量。字符變量占一個字節(jié)(8位)。.定義格式:char變量名1[,變量名2,???,變量名n];.char是定義字符變量的關(guān)鍵字。字符變量用%c作為輸出格式。不同類型數(shù)據(jù)間的轉(zhuǎn)換和運算不同類型的數(shù)據(jù)要轉(zhuǎn)換為同一類型,然后才進(jìn)行運算。轉(zhuǎn)換規(guī)則如圖:double-float高 t 橫向向左的箭頭是必須轉(zhuǎn)換的運算;t long 向上的箭頭只表示數(shù)據(jù)類型級別的高低,低t 轉(zhuǎn)換時是直接轉(zhuǎn)換的。如:int轉(zhuǎn)換為unsigned long是直接轉(zhuǎn)換為long.?tint-char、short習(xí)題1.可以作為C語言程序中的變量名是(A.1B.alC.intD.*P.下面程序的輸出為()oA.0B.1C.-1D.變量無定義.有定義chars=''092',則該語句( )。A.使s的值包含一個字符 B.使s的值包含4個字符C.使s的值包含4個字符 I).定義不合法,s的值不確定.的字符數(shù)分別為(.設(shè).的字符數(shù)分別為(.設(shè)int類型數(shù)據(jù)長度為( )和(.如下程序的輸出為(nclude<stdio.h>main(){printf(M%dw.null);若有說明:charsl=>\067';chars2:''1'';chars3=,2';si,s2,s3所包含),( ),( )o2個字節(jié),則int和unsigned),long類型數(shù)據(jù)占()oA.01int類型數(shù)據(jù)的取值范圍分別為)個字節(jié)。B.變量無定義-1.C語言中,int.char,short三種類型數(shù)據(jù)所占的內(nèi)存由( )決定。比如在16位機和32位機中,int型數(shù)據(jù)所占字節(jié)數(shù)分別是2和4。.不屬于C語言類型的是( )?.signedshortintB.unsignedlongintC.unsignedintD.longshort.錯誤的int類型常量是()oA.32768B.0C.037D.OxAF.為了求出s=10!,則變量s的類型應(yīng)該為( )。長整型long數(shù)據(jù)在內(nèi)存中存儲形式為TOC\o"1-5"\h\z()O"獷’求余運算的運算數(shù)必須都是( )型。11*若x為int或nsignedint型變量,則執(zhí)行下面語句的輸出值為(x=65535; printf( ,x);12若a為整型變量,則下面語句的輸出值為()oa=-2L; printf(M%d\nw,a);13.下述語句的輸出為( )。intx=-1;printf(4<%d,%u,%ow,x,x,x);A.-1,-1,-1 B.-1,32767,-177777C.-1,32768,177777 D.一1,65535,177777若有說明語句charw;intx;floaty;doublez;則表達(dá)式w*x+z-y的結(jié)果為( )類型。A.floatB.charC.intD.doubleC語言中定義了一個變量,代表內(nèi)存中的一個( ).若變量a是int類型,并執(zhí)行語句:a='A'+1.6,則a的值為( ).A.字符C B.不允許字符型和浮點型相加C.浮點型 D.字符'A'的ASCII碼值加上1習(xí)題參考答案:1-3BDD4.1;無定值,說明不合法:1-32768~32767;0~65535;4B7.所用機器的機器字長8.A9.A10.long;補碼;整—1 12.-2 13.D14.D15.地址16.D解析:11.變量x占用2個字節(jié),當(dāng)它為int型,其表示范圍是一32768?32767;當(dāng)它為unsigned型,其表示范圍為。?65535,兩者都無法正確表示65535。但65535=32767+32767+1,在計算機內(nèi)部將二進(jìn)制補碼相加:0111111111111111+oiiinnniinn1111111111111110+000000000000000111111111H111U1最后結(jié)果為iinnniiniin(補碼),原碼等于其反碼加1,即:-[0000000000000000+0000000000000001]2 =-[0000000000000001]2=-1一個常整埴,若其值在一32768?32767范圍內(nèi),可賦給一個int或longint型變量,若超出上述范圍而在一2147483648?2147483647范圍內(nèi),其值應(yīng)賦給longint型變量。-2L為longint型,但值為一2,可由類型轉(zhuǎn)換把長整型換為短整型再賦給int型變「最a,按%d格式輸出。提示:-1在內(nèi)存中以補碼形式存儲:niinn11111111.實驗七變量的簡單程序應(yīng)用
例一整型數(shù)據(jù)的溢出#include<stdio.h>voidmainO( 運行結(jié)果:shortinta,b; 32767?—32768a=32767:b=a+1;printf(*a=%d,b=%d\n*,a,b); }分析:b輸出的值不為32768的原因:數(shù)值32767在內(nèi)存的表示方式為011111111111111,加1得100000000000000(即一32768).理論值32768超出int型變量的取值范圍,導(dǎo)致“溢出解決辦法:將a>b定義為long型,并按%ld進(jìn)行輸出就可以得到正確的結(jié)果。(將變量b改成long類型并將a+1改成a+lL,并用%ld格式輸出)例二浮點型數(shù)據(jù)的舍入誤差浮點型變量用有限的存儲單元存儲,能提供的有效數(shù)字有限(如門oat型提供6至7位,double型提供15至16位),有效位外的數(shù)字將被舍去而賦予隨機值,會產(chǎn)生“不正確”的結(jié)果。#include<stdio.h>voidmainO{floata,b;運行結(jié)果:a=運行結(jié)果:a=12345678848.000000b=12345678848.000000b=a+20;printf(*a=%f\n*,a);printf(*b=%f\n*,b); }解決辦法:將a、b定義為double型。例三字符變量與整數(shù)的通用#include<stdio.h>voidmainO( 運行結(jié)果:charcl,c2; a,bcl=97;c2=98; 97,98printf(*%c,%c\n”,cl,c2);printf(*%d,%d\n*,cl,c2); }例四大小寫字母的轉(zhuǎn)換#include<stdio.h>voidmain0{charcl,c2;cl=a; c2='b'; 運行結(jié)果:cl=cl-32; c2=c2-32; ABprintf(*%c%c\n*,cl,c2); }分析:一個小寫字母比它相應(yīng)的大寫字母的ASCH碼大32.cl-32相當(dāng)于97—32=65,65恰好是字母‘A'的ASCH碼。例五若ch為char類型變量,k為int類型變量(已知字符a的ASCII碼為97),求執(zhí)行下面程序后輸出結(jié)果。#include<stdio.h>voidmainO{ch=*a*;k=12;printf("%x,%o”,ch,ch,k);printf(Mk=%%d\nw,k); }運行結(jié)果:61,141k=%d分析:第一個printf語句的格式說明,將ch的值97分別按十六進(jìn)制和八進(jìn)制格式輸出,多余的輸出項k不予輸出;第二個printf語句,由于格式說明符中包含兩個連續(xù)的%字符,所以兩個%將不再作為格式描述符使用,而是處理成字符“%”原樣輸出。輸出項K因沒有對應(yīng)的格式描述符將不予輸出。習(xí)題 1.寫出以下程序的運行結(jié)果。#include<stdio.h>voidmain(){charcl=>a',c2=,b',c3='c',c4='MOT,c5=,\116';printf(aa%cb%c\tc%c\tabc\nw,cl,c2,c3);printf(M\t\b%c%c\nM,c4,c5); }.能否將F面程序中的cl,c2由int類型改成char類型?分析運行時會顯示什么信息?為什么?#include<stdio.h>voidmain()(intcl,c2;cl=97;c2=98;printf(a%c%c\nw,cl,c2);printf(%d\nw,cl,c2); }.要將“China”譯成密碼,規(guī)則為:用原字母后面第4個字母代替原來字母。(如字母“A”后面第四個字母為“E”,“E”代替“A”)編寫一個程序,用賦初值的方法使cl,c2,c3,c4,c5這5個變量的值分別為‘C'MJi'Jn'a',經(jīng)過運算輸出所求密碼。習(xí)題參考答案:aabbcc abcAN能。顯示結(jié)果為:abo因為字符變量和整數(shù)可以互相通用。97,983.#include<stdio.h>voidmain(){charcl="C",c2二“h“,c3二“i“,c4二"n“,c5二“a";cl+=4; c2+=4; c3+=4; c4+=4; c5+=4;printf(<<%c%c%c%c%c\nM,cl,c2,c3,c4,c5): }實驗八算術(shù)運算符和算數(shù)表達(dá)式.基本的算術(shù)運算符①+(加法運算符,或正值運算符),-(減法運算符或負(fù)值運算符),*(乘法運算符),(除法運算符),%(模運算符,或稱求余運算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù))。優(yōu)先級:-(負(fù)號運算符)>*、/、%> +、一(減號運算符)。結(jié)合性:除負(fù)號運算符外都是由左向右結(jié)合。兩個整數(shù)相除結(jié)果為整數(shù),小數(shù)被舍掉。除數(shù)或被除數(shù)中有一個數(shù)為負(fù)數(shù),舍入方向是不固定的。多數(shù)計算機采取“向零取整”的方法。如:-5/3=-2(不向零取整):-5/3=-1(向零取整)。算術(shù)表達(dá)式和運算符的優(yōu)先級與結(jié)合性①用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運算對象包括:常量、變量、函數(shù)等。②表達(dá)式求值時一般先按運算符的優(yōu)先級別高低次序進(jìn)行。運算時象兩側(cè)的運算優(yōu)先級別相同時按“自左至右”的結(jié)合方向(左結(jié)合性)處理。. 強制類型轉(zhuǎn)換運算符格式:(類型名)(表達(dá)式)。即(typex)或(type)x。如(float)(5%3)指將5%3的值強制轉(zhuǎn)換為float型。含義:強制將“表達(dá)式”的值轉(zhuǎn)為“類型名”對應(yīng)的類型。類型名必須耍0括起來,要轉(zhuǎn)換類型的是表達(dá)式,則表達(dá)式必須用。括起來。在進(jìn)行強制類型轉(zhuǎn)換時得到的是一個所須類型的中間變量,原變量類型未發(fā)生任何改變。如:x是float型,經(jīng)過(int)x后,x依然是float型.④兩種類型轉(zhuǎn)換:a、隱式轉(zhuǎn)換:運算時不必用戶指定,系統(tǒng)自動進(jìn)行轉(zhuǎn)換。如I:2+2.6將自動轉(zhuǎn)換為double型b、顯式轉(zhuǎn)換:系統(tǒng)不能夠?qū)崿F(xiàn)自動轉(zhuǎn)換時用戶用強制類型來轉(zhuǎn)換。如:‘%'運算時必須將兩側(cè)的數(shù)據(jù)轉(zhuǎn)換為整型。.自增e?夕、自減運算符①假設(shè)變量i的初值為5,a為整型變量:++i使用i前,使i的值加、如a=++。執(zhí)行完語句后a的值為6,i的值為6。i++使用i后,使i的值加一。如a=i++;執(zhí)行完語句后a的值為5,i的值為6。-i 使用i前,使i的值減。如@=--「執(zhí)行完語句后a的值為4,i的值為4。使用i后,使i的值減一.如a=i--;執(zhí)行完語句后a的值為5,i的值為4。②自增運算符(++)和自減運算符(--)只用于變量。++和一的結(jié)合方向是“自右向左”。如:對于表達(dá)式-i++相當(dāng)于-(i++),先使用i,即對i的原值5加上負(fù)號得到表達(dá)式的值,然后再對i加1。執(zhí)行完之后發(fā)達(dá)式-i++的值是-5,而i的值是6。例一強制類型轉(zhuǎn)換的使用#include<stdio.h>voidmain(){輸出結(jié)果:floatx;inti;x=3.6:輸出結(jié)果:i=(int)x; /*將x強制轉(zhuǎn)換為int型*/例二自例二自增自減運算符的使用#include<stdio.h>voidmain(){inta,b,c,d,i;i=5;a=++i;b=a+(i++);c=b+( i);d=c+(i—);輸出結(jié)果:a=6,b=12,c=18,d=24,i=5執(zhí)行后a=6,i=6;執(zhí)行后b=6+6=12,i=7;執(zhí)行后c=12+(7-l)=18,i=6;執(zhí)行后d=18+6=24,i=5.printf(*a=%d,b=%d,c=%d,d=%d,i=%d*,a,b,c,d,i); }習(xí)題1.求下面數(shù)算表達(dá)式的值。x+a%3*(int)(x+y)%2/4,設(shè)x=2.5,a=7,y=4.7;0(float)(a+b)/2+(int)x%(int)y,設(shè)a=2,b=3,x=3.5,y=2.5。. 寫出下面程序的運行結(jié)果。#include<stdio.h>voidmainO{inti,j,m,n;i=8;j=10;m=++i;n=j++;TOC\o"1-5"\h\zprintf(“%d,%d,%d\n”,i,n,m,j); }.已知字母a的ASCH碼值為97,執(zhí)行下面語句的輸出結(jié)果為( )<,chara='a';a—;printf("%d,%c\n",a+'2f-'O',a+'3'-'O');.若a為int型變量,由a=25/3%3得a的值為( )。定義intb=7;floata=2.5,c=4.7;則a+(int)(b/3*(int)(a+c)/2)%4的值為( )。.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的數(shù)據(jù)類型為( )?.已知字母A的ASCII碼為卜進(jìn)制數(shù)65,且c2為字符型變量,執(zhí)行語句c2='A'+'6'-'3'后,c2的值為()o)o設(shè)a和b為double)o)0.已知:inti=6,j;則語句)o設(shè)a和b為double)o)0.若定義了intx,將x強制轉(zhuǎn)化成雙精度類型應(yīng)寫成(9.已知9.已知floatx=l,y;則y=++x*++x結(jié)果為()o若有floatx,為測試此數(shù)據(jù)類型所占TOC\o"1-5"\h\z內(nèi)存字節(jié)數(shù)有sizeof(x)和sizeof(float),正確的形式為( )。10.下面關(guān)于自增自減運算符正確的是( )。A.10++B.(x+y)--C.d+++d+++d+++D.++(a-b)11*若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為( )o習(xí)題參考答案:1. 2.5;3.1. 2.5;3.500000 2.9,11,95.int型 6.D3.98,c4. 2;5.5000007. 14;6.0000008.(doublex)或(double)8.(doublex)或(double)x實驗九賦值、逗號運算符及其表達(dá)式一、賦值運算符“=”是賦值運算符,它的作用是將右邊常量或者表達(dá)式的值賦給左邊的變量。賦值運算符的結(jié)合方向是"自右至左"。種類:+=~=*=/=%=!二、類型轉(zhuǎn)換1、將浮點型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍去小數(shù)部分,將整數(shù)部分賦給整型變量。2、將整型數(shù)據(jù)賦給浮點型變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中(補足有效數(shù)字的位數(shù)。float:6'7位,double:15~16位)。三、復(fù)合的賦值運算符1,在賦值符號“=”之前加匕其他運算符就可以構(gòu)成復(fù)合的運算符。2,含義:explop=exp2或expl=explopexp2(如果exp2為表達(dá)式,則相當(dāng)于exp2有括號)。 如:x*=y+8等價于x=x*(y+8)。賦值表達(dá)式1、定義:由賦值運算符將一個變量和一個表達(dá)式連接起來的式子稱“賦值表達(dá)式”。2、格式:〈變量X賦值運算符〉〈表達(dá)式〉。 結(jié)合方向:自右向左。左側(cè)必須是變量,不能是常量或表達(dá)式。逗號表達(dá)式、逗號表達(dá)式是用一個或多個逗號(,)將表達(dá)式連接起來的式子。又稱“順序求值運算符”。 格式:表達(dá)式1,表達(dá)式2, ,表達(dá)式n。.求值方法:先計算表達(dá)式1,然后計算表達(dá)式2, ,一直計算到表達(dá)式n。整個逗號表達(dá)式的值是表達(dá)式n的值。.結(jié)合方向:由左至右。優(yōu)先級:所有運算中優(yōu)先級最低。例一復(fù)合運算符的使用#include<stdio.h>mainO{inta=l,b=3,c=6,d=12,e=7;a+=5;/*a=a+5=1+5=6*/b-=a+2;/*b=b-(a+2)=3-(6+2)=-5:c*=2;/*c=c*2=6*2=12*/d/=c/3;/*d=d/(c/3)=12/(12/3)=3e%=3;/*e=e%3=7%3=l*/printf(*a=%d,b=%d,c=%d,d=%d,e=%d\n*?a,b,c,d,e); }輸出結(jié)果:a=6,b=-5,c=12,d=3,e=l假設(shè)a=2?求表達(dá)式a+=a*=a-=a*=3的值和a的值。解析:①先進(jìn)行“a*=3",相當(dāng)于a=a*3=2*3=6;②再進(jìn)行即a=a-6=6-6=0;和“a*=0",即a=a*0=0*0=0;③最后進(jìn)行“a+=0”,得a=a+0=0+0=0. 所以,表達(dá)式的值為0,a的值為0。例二 求逗號表達(dá)式,*5,a*4升5的值和a的值。分析:把逗號表達(dá)式標(biāo)記為:①a=3*5,②a*4,③a+5;求表達(dá)式①的值為15,a的值為15;求表達(dá)式②的值為60,a的值為15;求表達(dá)式③的值為20,a的值為15;所以:整個逗號表達(dá)式的值為20,a的值為15。習(xí)題 1.符合C語言語法的賦值表達(dá)式是()oA.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9+e,e++,d+9D.d=int(a+b);TOC\o"1-5"\h\z.若有intnum=7,sum=7,則計算表達(dá)式sum=num++,sum++,++num后sum值為( )?設(shè)intx=U,則表達(dá)式(x++*l/3)的值為( )。.與k=n++完全等價的表達(dá)式為( )。A.k=n,n=n+lB.n=n+l,k=nC.k=++nD.k+=n+l.若變量已正確定義并賦值,合法的表達(dá)式為( ).A.a=a+l;B.a=7+b+c,a++C.int(12.5%2)D.a=a+l=c+binta=3;則a+a-=a*a的結(jié)果為( 定義inta,b,x,則x=(a=3,b=a一)計算后a,b,x的值分別是( ).若inta,(a=4*5,a*2),a+6的值為( )..6*定義int1=2,j=5,p,q,b=4,y;且p=(i++)+(++i)+(i++);q=(++j)+(++j)+(++j);y=--b*--b*--b;則計算后,j,p,q,b,y的值分別是( )..寫出執(zhí)行如下程序后的輸出結(jié)果。.mainO{longa=32767,b;b=a+l;printf(Ma=%ld,b=%ld",a,b);}(2)main(){inta=-32768;unsignedb;b=a;printf(**a=%d,b=%u\nM,a,b);}TOC\o"1-5"\h\z.假設(shè)所有變量均是整形,則(a=2,b=5,a++,b++,a+b)的值為( )..程序輸出結(jié)果為( ).Chara='A';intb=20;printf("%d,%o",(a=a+l,a+b,b),a+'a'-'A',b):.下面錯誤的說法是( ).A.在C程序中逗號運算符的優(yōu)先級最低B.在C程序中APH和aph是兩個不同的變量C.若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D.從鍵盤輸入數(shù)據(jù)時,整型、實型變量只能分別輸入整型、實型數(shù)值習(xí)題參考答案:1.B 2.8;3 3.A4.B表達(dá)式出錯,無值;2,3,3; 268,9,24,1,1.分析:對于3個以上的自增自減運算,按前綴++到后綴++的順序排列,則p等價于++i;p=i+i+i:i++:i++;這樣的順序進(jìn)行運算。q等價于++j;++j;++j;q=j+j+j:y等價于一b;-b;-b;y=b*b*b;(1)a=32767,b=32768 (2)a=-32768,b=327689 9.20,141 10.Dc語言程序單元測試卷一得分評卷人 一、選擇題(本大題共46小題,每小題1分,共46分)一個C程序由若干個C函數(shù)組成,各個函數(shù)在文件中的位置順序為:( )A、任意B、第?個函數(shù)必須是主函數(shù),其他函數(shù)任意C、必須完全按照執(zhí)行的順序排列D、其他函數(shù)可以任意,主函數(shù)必須在最后2,下列四個敘述中,正確的是:( )A、C程序中的所有字母都必須小寫
B、C程序中的關(guān)鍵字必須小寫,其他標(biāo)示符不區(qū)分大小寫C、C程序中的所有字母都不區(qū)分大小寫D、C語言中的所有關(guān)鍵字必須小寫3、下列四個敘述中,錯誤的是:( )A、一個C源程序必須有且只能有一個主函數(shù)B、一個C源程序可以有多個函數(shù)C、在C源程序中注群說明必須位于語句之后D、D、C源程序的基本結(jié)構(gòu)是函數(shù)4,下面不是C語言合法標(biāo)識符的是:(A、abc B、5n5、以下敘述不正確的是:( )A.分號是C語句的必要組成部分C.函數(shù)是C程序的基本單位C語言中允許的基本數(shù)據(jù)類型包括:(A.整型、實型、邏輯型C.整型、字符型、邏輯型C語言中能用八進(jìn)制表示的數(shù)據(jù)類型為:A、字符型、整型C、字符型、實型、雙精度型8、下列屬于C語言合法的字符常數(shù)是:(A、'\97' B、"A"C、_4m D、x3B.C程序的注釋可以寫在語句的后面D.主函數(shù)的名字不一定非用main來表示)B.整型、實型、字符型D.整型、實型、邏輯型、字符型()B、整形、實型D、字符型、整型、實型、雙精度型)C、'\t' D、“\0"9、在C語言(VC環(huán)境)中,5種基本數(shù)據(jù)類型的存儲空間長度的排列順序為:( )char<int<=longint<=float<doublechar=int<longint<=float<doublechar<int<longint=float=doublechar=int=<longint<=float<doubleTOC\o"1-5"\h\z10、在C語言中(VC環(huán)境),一定是長整型常數(shù)的是:( )A、0L B、4962710 C、0412765 D、0xa34b7fe11、若有以下定義語句charcl='b',c2='e';printf(a%d,%c\nw,c2-cl,c2-'a'+'A*);則輸出結(jié)果是:( )A、2,M B>3,EC、2,E D、輸出項與相應(yīng)的格式控制不一致,輸出結(jié)果不確定12、以下合法的賦值語句是:( )A、x=y=100 B、d―; C、x+y D>c=int(a+b);13、設(shè)變量t為int型,下列選項中不正確的賦值語句是:( )A、++t; B、nl=(n2=(n3=0));C、k=i==m;D、a=b+c=l;14、在以下一組運算符中,優(yōu)先級最高的是:( )A、<=B、= C、% D、&&15、下列能正確表示a210或aWO的關(guān)系表達(dá)式是:( )A、a>=10ora<=0B、a<=10 a>=0C、a>=10I|a<=0D、a>=10&&a<=016、下列只有當(dāng)整數(shù)x為奇數(shù)時,其值為“真”的表達(dá)式是:( )A、x%2=0 B、!(x%2==0)C>(x-x/2*2)==0D、!(x%2)17、設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系10<a<15的C語言表達(dá)式是:( )A>10<aA>10<a<15B、!(a<=10||a>=15)C、C、a>10&&a<15D、!(a<=10)&&!(a>=15)18、已知x=43,ch='A',y=0;則表達(dá)式(x〉=y&&ch〈‘B'&&!y)的值是:( )A、0 B、語法錯 C,1 D、“假”19、表達(dá)式17%4/8的值為:( )A、0 B、1 C、2 D、320、語句printf("%d”,(a=2)&&(b=-2));的輸出結(jié)果是:( )A,無輸出B、結(jié)果不確定 C,-1 D、121、一個可執(zhí)行的C程序的開始執(zhí)行點是:( )A.程序中的第一個語句A.程序中的第一個語句B.包含文件中的第一個函數(shù)C.名為C.名為main的函數(shù)D.程序中的第一個函數(shù)22、組成C語句的一個必不可少的符號是:( )A.逗號B.引號C.冒號 D.分號23、若將int、long、float等類型的數(shù)據(jù)進(jìn)行混合運算,其結(jié)果的數(shù)據(jù)類型是:( )A.intB.longC.float D.double24、下述是C語言中有關(guān)變量定義的幾個說法,正確的是:( )A. 變量可以不定義直接使用 B.一個說明語句只能定義一個變量C. 幾個不同類型的變量可在同一語句中定義 D.變量可以在定義時進(jìn)行初紿化25、與x*=y+z等價的賦值表達(dá)式是:( )26、A.x=y+zB.x=x*y+zC.x=x*(y+z) D.x=x+26、當(dāng)代電子計算機能夠自動地處理指定的問題是因為:( )27、A.27、A.計算機是電動的C.事先存儲了解決該問題的程序以下敘述中最準(zhǔn)確的是:( )B.有解決該問題的計算機程序D.以上都不是A.B.C.I).計算機程序是處理某一問題所有指令的集合計算機程序是處理某一問題所用到的所有數(shù)據(jù)的集合計算機程序是處理某一問題的所有指令及人數(shù)據(jù)的集合計算機程序是處理某一問題的所有指令及其數(shù)據(jù)的有序集合28、關(guān)于計算機程序設(shè)計,以卜.描述最準(zhǔn)確的是:( )A.B.C.D.程序設(shè)計就是用語言來編寫程序程序設(shè)計就是用計算機語言來編寫程序程序設(shè)計就是用計算機程序設(shè)計語言來編”;程序程序設(shè)計就是用計算機能識別的語言來編寫程序29、Fl前編寫計算機程序一般采用的是:(A.機器語言B.匯編語言A.B.C.I).計算機程序是處理某一問題所有指令的集合計算機程序是處理某一問題所用到的所有數(shù)據(jù)的集合計算機程序是處理某一問題的所有指令及人數(shù)據(jù)的集合計算機程序是處理某一問題的所有指令及其數(shù)據(jù)的有序集合28、關(guān)于計算機程序設(shè)計,以卜.描述最準(zhǔn)確的是:( )A.B.C.D.程序設(shè)計就是用語言來編寫程序程序設(shè)計就是用計算機語言來編寫程序程序設(shè)計就是用計算機程序設(shè)計語言來編”;程序程序設(shè)計就是用計算機能識別的語言來編寫程序29、Fl前編寫計算機程序一般采用的是:(A.機器語言B.匯編語言C.高級語言D.英語30、設(shè)計一個計算機程序最基本的工作是:(A.制定正確的算法C.制定正確的算法和選擇合理的數(shù)據(jù)結(jié)構(gòu)B.選擇合理的數(shù)據(jù)結(jié)構(gòu)D.以上都不是31、算法具有五個特性,以卜.選項中不屬于算法特性的是:( )A.有窮性B.簡潔性A.有窮性B.簡潔性C.可行性D.確定性32、下述哪一個不是結(jié)構(gòu)化程序基本結(jié)構(gòu):(33、A.順序C語言是一種:(A.機器語言B.32、下述哪一個不是結(jié)構(gòu)化程序基本結(jié)構(gòu):(33、A.順序C語言是一種:(A.機器語言B.選擇B.匯編語言34、C語言源程序的擴展名為:( )C.循環(huán)C.高級語言I).I).嵌套以上都不是A..exe B..c C..obj D..cpp35、C程序編譯后最終產(chǎn)生(即計算機執(zhí)行)的文件的擴展名為()A..A..exe B..c36、下列各項中,不是C語言的特點是:(A.語言簡潔、緊湊,使用方便C.能實現(xiàn)匯編語言的大多數(shù)功能37、構(gòu)成C語言源程序的基本單位是:(A.子程序B.過程C..obj D..cpp)B.程序執(zhí)行效率高,可移植性好D.有較強的網(wǎng)絡(luò)操作功能)C.文本D.函數(shù)38、下列敘述正確的是:( )C語言源程序可以直接在DOS環(huán)境中運行B.編譯C語言源程序得到的目標(biāo)文件可以宜接在DOS環(huán)境中運行C語言源程序經(jīng)過編譯、連接得到的可執(zhí)行程序可以直接在DOS環(huán)境中運行C語言源程序可以直接在VC++環(huán)境中運行39、某C程序由一個主函數(shù)main。和一個自定義函數(shù)max()組成,則該程序:( )A.寫在前面的函數(shù)先開始執(zhí)行B.總是從main。函數(shù)開始執(zhí)行C.總是從max()函數(shù)開始執(zhí)行D.寫在后面的函數(shù)先開始執(zhí)行40、以下敘述不正確的是:( )A.分號是C語句的必要組成部分C程序的注釋可以寫在語句的后面C.函數(shù)是C程序的基本單位D.主函數(shù)的名字不一定用mian表示41、以下為C語句的是:( )A.a=8B.a++; C.if(a>8)D.A.a=842、以下不是42、以下不是C語句的是:( )A.a=8; B.a++;43、以下所列語句中,合法的語句是:(A.a=l,b=2B.++a;44、C程序中的復(fù)合語句指的是:( )A.并列的多個C語句C.用一對大括號對括的多個C語句C.if(a>8)sD.for(i=l;i<5:i++))C.a=a+l=5D.y=int(a);B.寫在同行中的多個C語句D.就是函數(shù)體中的語句45、當(dāng)個很長的C語句(中間無字符串)在?行寫不下(超出扉幕的寬度)時,應(yīng)該:()A.由系統(tǒng)自動換行 B.立即按回車鍵換行C.在任意?個空格處按回車健換行D.輸入?個分號后并按回車鍵換行換行46、在x值處于-2?2,4?8時值為“真,否則為“假”的表達(dá)式是:()?(2>x>-2)II(4>x>8)!(((x<-2)II(x>2)&&((x<=4)I|(x>8))(x<2)&&(x>=-2)&&(x>4)&&(x<8)得分評卷人D.(x>-2)&&(x>4)11D.(x>-2)&&(x>4二、判斷題(本大題共34小題,每小題1分,共34分). ()C語言是嚴(yán)格區(qū)分大寫和小寫的,因此主:函數(shù)不能寫成main。以外的其他形式.. ( )C語言程序是從源文件的第一條語句開始執(zhí)行的。. ( )C語言對其數(shù)據(jù)在內(nèi)存中所占用的實際字節(jié)數(shù)是有明確規(guī)定的。. ( )C語言中/*..*/之間的注釋內(nèi)容是不能跨行的。. ( )C語言中多個以“;”結(jié)束的語句不能放在同一行。.()以下常數(shù):'101',e3,'\78',(2+3)e(4-2)都是不合法的。.()變量說明語句inta=b=c=23;是正確的。.()字符型數(shù)據(jù)不可以和整數(shù)數(shù)據(jù)一起進(jìn)行算術(shù)運算。. ()C語句:3*x*x+4*x+l+6sin(x)=y.是可以允許的。.()表達(dá)式m=(a=4,4*5)和m=a=4,4*5的值是相等的。.( )C語言中強制類型轉(zhuǎn)換不會改變原變量的原有數(shù)據(jù)類型。.()表達(dá)式j(luò)=-i++和j=-(i++)不相等.()程序段:i=8,j=10;printf(飛d,%d,%d,%d\n”,i,j,++i,j++);其結(jié)果9,10,9,10..()C語言中放在“”之間的內(nèi)容都被視為字符串的一個構(gòu)成部分,都可以在屏幕上原樣顯示。.()計算機程序的基本組成是:指示計算機如何去解決某一問題的一組指令。.()計算機程序的執(zhí)行過程實際上是對程序所表達(dá)的數(shù)據(jù)進(jìn)行處理的過程。.()目前程序設(shè)計的理念已經(jīng)從“面向過程的程序設(shè)計”向“面向?qū)ο蟮某绦蛟O(shè)計”方面轉(zhuǎn)變。.()任何一個計算機程序都可以用機器語言、匯編語言和高級語言來編寫。.()有人曾提出:計算機程序=算法+數(shù)據(jù)結(jié)構(gòu)。.()在程序設(shè)計中提到的算法就是“解決問題的方法和步驟”.()在程序設(shè)計中提到的數(shù)據(jù)結(jié)構(gòu)就是“程序處理的對象的表示方法”.()計算機程序的算法就是解決“做什么”和“怎么做”的問題。.()結(jié)構(gòu)化程序設(shè)計的基本理念是:將一個較大的問題細(xì)分成若干個較小問題的組合。.( )C程序的編譯是從程序的第一行開始,到程序的最后一行結(jié)束。.()C程序的編譯是從主函數(shù)的第一行開始,到主函數(shù)的最后一行結(jié)束。.( )C程序的執(zhí)行是從程序的第一行開始,一直到程序的最后一行結(jié)束。.()C程序的執(zhí)行是從主函數(shù)的第一行開始,一宜到主函數(shù)的最后一行結(jié)束。.()設(shè)*、t均為int型變量,則執(zhí)行語句"x=10;t=x&&x>10;"后,t的值為0.()若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變.()在?程序中,%是只能用于整數(shù)運算的運算符.()在C語言中,邏輯“真”等價于不等于0的數(shù).()C語言中字符型、整型、實型都能用八進(jìn)制表示.()在VC語言中,5種基本數(shù)據(jù)類型的存儲空間長度的排列順序為:char〈int〈longint<float<double.()變量的三要素是:變量名、變量類型、變量的值。C語言程序單元測I試卷一參考答案:一、選擇題:1-5ADCBD6-10BACAA11-15BBDCC16-20BACAD21-25CDDDC26-30CDCCC31-35BDCBA36-40DDCBD41-46BDBCCB二、判斷題:1-5TFTFF6-10TFFFT11-15TFTFT16-20TTTTT21-25TTTTF26-30FTTTT31-34TFFT
實驗十c語句和賦值語句c語句概述一個C程序可以由若干個源程序文件(分別進(jìn)行編譯的文件模塊)組成,一個源文件可以由若干個函數(shù)和預(yù)處理命令以及全局變量聲明部分組成。一個函數(shù)由數(shù)據(jù)聲明部分和執(zhí)行語句組成。一個程序或函數(shù)包括數(shù)據(jù)描述(由聲明部分來實現(xiàn))和數(shù)據(jù)操作(由語句來實現(xiàn))。數(shù)據(jù)描述主要定義數(shù)據(jù)結(jié)構(gòu)(用數(shù)據(jù)類型表示)和數(shù)據(jù)初值。數(shù)據(jù)操作的任務(wù)對已提供的數(shù)據(jù)進(jìn)行加工。聲明部分的內(nèi)容不應(yīng)稱為語句。如:inta;不是一個C語句,它不產(chǎn)生機器操作,而只是對變量的定義。二. C語句的分類.控制語句。完成一定的控制功能。有以下9種控制語句:(1)if()'else'(條件語句)(2)for()~(循環(huán)語句)(3)while(廣(循環(huán)語句)(4)do'whileO(循環(huán)語句)(5)continue(結(jié)束本次循環(huán)語句)(6)break(終止switch或循環(huán)語句)goto(轉(zhuǎn)向語句)(8)switch(多分支語句)(9)return(從函數(shù)返回語句)其中,括號“()”表示括號中為一個“判別條件”,表示內(nèi)嵌的語句。.函數(shù)調(diào)用語句。由一次函數(shù)調(diào)用加上一個分號構(gòu)成。如printfCApple.");一般形式為:函數(shù)名(實參表);參數(shù)的傳遞方式是值傳遞,需要實參和形參各占一個獨立存儲單元,函數(shù)調(diào)用時系統(tǒng)將實參的值賦給形參,故修改形參值與實參變量無關(guān)。.表達(dá)式語句。由表達(dá)式和一分號構(gòu)成,最典型的是在賦值表達(dá)式后加上一個分號構(gòu)成的賦值語句,如i=i+l(是表達(dá)式),i=i+l;(是語句)。if條件中可包含賦值表達(dá)式但不可包含賦值語句。.空語句。只有一個分號的語句,它什么也不做。.可以用(}把?些語句括起來成為復(fù)合語句,又稱為分程序。(可在?行寫多條語句,但必須用分號隔開??蓪⒁粭l語句拆開在幾行寫,但必須在拆開地方的每行行末加“\”作為續(xù)行符,最后-行用“;”作為語句的結(jié)束)一個復(fù)合語句在語法上等價于單個語句:凡單個語句能出現(xiàn)的地方均能出現(xiàn)復(fù)合語句;大括號里所有語句是?個整體,需要全部執(zhí)行或全不執(zhí)行;可以嵌套,即復(fù)合語句中可以有復(fù)合語句.三. 數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn).所謂輸入輸出是以計算機為主體而言的。從計算機向外部設(shè)備(如顯示器、打印機、磁盤等)輸出數(shù)據(jù)稱“輸出”;從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計算機輸入數(shù)據(jù)稱“輸入”。.(:語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。putchar(輸出一個字符) getchar(輸入一個字符) printf(格式輸出)scanf(格式輸入) puts(輸出字符串) gets(輸入字符串).使用C語言函數(shù)庫時,要用預(yù)編譯命令”#include”將有關(guān)的"頭文件"包括到用戶源文件中。a、頭文件一般要寫在程序的開始,不要寫在函數(shù)之后或函數(shù)中。b、不同類型的函數(shù)要包括不同的頭文件。 c、文件后綴中“h”是head的縮寫。d、包括頭文件不是語句,不應(yīng)該在后面加分號。習(xí)題.符合語法的賦值語句是(習(xí)題B.a=7+b++=a+7;B.a=7+b++=a+7;D.a=7+b,c=a+7;C.a=7+b,b++,a+7;.下面錯誤的C語言語句是(A.x=l,y=2;B.x++;C.x=y=5;D.y=int(x);TOC\o"1-5"\h\z.C語言程序中,要調(diào)用的函數(shù)不是必須在main。函數(shù)中定義,C語言程序的三種基本結(jié)構(gòu)是( );.若a,b,c都是int類型變量且初值為0,錯誤的賦值語句是( ).A.a=b=c=d=100;B.d++;C.c+b;D.d=(c=22)-(b++);習(xí)題參考答案:D 2.D順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 4.C實驗十一字符數(shù)據(jù)、格式的輸入和輸出字符數(shù)據(jù)的輸入輸出putchar函數(shù)(字符輸出函數(shù))a.作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出一個字符.b.格式:purchar(c).(參數(shù)可以是字符型、整型變量,字符型、整型常量)getchar函數(shù)(字符輸入函數(shù))a.作用:從終端(鍵盤)輸入一個字符。(若輸入多個字符,一次只能從左到右接受一個字符)b.格式:getchar().
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國高強磁輪自動除鐵機數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國馬賽克拼花制品行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國疫苗行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國特濃棒糖數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國彈力色織米通行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年聚偏氟乙烯膜濾芯項目投資價值分析報告
- 2024至2030年相拼扣項目投資價值分析報告
- 2024至2030年普通門板項目投資價值分析報告
- 2024至2030年光電式電子清疵監(jiān)控儀項目投資價值分析報告
- 2024年舌頭片項目可行性研究報告
- 統(tǒng)編版2024-2025學(xué)年四年級語文上冊期中素養(yǎng)測評基礎(chǔ)卷 (含答案)
- 蘇教版九年級上冊勞動技術(shù)+第21課+垃圾分類與資源回收【課件】
- DB11T 1359-2016 平原生態(tài)公益林養(yǎng)護(hù)技術(shù)導(dǎo)則
- 預(yù)防校園欺凌主題班會課件(共36張課件)
- 公關(guān)服務(wù)合同
- 江蘇省蘇州市2024-2025學(xué)年七年級上學(xué)期期中數(shù)學(xué)摸底調(diào)研卷
- GB/T 44352-2024燃油蒸發(fā)排放系統(tǒng)用活性炭通用要求
- 2024山東濟南軌道交通集團限公司招聘49人高頻難、易錯點500題模擬試題附帶答案詳解
- “數(shù)字三品”應(yīng)用場景典型案例申報書
- 2024秋三年級語文上冊第二次月考達(dá)標(biāo)檢測卷第三四單元新人教版
- 2024年下半年遼寧事業(yè)單位高頻500題難、易錯點模擬試題附帶答案詳解
評論
0/150
提交評論