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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷18(共9套)(共336題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共37題,每題1.0分,共37分。)1、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題C、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿(mǎn)足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶(hù)能夠同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。2、以下程序的輸出結(jié)果是()。#includemain(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++:break;}}printf(”%d\n”,m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出switch。3、有以下程序:#include<stdio.h>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、321678B、876543C、1098765D、345678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中的函數(shù)fun()的功能是將數(shù)組k中前5個(gè)元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。4、若輸入’’abcdef’’、’’abdef’’,以下程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main(){intn;chars1[201,s2[20],*p1,*p2;scanf(’’%s’’,s1);scanf(’’%s’’,s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf(’’%d\n’’,n);}A、-B、0C、’’abcdef’’D、’’abdef’’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。②字符串依次比較的是它們相同位置上字符的ASCII碼值。5、有以下程序:#include<stdio.h>voidfun(char*c,intd){*c=*c+1;d+=1;orintf("%c,%c",*c,d);}main(){chara=’F’,b=’f’;fun(&b,a);printf("%c,%c\n",a,b);}程序的輸出結(jié)果為()。A、g,GF,gB、g,F(xiàn)F,gC、G,fF,GD、f,gf,g標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞。main函數(shù)中首先調(diào)用fun函數(shù),fun函數(shù)的功能是使字符c的ASCII碼值加1并輸出,使d加1并輸出對(duì)應(yīng)的字符;dun(&b,a)輸出“g,G”,但是由于fun函數(shù)的第一個(gè)參數(shù)進(jìn)行的是地址傳遞,而第二個(gè)參數(shù)進(jìn)行的是值傳遞,所以main函數(shù)中的printf函數(shù)輸出“F,g”。6、下面程序的輸出結(jié)果是()。#includemain(){chara[]={’a’,’b’,’c’,’d’,’f’,’g’},*p;P=a;prinff("%c\n",*p+4);}A、aB、bC、eD、f標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“*”號(hào)的優(yōu)先級(jí)比“+”的優(yōu)先級(jí)高,所以先執(zhí)行“*p”;指針p指向的是數(shù)組的首地址,因此*p=a,再加4得’e’。7、運(yùn)行下列程序時(shí),若輸入數(shù)據(jù)為“321”,則輸出結(jié)果是()。main(){intnum,i,j,k,s;scanf("%d",&num);if(num>99)s=3;elseif(num>9)s=2;elses=l;i=num/100;j=(num—i*100)/10;k=(num—i*100—j*10);switch(s){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);casel:printf("%d\n",k);}}A、123B、1,2,3C、321D、3,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if…else語(yǔ)句和switch語(yǔ)句。scanf函數(shù)通過(guò)鍵盤(pán)讀入num的值。因?yàn)椤皀um=321>99”,所以“s=3,i=3,j=2,k=1”。因?yàn)閟=3,所以執(zhí)行case3.輸出k,j,i的值,然后通過(guò)break結(jié)束程序。8、以下程序的輸出結(jié)果是()。#include<stdio.h>intm=13:intfun(intx,intY){intm=2;return(x*y-m);}main(){inta=7,b=6;printf("%d",fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dāng)全局變量和局部變量的名稱(chēng)相同時(shí),在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7×6-2=40,而fun(a,b)/m值為40/13=3。9、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹(shù)C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線(xiàn)性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A)。10、在關(guān)系數(shù)據(jù)庫(kù)中,用來(lái)表示實(shí)體間聯(lián)系的是()。A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹(shù)狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系模型實(shí)體間的聯(lián)系采用二維表來(lái)表示,簡(jiǎn)稱(chēng)表。選項(xiàng)C為網(wǎng)狀模型實(shí)體間的聯(lián)系,選項(xiàng)D為層次模型實(shí)體間的聯(lián)系,選項(xiàng)A屬性刻畫(huà)了實(shí)體。11、設(shè)Y為整型變量,a=6,a的地址為E2000,b=14,b的地址為E2001;執(zhí)行語(yǔ)句b=&a;y=&a;后Y的值為()。A、E2000B、E2001C、6D、14標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:&是取地址運(yùn)算符,y=&a是將a的地址賦給y,而a的地址沒(méi)有發(fā)生變化,因此y的值為E2000c,12、在數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)模式又稱(chēng)物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)符級(jí)上(如磁盤(pán)及磁盤(pán)操作)。13、已知:intc[3][4];,則對(duì)數(shù)組元素引用正確的是()。A、c[1][4]B、c[1.5][0]C、c[1+0][0]D)以上表達(dá)都錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是數(shù)組元素的引用。對(duì)于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿(mǎn)足行下標(biāo)小于M,列下標(biāo)小于N,且為正整數(shù)。因此,選項(xiàng)A)中列下標(biāo)溢出;選項(xiàng)B)中行下標(biāo)出現(xiàn)小數(shù);選項(xiàng)C)滿(mǎn)足要求。14、設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過(guò)100個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。A、gets(s);B、scanf("%s",s);C、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;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,直到遇到回車(chē)。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車(chē)或者空格。因此選項(xiàng)B不能,選項(xiàng)C和選項(xiàng)D中按字符逐個(gè)讀入字符串s中,直到讀入的字符是換行符為止,因此正確。15、以下標(biāo)識(shí)符不是關(guān)鍵字的是()。A、breakB、charC、SwitchD、return標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查標(biāo)識(shí)符和關(guān)鍵字的概念。需要注意的是C語(yǔ)言是區(qū)分大小寫(xiě)的,Switch是關(guān)鍵字,但Switch不是關(guān)鍵字。16、下列敘述中正確的是()。A、調(diào)用printf()函數(shù)時(shí),必須要有輸出項(xiàng)B、使用putchar()函數(shù)時(shí),必須在之前包含頭文件stdio.hC、在C語(yǔ)言中,整數(shù)可以以二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出D、調(diào)節(jié)getchar()函數(shù)讀入字符時(shí),可以從鍵盤(pán)上輸入字符所對(duì)應(yīng)的.ASCII碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A),若pfintf函數(shù)沒(méi)有輸出項(xiàng),且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運(yùn)行時(shí)則出現(xiàn)錯(cuò)誤提示;選項(xiàng)C),在C語(yǔ)言中,整數(shù)可以十進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出;選項(xiàng)D),getchai函數(shù)是從標(biāo)準(zhǔn)輸入設(shè)備讀取一個(gè)字符。17、設(shè)Y為整型變量,A=1,A的地址為EF01;B=2,B的地址為EF02;執(zhí)行語(yǔ)句B=&A;Y=&B;后Y的值()。A、1B、2C、EF01D、EF02標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:&是取地址運(yùn)算符,“Y=&B”是將B的地址賦給Y,因此Y值為EF02。18、有以下程序段:intx,i;mr(i=1;i<=100;i++){$canf("%d",&x);if(x<0)continue;pfinff("%4d\n",x);}下列各項(xiàng)中,針對(duì)上述程序段的描述正確的是()。A、最多可以輸出100個(gè)非負(fù)整數(shù)B、當(dāng)x<0時(shí)結(jié)束整個(gè)循環(huán)C、當(dāng)x>=0時(shí)沒(méi)有任何輸出D、pfinff函數(shù)調(diào)用語(yǔ)句總是被跳過(guò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:continue語(yǔ)句的功能是結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行,所以B選項(xiàng)錯(cuò)誤;當(dāng)x>=0時(shí),程序執(zhí)行printf("%4d\n",x);語(yǔ)句,所以C、D選項(xiàng)錯(cuò)誤。因?yàn)閒or循環(huán)的循環(huán)次數(shù)i是從1到100,如果先后輸入100個(gè)非負(fù)整數(shù),則這些數(shù)將全部輸出。19、有以下程序:#include<stdio.h>voidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c-(’a’-’A’);c++:}}main(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時(shí)從鍵盤(pán)上輸入HelloBeijing<回車(chē)>,則程序運(yùn)行后的輸出結(jié)果是()。A、hellobeijingB、HelloBeijingC、HELLOBEIJINGD、hELLOBeijing標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主程序讀取整個(gè)字符串存于s中,調(diào)用fun函數(shù),字符指針c指向數(shù)紺s。函數(shù)fun的功能是把指針c所指向的字符數(shù)組中的所有小寫(xiě)字符轉(zhuǎn)換為大寫(xiě)gets函數(shù)可以把空格作為字符串的一部分輸入,以回車(chē)作為輸入結(jié)束如果*c為小寫(xiě)字符,則*c=*c-32(轉(zhuǎn)大寫(xiě)),因此C選項(xiàng)正確。20、下列敘述中正確的是()。A、棧與隊(duì)列都只能順序存儲(chǔ)B、循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、棧是順序存儲(chǔ)結(jié)構(gòu)而隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是所有的插入與刪除都限定在表的同一端進(jìn)行的線(xiàn)性表;隊(duì)列是指允許在一端進(jìn)行插入,而在另一端進(jìn)行刪除的線(xiàn)性表,二者既可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ)。為了充分地利用數(shù)組的存儲(chǔ)空間,把數(shù)組的前端和后端連接起來(lái),形成一個(gè)環(huán)形的表,稱(chēng)為循環(huán)隊(duì)列,因此循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)。21、在C語(yǔ)言程序中,以下說(shuō)法正確的是()。A、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套B、函數(shù)的定義不可嵌套,但函數(shù)的調(diào)用可以嵌套C、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是一個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但是函數(shù)調(diào)用可以嵌套。22、大學(xué)中每個(gè)年級(jí)有多個(gè)班,每個(gè)班有多名學(xué)生,則實(shí)體班級(jí)和實(shí)體學(xué)生之間的聯(lián)系是()。A、一對(duì)多B、一對(duì)一C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:實(shí)體集之問(wèn)通過(guò)聯(lián)系來(lái)建立聯(lián)接關(guān)系分為三類(lèi):一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。每個(gè)班有多名學(xué)生,但每個(gè)學(xué)生只能在一個(gè)班級(jí)里,故實(shí)體班級(jí)和實(shí)體學(xué)生之間的聯(lián)系是一對(duì)多,故A選項(xiàng)正確。23、以下是正確C語(yǔ)言實(shí)型常量的是()。A、.e-1B、e-1C、-1eD、1e-1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂常量是指在程序運(yùn)行過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類(lèi)型。實(shí)型常量有兩種表示形式:十進(jìn)制小數(shù)形式、指數(shù)形式。指數(shù)形式中e后面的指數(shù)必須是整數(shù),階碼標(biāo)志e之前需要有數(shù)字,由此可知選項(xiàng)A,B,C錯(cuò)誤。答案為D選項(xiàng)24、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)為高共享、低冗余、獨(dú)立性高、具有完整性等,C錯(cuò)誤。25、有以下程序:#include<stdio.h>main(){inta=2,b;b=(a>>=1)+4;printf("%d,%d",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、1,5B、2,4C、2,6D、2,5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:a>>=1等價(jià)于a=a>>1,即a除以2,則a=2,b=(a>>1)+4=1+4=5,因此,打印出來(lái)為1,5。答案為A選項(xiàng)。26、設(shè)有以下函數(shù):intfun(intn,char*s){……}則下面對(duì)函數(shù)指針的定義和賦值均正確的是()。A、int(*pf)(int,char);pf=&fun;B、int*pf();pf=fun;C、int*pf();*pf=fun;D、int(*pf)(int,char*);pf=fun;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的參數(shù)可以是指針類(lèi)型。它的定義形式為void(*pf)(),原函數(shù)定義的形參變量是一個(gè)整數(shù)型和一個(gè)字符指針型,所以答案D正確。27、計(jì)算機(jī)算法中有窮性的意思是()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶(hù)使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。28、計(jì)算機(jī)軟件通常分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、編譯程序B、操作系統(tǒng)C、圖書(shū)借閱系統(tǒng)D、匯編程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯程序、操作系統(tǒng)和匯編程序均是系統(tǒng)軟件。29、有以下程序:#include#includetypedefstrtut{charname[9];charsex;floatscore[2];}STU;STUfun(STUa){STUb={’’Tom’’,’m’,85,90};inti;strcpy(a.name,b.name);a.sex=b.sex:for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={’’Alex’’,’f’,95,92},d;d=fun(c);printf(’’%s,%c,%d,%d,’’,d.name,d.sex,d.score[0],d.score[1]);printf(’’%s,%c,%d,%d\n’’,c.name,c.sex,c.score[0],c.score[1]);}程序運(yùn)行后的輸出結(jié)果是()。A、Tom,m,85,90,Alex,f,95,92B、Tom,m,85,90,Tom,m,85,90C、Qian,f,95,92,Alex,f,95,92D、Alex,f,95,92,Tom,m,85,90標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:注意使用typedef定義結(jié)構(gòu)體時(shí),大括號(hào)后面的標(biāo)識(shí)符將成為該結(jié)構(gòu)體類(lèi)型的定義關(guān)鍵字,可以用來(lái)定義新的結(jié)構(gòu)體變量。使用值傳遞調(diào)用函數(shù)時(shí)實(shí)參的值不會(huì)改變,所以調(diào)用后結(jié)構(gòu)c的值沒(méi)有發(fā)生變化,調(diào)用函數(shù)會(huì)返回一個(gè)固定的結(jié)構(gòu)體內(nèi)容,所以答案A正確。30、對(duì)長(zhǎng)度為n的線(xiàn)性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過(guò)比較,共需比較(n-1)+(n-2)+…+1=n(n-1)/2,選D。31、有以下程序#include<stdio.h>inta=1,b=2;voidfun1(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){fun1(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、5612B、3456C、1256D、5634標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fun1函數(shù)中的a、b為局部變量,fun2函數(shù)中的a、b為全局變量。執(zhí)行fun1函數(shù)后輸出5,6執(zhí)行完fun2后a變?yōu)?,b變?yōu)?,所以結(jié)果為3,4D選項(xiàng)正確。32、當(dāng)輸入為"Fool&Swalow"時(shí),下面程序的執(zhí)行結(jié)果是()。#includemain(){charc;while(c!=’?’){c=getchar();putchar(c);}}A、SwalowB、FoolC、Fool?D、?Swalow標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本程序是通過(guò)getchar()函數(shù)讀入字符,并通過(guò)putchar()函數(shù)將字符逐個(gè)輸出,當(dāng)用戶(hù)輸入“?”時(shí)停止輸出。33、當(dāng)沒(méi)有指定C語(yǔ)言中函數(shù)形參的存儲(chǔ)類(lèi)別時(shí),函數(shù)形參的存儲(chǔ)類(lèi)別是A、外部(extern)B、靜態(tài)(static)C、寄存器(register)D、自動(dòng)(auto)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:auto變量又稱(chēng)為自動(dòng)變量,函數(shù)定義變量時(shí),如果沒(méi)有指定存儲(chǔ)類(lèi)別,系統(tǒng)就認(rèn)為所定義的變量具有自動(dòng)類(lèi)別,D選項(xiàng)正確。static變量又稱(chēng)為靜態(tài)變量,編譯時(shí)為其分配的內(nèi)存在靜態(tài)存儲(chǔ)區(qū)中。register變量又稱(chēng)為寄存器變量,變量的值保留在CPU的寄存器中,而不是像一般變量那樣占內(nèi)存單元。當(dāng)定義一個(gè)函數(shù)時(shí),若在函數(shù)返回值的類(lèi)型前加上說(shuō)明符extern時(shí),稱(chēng)此函數(shù)為外部函數(shù),外部函數(shù)在整個(gè)源程序中都有效。34、設(shè)二叉樹(shù)如下:則前序序列為A、ABDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉樹(shù)遍歷可以分為3種:前序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)之前)、中序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)兩者之間)、后序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)之后)。本題中前序遍歷為ABDEGCFH,中序遍歷為DBGEAFHC,后序遍歷為DGEBHFCA,故A選項(xiàng)正確。35、以下敘述正確的是A、C程序由函數(shù)組成,可以不包含main函數(shù)B、每個(gè)C程序文件中的main函數(shù)都應(yīng)當(dāng)放在最前面C、每個(gè)C程序文件都應(yīng)當(dāng)包含一個(gè)main函數(shù)D、每個(gè)C程序都只能有一個(gè)main函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:雖然一個(gè)C程序可以包含多個(gè)文件,但是有且只有一個(gè)文件中包含main函數(shù),因此,選項(xiàng)A,C錯(cuò)誤。main函數(shù)可以放在程序的任意位置。因此,選項(xiàng)B錯(cuò)誤。答案為D選項(xiàng)。36、有以下程序#include<stdio.h>main(){intm,n;scanf("%d%d",&m,&n);while(m!=n){while(m>n){m=m-n;}while(n>m){n=n-m;}}printf("%d\n",m);}該程序的功能是A、計(jì)算m和n的最小公倍數(shù)B、計(jì)算m和n的最大公約數(shù)C、計(jì)算m和n的差值D、找出m和n中的較大值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目使用更相減損術(shù)求最大公約數(shù),其思想:1、任意給定兩個(gè)正整數(shù),判斷它們是否都是偶數(shù)。若是,則用2約簡(jiǎn),若不是則執(zhí)行第二步。第二步:以較大的數(shù)減較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù)。繼續(xù)這個(gè)操作,直到所得的減數(shù)和差相等為止。則第一步中約掉的若干個(gè)2與第二步中等數(shù)的乘積就是所求的最大公約數(shù)。因此。故答案為B選項(xiàng)37、下列4個(gè)程序中,完全正確的是()。A、#include<stdio.h>main();{/*programming*/printf("programming!\n");}B、#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}C、#include<stdio.h>main(){/*/programming*/*/printf("programming!\n");}D、include<stdio.h>main(){/*programming*/printf("programming!\n");}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A)中,main()函數(shù)后面的分號(hào)是錯(cuò)誤的,C語(yǔ)言在函數(shù)名后面不能有分號(hào):在C語(yǔ)言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/*”和“*/”必須成對(duì)出現(xiàn),按語(yǔ)法規(guī)定在注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)C)的程序段中注釋語(yǔ)句之間有嵌套;C語(yǔ)言用#include命令行來(lái)實(shí)現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,選項(xiàng)D)中的include前面少了一個(gè)#符號(hào)。二、程序填空題(本題共1題,每題1.0分,共1分。)38、下列給定程序中,函數(shù)fun的功能是:從形參ss所指字符串?dāng)?shù)組中,刪除所有串長(zhǎng)超過(guò)k的字符串,函數(shù)返回剩余字符串的個(gè)數(shù)。SS所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于M。請(qǐng)?jiān)诔绦虻南庐?huà)線(xiàn)處填入正確的內(nèi)容并將下畫(huà)線(xiàn)刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#defineN5#defineM10intfun(char(*ss)[M],intk){inti,j=0,len;/*********found*********/for(i=0;i<【1】;i++){len=strlen(ss[i]);/*********found*********/if(len<=【2】)/*********found*********/strcpy(ss[j++],【3】);}returnj;}voidmain(){charx[N][M]={"Beijing","Shanghai","Tianjin","Nanjing","Wuhan");inti,f;printf("\nTheoriginalstring\n\n");for(i=0;i<N;i++)puts(x[i]);printf("\n");f=fun(x,7);printf("Thestringwitchlengthislessthanorequalto7:\n");for(i=0;i<f;i++)puts(x[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)N(2)k(3)ss[i]知識(shí)點(diǎn)解析:本題考查:for循環(huán)語(yǔ)句;if語(yǔ)句條件表達(dá)式;字符串復(fù)制函數(shù)strcpy的使用。填空1:for循環(huán)語(yǔ)句的作用是遍歷字符串?dāng)?shù)組中的每一個(gè)字符串,所以循環(huán)變量i的循環(huán)條件是i<N。填空2:題目要求刪除串長(zhǎng)度大于k的字符串,所以if條件語(yǔ)句的條件表達(dá)式是len<=k。填空3:通過(guò)字符串復(fù)制函數(shù)將串長(zhǎng)不大于k的字符串另存,并記錄個(gè)數(shù)。字符串復(fù)制函數(shù)strcpy,其格式為:strcpy(字符數(shù)組名1,字符數(shù)組名2)功能:把字符數(shù)組2中的字符串復(fù)制到字符數(shù)組1中。字符串結(jié)束標(biāo)識(shí)‘\0’也一同復(fù)制。字符數(shù)組名2,也可以是一個(gè)字符串常量,這時(shí)相當(dāng)于把一個(gè)字符串賦予一個(gè)字符數(shù)組。三、程序修改題(本題共1題,每題1.0分,共1分。)39、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤或在下畫(huà)線(xiàn)處填上正確的內(nèi)容并把下畫(huà)線(xiàn)刪除,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<conio.h>#include<string.h>#include<stdio.h>#defineN80intfun(char*s,char*t){int;n;char*p,*r;n=0;/*********found*********/*r=t;while(*s){p=s;while(*r){if(*r==*p){r++;p++;}elsebreak;if(*r==’\0’)n++;}/*********found*********/【1】s++;}returnn;}voidmain(){chara[N],b[N];intm;printf("\nPleaseenterstringa:");gets(a);printf("\nPleaseentersubstringb:");gets(b);m=fun(a,b);printf("\nTheresultis:m=%d\n",m);}標(biāo)準(zhǔn)答案:(1)r=t;(2)r=t;或r=&t[0];知識(shí)點(diǎn)解析:從字符串s中找出子字符串的方法是:從第一個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷,若s串的當(dāng)前字符等于t串的第一個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串t的末尾,則跳出循環(huán);若s串的字符與t串的字符不對(duì)應(yīng)相同,則繼續(xù)對(duì)s串的下一個(gè)字符進(jìn)行處理。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)40、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過(guò)N),按順序合并組成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為{“AAAA”,“BBBBBBB”,“CC”},則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){charw[M][N]={"AAAA","BBBBBBB","CC"};chara[100]={"##################};inti;printf("Thestring:\n");for(i=0;i<M;i++)puts(w[i]);printf("\n");fun(W,a);printf("TheAstring:\n");printf("%s",a);printf("\n\n");}標(biāo)準(zhǔn)答案:voidfun(chara[M][N],char*b){inti,j,k=0;for(i=0;i<M;i++)/*將字符串?dāng)?shù)組中的M個(gè)字符串,按順序存入一個(gè)新的字符串*/for(j=0;a[i][j]!=’\0’;j++)b[k++]=a[i][j];b[k]=’\0’;/*在字符串最后加上字符串結(jié)束標(biāo)記符*/}知識(shí)點(diǎn)解析:本題考查:字符串連接操作。本程序中第1個(gè)for循環(huán)的作用是對(duì)二維數(shù)組行的控制,第2個(gè)循環(huán)的作用是從同一行中取出字符并存放到一維數(shù)組b中,語(yǔ)句是b[k++]=a[i][j];。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)包含數(shù)據(jù)域(da-ta)和指針域(next),數(shù)據(jù)域?yàn)檎汀:瘮?shù)fun的作用是:找出鏈表各結(jié)點(diǎn)數(shù)據(jù)域中的最大值,其最大值由函數(shù)值返回。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在文件BLANK1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<stdlib.h>#pragmawarning(disable:4996)structlist{intdata;structlist*next:};structlist*createlist(intdata[],intn){structlist*head=0,*p,*q;inti;head=(structlist*)malloc(sizeof(structlist));head->data=data[0];p=q=head;for(i=1,i<n,i++){p=(structlist*)malloc(sizeof(structlist));p->data=data[i];q->next=p;q=p;}p->next=NULL;returnhead;}/*********found*********/intfunc(【1】head){intpmax=head->data;structlist*p=head->next;while(p!=NULL){if(p->data>pmax)pmax=p->data;/*********found*********/p=【2】;}/*********found*********/【3】}voidmain(){intdata[]={123,21,65,789,32,310,671,651,81,101},pmax;structlist*head:head=createlist(data,10);pmax=func(head);printf("Max=%d\n",pmax);}標(biāo)準(zhǔn)答案:(I)structlist(2)p->next;(3)returnpmax;知識(shí)點(diǎn)解析:程序定義了結(jié)構(gòu)體類(lèi)型list,用來(lái)作為鏈表的結(jié)點(diǎn)類(lèi)型,它包含兩個(gè)成員:data數(shù)據(jù)成員,next指針成員。func()函數(shù)參數(shù)為鏈表的頭結(jié)點(diǎn)指針,pmax用來(lái)存放最大值,通過(guò)while循環(huán)遍歷整個(gè)鏈表,在遍歷的過(guò)程中,將當(dāng)前結(jié)點(diǎn)的data與pmax比較,若pmax小于當(dāng)前結(jié)點(diǎn)的data,則使用當(dāng)前結(jié)點(diǎn)的data更新pmax,最后將pmax的值作為函數(shù)返回值返回。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODII.C中函數(shù)fun的功能是:從低位開(kāi)始依次取長(zhǎng)整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個(gè)新數(shù)放在t中(注意:位置從0開(kāi)始計(jì)算)。例如:輸入:12345678,則輸出:1357輸入:123456789,則輸出:2468請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#pragmawarning(disable:4996)voidfun(10ngs,long*t){longs1=10;s/=10;/*********found*********/*t=s/10;while(s>0){s=s/100;/*********found*********/t=s%10*s1+t;/*********found*********/s1/=10;}}main(){longs,t;printf("\nPleaseenterlongnumber:");scanf("%1d",&s);fun(s,&t);printf("Theresultis:%1d\n",t);}標(biāo)準(zhǔn)答案:(1)*t=s%10;(2)*t=s%10*s1+*t;(3)s1*=10;知識(shí)點(diǎn)解析:fun()函數(shù)中,s是待處理的數(shù),t是用來(lái)存放新數(shù)的指針,s1表示當(dāng)前數(shù)字在新數(shù)中某位上的基數(shù)。由于題意從s的低位到高位從0開(kāi)始,所以第1個(gè)奇數(shù)位是S的十位數(shù)字,需要將s除以10去掉個(gè)位數(shù)字,s1賦初值為十位的基數(shù)10,將處理后的s的個(gè)位數(shù)字存放到指針t中。接著通過(guò)while循環(huán),每次將S除以100,跳過(guò)偶數(shù)位上的數(shù)字,然后將奇數(shù)位上的數(shù)字乘以對(duì)應(yīng)的基數(shù)s1后,與t指向的數(shù)累加,重新存放到指針t中,并將基數(shù)s1乘以10,表示下一位的基數(shù),直到s為0。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫(xiě)函數(shù)fun,其功能是:在一含有11個(gè)四位數(shù)的數(shù)組中,統(tǒng)計(jì)出這些數(shù)的奇數(shù)、偶數(shù)個(gè)數(shù),然后計(jì)算出個(gè)數(shù)多的那些數(shù)的算術(shù)平均值并由函數(shù)返回,個(gè)數(shù)通過(guò)yy傳回。例如,若11個(gè)數(shù)據(jù)為:1101,1202,1303,1404,1505,2611,2712,2813,2914,3202,4222則輸出:yy=6,pjz=2609.33注意:部分源程序在文件PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。#include<stdio.h>#pragmawarning(disable:4996)#defineN11doublefun(intxx[],int*yy){}main(){intyy,xx[N]=(1101,1202,1303,1404,1505,2611,2712,2813,2914,3202,4222};doublepjz;voidNONO();pjz=fun(xx,&yy);printf("yy=%d,pjz=%.21f\n",yy,pjz);NONO();}voidNONO(){/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti,j,xx[N],yy;doublepjz;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j<N;j++)fscanf(rf,"%d",&xx[j]);pjz=fun(xx,&yy);fprintf(wf,"%d,%.21f\n",yy,pjz);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:doublefun(intxx[],int*yy){inti,odd_count=0,even_count=0;doubleave,odd_sum=0.0,even_sum=0.0;for(i=0;ieven_count){*yy=odd_count;ave=odd-sum/odd_count;}else{*yy=even_count;ave=even_sum/even_count;}returnave;}知識(shí)點(diǎn)解析:程序首先定義循環(huán)變量i,odd_count統(tǒng)計(jì)奇數(shù)個(gè)數(shù),初值為0,even_count統(tǒng)計(jì)偶數(shù)個(gè)數(shù),初值為0,odd_sum統(tǒng)計(jì)奇數(shù)之和,初值為0.0,even_sm統(tǒng)計(jì)偶數(shù)之和,初值為0.0,另外還定義了平均值ave。接著遍歷數(shù)組,對(duì)當(dāng)前元素對(duì)2求余,若結(jié)果為0,表示是偶數(shù),統(tǒng)計(jì)偶數(shù)個(gè)數(shù)同時(shí)累加到even_sum中;若結(jié)果為1,表示奇數(shù),統(tǒng)計(jì)奇數(shù)個(gè)數(shù)同時(shí)累加到odd_sum中。最后比較odd_count和even_count的大小,若odd_count較大,則求得奇數(shù)的平均值ave,并將odd_count存放到y(tǒng)y指向的地址;若even_count較大,則求得偶數(shù)的平均值ave,并將even_count存放到y(tǒng)y指向的地址,最后將ave作為函數(shù)返回值返回。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、當(dāng)變量C的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。A、(c==2)||(c==4)||(c==6)B、(c>=2&&c<=6)||(c!=3)||(c!=5)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)&&(c%2!=1)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查的是邏輯表達(dá)式。邏輯與運(yùn)算中只有兩邊的表達(dá)式同時(shí)為真,最后結(jié)果才為真;參與邏輯或運(yùn)算的表達(dá)式只要有一個(gè)為真,最后結(jié)果就為真。選項(xiàng)A中表達(dá)式的意思是當(dāng)c等于2或4或6時(shí),表達(dá)式的值為真,否則為假,所以不滿(mǎn)足題意。選項(xiàng)C中表達(dá)式的意思是當(dāng)c大于等于2且小于等于6,并且c不是奇數(shù)時(shí),表達(dá)式的值為真,否則為假。此時(shí)滿(mǎn)足該表達(dá)式的c只能取值為2、4、6,所以也不滿(mǎn)足題意。選項(xiàng)D中后面一個(gè)子表達(dá)式(c%21=1)和選項(xiàng)C中的!(c%2)是等價(jià)的,都是判斷c不是奇數(shù),因此也不滿(mǎn)足題意。故B選項(xiàng)正確。2、執(zhí)行以下程序段后,w的值為()。intw=’A’,x=14,y=15;w=((x|y)&&(w<’a’));A、—1B、NULLC、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閤=14,y=15都是非零整數(shù),因此x|y=1。又因?yàn)椤疉’+32=’a’,知w<’a’也為真,因此(x|y)&&(w<’a’)的值為1。3、有以下程序段:inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d",a,b,c);程序的輸出結(jié)果是()。A、a=10b=50c=10B、a=10b=50c=30C、a=10b=30c=10D、a=10b=30c=50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閍=10,b=50,所以a<b,if語(yǔ)句判斷條件不成立,于是執(zhí)行c=a,得到c=10,a和b的值不變。4、有以下程序:#include<stdio.h>intfun(inta,intb){if(b=—0)returna;elsereturn(fun(——a,——b));}main(){printf("%d\n",fun(4,2));}程序運(yùn)行的結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)是一個(gè)遞歸函數(shù),其功能是:當(dāng)b的值為零時(shí),返回此時(shí)a的值;否則,返回fun(——a,——b),即將a和b的值分別減1后返回fun(a,b)。當(dāng)b不斷遞減時(shí),a也不斷遞減,直到b為零。執(zhí)行過(guò)程為:執(zhí)行fun(4,2),b=2,返回f(3,1),此時(shí)b=1,返回f(2,0),b=0,返回a的值2。5、有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf(’’%d\n’’,n);break;case2:case4:printf(’’%d\n’’,n);continue;case0:exit(0);}printf(’’%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()A、for循環(huán)語(yǔ)句固定執(zhí)行8次B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí),執(zhí)行“case0:exit(0)”這條語(yǔ)句,結(jié)束程序的運(yùn)行。6、有以下程序:#include#includemain(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*aa=1;*b=2,*c=3;a=b;prinff(“%d,%d,%d\n”,*a,*b,*c);}程序運(yùn)行后的輸出結(jié)果是()。A、1,1,3B、2,2,3C、1,2,3D、3,3,3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:malloc函數(shù)動(dòng)態(tài)分配一個(gè)整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int:*c)強(qiáng)制類(lèi)型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請(qǐng)的內(nèi)存空間。所以只有最后一個(gè)賦值語(yǔ)句*c=3的值保留在了該空間內(nèi),因?yàn)閍、b、c三個(gè)指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。7、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開(kāi)發(fā)階段是()。A、邏輯設(shè)計(jì)B、需求分析C、詳細(xì)設(shè)計(jì)D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件開(kāi)發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。8、若有定義“intx,y;”并已正確給變量賦值,則下列選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式“(x-y)”等價(jià)的是()。A、(x-y>0)B、(x-y<0)C、(x-y<0||x-y>0)D、(x-y=0)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:條件表達(dá)式的形式如下:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時(shí),則求“表達(dá)式3”的值,這時(shí)“表達(dá)式3”的值就是整個(gè)表達(dá)式的值。本題條件表達(dá)式的執(zhí)行順序是先求解表達(dá)式“x-y”的值,若其值為非0(可以是正數(shù),也可以是負(fù)數(shù)),則再求表達(dá)式“x++”的值,其值就是條件表達(dá)式的值;若表達(dá)式“x-y”的值為0,則再求表達(dá)式“y++”的值,其值就是條件表達(dá)式的值。因此,本題的答案為選項(xiàng)C。9、下列敘述中正確的是()。A、在switch語(yǔ)句中,不一定使用break語(yǔ)句B、在switch語(yǔ)句中必須使用defaultC、break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用D、break語(yǔ)句只能用于switch語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:default語(yǔ)句在switch語(yǔ)句中可以省略,所以B錯(cuò)誤;switch語(yǔ)句中并非每個(gè)case后都需要使用break語(yǔ)句,所以C錯(cuò)誤;break語(yǔ)句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D錯(cuò)誤。10、有以下程序:#include<stdio.h>main(){chaurx=2,y=2,z;z=(y<<1)&(x>>1);pnnff("%d\n",z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確。11、C語(yǔ)言規(guī)定,函數(shù)返回值的類(lèi)型是()。A、由調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類(lèi)型所決定B、由return語(yǔ)句中的表達(dá)式類(lèi)型所決定C、由調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定D、由定義該函數(shù)時(shí)所指定的數(shù)值類(lèi)型決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的數(shù)值類(lèi)型。函數(shù)調(diào)用時(shí),函數(shù)返回值的類(lèi)型既不由主調(diào)函數(shù)類(lèi)型所決定,也不由return語(yǔ)句中的表達(dá)式類(lèi)型所決定,更不是由系統(tǒng)臨時(shí)決定,而是由定義該函數(shù)時(shí)所指定的數(shù)值類(lèi)型所決定。12、有以下程序:#include<stdio.h>main(){inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;for(i=0;i<3;i++)for(k=i+1;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++)printf("%d,",a[0][i]);}程序運(yùn)行后的輸出結(jié)果是()。A、1,1,2,6,B、6,2,1,1,C、6,4,3,2,D、2,3,4,6,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先對(duì)二維數(shù)組進(jìn)行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為1、4、…、6、1。通過(guò)for嵌套循環(huán)語(yǔ)句和if條件語(yǔ)句,對(duì)二維數(shù)組對(duì)角線(xiàn)元素進(jìn)行由大到小的排序操作,程序最后通過(guò)for語(yǔ)句輸出二維數(shù)組第1行的4個(gè)元素。因此C選項(xiàng)正確。13、在下列敘述中,錯(cuò)誤的是()。A、C語(yǔ)言中,二維數(shù)組或多維數(shù)組是按行存放的B、賦值表達(dá)式b[1][2]=a[2][3]是正確的C、chara[1];a[0]=’A’與inta[1];a[0]=’A’等價(jià)D、數(shù)組名后的方括號(hào)內(nèi)可以為常量表達(dá)式,也可以為變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查數(shù)組的4個(gè)知識(shí)點(diǎn):①C語(yǔ)言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放:②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型數(shù)組中存放的是字符對(duì)應(yīng)的ASCII碼值,雖然在計(jì)算機(jī)內(nèi)部字符常量都是作為整型量來(lái)處理的,其對(duì)應(yīng)的整數(shù)值就足ASCII碼值,但兩者并不完全等價(jià);④數(shù)組名后的方括號(hào)內(nèi)可以為常量,也可以為常量表達(dá)式,但不可以為變量。14、下面函數(shù)的功能是()。SSS(S,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}A、將字符串s復(fù)制到字符串t中B、比較兩個(gè)字符串的大小C、求字符串的長(zhǎng)度D、將字符串S接續(xù)到字符串t中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:*s-*t的輸出實(shí)際是比較兩個(gè)字符的ASCII碼值,比較兩個(gè)字符串的大小。15、對(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ì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。16、有以下程序:#include<stdio.h>main(){inta=3:a+=a-=a*a;printf("%d\n",a);}程序的輸出結(jié)果是()。A、0B、9C、3D、-12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:等號(hào)“=”運(yùn)算符是從右到左,且與“+、-、*”運(yùn)算符比,優(yōu)先級(jí)較低。首先計(jì)算a*a,結(jié)果為9,執(zhí)行a=a-9后a的值為-6,然后執(zhí)行a+=a,即a=a+a=-6+(-6),所以值為-12。17、以下選項(xiàng)中,能用做數(shù)據(jù)常量的是()。A、115LB、0118C、1.5e1.5D、0115標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中115L表示115是長(zhǎng)整型數(shù)據(jù),合法。B選項(xiàng)是八進(jìn)制常量的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B錯(cuò)誤。C選項(xiàng)中e后面應(yīng)該是整數(shù)不能是小數(shù)1.5,所以c錯(cuò)誤。D選項(xiàng)中八進(jìn)制常量應(yīng)該是數(shù)字“0”開(kāi)始,而不是字母“o”開(kāi)始。18、下面程序運(yùn)行后的輸出結(jié)果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[i]];printf(’’%d\n’’,s);}A、12B、15C、11D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這道題目是計(jì)算一維數(shù)組b中某些元素的和。這些元素的下標(biāo)值是一維數(shù)組a中元素值。s=0+b[1]+b[0]+b[4]+b[2]+b[0]=2+l+5+3+1=12。19、若有定義語(yǔ)句:inta=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。A、a=(b=4)=3;B、a=b=c+1;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這道題目主要考察賦值表達(dá)式,對(duì)于賦值表達(dá)式來(lái)說(shuō),賦值號(hào)“=”的左邊一定為變量名,右邊為一個(gè)C語(yǔ)言合法的表達(dá)式。20、有以下程序:#include<stdio.h>main(){unsignedchara=8,c;c=a>>3:printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A、32B、16C、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符常量與其ASCII碼值一一對(duì)應(yīng),在計(jì)算的時(shí)候,可以使用該字符的ASCII碼參與運(yùn)算,輸出時(shí)會(huì)根據(jù)格式控制符輸出對(duì)應(yīng)的字符或者ASCII碼。右移運(yùn)算符“>>”的運(yùn)算規(guī)則是把左邊運(yùn)算數(shù)的各二進(jìn)制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCII碼值為8,對(duì)應(yīng)二進(jìn)制為1000,所以a>>3=1,輸出的字符c的ASCII碼值為1,答案選C。21、棧和隊(duì)列的共同點(diǎn)是()。A、都是先進(jìn)后出B、都是先進(jìn)先出C、只允許在端點(diǎn)處插入和刪除元素D、沒(méi)有共同點(diǎn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧和隊(duì)列都是一種特殊的操作受限的線(xiàn)性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線(xiàn)性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線(xiàn)性表。22、C語(yǔ)言規(guī)定,在一個(gè)C程序中,main()函數(shù)的位置()。A、必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)之后B、必須在程序的開(kāi)始C、必須在程序的最后D、可以在任意位置標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:每個(gè)C程序有且只有一個(gè)主函數(shù)(main),且程序必須從“main()”函數(shù)開(kāi)始執(zhí)行,而且“main()”函數(shù)可以放在程序中的任意位置。23、以下敘述中正確的是()。A、a是實(shí)型變量,a=10在C語(yǔ)言中是允許的,因此可以說(shuō):實(shí)型變量中可以存放整型數(shù)B、在賦值表達(dá)式中,賦值號(hào)的右邊可以是變量,也可以是任意表達(dá)式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)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中a是實(shí)型變量,a=10在C語(yǔ)言中是允許的,但是實(shí)型變量中不可以存放整型數(shù)。C選項(xiàng)中執(zhí)行a=b后,a的值變?yōu)閎的值,為9,b的值不變,仍為9。D選項(xiàng)中執(zhí)行a=b后,a的值為9,b的值為9,執(zhí)行b=a后,a的值為9,b的值也為9,所以選擇B。24、下列方法中,屬于白盒法設(shè)計(jì)測(cè)試用例的方法的是()。A、錯(cuò)誤推測(cè)B、因果圖C、基本路徑測(cè)試D、邊界值分析標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:白盒測(cè)試方法也稱(chēng)為結(jié)構(gòu)測(cè)試或邏輯測(cè)試,主要方法有邏輯覆蓋測(cè)試、基本路徑測(cè)試等。25、設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1):1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是A、判斷m是否能被5和7整除B、判斷m被5和7整除是否都余2C、判斷m被5或者7整除是否余1D、判斷m是否能被5或者7整除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析26、需求分析階段的任務(wù)是()。A、軟件開(kāi)發(fā)方法B、軟件開(kāi)發(fā)工具C、軟件開(kāi)發(fā)費(fèi)用D、軟件系統(tǒng)功能標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶(hù)的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。27、有以下程序:#includemain(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。A、1B、2C、4D、死循環(huán)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:--k先自減再使用,所以第一次判斷條件即為while(4),條件為真,打印k的值,k=4-3,結(jié)果為1;第二次判斷條件即為while(0),條件為假,結(jié)束循環(huán),打印回車(chē)換行符。所以選擇A選項(xiàng)。28、軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:結(jié)構(gòu)化解析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求解析階段的運(yùn)用,數(shù)據(jù)流圖(DataFlowDiagram,DFD))是結(jié)構(gòu)化解析常用的工具之一,數(shù)據(jù)字典、判定樹(shù)和判定表也是常用的結(jié)構(gòu)化分析工具。程序流程圖、NS圖、PAD圖等圖形工具用于詳細(xì)設(shè)計(jì)的過(guò)程中。29、若有定義語(yǔ)句:doublea,*P=&a;以下敘述中錯(cuò)誤的是()。A、定義語(yǔ)句中的*號(hào)是一個(gè)間址運(yùn)算符B、定義語(yǔ)句中的*號(hào)是一個(gè)說(shuō)明符C、定義語(yǔ)句中的P只能存放double類(lèi)型變量的地址D、定義語(yǔ)句中,*P=&a把變量a的地址作為初值賦給指針變量P標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在變量定義doublea,*p=&a;中,*號(hào)是一個(gè)指針運(yùn)算符,而非間址運(yùn)算符,所以A錯(cuò)誤。30、有以下程序#include<stdio.h>main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是A、輸出字符c的ASCII碼B、程序出錯(cuò)C、輸出字符cD、輸出字符a的ASCII碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察數(shù)組名的概念。在C語(yǔ)言中,數(shù)組名類(lèi)似于一個(gè)指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的s+=2;語(yǔ)句讓數(shù)組名s的內(nèi)容加2是錯(cuò)誤的,編譯無(wú)法通過(guò)。因此B選項(xiàng)正確。31、下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。A、#defineintINTB、##defineeps0.001C、##DEFINETRUED、#defineE2.88標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A中,int是關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符,錯(cuò)誤;選項(xiàng)B中,兩個(gè)#號(hào)錯(cuò)誤;選項(xiàng)C中兩個(gè)#號(hào)錯(cuò)誤,另外DFINE大寫(xiě)也是錯(cuò)誤的;選項(xiàng)D正確;本題答案為D。32、有以下程序:#includemain(){inta=2,b=3,c=4;int*p1=&a,*p2=&b,*p=&c;*p=2+*p1*(*p2);printf(’’/%d\n’’,c);}程序執(zhí)行后的輸出結(jié)果是()。A、4B、2C、3D、8標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:指針指向的是變量的地址,所以指針變量所指向的空間的值發(fā)生變化,其指向的變量的值會(huì)同時(shí)發(fā)生變化,因此,c=2+a*b=2+2*3=8。33、設(shè)有定義:intx=11,y=12,z=0;,以下表達(dá)式值不等于12的是A、(z,x,y)B、(z=x,y)C、z=(x,y)D、z=(x==y)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:逗號(hào)表達(dá)式的計(jì)算過(guò)程是從左到右逐個(gè)求每個(gè)表達(dá)式的值,取最右邊一個(gè)表達(dá)式的值作為該逗號(hào)表達(dá)式的值。賦值運(yùn)算結(jié)合性為由右向左結(jié)合,賦值運(yùn)算符左值為變量,右值為變量或常量,且左右兩邊數(shù)據(jù)類(lèi)型相同才能實(shí)現(xiàn)賦值。成功實(shí)現(xiàn)賦值后以左值為返回值。邏輯表達(dá)式成立則返回1,不成立返回0。A選項(xiàng)邏輯表達(dá)式x==y不成立,則z=0,表達(dá)式值為0。B選項(xiàng)中逗號(hào)表達(dá)式x,y取y值為表達(dá)式值,然后賦值給z=12,表達(dá)式值為12。C選項(xiàng)逗號(hào)表達(dá)式(x,y)取y值為表達(dá)式值,然后賦值給z=12,表達(dá)式值為12。D選項(xiàng)逗號(hào)表達(dá)式(z,x,y)取y值為表達(dá)式值12。選擇D選項(xiàng)。34、有如下程序段int*p,a=1;p=&a;*p=10;則變量a的值為A、不能確定B、1C、10D、11標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題中定義一個(gè)指針變量p和整數(shù)并將a賦值為1,再把a(bǔ)地址的值賦給指針p,最后把10賦給指針p所對(duì)應(yīng)的地址單元,此時(shí)改變了a的值,a=10,答案為C選項(xiàng)。35、有以下程序#defineOut(n)n%2==0?"%c":"%d"#include<stdio.h>main(){intx;for(x=65;x<69;x++)printf(Out(x),x);}程序的運(yùn)行結(jié)果是A、ABCDB、A66C68C、65666768D、65B67D標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:#define命令定義一個(gè)函數(shù),該函數(shù)判斷一個(gè)數(shù)能否整除2,如果能,默認(rèn)當(dāng)前數(shù)值為字符類(lèi)型的ASCII碼值,否則認(rèn)為當(dāng)前數(shù)值為整數(shù)類(lèi)型,在for循環(huán)中,調(diào)用該函數(shù)進(jìn)行輸出,答案為D選項(xiàng)。36、對(duì)于if(表達(dá)式)語(yǔ)句,以下敘述正確的是A、表達(dá)式不能是變量B、表達(dá)式的值只能是整數(shù)值C、表達(dá)式可以是常量D、表達(dá)式中不可以出現(xiàn)字符型變量的比較標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言沒(méi)有規(guī)定if(表達(dá)式)中的"表達(dá)式"的形式,可以是任意合法表達(dá)式。故答案為C選項(xiàng)。37、在三級(jí)模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲(chǔ)空間的利用率標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)在數(shù)據(jù)庫(kù)的三級(jí)模式之間提供了兩層映像,保證了數(shù)據(jù)庫(kù)中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。38、兩次運(yùn)行下面的程序,如果從鍵盤(pán)上分別輸入3和2,則輸出結(jié)果是()。#include<stdio.h>main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}A、4和3B、4和2C、4和1D、3和2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if…else語(yǔ)句。首先,scanf函數(shù)通過(guò)鍵盤(pán)讀入x的值。當(dāng)x=3時(shí),第一個(gè)if語(yǔ)句先判斷條件,取x的值3和2比較,然后將x的值加1,if條件成立,執(zhí)行下面的printf語(yǔ)句,輸出x的值4。當(dāng)x=2時(shí),第一個(gè)if語(yǔ)句先判斷條件,先取x的值2和2比較,然后將x的值加1(x的值變?yōu)?),if條件不成立,執(zhí)行下面的else語(yǔ)句,先輸出x的值3,再將x的值減1。39、有下列程序段:typedefstructNODE{intnum;structNODE*next;}OLD;下列敘述中正確的是()。A、以上的說(shuō)明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類(lèi)型C、OLD是一個(gè)結(jié)構(gòu)體類(lèi)型D、OLD是一個(gè)結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新類(lèi)型名,其一般形式為:typedef類(lèi)型名標(biāo)識(shí)符。typedef語(yǔ)句的作用僅僅是使“標(biāo)識(shí)符"來(lái)代表已存在的“類(lèi)型名”,并未產(chǎn)生新的數(shù)據(jù)類(lèi)型。原有類(lèi)型名依然有效。此題中,用typedef定義了新的類(lèi)型OLD結(jié)構(gòu),所以O(shè)LD為結(jié)構(gòu)體類(lèi)型。二、程序填空題(本題共1題,每題1.0分,共1分。)40、給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)返回值為1,失敗時(shí)返回值為0。在復(fù)制的過(guò)程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標(biāo)文件名放在變量tfname中。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#includeintfun(char*source,char*target;)(FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source,______1______))==NULL)return0;if((ft=fopen(target,"w"))==NULL)return0;printf("\nThedatainfile:\n");ch=fgetc(fs);/**********found**********/while(!feof(______2______)){putchar(ch);/**********found**********/fputc(ch,______3______);ch=fgetc(fs);}fclose(fs);fclose(ft);printf("\n\n");return1;}main()(charsfname[20]="myfile1",tfname[20]="myfile2";FILE*myf;inti;chac;myf=fopen(sfname,"w");printf("\nTheoriginaldata:\n");for(i=1;i<30;i++){c=’A’+rand()%25;fprintf(myf,"%c",c);printf("%c",c);)fclose(myf);printf("\n\n");if(fun(sfname,tfname))printf("Succeed!");elseprintf("Fail!");}標(biāo)準(zhǔn)答案:(1)"r"(2)fs(3)ft知識(shí)點(diǎn)解析:第一空:將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,源文件只需讀,因此以只讀方式打開(kāi)即可,故第一空處應(yīng)該是“if((fs=fopen(source,"r"))=NULL)”。第二空:“while(!feof(__2__))”循環(huán)的目的是不斷讀取源文件直至到達(dá)源文件的末尾,循環(huán)結(jié)束標(biāo)志是已達(dá)到文件的末尾。用feof()函數(shù)來(lái)檢查是否已經(jīng)到了文件末尾,文件狀態(tài)檢測(cè)函數(shù)feof()的調(diào)用形式是:feof(fs),如果已經(jīng)到達(dá)文件尾函數(shù)返回非零值,否則返回0,故第二空處應(yīng)該是“while(!feof(fs))”。第三空:考察fputc函數(shù)的使用方法,fputc函數(shù)的調(diào)用形式是:fputc(ch,ft),ch是要輸出的字符,由“ch=fgetc(fs)”從源文件讀到字符ch,然后將ch寫(xiě)到目標(biāo)文件中,故第三空處應(yīng)該是“fputc(ch,ft);”。三、程序修改題(本題共1題,每題1.0分,共1分。)41、使用VC++2010打開(kāi)考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:計(jì)算并輸出k以?xún)?nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為4622。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>intfun(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10)){/*********found*********/if((k%13=0)||(k%17=0)){m=m+k;mc++;}k--;/*********found*********/returnm;}voidmain(){system("CLS");printf("%d\n",fun(500));}標(biāo)準(zhǔn)答案:(1)if((k%13==0)||(k%17==0))(2)}returnm;知識(shí)點(diǎn)解析:(1)C語(yǔ)言中,x能被y整除的表示方法是x%y=0,而不是題目中所表示的x%y=0。所以,if((k%13=0)||(k%17=0))修改后的結(jié)果應(yīng)該是答案所示信息。(2)程序中缺少程序完整所需的"}",此類(lèi)信息在做題時(shí)一定要注意,可以在做題前先運(yùn)行一下程序,這樣明顯的錯(cuò)誤一般都會(huì)有錯(cuò)誤信息顯示出來(lái)。比如丟失"}"的錯(cuò)誤信息是"Compoundstatementmissing}infunctionfun"。四、程序設(shè)計(jì)題

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論