第六章

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、灌云網(wǎng)站維護(hù)、網(wǎng)站推廣。
指針變量的本質(zhì)是用來(lái)放地址,而一般的變量是放數(shù)值的。
int *p 中 *p和p的差別:
*p可以當(dāng)做變量來(lái)用;*的作用是取后面地址p里面的數(shù)值
p是當(dāng)作地址來(lái)使用。
*p++ 和 (*p)++的之間的差別:改錯(cuò)題目中很重要
*p++是 地址會(huì)變化。
(*p)++ 是數(shù)值會(huì)要變化。
三名主義:(考試的重點(diǎn))
數(shù)組名:表示第一個(gè)元素的地址。數(shù)組名不可以自加,
他是地址常量名。(考了很多次)
函數(shù)名:表示該函數(shù)的入口地址。
字符串常量名:表示第一個(gè)字符的地址。
第七章
1一維數(shù)組的重要概念:
對(duì)a[10]這個(gè)數(shù)組的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是一維數(shù)組名,所以它是列指針,也就是
說(shuō)a+1是跳一列。
對(duì)a[3][3]的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是二維數(shù)組名,所以它是行指針,也就
是說(shuō)a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以對(duì)
它進(jìn)行賦值操作,同時(shí)它們都是列指針,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它們的
基類(lèi)型是不同的。前者是一行元素,后三者是一列元素。
二維數(shù)組做題目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。
步驟一:把他們寫(xiě)成:
第一列 第二列 第三列
a[0]à 1 2 3 -第一行
a[1]à 4 5 6—第二行
a[2]à 7 8 9-第三行
步驟二:這樣作題目間很簡(jiǎn)單:
*(a[0]+1)我們就知道是第一行的第一個(gè)元素往后
面跳一列,那么這里就是a[0][1]元素,所以是1。
*(a[1]+2)我們就知道是第二行的第一個(gè)元素往后面
跳二列。那么這里就是a[1][2]元素,所以是6。
一定記住:只要是二維數(shù)組的題目,一定是寫(xiě)成如
上的格式,再去做題目,這樣會(huì)比較簡(jiǎn)單。
數(shù)組的初始化,一維和二維的,一維可以不寫(xiě),
二維第二個(gè)一定要寫(xiě)
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二維數(shù)組中的行指針
int a[1][2];
其中a現(xiàn)在就是一個(gè)行指針,a+1跳一行數(shù)組元素。
搭配(*)p[2]指針
a[0],a[1]現(xiàn)在就是一個(gè)列指針。a[0]+1 跳一個(gè)數(shù)組
元素。搭配*p[2]指針數(shù)組使用
還有記住脫衣服法則:
a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再
可以變成 *(*(a+2)+3)
1、順序、分支、循環(huán)等基本語(yǔ)句;
2、char、int、double、float等基本數(shù)據(jù)類(lèi)型;
3、帶參數(shù)宏定義和函數(shù)的區(qū)別;
4、指針和數(shù)組的區(qū)別,尤其注意下指針數(shù)組和數(shù)組指針;
5、函數(shù)指針和指針函數(shù);
6、結(jié)構(gòu)體和聯(lián)合體以及自定義類(lèi)型typedef的應(yīng)用;
7、printf、scanf、getchar、putchar、fopen、fclose、fgetc、fputc等基本庫(kù)函數(shù)的應(yīng)用;
8、malloc、calloc、realloc、free等內(nèi)存管理函數(shù)的應(yīng)用;
9、函數(shù)的聲明和定義;
10、注意C語(yǔ)言的基本單位是函數(shù);
還有很多,因?yàn)槠拗撇荒芤灰焕e,但上面提到的10點(diǎn)都是很多考試和面試中經(jīng)常出現(xiàn)的。
有時(shí)間可以看看這三本書(shū)《C和指針》、《C陷阱和缺陷》、《C專(zhuān)家編程》,C語(yǔ)言的大部分問(wèn)題都可以在這三本書(shū)中找到答案,熟練掌握著三本書(shū)的內(nèi)容再加上一些實(shí)際項(xiàng)目將沒(méi)有人可以輕易用C語(yǔ)言的問(wèn)題為難你。
主要是筆試和上機(jī):
理論先行
雖是上機(jī)考試,仍需以理論知識(shí)為基礎(chǔ),所以必須將C語(yǔ)言教材從頭到尾學(xué)習(xí)一遍(應(yīng)選擇權(quán)威教材),如譚浩強(qiáng)的C程序設(shè)計(jì)(沒(méi)有的可以到 下載),對(duì)C語(yǔ)言的基本概況做到心中有數(shù)。
學(xué)完教材后,選取一些有代表性的編程范例,如經(jīng)典百例或南開(kāi)百題( ),將其語(yǔ)句逐條理解透徹。同時(shí)還須注意一點(diǎn),看的懂未必等于自己就會(huì)編寫(xiě),應(yīng)當(dāng)自己嘗試默寫(xiě),從而找出知識(shí)薄弱點(diǎn)、思維盲點(diǎn)。
要養(yǎng)成一些良好習(xí)慣,比如,代碼書(shū)寫(xiě)格式使用規(guī)范的鋸齒形,盡量使用完整表達(dá)。如果采用簡(jiǎn)化方式,雖然不一定影響運(yùn)算結(jié)果,但有的考試評(píng)分標(biāo)準(zhǔn)是按答題要點(diǎn)給分,所以還是不省為妙。
以下是學(xué)習(xí)C語(yǔ)言過(guò)程中容易出現(xiàn)的問(wèn)題:
1.函數(shù)、變量使用前未定義。
2.混淆“=”和“= =”。
3.語(yǔ)句后或預(yù)定義的函數(shù)名后漏掉分號(hào)。
4.將else拼寫(xiě)成esle、continue拼寫(xiě)成contiune。
5.括號(hào)搭配錯(cuò)誤。
6.首地址理解為1。
7. p++與++p區(qū)別不清。
8. break、continue運(yùn)用不當(dāng)。
9.誤將單引號(hào)用于字符串常量,將雙引號(hào)用于字符常量。
10. else分句中嵌套條件語(yǔ)句時(shí),漏掉了“if”。
上機(jī)實(shí)踐
雖然考點(diǎn)、培訓(xùn)點(diǎn)一般都提供模擬上機(jī),但畢竟時(shí)間、地點(diǎn)受到限制,不能保證充分的練習(xí)時(shí)間,因此很多考生都希望能在自家電腦上進(jìn)行操作實(shí)踐,下面具體談?wù)勅绾螌?shí)現(xiàn)在個(gè)人電腦上進(jìn)行練習(xí)的方法。
一、簡(jiǎn)易環(huán)境練習(xí)
系統(tǒng)要求:Windows系統(tǒng)
需用軟件:Turbo C 2.0 ( )
TC軟件雖然不是標(biāo)準(zhǔn)的Windows程序,但在Windows環(huán)境下依然可以使用。為使軟件處于理想運(yùn)行狀態(tài),運(yùn)行tc.exe后需要做一些設(shè)置:
1.按“漢”按鈕,否則會(huì)出現(xiàn)部分亂碼。
2.點(diǎn)擊屬性按鈕,在程序選項(xiàng)卡的“工作目錄”欄中根據(jù)上一命令行填入程序所在目錄,“運(yùn)行”欄選擇最大化,選擇“退出時(shí)關(guān)閉”。
設(shè)置好后即可依照練習(xí)冊(cè)輸入習(xí)題,進(jìn)行編譯調(diào)試。編程中用到的處理數(shù)據(jù)一般需自建。為了提高效率,可從網(wǎng)上下載習(xí)題。這里應(yīng)留意一些下載習(xí)題中的問(wèn)題,比如遺漏字符、錄入錯(cuò)誤等,還有一些不易發(fā)現(xiàn)的情況,像雙引號(hào)的字體不標(biāo)準(zhǔn)、文件擴(kuò)展名前的句號(hào)成了逗號(hào)、甚至一些看似無(wú)內(nèi)容的空行中包含著某些ASCII碼,都會(huì)影響編程結(jié)果。
二、全真環(huán)境練習(xí)
系統(tǒng)要求:DOS系統(tǒng)
需用軟件:Turbo C 2.0、UCDOS、上機(jī)模擬軟件
經(jīng)過(guò)基礎(chǔ)階段學(xué)習(xí)后,再來(lái)進(jìn)行針對(duì)等級(jí)考試的練習(xí),這就需要用到模擬軟件了。市面上模擬軟件很容易買(mǎi)到,其操作界面與正式考試完全一樣,還往往匯集了豐富的題庫(kù)和答案、源程序、輸入數(shù)據(jù),并可進(jìn)行自我評(píng)分。有的還提供筆試題知識(shí)點(diǎn)查詢(xún),介紹考試技巧等。
使用模擬軟件前,應(yīng)先安裝UCDOS(這與真實(shí)考試要求一樣,須選5.0以上版本,而且最好采用正式版,否則可能影響軟件使用)。通常情況下在Windows環(huán)境下是無(wú)法使用模擬軟件的,經(jīng)過(guò)一些專(zhuān)業(yè)設(shè)置后雖可實(shí)現(xiàn),但僅限于Windows 9X操作系統(tǒng),而且設(shè)置不當(dāng)易使系統(tǒng)崩潰,所以筆者建議還是在純DOS環(huán)境下使用為妥。
C語(yǔ)言基礎(chǔ)知識(shí)點(diǎn)集錦
【知識(shí)點(diǎn)1】C程序
C語(yǔ)言程序結(jié)構(gòu)有三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)
【知識(shí)點(diǎn)2】main函數(shù)
每個(gè)C語(yǔ)言程序中main 函數(shù)是有且只有一個(gè)。讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【知識(shí)點(diǎn)3】存儲(chǔ)形式
計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲(chǔ)單元是bit(位),位是由為 0 或者1構(gòu)成。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位。數(shù)據(jù)存放的位置就是它的地址。
【知識(shí)點(diǎn)4】注釋
是對(duì)程序的說(shuō)明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開(kāi)始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【知識(shí)點(diǎn)5】書(shū)寫(xiě)格式
每條語(yǔ)句的后面必須有一個(gè)分號(hào),分號(hào)是語(yǔ)句的一部分。一行內(nèi)可寫(xiě)多條語(yǔ)句,一個(gè)語(yǔ)句可寫(xiě)在多行上。
【知識(shí)點(diǎn)6】標(biāo)識(shí)符
合法的用戶(hù)標(biāo)識(shí)符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語(yǔ)言標(biāo)識(shí)符分如下3類(lèi)
(1)關(guān)鍵字。它們?cè)诔绦蛑杏泄潭ǖ暮x,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識(shí)符。預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如define、include等。
(3)用戶(hù)標(biāo)識(shí)符。用戶(hù)根據(jù)需要定義的標(biāo)識(shí)符,符合命名規(guī)則且不與關(guān)鍵字相同。
關(guān)鍵字不可以作為用戶(hù)標(biāo)識(shí)符號(hào)。main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If 是可以做為用戶(hù)標(biāo)識(shí)符。因?yàn)镮f 中的第一個(gè)字母大寫(xiě)了,所以不是關(guān)鍵字。
【知識(shí)點(diǎn)7】實(shí)型數(shù)據(jù)
實(shí)型數(shù)據(jù)的.合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
【知識(shí)點(diǎn)8】字符
字符數(shù)據(jù)的合法形式::
1 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。
0 的ASCII 數(shù)值表示為48,a 的ASCII 數(shù)值是97,A的ASCII 數(shù)值是65。
字符型和整數(shù)是近親:
char a = 65 ;
printf(“%c”, a); 得到的輸出結(jié)果:a
printf(“%d”, a); 得到的輸出結(jié)果:65
一般考試表示單個(gè)字符錯(cuò)誤的形式:65 "1"
字符是可以進(jìn)行算術(shù)運(yùn)算的,記住: 0-0=48
大寫(xiě)字母和小寫(xiě)字母轉(zhuǎn)換的方法: A+32=a 相互之間一般是相差32。
【知識(shí)點(diǎn)9】整型數(shù)據(jù)
整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié):
考試時(shí)候一般會(huì)說(shuō),在16 位編譯系統(tǒng),或者是32 位系統(tǒng)。碰到這種情況,不要去管,
一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié)就可以了。
【知識(shí)點(diǎn)10】轉(zhuǎn)義字符
轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個(gè)八進(jìn)制的形式。
在轉(zhuǎn)義字符中, ’x6d’ 才是合法的,0 不能寫(xiě),并且x 是小寫(xiě)。
‘141’ 是合法的, 0 是不能寫(xiě)的。
‘108’是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。
【知識(shí)點(diǎn)11】算術(shù)運(yùn)算
算術(shù)運(yùn)算符一共有+、—、*、/、%這五個(gè)。%符號(hào)兩邊要求是整數(shù)。不是整數(shù)就錯(cuò)了。
三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知識(shí)點(diǎn)12】強(qiáng)制類(lèi)型轉(zhuǎn)換
將一個(gè)運(yùn)算對(duì)象轉(zhuǎn)換成指定類(lèi)型,格式為(類(lèi)型名)表達(dá)式
一定是 (int)a 不是 int(a),注意類(lèi)型上一定有括號(hào)的。
注意(int)(a+b) 和(int)a+b 的區(qū)別。前是把a(bǔ)+b 轉(zhuǎn)型,后是把a(bǔ) 轉(zhuǎn)型再加b。
【知識(shí)點(diǎn)13】賦值
是表達(dá)式就一定有數(shù)值。
賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。
復(fù)合賦值運(yùn)算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達(dá)式:假設(shè)a=5,++a(表達(dá)式的值為6), a++(表達(dá)式的值為5);
j=a++;等價(jià)于j=a;a=a+1; 而j=++a;等價(jià)于a=a+1;j=a;。
考試口訣:++在前先加后用,++在后先用后加。
【知識(shí)點(diǎn)14】逗號(hào)運(yùn)算
逗號(hào)表達(dá)式:優(yōu)先級(jí)別最低; 表達(dá)式的數(shù)值逗號(hào)最右邊的那個(gè)表達(dá)式的數(shù)值。
(2,3,4)的表達(dá)式的數(shù)值就是4。
【知識(shí)點(diǎn)15】數(shù)制轉(zhuǎn)換
一定要記住二進(jìn)制 如何轉(zhuǎn)換成十進(jìn)制。
八進(jìn)制是沒(méi)有8 的,逢8 進(jìn)1,018 的數(shù)值是非法的。
1、函數(shù)如何定義,函數(shù)有什么分類(lèi),函數(shù)的基本語(yǔ)法知識(shí),函數(shù)編寫(xiě)常見(jiàn)的錯(cuò)誤。
2、記住一些常用的函數(shù),其他的函數(shù)需要用到的時(shí)候查表就ok了。
c語(yǔ)言的函數(shù)知識(shí)其實(shí)不難(個(gè)人認(rèn)為),難點(diǎn)在c語(yǔ)言的指針(指針是c語(yǔ)言的靈魂,學(xué)不好等于沒(méi)學(xué)c語(yǔ)言)指針和數(shù)組、指針和函數(shù)、指針和結(jié)構(gòu)體、動(dòng)態(tài)內(nèi)存分配等混合內(nèi)容知識(shí)比較難,并且c語(yǔ)言循環(huán)控制一定要會(huì)。樓上所說(shuō)的鏈表,需要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門(mén)課。
希望能幫助到樓主
您好,SA團(tuán)隊(duì)給出的答案(直接給你試題看看吧,這樣比較詳細(xì))2009年9月全國(guó)計(jì)算機(jī)等級(jí)考試筆試試卷
二級(jí)公共基礎(chǔ)知識(shí)和C語(yǔ)言程序設(shè)計(jì)
(考試時(shí)間90分鐘,滿(mǎn)分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)每題1分,70分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
A)循環(huán)隊(duì)列 B)帶鏈隊(duì)列
C)二叉樹(shù) D)帶鏈棧
(2)下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是( )。
A)循環(huán)隊(duì)列 B)棧
C)隊(duì)列 D)二叉樹(shù)
(3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是( )。
A)隊(duì)頭指針是固定不變的
B)隊(duì)頭指針一定大于隊(duì)尾指針
C)隊(duì)頭指針一定小于隊(duì)尾指針
D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
(4)算法的空間復(fù)雜度是指( )。
A)算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B)算法所處理的數(shù)據(jù)量
C)算法程序中的語(yǔ)句或指令條數(shù)
D)算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)
(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是( )。
A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合
C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合
(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是( )。
A)可封裝 B)自頂向下 C)模塊化 D)逐步求精
(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:
begin
1
該圖是( )。
A)N-S圖 B)PAD圖
C)程序流程圖D)E-R圖
(8)數(shù)據(jù)庫(kù)管理系統(tǒng)是( )。
A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件
C)一種編譯系統(tǒng)D)一種操作系統(tǒng)
(9)在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是( )。
A)橢圓形 B)矩形 C)菱形 D)三角形
(10)有三個(gè)關(guān)系R,S和T如下:
2
R S T
A
B
C
A
B
C
A
B
C
a
1
2
d
3
2
a
1
2
b
2
1
b
2
1
c
3
1
c
3
1
d
3
2
其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為( )。
A)選擇 B)投影 C)交 D)并
(11)以下敘述中正確的是( )。
A)程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試
B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C)程序設(shè)計(jì)的任務(wù)就是確定所用算法
D)以上三種說(shuō)法都不完整
(12)以下選項(xiàng)中,能用作用戶(hù)標(biāo)識(shí)符的是( )。
A)void B)8_8 C)_0_ D)unsigned
(13)閱讀以下程序
# include stdio.h
main()
{ int case; float printF;
printf ("請(qǐng)輸入2個(gè)數(shù):");
scanf ("%d %f", case, printF);
printf ("%d %f\n", case, printF);
}
該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是( )。
A)定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶(hù)自定義標(biāo)識(shí)符
B)定義語(yǔ)句出錯(cuò),printF不能用作用戶(hù)自定義標(biāo)識(shí)符
C)定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用
D)定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值
(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是( )。
A)0 B)3 C)4 D)5
(15)若有定義語(yǔ)句:int x=10;,則表達(dá)式x-=x+x的值為( )。
A)-20 B)-10 C)0 D)10
(16)有以下程序
# include stdio.h
main()
{ int a=l, b=0;
printf ("%d,", b=a+b);
printf ("%d\n", a=2*b);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0,0 B)1,0 C)3,2 D)1,2
(17)設(shè)有定義:int a=l, b=2, c=3;,以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是( )。
A)if(ab)c=a,a=b,b=c; B)if(ab){c=a,a=b,b=c;}
C)if(ab)c=a;a-b;b=c; D)if(ab){c=a;a-b;b=c;}
(18)有以下程序
# include stdio.h
3
main()
{ int c=0, k,
for(k=1; k3; k++)
switch (k)
{ default: c+=k;
case 2: c++; break;
case 4: c+=2; break;
}
printf("%d\n", c);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)3 B)5 C)7 D)9
(19)以下程序段中,與語(yǔ)句:k=ab?(bc ? 1 : 0) : 0;功能相同的是( )。
A)if((ab) (bc)) k=l; B)if((ab)||(bc))k=l;
else k=0; else k=0;
C)if(a=b)k=0; D)if(ab) k=l;
else if(b=c)k=1; else if(bc)k=1;
else k=0;
(20)有以下程序
# include stdio.h
main()
{ char s[]={"012xy"}; int i, n=0;
for (i=0; s[i]!=0; i++)
if(S[i]='a' s[i]='z') n++;
printf("%d\n",n);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0 B)2 C)3 D)5
(21)有以下程序
# include stdio.h
main()
{ int n=2,k=0;
while (k++ n++2);
printf("%d %d\n",k,n);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0 2 B)1 3 C)5 7 D)l 2
(22)有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是( )。
A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';
(23)有以下程序
# include stdio.h
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
4
}
已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是( )。
A)E,68 B)D,69 C)E,D D)輸出無(wú)定值
(24)有以下程序
# include stdio.h
void fun (int p)
{ int d=2;
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a); printf("%d\n",a);}
程序運(yùn)行后的輸出結(jié)果是( )。
A)32 B)12 C)21 D)22
(25)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。
# define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;in;i++)
{ max=MIN;
if(maxx[i]) max=x[i];}
return max;
}
造成錯(cuò)誤的原因是( )。
A)定義語(yǔ)句int i,max;中max未賦初值
B)賦值語(yǔ)句max=MIN;中,不應(yīng)給max賦MIN值
C)語(yǔ)句if(maxX[i])max=X[i];中判斷條件設(shè)置錯(cuò)誤
D)賦值語(yǔ)句max=MIN;放錯(cuò)了位置
(26)有以下程序
# include stdio.h
main()
{ int m=1, n=2, *p=m, *q=n, *r;
r=p; p=q; q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2
(27)若有定義語(yǔ)句:int a[4][10],*p,*q[4];且0≤i4,則錯(cuò)誤的賦值是( )。
A)p=a B)q[i]=a[i] C)p=a[i] D)p=a[2][1]
(28)有以下程序
# include stdio.h
# include string.h
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));printf("%s\n",p);
}
5
程序運(yùn)行后的輸出結(jié)果是( )。
A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World
(29)有以下程序
# include stdio.h
main()
{ int a[]={2, 3, 5, 4}, i;
for(i=0;i4;i++)
switch(i%2)
{ case 0 : switch(a[i]%2)
{case 0 : a[i]++;break;brcase 1 : a[i]--;br}break;
case 1 : a[i]=0;
}
for(i=0;i4;i++)printf("%d",a[i]);printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4
(30)有以下程序
# include stdio.h
# include string.h
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)7,4 B)4,10 C)8,8 D)10,10
(31)下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是( )。
A)不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串
B)可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組
C)字符數(shù)組中的內(nèi)容不一定是字符串
D)字符數(shù)組只能存放字符串
(32)下列函數(shù)的功能是( )。
fun(char *a,char *b)
{ while((*b=*a)!='\0') {a++; b++;} }
A)將a所指字符串賦給b所指空間
B)使指針b指向a所指字符串
C)將a所指字符串和b所指字符串進(jìn)行比較
D)檢查a和b所指字符串中是否有'\0'
(33)設(shè)有以下函數(shù):
void fun(int n,char *s) {……}
則下面對(duì)函數(shù)指針的定義和賦值均正確的是( )。
A)void (*pf)(); pf=fun; B)void *pf(); pf=fun;
C)void *pr(); *pf=fun; D)void(*pf)(int,char);pf=fun;
(34)有以下程序
# include stdio.h
6
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)7 B)8 C)9 D)10
(35)有以下程序
# include stdio.h
# define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)10,64 B)10,10 C)64,10 D)64,64
(36)下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是( )。
A)struct ord {int x; int y; int z;}; struct ord a;
B)struct ord {int x; int y; int z;} struct ord a;
C)struct ord {int x; int y; int z;}a;
D)struct {int x; int y; int z;} a;
(37)設(shè)有定義:char *c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是( )。
A)char str[]="string";c=str; B)scanf("%s",c);
C)c=getchar(); D)*c=*string";
(38)有以下程序
# include stdio.h
# include string.h
Struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(Struct A t)
{ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序運(yùn)行后的輸出結(jié)果是( )。
A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0
(39)若有以下程序段
7
int r=8;
printf("%d\n",r1);
輸出結(jié)果是( )。
A)16 B)8 C)4 D)2
(40)下列關(guān)于C語(yǔ)言文件的敘述中正確的是( )。
A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D)文件由字符序列組成,其類(lèi)型只能是文本文件
二、填空題(每空2分,共30分)
(1)某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn)以及3個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中共有【1】個(gè)結(jié)點(diǎn)。
(2)程序流程圖中的菱形框表示的是【2】。
(3)軟件開(kāi)發(fā)過(guò)程主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試四個(gè)階段,其中【3】階段產(chǎn)生“軟件需求規(guī)格說(shuō)明書(shū)”。
(4)在數(shù)據(jù)庫(kù)技術(shù)中,實(shí)體集之間的聯(lián)系可以是一對(duì)一或一對(duì)多或多對(duì)多的,那么“學(xué)生”和“可選課程”的聯(lián)系為【4】。
(5)人員基本信息一般包括:身份證號(hào),姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是【5】。
(6)若有定義語(yǔ)句:int a=5;,則表達(dá)式:a++的值是【6】。
(7)若有語(yǔ)句double x=17; int y;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為【7】。
(8)以下程序運(yùn)行后的輸出結(jié)果是【8】。
# include stdio.h
main()
{ int x=20;
printf("%d",0x20);
printf("%d\n",0x x20); }
(9)以下程序運(yùn)行后的輸出結(jié)果是【9】。
# include stdio.h
main()
{ int a=1,b=7;
do {
b=b/2; a+=b;
} while (b1);
printf ("%d\n",a); }
(10)有以下程序
# include stdio.h
main()
{ int f,fl,f2,i;
f1=0; f2=1;
printf("%d %d",fl,f2);
for(i=3;i=5;i++)
{ f=fl+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是【10】。
8
(11)有以下程序
# include stdio.h
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序運(yùn)行后的輸出結(jié)果是【11】。
(12)設(shè)有定義:
struct person
{ int ID; char name[12];}p;
請(qǐng)將scanf("%d", 【12】); 語(yǔ)句補(bǔ)充完整,使其能夠?yàn)榻Y(jié)構(gòu)體變量p的成員ID正確讀入數(shù)據(jù)。
(13)有以下程序
# include stdio.h
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序運(yùn)行時(shí)從鍵盤(pán)輸入:How are you?回車(chē)
則輸出結(jié)果為【13】。
(14)有以下程序
# include stdio.h
typedef struct
{ int num; double s; } REC;
void funl(REC x) {x.num=23; x.s=88.5;}
main()
{ REC a={16,90.0};
funl (a);
printf("%d\n",a.num);
}
程序運(yùn)行后的輸出結(jié)果是【14】。
(15)有以下程序
# include stdio.h
fun(int x)
{ if(x/20) fun(x/2);
printf("%d", x);
}
main()
{ fun(6); printf("\n"); }
程序運(yùn)行后的輸出結(jié)果是【15】。
當(dāng)前題目:c語(yǔ)言函數(shù)考試知識(shí)點(diǎn) 有關(guān)c語(yǔ)言函數(shù)的知識(shí)點(diǎn)
轉(zhuǎn)載來(lái)源:http://www.chinadenli.net/article24/hpijje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、小程序開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、電子商務(wù)、動(dòng)態(tài)網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)