國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共240題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共240題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共240題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共240題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共240題)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷40(共9套)(共240題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列屬于C語(yǔ)言合法的字符常數(shù)是()。A、’\97’B、AC、\t’D、"\0"標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中字符常數(shù)是單引號(hào)括住的單個(gè)字符或轉(zhuǎn)義字符,轉(zhuǎn)義字符為“\”后跟一個(gè)特定字符或八進(jìn)制或十六進(jìn)制的整數(shù)。八進(jìn)制數(shù)前面可以加0也可以不加0,十六進(jìn)制前面只能加0x。所以本題中,首先可以排除選項(xiàng)B)和選項(xiàng)D),由于選項(xiàng)A中,97不是一個(gè)正確的八進(jìn)制數(shù),也不是正確的十六進(jìn)制數(shù),而選項(xiàng)C)是正確的字符常數(shù),它代表的是字符制表符tab。2、有以下程序:#includemain(){intk,n=0;chare,str[]=“teach”;for(k=0;str[k];k++){c=str[k];switch(k){case1:casej:case5:putchar(c);printf(“%d”,++n);break;default:putchar(’N’);}}printf(“\n”);}程序的運(yùn)行結(jié)果是()。A、NelNNB、e1a2e3C、NelNc2ND、NalNNNN標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:k=0時(shí),選擇default分支,輸出N;k=1時(shí),c=str[1]=e,選擇case1分支,因?yàn)闆](méi)有遇到break語(yǔ)句,故繼續(xù)執(zhí)行case3、case5分支,輸出c和++n,即輸出e和1,依次往下執(zhí)行,最終輸出NelNc2N。3、以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是A、’cd’B、0.1e+6C、\aD、’\011’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常量指的是在程序的運(yùn)行過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,包括整型常量、實(shí)型常量、字符常量和字符串常量等類型。選項(xiàng)B)0.1e+6是用指數(shù)形式表示的實(shí)型常最。在C語(yǔ)言中,用以“e”或“E”后‘個(gè)整數(shù)來(lái)表示以10為底的冪數(shù)。以用這種形式表示實(shí)犁常量時(shí)要注意C語(yǔ)言的語(yǔ)法規(guī)定,字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),并且在字母e或E的前后以及數(shù)字之間不得插入空格。選項(xiàng)C)中用雙引號(hào)括起來(lái)表示的字符串\a。選項(xiàng)D)中’\011’表示用單引號(hào)括起來(lái)的轉(zhuǎn)義字符八制進(jìn)數(shù)011。選項(xiàng)A)表示的字符常量是非法的,在用單引號(hào)表示的字符常量中,只能包含一個(gè)字符,而選項(xiàng)A)中包含兩個(gè)字符。4、下列敘述中正確的是A、帶鏈棧的棧底指針是固定的B、帶鏈棧的棧底指針是隨棧的操作而動(dòng)態(tài)變化的C、若帶鏈隊(duì)列的隊(duì)頭指針與隊(duì)尾指針相同,則隊(duì)列為空D、若帶鏈隊(duì)列的隊(duì)頭指針與隊(duì)尾指針相同,則隊(duì)列中至少有一個(gè)元素標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表。其限制是僅允許在表的一端進(jìn)行插入和刪除運(yùn)算。這一端被稱為棧項(xiàng),相對(duì)地,把另一端稱為棧底。向一個(gè)棧插入新元素又稱作進(jìn)棧、入?;驂簵#前研略胤诺綏m?xiàng)元素的上面,使之成為新的棧頂元素;從一個(gè)棧刪除元素又稱作出?;蛲藯#前褩m斣貏h除掉,使其相鄰的元素成為新的棧頂元素。帶鏈棧的棧底指針是隨棧的操作而動(dòng)態(tài)變化的;若帶鏈隊(duì)列的隊(duì)頭指針與隊(duì)尾指針相同,則隊(duì)列可能為0也可能為1。5、若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x—y)等價(jià)的是()。A、(x—y<0‖x-y>0)B、(x—y<0)C、(x—y>0)D、(x—y==0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x;若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。本題中與表達(dá)式1:(x—y)等價(jià)的是(x—y<0‖x—y>0)。6、在下列模式中,能夠給出數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是A、外模式B、內(nèi)模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)有三層模式結(jié)構(gòu),邏輯模式數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲(chǔ)模式,是數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)和存取方法的描述。7、某系統(tǒng)結(jié)構(gòu)圖如下圖所示,則該系統(tǒng)結(jié)構(gòu)圖的寬度是A、2B、3C、4D、n標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:寬度是指最大模塊數(shù)的層的控制跨度。題目中系統(tǒng)第一層只有1個(gè)模塊,第二層有n(n>3)個(gè)模塊,第三層有4個(gè)模塊,控制跨度為n,D選項(xiàng)正確。8、以下敘述中正確的是A、在賦值表達(dá)式中,賦值號(hào)的右邊可以是變量,也可以是任意表達(dá)式B、a是實(shí)型變量,a=10在C語(yǔ)言中是允許的,因此可以說(shuō):實(shí)型變量中可以存放整型數(shù)C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a=b;b=a;之后,a的值為9,b的值為4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B)中a=10,在賦值時(shí)會(huì)把10自動(dòng)轉(zhuǎn)換為double類型然后賦值,實(shí)型變量中不可能存放整型。而選項(xiàng)C)中執(zhí)行a=b后,b的值不變還是9,選項(xiàng)D)中執(zhí)行a-b;b=a;后,a的值為9,b的值也為9。9、以下選項(xiàng)中非法的C語(yǔ)言字符常量是A、’\b’B、’\007’C、’aa’D、’\xaa’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)把一個(gè)字符括起來(lái)作為字符常量。10、以下敘述中正確的是()。A、字符常量可以參與任何整數(shù)運(yùn)算B、字符變量在定義時(shí)不能賦初值C、同一英文字母的大寫(xiě)和小寫(xiě)形式代表的是同一個(gè)字符常量D、轉(zhuǎn)義字符用@符號(hào)開(kāi)頭標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符常量進(jìn)行計(jì)算的時(shí)候使用其ASCII碼參與運(yùn)算,所以字符常量可以參與整數(shù)運(yùn)算,選項(xiàng)A)正確;任何變量都可以在定義時(shí)賦初值,選項(xiàng)B)錯(cuò);C語(yǔ)言對(duì)大小寫(xiě)敏感,所以大小寫(xiě)不同的英語(yǔ)字母代表不同的字符常量,選項(xiàng)C)錯(cuò);轉(zhuǎn)義字符以反斜杠"\"作為開(kāi)頭,選項(xiàng)D)錯(cuò);所以答案選A)。11、下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#號(hào)開(kāi)頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號(hào)結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)苦中,凡是以“#”號(hào)開(kāi)頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開(kāi)頭以“#”號(hào)開(kāi)始,每行的末尾不能用“;”號(hào)結(jié)束,以區(qū)別于C語(yǔ)句、定義和說(shuō)明語(yǔ)句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開(kāi)始部位,其作用一亢持續(xù)到源文件的末尾。12、以下選項(xiàng)中能表示合法常量的是A、\007B、1.5E2.0C、’\’D、1,200標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)D,1200中間不能有逗號(hào),否則編譯時(shí)會(huì)認(rèn)為是1或出錯(cuò)。選項(xiàng)B,2.0錯(cuò)誤,必須為整數(shù)。選項(xiàng)C,要表示字符斜杠常量’\’,應(yīng)該在反斜杠的前面再加上一個(gè)反斜杠。選項(xiàng)A為字符串常量,為正確選項(xiàng)。13、表達(dá)式a+=a=a=9的值是A、-9B、0C、18D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一步a=9,然后計(jì)算a-a的值,并將此值賦給a,因此此時(shí)a=0,最后計(jì)算a+a,并將此值賦給a,因此最終結(jié)果為0。14、有以下程序#includeintfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、0B、10C、30D、64標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了靜態(tài)局部變量,該局部變量的值在函數(shù)調(diào)用結(jié)束后如果不消失而保留原值。函數(shù)fun的功能返回2的乘方,主函數(shù)fun函數(shù)調(diào)用3次,因此第一次s累乘2,第二次累乘4,第三次累乘8,即為2*4*8,值為64。15、有下列程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、28B、24C、32D、36標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了全局整型變量a=4。在intf(intn)函數(shù)中定義了局部靜態(tài)整型變量并進(jìn)行了初始化即staticinta=5。在intf(intn)函數(shù)中對(duì)n是否是偶數(shù)進(jìn)行判斷,如果n是奇數(shù),則函數(shù)的返回值為11,局部靜態(tài)整型變量a=6;如果n是偶數(shù),則函數(shù)的返回值為12,局部靜態(tài)整型變量a=6。所以在main()函數(shù)中循環(huán)首先執(zhí)行s+=f(0)語(yǔ)句,而f(0)返回值12,所以第一次循環(huán)結(jié)束s的值等于4+12=16:第二次開(kāi)始執(zhí)行f(1)時(shí),在f(1)中執(zhí)行if(n%2){inta=6;t+=a++;}和returnt+a++;這兩條語(yǔ)句,這時(shí)t=6,a=6(靜態(tài)局部變量第一次循環(huán)后其值加1值不釋放,執(zhí)行第二次循環(huán)量,其值仍有效),所以f(1)的返回值等于12。再在主函數(shù)中執(zhí)行s+=f(1)語(yǔ)句,即16+12=28。16、有以下程序voidfun(char*s){chara[10];strcpy(a,"STRING");s=a;}main(){char*p="PROGRAM";fun(P);printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是(此處口代表空格)A、STRING□□□□B、PROGRAMC、STRING□□□D、STRING標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是把字符串"STRING",存放到字符數(shù)組a中,s指向該字符串,函數(shù)調(diào)用結(jié)束以后,釋放s和a指向的空間。主函數(shù)調(diào)用fun(p),并不能更改p的值,因此p的指向沒(méi)有改變。17、設(shè)有定義:structcomplex{intreal,unreal;)datal={1,8),data2;則以下賦值語(yǔ)句中錯(cuò)誤的是A、data2=(2,6);B、data2=datal;C、data2.real=data1.real;D、data2.real=data1.unreal;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體變量的定義與初始化。題目中定義了complex類型的結(jié)構(gòu)體變量data1和data2,并對(duì)data1進(jìn)行了初始化??梢杂靡粋€(gè)結(jié)構(gòu)體變量對(duì)另一個(gè)結(jié)構(gòu)體變量賦值,用一個(gè)結(jié)構(gòu)體變量的成員對(duì)另一個(gè)結(jié)構(gòu)體變量的成員賦值。18、下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#號(hào)開(kāi)頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號(hào)結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,凡是以“#”號(hào)開(kāi)頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開(kāi)頭以“#”號(hào)開(kāi)始,每行的末尾不能用“;”號(hào)結(jié)束。以區(qū)別于C語(yǔ)句、定義和說(shuō)明語(yǔ)句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開(kāi)始部位,其作用一直持續(xù)到源文件的末尾。19、若有定義語(yǔ)句:intk[2][3],*pk[3];,則以下語(yǔ)句中正確的是A、pk=k;B、pk[0]===k[1][2];C、pk=k[0];D、pk[1]=k;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查多維數(shù)組和數(shù)組指針。k是一個(gè)二維數(shù)組,pk是一個(gè)指針數(shù)組,該數(shù)組有3個(gè)元素,每個(gè)元素都是一個(gè)指向整型對(duì)象的指針。選項(xiàng)A錯(cuò)誤,等號(hào)的左邊是一個(gè)數(shù)組地址,不是變量;選項(xiàng)B是把元素k[1][2]賦值給pk[0]:選項(xiàng)C中等號(hào)左邊不是變量;選項(xiàng)D類型不匹配,pk[1]是指向一個(gè)整型對(duì)象,而k是一個(gè)二維數(shù)組首地址。20、以下敘述中正確的是A、對(duì)于邏輯表達(dá)式:a++||b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變B、對(duì)于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變C、else不是一條獨(dú)立的語(yǔ)句,它只是if語(yǔ)句的一部分D、關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:B選項(xiàng)和A選項(xiàng)中,對(duì)于邏輯表達(dá)式,其中b的值不會(huì)因?yàn)楸磉_(dá)式的結(jié)果發(fā)生改變;D選項(xiàng)中,關(guān)系運(yùn)算符的結(jié)果有“真”和“假”兩種。因此C選項(xiàng)正確。21、以下敘述中正確的是A、break語(yǔ)句不能用于提前結(jié)束for語(yǔ)句的本層循環(huán)B、continue語(yǔ)句使得整個(gè)循環(huán)終止C、使用break語(yǔ)句可以使流程跳出switch語(yǔ)句體D、在for語(yǔ)句中,continue與break的效果是一樣的,可以互換標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:用break語(yǔ)句可以使程序流程跳出switch語(yǔ)句體,也可用break語(yǔ)句在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán),而continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。22、以下敘述中正確的是A、結(jié)構(gòu)體變量的地址不能作為實(shí)參傳給函數(shù)B、結(jié)構(gòu)體數(shù)組名不能作為實(shí)參傳給函數(shù)C、即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)結(jié)構(gòu)體變量包含若干成員,這些成員可以是數(shù)值類型、字符類型、數(shù)組類型,也可以是指針類型,甚至可以是正在定義的結(jié)構(gòu)體類型指針。用結(jié)構(gòu)體變量作實(shí)參時(shí),采取的是“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部順序傳遞給形參。形參也必須是同類型的結(jié)構(gòu)體變量。結(jié)構(gòu)體數(shù)組作為參數(shù)時(shí),采取了“地址傳遞”的方式,形參須為同類型的結(jié)構(gòu)指針或者形參結(jié)構(gòu)數(shù)組。23、有以下程序#includeintfuna(inta,intb){returna+b;}intfunb(inta,intb){returna-b;}intsss(int(*t)(),intx,inty){return((*t)(x,y));}main(){intx;x=sss(funa,9,3);x+=sss(funb,8,3);printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是A、17B、23C、24D、22標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)funa的功能計(jì)算兩個(gè)數(shù)據(jù)的和,funb的功能計(jì)算兩個(gè)數(shù)據(jù)的差,函數(shù)sss中利用指向函數(shù)的指針作為函數(shù)的參數(shù),可以在調(diào)用的時(shí)候,根據(jù)接收的函數(shù)地址來(lái)決定調(diào)用那一個(gè)函數(shù)。主函數(shù)中調(diào)用x=sss(funa,9,3),將funa函數(shù)的地址傳遞給t,因此sss函數(shù)成為求兩個(gè)數(shù)據(jù)的和12,繼續(xù)將funb函數(shù)地址傳給t,求兩個(gè)數(shù)據(jù)差為5,和s累加后結(jié)果為17。24、以下敘述中錯(cuò)誤的是A、可以用typedef將已存在的類型用一個(gè)新的名字來(lái)代表B、可以通過(guò)typedef增加新的類型C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新類型名,說(shuō)明新類型名的語(yǔ)句一般形式為:typedef類型名標(biāo)識(shí)符;在此,“類型名”必須是在此語(yǔ)句之前已有定義的類型標(biāo)識(shí)符?!皹?biāo)誤符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名。typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。25、以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A、3.0e0.2B、1e0C、E9D、9.12E標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C語(yǔ)言規(guī)定,E之前必須要有數(shù)字,所以C選項(xiàng)錯(cuò)誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項(xiàng)錯(cuò)誤。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在進(jìn)行順序查找過(guò)程中,如果被查的元素是線性表中的最后一個(gè)元素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。2、下列選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是A、繼承性B、多態(tài)性C、類比性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)主要特征是:封裝性、繼承性和多態(tài)性。封裝性即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。繼承性是指使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。3、下面敘述中錯(cuò)誤的是A、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B、對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。軟件測(cè)試要嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。程序調(diào)試通常也稱Debug,對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤”定位是程序調(diào)試的必要步驟。4、若有定義語(yǔ)句:intx=12,y=8,Z;在其后執(zhí)行語(yǔ)句:z=0.9+x/y;則z的值為()。A、1B、1.9C、2D、2.4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:x、y為整數(shù),x/y值為1,加上0.9為1.9,賦值給整型變量z,接收后為1。5、在關(guān)系數(shù)據(jù)庫(kù)中,用來(lái)表示實(shí)體間聯(lián)系的是()。A、網(wǎng)狀結(jié)構(gòu)B、樹(shù)狀結(jié)構(gòu)C、屬性D、二維表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:?jiǎn)我坏臄?shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語(yǔ)義,可以描述現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。6、數(shù)據(jù)庫(kù)系統(tǒng)的核心是A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)管理員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。所以,數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)系統(tǒng)的核心。7、若有以下定義和語(yǔ)句:#include<stdio.h>chars1[10]="abcd!",*s2="\n123\\";pfinff("%d%d\n",strlen(s1),strlen(s2));程序的運(yùn)行結(jié)果是()。A、107B、105C、55D、58標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:strlen函數(shù)返回字符串的長(zhǎng)度,求字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)志’\0’為止,但是長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。字符數(shù)組s1的后5個(gè)元素沒(méi)有賦值,都為’\0’,即"abcd!"后為’\0’,所以strlen(s1)的值為5。字符指針s2所指向的字符串中,\n為轉(zhuǎn)義字符換行符,表示1個(gè)字符,\\也為轉(zhuǎn)義字符,代表\,也是1個(gè)字符,其后為字符串結(jié)束標(biāo)識(shí)’0’,所以strlen(s2)的值也為5,因此C選項(xiàng)正確。8、有以下程序:#includeinta=1,b=2;voidfunl(inta,intb){prinff(“%d%d”,a,b);}voidfun2(){a=3.b=4;}voidmain(){funl(5,6);fun2();prinff(“%d%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、1256B、5634C、5612D、3456標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:funl是輸出局部變量的值,fun2是把全局變量的值改成3,4,所以輸出結(jié)果是5634。9、下列關(guān)于return語(yǔ)句的敘述中正確的是()。A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語(yǔ)句,C選項(xiàng)描述錯(cuò)誤。沒(méi)有return語(yǔ)句的函數(shù)在執(zhí)行到函數(shù)的最后一條語(yǔ)句后會(huì)自動(dòng)返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。因此B選項(xiàng)正確。10、以下選項(xiàng)中合法的標(biāo)識(shí)符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查標(biāo)識(shí)符定義。合法標(biāo)識(shí)符的要求是由下劃線、英文大小寫(xiě)字母和數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。11、數(shù)據(jù)庫(kù)管理系統(tǒng)的基本功能不包括A、數(shù)據(jù)庫(kù)訪問(wèn)B、數(shù)據(jù)庫(kù)定義C、數(shù)據(jù)庫(kù)的建立和維護(hù)D、數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)中其他系統(tǒng)的通信標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)的主要功能包括:數(shù)據(jù)庫(kù)定義,數(shù)據(jù)操作,數(shù)據(jù)庫(kù)的運(yùn)行管理,數(shù)據(jù)組織、存儲(chǔ)與管理,數(shù)據(jù)庫(kù)的保護(hù),數(shù)據(jù)庫(kù)的維護(hù)和通信。數(shù)據(jù)庫(kù)不能和網(wǎng)絡(luò)中的其他系統(tǒng)通信。12、設(shè)有定義:struetcomplex{intreal,unreal;}data1={1,8},data2;則下列賦值語(yǔ)句中錯(cuò)誤的是()。A、data2=(2,6);B、data2=datal;C、data2.real=datal.real;D、data2.real=data1.unreal;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中可以在聲明變量的同時(shí)為data2賦值,但是data2=(2,6);應(yīng)寫(xiě)作data2={2,6};,所以選擇A選項(xiàng)。13、以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是A、結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷B、一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成C、由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題D、在C語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),研究證明任何程序都可以由這三種基本結(jié)構(gòu)組成。但是程序可以包含一種或者幾種結(jié)構(gòu),不是必須包含全部三種結(jié)構(gòu)。自從提倡結(jié)構(gòu)化設(shè)計(jì)以來(lái),goto就成了有爭(zhēng)議的語(yǔ)句。首先,由于goto語(yǔ)句可以靈活跳轉(zhuǎn),如果不加限制,它的確會(huì)破壞結(jié)構(gòu)化設(shè)計(jì)風(fēng)格。其次,goto語(yǔ)句經(jīng)常帶來(lái)錯(cuò)誤或隱患。它可能跳過(guò)了某些對(duì)象的構(gòu)造、變量的初始化、重要的計(jì)算等語(yǔ)句。Goto語(yǔ)句的使用會(huì)使程序容易發(fā)生錯(cuò)誤并且也不易閱讀,所以應(yīng)避免使用。由三種基本結(jié)構(gòu)構(gòu)成的程序幾乎能解決大部分問(wèn)題。14、對(duì)以下程序段的敘述中正確的是()。typedefstructNODE{intnum;structNODE*next;}mynode;A、以上的說(shuō)明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類型C、mynode是一個(gè)結(jié)構(gòu)體類型D、mynode是一個(gè)結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體和typedef類型定義。本題的聲明代碼相當(dāng)于兩部分,首先定義streetNODE,然后是以typedef定義mynode類型,因此mynode是結(jié)構(gòu)體類型NODE的別名或標(biāo)識(shí)度。選項(xiàng)C正確,其他選項(xiàng)錯(cuò)誤。15、設(shè)變量均已正確定義,若要通過(guò)scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語(yǔ)句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)A、10□X20□YB、10□X20□YC、10X20YD、10□X□20□Y標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在使用scanf函數(shù)進(jìn)行輸入數(shù)據(jù)時(shí),輸入的數(shù)據(jù)之間必須用空格、回車符、制表符(Tab鍵)等間隔符隔開(kāi),但是空格為合法的字符型數(shù)據(jù)的輸入;而按照格式符"%d%c%d%c"說(shuō)明,數(shù)值型數(shù)據(jù)和字符數(shù)據(jù)輸入之間不要加入空格何隔,而字精型數(shù)據(jù)和數(shù)值型數(shù)據(jù)的輸入?yún)s可以加入任意的空格,回車和跳格。16、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%2!=1)D、(c>=2&&c<=6)‖(c!=3)‖(c!=5)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯或運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真,故選項(xiàng)D)中c的值不為2、4、6時(shí),那么表達(dá)式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達(dá)式的值也為真。17、程序中若有如下說(shuō)明和定義語(yǔ)句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;}以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是A、(*f1)(a);B、*f1(*s);C、fun(a);D、ch=*f1(s);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查函數(shù)調(diào)用和函數(shù)指針的使用。根據(jù)定義f1是一個(gè)函數(shù)指針,且指向fun函數(shù),因此可以使用函數(shù)指針來(lái)調(diào)用函數(shù)。使用函數(shù)指針調(diào)用函數(shù)的時(shí)候使用*運(yùn)算符,即*f1和fun是一樣的,fun函數(shù)有參數(shù),通過(guò)f1調(diào)用fun函數(shù)寫(xiě)法為:(*f1)(a),括號(hào)是必須的,這樣才能保證各部分正確結(jié)合。18、有以下程序#includestructtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運(yùn)行結(jié)果是A、20,15,B、30,17C、15,30,D、20,30,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序定義了結(jié)構(gòu)體類型tt,其成員包括一個(gè)整型數(shù)據(jù)x和指向其自身結(jié)構(gòu)的指針變量y。程序在定義結(jié)構(gòu)體數(shù)組a的同時(shí)對(duì)其進(jìn)行了初始化。其元素a[0]的成員y被賦值為元素a[1]的地址,a[1].y被賦值為a[2]的地址,a[2].y被賦予a[3]的地址,a[3].y被賦予a[0]的地址。這就形成了一個(gè)單向的循環(huán)鏈表,每個(gè)元素的指針成員都指向下一個(gè)元素的地址。在主函數(shù)中,通過(guò)一個(gè)for循環(huán)語(yǔ)句,輸出該鏈表前2個(gè)節(jié)點(diǎn)數(shù)值成員的值,即a[0].x和a[1].x。19、有以下程序intfun(intx[],intn)main(){staticintsum=0,i;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;for(i=0;i<n;i++)sum+=x[i];s=fun(a,5)+fun(b,4):printf("%d\n",s);returnsum;}}A、50B、45C、60D、55標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)intfun(intx[],intn)的定義中,變量sum使用了static修飾符,這說(shuō)明了變量sum為一個(gè)靜態(tài)局部變量。由于在整個(gè)程序運(yùn)行期聞,靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元。即使退出函數(shù)之后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量繼續(xù)使用原來(lái)存儲(chǔ)單元中原來(lái)的值。函數(shù)intfun(intx[],intn)的功能是求出數(shù)組x[]各個(gè)元素的和。所以在主函數(shù)中,調(diào)用函數(shù)Fun(a,5))舌,變量sum=1+2+3+4+5=15,當(dāng)再次調(diào)用Fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。20、有以下程序#includevoidmain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}A、9B、7C、5D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在這段程序中,整型變量c的初始值賦為0,在第一次執(zhí)行for循環(huán)語(yǔ)句時(shí),因?yàn)榇藭r(shí)變量k的值等于1,所以在switch語(yǔ)句中首先執(zhí)行default語(yǔ)句,給變量c的值加1,因?yàn)樵赿efaull語(yǔ)句后面沒(méi)有break語(yǔ)句,所以就會(huì)接著執(zhí)行case2這條語(yǔ)句,再給變量c的值加1,其值變?yōu)?,這時(shí)退出switch語(yǔ)句塊,進(jìn)入第二次for循環(huán),此時(shí)k的值等于2,就會(huì)執(zhí)行switch語(yǔ)句塊中的case2這條語(yǔ)句,再給變量c的值加1,這時(shí)變量c的值就是3,此時(shí)退出switch語(yǔ)句塊,循環(huán)變量k的值加1,成為3,此時(shí)已不再滿足循環(huán)條件,執(zhí)行程序中的最后一條語(yǔ)句,把變量c的值在屏幕上輸出。21、若有定義語(yǔ)句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出"OK"的語(yǔ)句是A、if(strcmp(s1,s2)!=0)puts(s1);B、if(strcmp(s1,s2)!=0)puts(s2);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符串比較函數(shù)strcmp的功能是對(duì)s1和s2所指字符串進(jìn)行比較。如果s1<s2,返回負(fù)數(shù),如果s1==s2,返回0,如果s1>s2,返回正數(shù),所以對(duì)于本題來(lái)說(shuō),能夠輸出“OK”的語(yǔ)句是選項(xiàng)A)所指的語(yǔ)句。22、有以下程序段TypedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是A、以上的說(shuō)明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類型C、OLD是一個(gè)結(jié)構(gòu)型類型D、OLD是一個(gè)結(jié)構(gòu)變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體和typedf類型定義。本題的聲明代碼相當(dāng)于兩部分,首先定義stmctNODE,然后是一typedef定義OLD類型,因此OLD是結(jié)構(gòu)體類型。選項(xiàng)C)正確,其他選項(xiàng)錯(cuò)誤。23、有以下程序#include<stdio-h>voidfun(char*a,char*b){while(*a=’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="****a*b****",t[80];fun(s,t);puts(t);}程序的運(yùn)行結(jié)果是A、a*bB、*****a*bC、a*b****D、ab標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語(yǔ)句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語(yǔ)句,將*a中從“a”開(kāi)始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”。24、設(shè)有定義:struct{charmark[12];intnuml;doublenum2;}t1,t2;若變量均已正確賦初值,則以下語(yǔ)句中錯(cuò)誤的是A、t2.hum1=t1.num1;B、t2.mark=t1.mark;C、t1=t2;D、t2.num2=t1.num2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:這個(gè)題目主要涉及到結(jié)構(gòu)體的定義與賦值操作。根據(jù)題意結(jié)構(gòu)體變量t1,t2的成員變量mark是字符數(shù)組,對(duì)于字符數(shù)組之間的賦值操作應(yīng)該使用循環(huán)語(yǔ)句對(duì)每個(gè)字符進(jìn)行賦值,而選項(xiàng)B是用數(shù)組名實(shí)現(xiàn)字符數(shù)組之間的賦值操作,是錯(cuò)誤的。25、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是A、main(){……x=fun(2,10);……}floatfun(inta,intB){……}B、floatfun(inta,intB){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intB){……}D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intB){……}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在調(diào)用子函數(shù)時(shí),應(yīng)對(duì)其進(jìn)行說(shuō)明。A選項(xiàng)中,調(diào)用時(shí),沒(méi)有對(duì)子函數(shù)進(jìn)行說(shuō)明。B選項(xiàng)、C選項(xiàng)中被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,不用說(shuō)明;D選項(xiàng)中在主函數(shù)中對(duì)被調(diào)用函數(shù)的返回值類型進(jìn)行了說(shuō)明。因此A選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、算法的空間復(fù)雜度是指A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。這個(gè)內(nèi)存空間包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過(guò)程中所需要的額外空間。2、下列各項(xiàng)中,不屬于軟件設(shè)計(jì)階段任務(wù)的是()。A、軟件總體設(shè)計(jì)B、算法設(shè)計(jì)C、制訂軟件并確認(rèn)測(cè)試計(jì)劃D、數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過(guò)程設(shè)計(jì)、所以A、B、D正確,C為軟件測(cè)試階段的任務(wù)。3、若m是int型變量,n是noat型變量,所用的scanf調(diào)用語(yǔ)句格式為:scanf("m=%d,n=%f,"&m,&n);則為了將數(shù)據(jù)10和66.6分別賦給m和n,正確的輸入應(yīng)當(dāng)是()。A、m=10,n=66.6<回車>B、1066.6<回車>C、10<回車>66.6<回車>D、in=10<回車>n=66.6<回車>標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,scanf函數(shù)的兩個(gè)格式說(shuō)明項(xiàng)有一個(gè)或多個(gè)普通字符,這些字符被稱為通配符。在輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間也必須以相同的字符分隔。4、冒泡排序在最壞情況下的比較次數(shù)是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過(guò)n/2遍的從前往后的掃描和rd2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。5、在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有如下特征:標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性。6、若有以下程序#includemain(){inta=-11,b=10;a/=b/=一4;printf("%d%d\n",a,b);)則程序的輸出結(jié)果是A、-1-2B、5-2C、4-3D、5-3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于語(yǔ)句a/=b/=-4;相當(dāng)于a=a/(b=b/-4);a初值為-11,b的初值為10,則運(yùn)算以后10/-4值為-2,-11/-2值為5。7、下列關(guān)于C語(yǔ)言數(shù)據(jù)史件的敘述中正確的是()。A、文件由ASCII碼字符序列組成,C語(yǔ)言只能讀寫(xiě)文本文件B、文件由二進(jìn)制數(shù)據(jù)序列組成,C語(yǔ)言只能讀寫(xiě)二進(jìn)制文件C、文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件D、文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是數(shù)據(jù)文件的有關(guān)概念。文件由數(shù)據(jù)流的形式組成,可以按數(shù)據(jù)存放的形式分為二進(jìn)制文件和文本文件,C語(yǔ)言既能讀寫(xiě)文本文件,又能讀寫(xiě)二進(jìn)制文件。8、有以下程序intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%d",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時(shí),給變量x輸入10,程序的輸出結(jié)果是A、54B、65C、45D、55標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中函數(shù)可以遞歸調(diào)用,即直接或間接地自己調(diào)用自己。本題在函數(shù)intfun(intn)的定義中又出現(xiàn)了對(duì)函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時(shí),當(dāng)輸入10賦給變量x時(shí),遞歸調(diào)用的過(guò)程為:fun(10)=10+fun(9)=10+9+fun(8)=10+9++8+fun(7)=10+9++8+7+fun(6)=10++98+7+6+fun(6)=10+9++8+7+6+5+fun(4)=10+9++8+7+6+5+4+fun(3)=10+9++8+7+6+5+4+3+fun(2)=10+9++8+7+6+5+4+3+2+fun(1)=10+9++8+7+6+5+4+3+2+1=559、若有定義語(yǔ)句inta[2][3],*P[3];,則以下語(yǔ)句中正確的是()。A、P=a;B、P[0]=a:C、p[0]=&a[1][2];D、P[1]=&a;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:A選項(xiàng)錯(cuò)誤,因?yàn)閜是指向一個(gè)指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項(xiàng)錯(cuò)誤,因?yàn)閜[*]是一個(gè)int指針,也就是int*;而a是一個(gè)指向指針的指針int**。C選項(xiàng)正確,因?yàn)閜[0]是一個(gè)int*,a[1][2]是int,&a[1][2]是int*,類型吻合。D選項(xiàng)錯(cuò)誤,因?yàn)閍作為數(shù)組名,不能取地址,即使能取,p[1]是int*,&a是int***,類型不對(duì)。10、定義學(xué)生選修課程的關(guān)系模式:SC(S#,Sn,C#,Cn,G)(其屬性分別為學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī))該關(guān)系的范式最高達(dá)到A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一范式(1NF)是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個(gè)新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對(duì)多關(guān)系。在第一范式(1NF)中表的每一行只包含一個(gè)實(shí)例的信息。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被唯一地區(qū)分。本題中關(guān)系模式中的可能不被唯一地區(qū)分,因此它只能滿足第一范式,而滿足不了第二范式。11、設(shè)intx[2][3];則以下關(guān)于二維數(shù)組x的敘述錯(cuò)誤的是()。A、數(shù)組x可以看作是由x[0]和x[1]兩個(gè)元素組成的一維數(shù)組B、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0C、元素x[0]可看作是由3個(gè)整型元素組成的一維數(shù)組D、x[0]和x[1]是數(shù)組名,分別代表一個(gè)地址常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中二維數(shù)組的元素在內(nèi)存中占一系列連續(xù)的存儲(chǔ)單元。數(shù)組元素在內(nèi)存中的排列順序是先存放第0行的元素,再存放第1行的元素……稱這種存放順序?yàn)榘葱写娣?。可以把一個(gè)二維數(shù)組看成是一個(gè)一維數(shù)組,每個(gè)數(shù)組元素又是包含有若干個(gè)元素的一維數(shù)組。另外在給二維數(shù)組賦初值時(shí)可以不用含花括號(hào)對(duì)。例如,inta[4][3]={1,2,4,5};在編譯時(shí),系統(tǒng)將按a數(shù)組元素在內(nèi)存中排列的順序,將花括號(hào)內(nèi)的數(shù)據(jù)一一對(duì)應(yīng)地賦給各個(gè)元素,若數(shù)據(jù)不足,系統(tǒng)將給后面的元素自動(dòng)補(bǔ)初值0。以上將給a數(shù)組第一行的元素和第二行的第一個(gè)元素依次賦予1、2、4、5,其他元素的初值都為0。12、以下敘述中正確的是A、關(guān)系運(yùn)算符兩邊的運(yùn)算對(duì)象可以是C語(yǔ)言中任意合法的表達(dá)式B、在C語(yǔ)言中,邏輯真值和假值分別對(duì)應(yīng)1和0C、對(duì)于浮點(diǎn)變量x和y,表達(dá)式:x==y是非法的,會(huì)出編譯錯(cuò)誤D、分支結(jié)構(gòu)是根據(jù)算*表達(dá)式的結(jié)果來(lái)判斷流程走向的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中沒(méi)有邏輯類型,用非零表示邏輯真。0表示邏輯假,選項(xiàng)B)錯(cuò)誤,無(wú)法判斷兩個(gè)浮點(diǎn)變量是否相等,但是x==y不會(huì)出現(xiàn)編譯錯(cuò)誤,選項(xiàng)C)錯(cuò)誤,分支結(jié)構(gòu)根據(jù)表達(dá)式的值,不一定為算術(shù)表達(dá)式,選項(xiàng)D)錯(cuò)誤。13、有三個(gè)關(guān)系R,S和T如下圖所示:其中關(guān)系T由關(guān)系R和S通過(guò)某種運(yùn)算得到,則所使用的運(yùn)算為A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組組成的,記為R∩S,因此應(yīng)選擇選項(xiàng)D。14、有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;iA、1,2,3,4,B、1,4,5,9,C、1,0,7,0,D、3,4,8,10,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)。fun(inta[][N],intb[])的功能是把矩陣a[N][N]主對(duì)角線上的元素賦給一維數(shù)組b[]。在主函數(shù)中由x[][N]的初始化可知,其主對(duì)角線上的元素是1,0,7,0。所以當(dāng)執(zhí)行完函數(shù)fun(x,y)后,一維數(shù)組元素y[]中的元素值為1,0,7,0。15、以下不能輸出字符A的語(yǔ)句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B)的輸出函數(shù)中,大寫(xiě)字符’A’以整型數(shù)據(jù)的形式輸出。16、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是A、while((s[i++]=getchar0)!=’\n’);s[i]=’\0’;B、scanf("%s",s);C、gets(s);D、,do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’0\’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。17、有以下程序main(){intij;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}A、1*1=11*2=21*3=32*1=22*2=43*1=3B、1*1=11*2=22*2=41*3=32*3=63*3:9C、1*1=11*2=21*3=32*2=42*3=63*3=9D、1*1=12*1=22*2=.43*1=33*2=63*3=9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:外層for循環(huán)的自變量i從1開(kāi)始,每次循環(huán)后增1,直到i等于3結(jié)束。對(duì)于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開(kāi)始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開(kāi)始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開(kāi)始打印輸出結(jié)果。18、若變量x、y已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是A、++x,y=x--B、x+1=yC、x=x+10=x+yD、double(x)/10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:用逗號(hào)將表達(dá)式連接起來(lái)的式子稱為逗號(hào)表達(dá)式。其表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n。最后一個(gè)表達(dá)式的值就是此逗號(hào)表達(dá)式的值。所以選項(xiàng)A)為C語(yǔ)言中的逗號(hào)表達(dá)式。賦值表達(dá)式的左側(cè)只能是變量,不能是常量或表達(dá)式。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式為:(類型名)(表達(dá)式),其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,數(shù)據(jù)類型兩邊的圓括號(hào)不能省略。19、下列敘述中錯(cuò)誤的是A、C程序可以由多個(gè)程序文件組成B、一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法C、C程序可以由一個(gè)或多個(gè)函數(shù)組成D、一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)C語(yǔ)言程序可以實(shí)現(xiàn)多種算法,可以由多個(gè)程序文件共同構(gòu)成。一個(gè)C語(yǔ)言程序可以由一個(gè)或多個(gè)函數(shù)組成,一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在,被包含到其他程序中?所以選擇B選項(xiàng)。20、有以下計(jì)算公式若程序前面已經(jīng)在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是A、y=sqrt(x);if(x<0)y=sqrt(-x);B、if(x>=0)y=sqrt(x);elsey=sqrt(-x);C、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(-x);D、y=sqrt(x>=0?x:-x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由題意可知計(jì)算公式的含義是:當(dāng)x大于等于0時(shí),y值等于x的算術(shù)平方根;當(dāng)x小于0時(shí),y值等于x的相反數(shù)的算術(shù)平方根。所以選項(xiàng)B)用一個(gè)完整的ifelse語(yǔ)句表達(dá)了計(jì)算公式的含義;選項(xiàng)C)用兩個(gè)if語(yǔ)句表達(dá)了計(jì)算公式的含義;選項(xiàng)D)在求平方根函數(shù)的后面用x≥0?x:-x條件表達(dá)式來(lái)表達(dá)了計(jì)算公式的含義。選項(xiàng)A)沒(méi)有用C語(yǔ)言語(yǔ)句正確的表達(dá)計(jì)算公式的含義。21、有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是A、chara=’\n’;B、chara="aa";C、chara=’a’;D、chara=’\x2d’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B中,由兩個(gè)字符aa組成一個(gè)字符串賦給一個(gè)字符變量a時(shí)會(huì)出錯(cuò)。22、以下選項(xiàng)中非法的C語(yǔ)言字符常量是A、’\b’B、’\007’C、’aa’D、’\xaa’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)把一個(gè)字符括起來(lái)作為字符常量。23、有以下程序(strcat函數(shù)用以連接兩個(gè)字符串)#include<stdio.h>#include<string.h>main(){chara[20]="ABCD\0EFG\0",b[]="IJK";strcat(a,b);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是A、ABCDE\0FG\0IJKB、ABCDIJKC、IJKD、EFGIJK標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在字符串中字符’\0’表示字符串的結(jié)束標(biāo)志,所以字符串a(chǎn)和b相連接的結(jié)果為ABCDIJK。24、以下敘述中錯(cuò)誤的是A、可以用typedef將已存在的類型用一個(gè)新的名字來(lái)代表B、可以通過(guò)typedef增加新的類型C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言允許用tyedef說(shuō)明一種新類型名,說(shuō)明新類型名的語(yǔ)句一般形式為:typedef類型名標(biāo)識(shí)符;在此,“類型名”必須是在此語(yǔ)句之前已有定義的類型標(biāo)識(shí)符。“標(biāo)誤符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名。typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表己存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。25、下列敘述中正確的是A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、關(guān)于算法,以下敘述中錯(cuò)誤的是A、同一個(gè)算法對(duì)于相同的輸入必能得出相同的結(jié)果B、一個(gè)算法對(duì)于某個(gè)輸入的循環(huán)次數(shù)是可以事先估計(jì)出來(lái)的C、某個(gè)算法可能會(huì)沒(méi)有輸入D、任何算法都能轉(zhuǎn)換成計(jì)算機(jī)高級(jí)語(yǔ)言的程序,并在有限時(shí)間內(nèi)運(yùn)行完畢標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算泌和程序不同,算法滿足以下特性:算法有5個(gè)特性,即有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入以及有一個(gè)或多個(gè)輸出。算法的確定性是指算法中的每一個(gè)步驟都必須有明確定義,不允許有模棱兩可的解釋,也不允許有多義性,因此對(duì)于相同的輸入必有相同的輸出,同時(shí)可以事先估計(jì)算法的時(shí)間復(fù)雜度.對(duì)于有循環(huán)的算濁,以循環(huán)體內(nèi)的循環(huán)次數(shù)來(lái)估測(cè)時(shí)間復(fù)雜度。2、若有定義:inta,b,c;,則以下選項(xiàng)中的賦值語(yǔ)句正確的是()。A、a=(b==c)=1;B、(a=b)=c=1;C、a=(b=c)+1;D、a+b=c;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:賦值運(yùn)算符的左側(cè)必須為變量而不能是表達(dá)式,所以答案選C。3、度為3的一棵樹(shù)共有30個(gè)節(jié)點(diǎn),其中度為3,1的節(jié)點(diǎn)個(gè)數(shù)分別為3,4。則該樹(shù)中的葉子節(jié)點(diǎn)數(shù)為()。A、14B、15C、16D、不可能有這樣的樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:設(shè)葉子節(jié)點(diǎn)數(shù)為n,則度為2的節(jié)點(diǎn)數(shù)為30-3-4-n=23-n,根據(jù)樹(shù)中的節(jié)點(diǎn)數(shù)=樹(shù)中所有節(jié)點(diǎn)的度之和+1,得3×3+2×(23-n)+1×4+0×n+1=30,則n=15。4、下面屬于系統(tǒng)軟件的是()。A、UNIX系統(tǒng)B、ERP系統(tǒng)C、辦公自動(dòng)化系統(tǒng)D、學(xué)生成績(jī)管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。系統(tǒng)軟件是管理計(jì)算機(jī)的資源,提高計(jì)算機(jī)使用效率并服務(wù)于其他程序的軟件,如操作系統(tǒng),編譯程序,匯編程序,數(shù)據(jù)庫(kù)管理系統(tǒng)和網(wǎng)絡(luò)軟件等。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。例如,事務(wù)處理軟件,工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的各種軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開(kāi)發(fā)的工具性軟件。5、軟件生存周期中,解決軟件“做什么”的階段是()。A、需求分析B、軟件設(shè)計(jì)C、軟件實(shí)現(xiàn)D、可行性研究標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟工生命周期可細(xì)化為可行性研究和計(jì)劃制定、需求分析、軟件設(shè)計(jì)(總體設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、軟件測(cè)試、運(yùn)行和維護(hù)等階段。需求分析是對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,是解決軟件“做什么”的階段。軟件設(shè)計(jì)是解決軟件“怎么做”的階段。6、有三個(gè)關(guān)系R,S和T如下圖所示:則由關(guān)系R和S得到關(guān)系T的運(yùn)算是()。A、交B、投影C、并D、選擇標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)并運(yùn)算后所得到的關(guān)系由屬于R或?qū)儆赟的元組構(gòu)成,記為R∪S。本題中,關(guān)系T中的行要么屬于關(guān)系R,要么屬于關(guān)系S,故為并運(yùn)算。7、若有定義:inta,b;,通過(guò)語(yǔ)句scanf(“%d;%d",&a,&b);能把整數(shù)3賦給變量a、5賦給變量b的輸入數(shù)據(jù)是()。A、35B、3,5C、3;5D、35標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:輸入數(shù)據(jù)的格式必須與scanf()的格式控制串完全匹配,所以輸入時(shí)必須在3和5之間輸入“;”。8、下列數(shù)據(jù)流圖(DFD)構(gòu)造規(guī)則中正確的是A、“數(shù)據(jù)存儲(chǔ)”間應(yīng)有數(shù)據(jù)流B、“數(shù)據(jù)流”可不帶有數(shù)據(jù)流名C、父圖子圖是指任意上下層的兩個(gè)數(shù)據(jù)流圖D、子圖的輸入輸出數(shù)據(jù)流與父圖中相關(guān)加工的輸入輸出數(shù)據(jù)流必須一致標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)流圖(DataFlowDiagram):簡(jiǎn)稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。9、數(shù)據(jù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。A、內(nèi)模式B、概念模式C、外模式D、設(shè)計(jì)模式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個(gè)用戶的局部數(shù)據(jù)描述,所以選擇C)。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法。10、設(shè)有以下函數(shù):voidfun(intn,char*s){…},則下列對(duì)函數(shù)指針的定義和賦值均正確的是()。A、void(*pf)(int,char);pf=&fun;B、void*pf();pf=fun;C、void*pf();*pf=fun;D、void(*pf)(int,char*);pf=fun;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的參數(shù)可以是指針類型,它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為void(*pf)()。如果定義為void*pf(),則表示函數(shù)pf的返回值是一個(gè)基類型為void的指針,因此D選項(xiàng)正確。11、數(shù)字字符0的ASCII值為48,若有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-A);}A、3,2B、50,2C、2,2D、2,50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查ASCII碼和自加運(yùn)算。第一個(gè)printf語(yǔ)句中,是以字符形式輸出b++的值,++放在變量的后面是先使用然后自增,因此第一個(gè)printf輸出值是2,然后b的值變成’3’。在第二個(gè)printf語(yǔ)句中,b的值為’3’,a的值為’1’,所以b-a的值為2。12、若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語(yǔ)句是()。A、switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}B、switch((int)x);{case1:printf("*\n");case2:printf("**\n");}C、switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}D、switch(a+b){case1:printf("*\n");casec:printf("**\n");}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:switch(表達(dá)式)后不能有分號(hào),選項(xiàng)B)錯(cuò)誤;switch語(yǔ)句的圓括號(hào)中表達(dá)式的值必須為整型或者字符型,不能為實(shí)型,選項(xiàng)C)錯(cuò)誤;case后面的表達(dá)式可以是求得整型量和字符型量的常量表達(dá)式,但是常量表達(dá)式中不能含有變量,選項(xiàng)D)錯(cuò)誤;答案選A)。13、有以下程序main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}程序輸出A、0,0,0,3B、1,1,2,0C、編譯有錯(cuò)D、0,1,2,0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:if語(yǔ)句的格式為:if(表達(dá)式)語(yǔ)句1else語(yǔ)句2if和else是C語(yǔ)言的關(guān)鍵字?!罢Z(yǔ)句1”稱為if子句,“語(yǔ)句2”稱為else子句,這些子句只允許為一條語(yǔ)句,若需要多條語(yǔ)句時(shí),則應(yīng)該使用復(fù)合語(yǔ)句。因此題目if(a=1)b=1:c=2:elsed=3;if分支有兩條語(yǔ)句,沒(méi)構(gòu)成復(fù)合語(yǔ)句。14、下列關(guān)系表達(dá)式中,結(jié)果為“假”的是A、(3<<4)==1B、(3+4)>6C、(3!=4)>2D、3<=4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)果為非零或者0,其中0表示假,而非零表示真,由于3!=4的結(jié)果為1,而1>2的結(jié)果為假。15、以下選項(xiàng)中敘述正確的是()。A、復(fù)雜任務(wù)可以分解成簡(jiǎn)單子任務(wù)B、C語(yǔ)言程序中的所有函數(shù)必須保存在同一個(gè)源文件中C、全部三種基本結(jié)構(gòu)都包含的才是結(jié)構(gòu)化程序D、C語(yǔ)言程序可以定義多個(gè)不同內(nèi)容的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:將復(fù)雜任務(wù)分解成簡(jiǎn)單子任務(wù)的想法是屬于一種結(jié)構(gòu)化的程序設(shè)計(jì)方法,選項(xiàng)A)表述正確;C語(yǔ)言可以根據(jù)算法需要將函數(shù)放到一個(gè)或者多個(gè)源文件中,每個(gè)源文件可以包含一個(gè)到多個(gè)函數(shù),但是只能有一個(gè)main函數(shù),選項(xiàng)B)、D)錯(cuò)誤;一個(gè)結(jié)構(gòu)化的程序可以依據(jù)該程序要實(shí)現(xiàn)的功能選用順序、分支、循環(huán)這三種基本結(jié)構(gòu)中的某幾種或者全部使用,不是必須都用上,選項(xiàng)C)錯(cuò);答案選A)。16、以下敘述中正確的是A、在C語(yǔ)言中,預(yù)處理命令行都以”#}”開(kāi)頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開(kāi)頭D、C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,凡是以“#”號(hào)開(kāi)頭的行,都稱為“編譯預(yù)處理”命令行。預(yù)處理命令可以放在程序中的任何位置,其有效范圍是從定義開(kāi)始到文件結(jié)束。預(yù)處理命令有宏定義、文件包含和條件編譯三類。#include命令行表示程序中要引用C標(biāo)準(zhǔn)函數(shù)庫(kù)中的標(biāo)準(zhǔn)輸入輸出函數(shù)。17、若有以下程序#include#include#includestructstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;=(char*)malloc(10);strcpy(,"Zhao");b=a;b.gender=’f’;b.score=350;strcpy(,"Qian");printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,f,350B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Qian,m,290,Qian,f,350標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題中考查結(jié)構(gòu)體中變量的引用,a結(jié)構(gòu)體中name被修改為Qian,所以本題答案為D。18、有以下程序voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序的運(yùn)行結(jié)果是A、876543B、321678C、1098765D、345678標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun(inta[],intn)的功能是實(shí)現(xiàn)整型數(shù)組a[]元素的逆置操作。在主函數(shù)中當(dāng)執(zhí)行fhn(k,5)時(shí),對(duì)k[10]中的子數(shù)組k[5]={1,2,3,4,5}的首尾元素進(jìn)行逆置,此時(shí)k[10]={5,4,3,2,1,6,7,8,9,10}。所在循環(huán)語(yǔ)句中輸出從第2~7個(gè)數(shù)組元素時(shí),其值分別為321678。19、以下選項(xiàng)中,值為1的表達(dá)式是A、1-’0’B、’1’-0C、1-’\0’D、’\0’-’0’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCⅡ碼值再參與整數(shù)運(yùn)算。字符’1’對(duì)應(yīng)的ASCⅡ碼值是49,字符’0’對(duì)應(yīng)的ASCⅡ碼值是48,字符’\0’是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCⅡ碼值是0。20、在C語(yǔ)言中,函數(shù)返回值的類型最終取決于A、函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類型B、return語(yǔ)句中表達(dá)式值的類型C、調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型D、函數(shù)定義時(shí)形參的類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中函數(shù)的返回值類型是由定義函數(shù)時(shí)在函數(shù)首部所聲明的類型確定的。21、有以下程序voidfun(inta,intb,intc){a=b;b=c;c=a;}main(){inta=10,b=20,c=30;fun(a,b,c);printf("%d,%d,%d\n",c,b,a);}程序運(yùn)行后的輸出結(jié)果是A、10,20,30B、20,30,10C、30,20,10D、0,0,0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun中采用了變量作為參數(shù),那么參數(shù)傳遞以后,形參a,b,c的變化對(duì)于實(shí)參a,b,c是沒(méi)有影響的,因此主函數(shù)中a,b,c的值經(jīng)過(guò)fun調(diào)用以后,值沒(méi)有變化。22、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)結(jié)構(gòu)具備如下兩個(gè)基本特征:(1)線性表中的所有元素所占的存儲(chǔ)空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。用一組任意的存儲(chǔ)單元來(lái)依次存放線性表的結(jié)點(diǎn),這組存儲(chǔ)單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上的。因此C正確。23、若程序中有宏定義行:#defineN100則以下敘述中正確的是()。A、在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符NB、宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100C、上述宏定義行實(shí)現(xiàn)將100賦給標(biāo)識(shí)符ND、在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏替換只是使用宏名代替一個(gè)字符串,是一種機(jī)械的置換,這個(gè)過(guò)程在編譯階段完成,所以答案選A。24、在長(zhǎng)度為n的順序表中查找一個(gè)元素,假設(shè)需要查找的元素一定在表中,并且元素出現(xiàn)在表中每個(gè)位置上的可能性是相同的,則在平均情況下需要比較的次數(shù)為()。A、n/4B、nC、3n/4D、(n+1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在順序表中查找,最好情況下第一個(gè)元素就是要查找的元素,則比較次數(shù)為1;在最壞情況下,最后一個(gè)元素才是要找的元素,則比較次數(shù)為n。則平均比較次數(shù):(1+2+…+n)/n=(n(n+1)/2)/n=(n+1)/2。25、以下選項(xiàng)中表示空函數(shù)的是()。A、intfun(){return0;}B、intfun();C、intfun(){}D、intfun(inta,intB{return1;}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:空函數(shù)是函數(shù)體沒(méi)有執(zhí)行語(yǔ)句的函數(shù),選項(xiàng)A、D不是空函數(shù);選項(xiàng)B是函數(shù)的聲明,只有選項(xiàng)C是空函數(shù),本題答案為C。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共40題,每題1.0分,共40分。)1、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長(zhǎng)度加1時(shí),就把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針。2、有以下程序:#include<stdio.h>main()intx;scanf(’’%d’’,&x);if(x<=0);elseif(x!=5)printf(’’%d\n’’,x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。A、不等于5的整數(shù)B、大于0且不等5的整數(shù)C、大于0或等于5的整數(shù)D、小于5的整數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來(lái)。3、設(shè)順序表的長(zhǎng)度為16,對(duì)該表進(jìn)行簡(jiǎn)單插入排序。在最壞情況下需要的比較次數(shù)為()。A、120B、60C、30D、15標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:簡(jiǎn)單插入排序在最壞情況下,即初始排序序列是逆序的情況下,比較次數(shù)為n(n-1)/2,移動(dòng)次數(shù)為n(n-1)/2。本題中n=16,16×(16-1)÷2=8÷15=120。4、以下敘述中錯(cuò)誤的是A、常量可以用一個(gè)符號(hào)名來(lái)代表B、數(shù)值型常量有正值和負(fù)值的區(qū)分C、常量是在程序運(yùn)行過(guò)程中值不能被改變的量D、定義符號(hào)常量必須用類型名來(lái)設(shè)定常量的類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中,常常用一個(gè)標(biāo)識(shí)符來(lái)代表一個(gè)常量,稱為符號(hào)常量。符號(hào)常量在使用之前要先定義,定義格式如下:#define<符號(hào)常量名>(常量)其中,<符號(hào)常量名)用標(biāo)識(shí)符,習(xí)慣上用人寫(xiě)字母,<常量>可以是數(shù)字常量,也可以是字符。5、若變量已正確定義并賦值,則錯(cuò)誤的賦值語(yǔ)句是()。A、a+a+1:B、a=sizeof(double);C、a=d‖c;D、a+1=a:標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:賦值號(hào)“=”的左邊必須是一個(gè)變量名。6、以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是()。A、可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若于獨(dú)立模塊組裝成所要求的程序B、把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊C、把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試D、可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序模塊化思想中,可以采用自頂向下、逐步細(xì)化的方法,所以A選項(xiàng)中“自底向上”的說(shuō)法是錯(cuò)誤的。7、軟件需求規(guī)格說(shuō)明書(shū)在軟件開(kāi)發(fā)中的作用不包括()。A、軟件設(shè)計(jì)的依據(jù)B、軟件可行性分析的依據(jù)C、軟件驗(yàn)收的依據(jù)D、用戶和開(kāi)發(fā)人員對(duì)軟件要做什么的共同理解標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析就是分析軟件用戶的需求是什么,描述需求的文檔稱為軟件需求規(guī)格說(shuō)明書(shū)。軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果。需求規(guī)格說(shuō)明書(shū)是使開(kāi)發(fā)人員獲得設(shè)計(jì)和實(shí)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論