版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(C語言)機(jī)試模擬試卷21(共9套)(共342題)國家二級(C語言)機(jī)試模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:根據(jù)形參c中指定的英文字母,按順序打印出若干后繼相鄰字母,輸出字母的大小寫與形參c一致,數(shù)量由形參d指定。若輸出字母中有字母Z或z,則應(yīng)從A或a開始接續(xù),直到輸出指定數(shù)量的字母。例如:c為’Y’,d為4,則程序輸出ZABC;c為’z’,d為2,則程序輸出ab。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在文件BIANK1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#pragmawarning(dLsable:4996)voidfun(charc,intd){inti;charA[26],a[26],*ptr;/*********found*********/for(i=0;i<【1】;i++){A[i]=’A’+i;a[i]=’a’+i;}/*********found*********/if((c>=’a’)&&(c【2】’z’))ptr=a;elseptr=A;/*********found*********/for(i=1;i<=d;i++)printf("%c",ptr[(c-ptr[0]+i)%【3】]);}main(){charc;intd;printf("pleaseinputc&d:\n");scanf("%c%d",&c,&d);fun(c,d);}標(biāo)準(zhǔn)答案:(1)26(2)<=(3)26知識點(diǎn)解析:函數(shù)fun()中首先將大寫字母按照字母表的順序存放到數(shù)組A中,將小寫字母按照字母表的順序存放到數(shù)組a中;然后判斷輸入的字符c,若字符c是小寫字母,則將指針ptr指向數(shù)組a,若是大寫字母,將指針ptr指向數(shù)組A;然后使用變量i遍歷1到d,輸出ptr所指數(shù)組中,偏移量為c-ptr[0]+i的元素,若偏移量c-ptr[0]+i>=26,則對26求余,循環(huán)輸出數(shù)組開始部分的元素。注意:題意要求輸出當(dāng)前字符的后繼字符,所以c-ptr[0]+i是將當(dāng)前字符c減去ptr所指元素,然后與i相加,得到后繼第i個(gè)字符的下標(biāo)。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODII.C中,函數(shù)fun的功能是:分別統(tǒng)計(jì)出形參str所指的字符串中的大寫字母和小寫字母的個(gè)數(shù),并傳遞回主函數(shù)輸出。例如,若str所指的內(nèi)容為”BAY23Kill”,其中大寫字母數(shù)為4,小寫字母數(shù)為3,則應(yīng)輸出:c0=4,c1=3。請改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>#pragmawarninq(disable:4996)voidfun(char*str,int*c0,int*c1){intk;/*********found*********/c0=c1=0;/*********found*********/for(k=1;k<strlen(str);k++){/*********found*********/if((str[k]>=’A’)&&(str[k]<=’z’))*c0++;if((str[k]>=’a’)&&(str[k]<=’z’))(*c1)++;}}main(){charstr[100];intc0,c1;printf("inputstring:");scanf("%s",str);fun(str,&c0,&c1);printf("c0=%d,c1=%d\n",c0,c1);}標(biāo)準(zhǔn)答案:(1)*c0=*c1=0;(2)fof(k=0;k知識點(diǎn)解析:函數(shù)fun()的參數(shù)分別是str,c0,c1,其中str指向待處理的字符串,c0所指變量用來統(tǒng)計(jì)字符串中大寫字母的個(gè)數(shù),c1所指變量用來統(tǒng)計(jì)字符串中小寫字母的個(gè)數(shù)。首先對c0和c1所指變量賦初值為0,然后遍歷字符串str,若當(dāng)前字符str[i]的ASCII碼在’A’到’z’之間,則對c0所指變量的值自增1,若當(dāng)前字符str[i]的ASCII碼在’a’到’z’之間,則對c1所指變量的值自增1,由于c0和c1都是指針變量,所以在使用地址中存儲的數(shù)據(jù)時(shí),需要對它們進(jìn)行解引用。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請編寫函數(shù)fun,其功能是:統(tǒng)計(jì)出x所指數(shù)組中能被e整除的元素個(gè)數(shù),通過函數(shù)值返回主函數(shù);同時(shí),計(jì)算不能被e整除的元素之和,放到形參sum所指的存儲單元中。例如,當(dāng)數(shù)組x內(nèi)容為1,7,8,6,10,15,11,13,29,31,整數(shù)e內(nèi)容為3時(shí),輸出結(jié)果應(yīng)該是:n=2,sum=110注意:部分源程序在文件PROG1.C中。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include<stdio.h>#pragmawarning(disable:4996)#defineN10intfun(intx[],inte,int*sum){}main(){voidNONO();intx[N]={1,7,8,6,10,15,11,13,29,31},e=3,n,sum;n=fun(x,e,&sum);printf("n=%d,sum=%d\n",n,sum);NONO();}voidNONO(){/*請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti,j,X[10],n,e,sum;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<5;i++){for(j=0;j<10;j++)fscanf(rf,"%d",&x[j]);fscanf(rf,"%d",&e);n=fun(x,e,&sum);fprintf(wf,"%d,%d\n",n,sum);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:intfun(intx[],inte,int*sum){inti,count=0;*sum=0;for(i=0;i知識點(diǎn)解析:程序首先定義循環(huán)變量i,整型變量count,count賦初值為0,count用來統(tǒng)計(jì)可以被e整除的元素個(gè)數(shù);由于sum是main函數(shù)傳入的指針變量,用來存放不能被e整除的元素之和,所以程序需要對sum所指變量賦初值為0;接著通過for循環(huán)變量數(shù)組x,將x[i]對e求余,若余數(shù)為0,則當(dāng)前x[i]可以被e整除,將count自增1,若余數(shù)不為0,則x[i]不能被e整除,將x[i]累加到sum所指變量中,最后將count作為函數(shù)返回值返回。國家二級(C語言)機(jī)試模擬試卷第2套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是()。A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說法均錯(cuò)誤標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。2、設(shè)數(shù)據(jù)元素的集合D={1,2,3,4,5},則滿足下列關(guān)系R的數(shù)據(jù)結(jié)構(gòu)中為線性結(jié)構(gòu)的是()。A、R={(1,2),(3,4),(5,1)}B、R={(1,3),(4,1),(3,2),(5,4)}C、R={(1,2),(2,3),(4,5)}D、R={(1,3),(2,4),(3,5)}標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:關(guān)系R中的每個(gè)結(jié)點(diǎn)由兩個(gè)部分構(gòu)成,分別是數(shù)據(jù)域和指針域。選項(xiàng)B)中可以看出,元素序列為5→4→1→3→2,符合線性結(jié)構(gòu)的條件。選項(xiàng)A)、選項(xiàng)C)和選項(xiàng)D)中分別有兩個(gè)根結(jié)點(diǎn),不符合線性結(jié)構(gòu)的條件。所以答案選B)。3、下列不合法的用戶標(biāo)識符是()。A、j2_KEYB、DoubleC、4dD、_8_標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言程序中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字母或下劃線。4、設(shè)有定義:doublex=2.12;,則以下各項(xiàng)中不能完整輸出變量x值的語句是()。A、printf("x=%5.of\n",x);B、printf("x=%f\n",x);C、printf("x=%lf\n",x);D、printf("x=%O.5f\n",x);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查printf函數(shù)的格式輸出,“格式控制字符串”部分為“%f”表示按照浮點(diǎn)型輸出,選項(xiàng)B正確;加入長度格式符1即“%1”表示按照雙精度浮點(diǎn)型輸出,選項(xiàng)C正確;若要控制輸出精度,則需以“.”開頭,后跟十進(jìn)制整數(shù),如“%.2f”或“%O.2f”,選項(xiàng)D正確;控制輸出寬度則是用整數(shù)表示,如“%5f”,選項(xiàng)A中“%5.Of’’表示輸出寬度為5,右對齊,小數(shù)點(diǎn)后保留位數(shù)為0,所以結(jié)果輸出為2,不能完整輸出x,答案選A。5、若定義函數(shù)int*func(),則函數(shù)func的返M值為()。A、一個(gè)實(shí)數(shù)B、一個(gè)指向整型變量的指針C、一個(gè)指向整型函數(shù)的指針D、一個(gè)整型函數(shù)的入口地址標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:今題考查函數(shù)返回值。fun函數(shù)的返回值類型為int*類型,即函數(shù)返回一個(gè)指向整型變量的指針。6、若有定義語句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出“OK”的語句是()。A、if(strcmp(s1,s2)!=0)puts(s2);B、if(strcmp(s1,s2)!=0)puts(s1);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCII碼值大小),以第一個(gè)不相同的字符的大小作為比較結(jié)果。因?yàn)?;?’<’0’,所以strcmp(s1,s2)為負(fù)值,只有B選項(xiàng)正確。7、下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。A、內(nèi)模式B、外模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。8、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。9、設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。A、it(x++);B、if(x>y&&y!=0);C、ifi(x>y)x-elsey++;D、if(y<0){;}elsex++;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:選項(xiàng)C)中,if(x>y)后面的“x一”是一個(gè)表達(dá)式而不是一個(gè)語句,所以在編譯時(shí)會產(chǎn)生錯(cuò)誤信息。10、下列說法正確的是()。A、int(**def)[10];----def指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組B、int*(*gh[10]);---gh指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組C、int*(*gh[10]);---gh是一個(gè)指針,指向由10個(gè)指向整型變量的指針構(gòu)成的數(shù)組D、A,C均正確標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:int*(*gh[10]):--gh是一個(gè)指針,指向由10個(gè)指向整型變量的指針構(gòu)成的數(shù)組,int(**def)[10]----def指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組。11、有以下程序:intf1(doublea){returna*a;}intf2(intx,inty}{doublea,b;a=f1(x);b=f1(y);returna+b;}main(){doublew;w=f2(2.1,4.0);}程序執(zhí)行后,變量w的值是()。A、20.21B、20C、20.0D、0.0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查函數(shù)調(diào)用的使用。計(jì)算w的時(shí)候,先調(diào)用f2函數(shù),f2函數(shù)的公式是“a+b”,計(jì)算a和b的時(shí)候又調(diào)用到f1函數(shù),f1的函數(shù)是“a*a”,因此,w的計(jì)算公式為:w=(double)[(int)(2.1*2.1)+(int)(4.0*4.0)]=20.0。12、若有說明“intm[3][4]={3,9,7,8.5},(*q)[4];”和賦值語句“q=m;”,則對數(shù)組元素“m[i][j](其中0<=i<3,0<=j<4)”值的正確引用為()。A、(q+i)[j]B、*q[i][j]C、*(*q[i]+j)D、*(*(q+i)+j)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:*(q+i)指向第i行首地址,*(*(q+i)+i)代表第i行第i個(gè)元素。13、以下選項(xiàng)中正確的定義語句是()。A、doublea;b;B、doublea=b=7;C、doublea=7,b=7;D、double,a,b;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:同一類型變量的定義時(shí),不同變量之間需要用“,”分隔;定義變量時(shí)初始化賦值時(shí)不能用等號連接;變量類型說明后面不能用逗號,而是用空格分離。14、若變量已正確定義,有以下程序段:i=0:doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。A、0,0B、0,1C、1,1D、程序進(jìn)入無限循環(huán)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:do…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計(jì)算while后一對圓括號中表達(dá)式的值。當(dāng)值為非0時(shí),轉(zhuǎn)去執(zhí)行步驟①;當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語句,輸出變量i的值0。再判斷while后面括號中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。15、有以下程序:#include<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b:t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1,2,3,4,5,6,7,8,9,0,B、2,1,4,3.6,5,8.7.0.9,C、0,9,8,7,6,5,4,3,2,1,D、0,1,2,3,4,5,6,7,8,9,標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給彤參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值小會變化,所以數(shù)組c中的元素的值并沒有變化,選擇A。16、以下程序的輸出結(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知識點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dā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。17、若有以下程序段:intr=8;pfinff("%d\n",r>>1);輸出結(jié)果是()。A、16B、8C、4D、2標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言中“>>”是二進(jìn)制的右移運(yùn)算符,右移相當(dāng)于將原數(shù)做除二操作,它將原數(shù)右移相應(yīng)位數(shù),并將移出的位信息舍去,在高位補(bǔ)0。本題中8的二進(jìn)制為00001000,右移一位得到00000100,所以輸出4。18、不能正確表示數(shù)學(xué)式的表達(dá)式是()。A、a/c*bB、a*b/cC、a/b*cD、a*(b/E、C標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:/號和*號的優(yōu)先級處于平級,結(jié)合性都是自左至右。所以選擇C,表示。19、以下關(guān)于typedef的敘述錯(cuò)誤的是()。A、用typedef可以增加新類型B、typedef只是將已存在的類型用一個(gè)新的名字來代替C、用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名D、用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:typedef并不是增加了新類型。而是用一個(gè)新名字替代已存在的類型,不能為變量說明一個(gè)新名,使用typedef可以增強(qiáng)程序的可移植性。所以A選項(xiàng)錯(cuò)誤。20、若有以下程序段:intr=8:prinff(“%d\n”,r>>1);程序運(yùn)行后的輸出結(jié)果是()。A、16B、8C、4D、2標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查位運(yùn)算,屬于基礎(chǔ)知識,題目中將整型變量8,二進(jìn)制表達(dá)為00001000,右移一位為00000100,即4.選項(xiàng)C正確。21、待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:選擇排序的基本思想是掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則被交換放在第三個(gè)位置。22、在三級模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲空間的利用率標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。23、有以下程序#includevoidmain(){intn=2,k=1;while(!(k>0‖n++));printf(“%d%d\n”,k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變最k的初始值等于1,在執(zhí)行while語句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷n++是甭為真,(k>0||n++)表達(dá)式的值為真。!(k、0||n++)表達(dá)式的值為假,所以while語句中的條件不滿足,循環(huán)語句不會執(zhí)行,變量n的值也不會加1,所在輸出變量k和n的值是1和2。24、以下敘述中正確的是()。A、復(fù)合語句在語法上包含多條語句,其中不能定義局部變量B、花括號對{}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的C、空語句就是指程序中的空行D、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任意修改標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:復(fù)合語句可以包含多條語句,在其中可以定義局部變量,所以A錯(cuò)誤。花括號對{}不僅用來表示函數(shù)的開頭和結(jié)尾,也可以用于表示復(fù)合語句,所以B錯(cuò)誤。C語言只有分號“;”組成的語句稱為空語句,空語句是什么也不執(zhí)行的語句,顯然空語句不是空行。所以C錯(cuò)誤。25、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以"#"開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查文件包含處理。文件包含命令的功能是把指定的文件添加到預(yù)處理部分,從而把指定的文件和當(dāng)前的源程序文件連接起來,該文件則包含了程序要調(diào)用的函數(shù)的聲明。由此,選項(xiàng)B)、C)、D)表述錯(cuò)誤。答案選A)。26、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:線性結(jié)構(gòu)應(yīng)滿足:有且只有一個(gè)根結(jié)點(diǎn)與每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,所以B正確。所以有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu),所以A錯(cuò)誤。循環(huán)鏈表和雙向鏈表都是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。27、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是()。intk=0;while(k=1)k++;A、有語法錯(cuò)誤,不能執(zhí)行B、一次也不執(zhí)行C、執(zhí)行一次D、無限次標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查while語句,while語句的語義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非O)時(shí),執(zhí)行循環(huán)體語句。k=1為賦值語句,即k的值等于1。while(k=1)=while(1),是死循環(huán),執(zhí)行無限次。因此D選項(xiàng)正確。28、某循環(huán)隊(duì)列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m。現(xiàn)經(jīng)過一系列的入隊(duì)操作和退隊(duì)操作后,front=m,rear=m-1,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。A、m-1B、mC、1D、0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:循環(huán)隊(duì)列長度為m,由初始狀態(tài)為front=rear=m,可知此時(shí)循環(huán)隊(duì)列為空。入隊(duì)運(yùn)算時(shí),首先隊(duì)尾指針進(jìn)1(即lear+1),然后在lear指針指向的位置插入新元素。特別的,當(dāng)隊(duì)尾指針rear=m+1時(shí),置rear=1。退隊(duì)運(yùn)算時(shí),排頭指針進(jìn)1(即front+1),然后刪除front指針指向的位置上的元素,當(dāng)排頭指針front=m+1時(shí),置front=1。從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。如果rear-front>0,則隊(duì)列中的元素個(gè)數(shù)為rear-front個(gè);如果rear-front<0,則隊(duì)列中的元素個(gè)數(shù)為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為(m-1)-m+m=m-1。故選A選項(xiàng)。29、若有以下程序#include<stdio.h>voidsp(int*a){intb=2;*a=*a*2;printf("%d,",*a);a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3;sp(&k);printf("%d\n",k);}則程序的輸出結(jié)果是A、6,12,12B、6,4,3C、6,4,6D、9,4,9標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:首先在主函數(shù)中給整型變量k賦值為3,調(diào)用sp函數(shù),將變量k的地址作為實(shí)參傳遞給形參指針變量a;在sp函數(shù)中,*a=*a*2;即結(jié)果為6,通過printf()函數(shù)輸出。整型變量b的地址賦給指針變量a,再執(zhí)行*a=*a*2;,即結(jié)果為4,通過printf()函數(shù)輸出。返回主函數(shù),輸出k的值6。因此C選項(xiàng)正確。30、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的特點(diǎn)為高共享、低冗余、獨(dú)立性高、具有完整性等,C錯(cuò)誤。31、下面屬于系統(tǒng)軟件的是A、財(cái)務(wù)管理系統(tǒng)B、數(shù)據(jù)庫管理系統(tǒng)C、編輯軟件WordD、殺毒軟件標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:計(jì)算機(jī)軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。系統(tǒng)軟件是管理計(jì)算機(jī)的資源,提高計(jì)算機(jī)的使用效率,為用戶提供各種服務(wù)的軟件,如操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、編譯程序、匯編程序和網(wǎng)絡(luò)軟件等,B選項(xiàng)正確。A、C、D選項(xiàng)為應(yīng)用軟件。32、若有定義:inta;floatb;doublec;,程序運(yùn)行時(shí)輸入:a=1,b=2,c=3<回車>,能把值1輸入給變量a、值2輸入給變量b、值3輸入給變量c的輸入語句是A、scanf("a=%d,b=%f,c=%lf",&a,&b,&c);B、scanf("%d%f%lf",&a,&b,&c);C、scanf("a=%d,b=%lf,c=%lf",&a,&b,&c);D、scanf("a=%d,b=%f,c=%f",&a,&b,&c);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:格式字符d,輸入十進(jìn)制整數(shù);格式字符f,輸入浮點(diǎn)數(shù);格式字符lf,輸入雙精度浮點(diǎn)數(shù)。除了格式說明字符和附加格式字符外,如果還有其他字符,則在輸入數(shù)據(jù)時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符。程序運(yùn)行時(shí)輸入:a=1,b=2,c=3,則scanf函數(shù)格式控制串對應(yīng)的應(yīng)該是"a=%d,b=%f,c=%lf",A選項(xiàng)正確。33、下面可以作為軟件設(shè)計(jì)工具的是A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、甘特圖標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:程序設(shè)計(jì)分為:結(jié)構(gòu)化程序設(shè)計(jì),面向?qū)ο蟮某绦蛟O(shè)計(jì)。結(jié)構(gòu)化設(shè)計(jì)方法使用的描述方式是系統(tǒng)結(jié)構(gòu)圖,所以A選項(xiàng)正確。34、有如下程序#include<stdio.h>main(){inti,*ptr;intarray[5]={5,3,1};for(ptr=array,i=0;i<5;i++,ptr++){if(*ptr==0)putchar(’X’);elseputchar(’A’+*ptr);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、FDBXXB、FFFXXC、FDBBBD、ABCDE標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在對數(shù)組進(jìn)行初始化時(shí),如果對數(shù)組的全部元素賦以初值,定義時(shí)可以不指定數(shù)組長度,如果被定義數(shù)組的長度與初值個(gè)數(shù)不同,則數(shù)組長度不能省略;如果在說明數(shù)組時(shí)給出了長度,但沒有給所有的元素賦予初始值,而只依次給前面的幾個(gè)數(shù)組元素賦予初值,那么C語言將自動(dòng)對余下的元素賦初值,則array={5,3,1,0,0}。程序執(zhí)行過程為:執(zhí)行for循環(huán),將數(shù)組首地址賦給指針ptr,依次遍歷每一個(gè)元素,如果數(shù)組元素為0則輸出’X’,如果不為0則按照字母表輸出字符’A’后第array[i]個(gè)字符。程序運(yùn)行后的輸出結(jié)果為:FDBXX,A選項(xiàng)正確。35、有以下程序#include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){default:printf("%d,",b++);case1:printf("%d,",b++);case2:printf("%d,",b++);}}}程序運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是A、1,2,3,2,3,3,B、1,2,3,C、1,2,2,3,4,5,D、1,1,1,2,2,3標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:程序在執(zhí)行switch語句時(shí),根據(jù)switch后面表達(dá)式的值找到匹配的入口標(biāo)號,執(zhí)行對應(yīng)的case語句,之后不再進(jìn)行判斷,繼續(xù)執(zhí)行此case后面的語句,并且各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果,即題目中的default放在開始位置,與放在最后是一樣的結(jié)果;運(yùn)算符"++"放在變量后面時(shí),表示先執(zhí)行其他操作,再將變量+1。本題,第一次循環(huán)輸入b=1,執(zhí)行case1,輸出1,再執(zhí)行case2,輸出2,第二次循環(huán)輸入b=2,執(zhí)行case2輸出2,第三次循環(huán),輸入b=3,沒有case與其對應(yīng),故執(zhí)行default輸出b=3,接著執(zhí)行case1:,輸出4,再執(zhí)行case2,輸出b=5,至此退出for語句。因此,最后輸出為1,2,2,3,4,5,答案為C選項(xiàng)。36、在源程序的開始處加上#include<stdio.h>進(jìn)行文件引用的原因,以下敘述正確的是A、stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,通過引用此文件以便能正確使用printf、scanf等函數(shù)B、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接D、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,預(yù)處理指令#include<stdio.h>是使程序可以去該文件中找到printf,scanf等函數(shù)以便使用,因此答案為A選項(xiàng)。37、下列敘述中正確的是A、軟件是程序、數(shù)據(jù)和文檔B、軟件是程序和數(shù)據(jù)C、軟件是算法和數(shù)據(jù)結(jié)構(gòu)D、軟件是算法和程序標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:計(jì)算機(jī)軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。故選A選項(xiàng)38、若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是A、fget(fp,ch);B、fputc(ch,fp);C、fprintf(fp,"%c",ch);D、fwrite(&ch,sizeof(ch),1,fp);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:fgetc()從文件讀入一個(gè)字符到指定變量。fputc()將指定字符寫入fp文件中,fprintf(),fwrite()均是寫入文件操作函數(shù)。因此選項(xiàng)B,C,D錯(cuò)誤。答案為A選項(xiàng)39、下列關(guān)于類、對象、屬性和方法的敘述中,錯(cuò)誤的是()。A、類是對一類具有相同的屬性和方法對象的描述B、屬性用于描述對象的狀態(tài)C、方法用于表示對象的行為D、基于同一個(gè)類產(chǎn)生的兩個(gè)對象不可以分別設(shè)置自己的屬性值標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:類是對一類具有相同的屬性和方法對象的描述,屬性用于描述對象的狀態(tài),方法用于表示對象的行為,基于同一個(gè)類產(chǎn)生的兩個(gè)對象是可以分別設(shè)置自己的屬性值。二、程序填空題(本題共1題,每題1.0分,共1分。)40、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將N×N矩陣中元素的值按列向右移動(dòng)1個(gè)位置,右邊被移出矩陣的元素繞回左邊第1列。例如,N=3,有下列矩陣123456789計(jì)算結(jié)果為:312645978請?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN4voidfun(int(*t)[N]){inti,j,x;for(i=0;i<【1】;i++){x=t[i][【2】];for(j=N-1;j>0;j--)t[i][j]=t[i][j-1];t[i][【3】]=x;}}main(){inti,j,t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10};printf("Theorriginalarray:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%2d",t[i][j]);printf("\n");}fun(t);printf("\nTheresultis:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)pr2ntf("%2d",t[i][j]);printf("\n");}}標(biāo)準(zhǔn)答案:(1)N(2)N-1(3)0知識點(diǎn)解析:填空1:因?yàn)槭荖×N的矩陣,所以行列數(shù)是相同的。第一個(gè)for循環(huán)用來循環(huán)行,因此填入一個(gè)循環(huán)界限N。填空2:此語句將移出矩陣的元素暫存,移出矩陣的元素的列下標(biāo)為N-1,因此填入N-1。填空3:此語句將移出矩陣的元素放人最左邊,也就是第一列,第一列元素的列下標(biāo)為0,因此填入0。三、程序修改題(本題共1題,每題1.0分,共1分。)41、給定程序MODI1.C中函數(shù)fun的功能是:求整數(shù)x的y次方的低3位值。例如,整數(shù)5的6次方為15625,此值的低3位值為625。請改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includelongfun(intx,inty,long*p){inti;longt=1;/*************found*************/for(i=1;i標(biāo)準(zhǔn)答案:(1)for(i=1;i<=y;i++)(2)t=t%1000;知識點(diǎn)解析:(1)第一個(gè)標(biāo)識下的“for(i=1;i四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、請編寫函數(shù)fun,其功能是:計(jì)算并輸出當(dāng)x<0.97時(shí)下列多項(xiàng)式的值,直到|Sn一Sn-1|<0.000001為止。例如,在主函數(shù)中從鍵盤給x輸入0.21后,輸出為:s=1.100000。注意:部分源程序在文件PROGl.C中。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include{}includedoublefun(doublex){}NONO(){/*請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti;doublesfx;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%1f",&x);s=fun(x);fprintf(wf,"%lf\n",s);}fclose(rf);fclose(wf);}main(){doublex,s;printf("Inputx:");scanf("%lf”,&x);s=fun(x);printf("s=%f\n",s);NONO();}標(biāo)準(zhǔn)答案:intn=1;/*循環(huán)計(jì)數(shù)*/doublesn=1;/*累計(jì)數(shù)*/doublexn=1,xn1=0;/*x的n值,以及x的n-1值;*/while(fabs(xn—xnl)>=0.000001)/*絕對值是否滿足條件*/{xn=xn*x*(0.5一n+1)/n;/*表達(dá)式分解以后xn=(xn一1)*x*(0.5一n+1)/n*/n+=1;sn+=xn;/*sn累加上xn*/}return(sn);知識點(diǎn)解析:(1)根據(jù)題干中給出的數(shù)列,推出每一項(xiàng)分子是在前一項(xiàng)分子的基礎(chǔ)上乘以(0.5.n+1)*x,分母則為階乘,也就是在前一項(xiàng)分母的基礎(chǔ)上乘以n。(2)在循環(huán)中求得每一項(xiàng),然后對其進(jìn)行累加求和。國家二級(C語言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。2、數(shù)據(jù)庫系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、軟件開發(fā)C、數(shù)據(jù)庫設(shè)計(jì)D、數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。:DBMS建立在操作系統(tǒng)之上,實(shí)施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。3、在面向?qū)ο蠓椒ㄖ?,不屬?對象"基本特點(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識唯一性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:對象有如下一些基本特點(diǎn):標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A)。4、某二叉樹中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹中有()個(gè)葉子結(jié)點(diǎn)。A、9B、10C、11D、12標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:根據(jù)二叉樹的性質(zhì)3:對任何一棵二叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。5、下列4個(gè)程序中,完全正確的是()。A、#includemain();{/*programming*/printf("programming!\n");}B、#includemain(){/*/programming/*/pfintf("programming!ha");}C、#includemain(){/*/programming*/*/printf("programming!\n");}D、includemain(){/*programming*/printf("programming!\n");}標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:選項(xiàng)A中,main()函數(shù)后面的分號是錯(cuò)誤的,C語言在函數(shù)名后面不能有分號;在C語言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),按語法規(guī)定在注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)C的程序段中注釋語句之間有嵌套;C語言用#include命令行來實(shí)現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,選項(xiàng)D中的include前面少了一個(gè)≠符號。6、在pnntf的格式字符中,e格式字符的作用是()。A、以十六進(jìn)制無符號形式輸出整數(shù)B、以帶符號的十進(jìn)制形式輸出整數(shù)C、以指數(shù)形式輸出實(shí)數(shù)D、以字符形式輸出,且只輸出一個(gè)字符標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查printf函數(shù)的格式。格式字符“e”或者“E”都表示以指數(shù)形式輸出單精度或雙精度數(shù)。7、下列定義數(shù)組的語句中,正確的是()。A、#defineN10intx[N];B、intN=10;intx[N];C、intx[0…10];D、intx[];標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B選項(xiàng)中N是變量,不能用變量定義數(shù)組長度。C選項(xiàng)中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時(shí)必須為其指明長度,D選項(xiàng)中數(shù)組長度為空,所以非法。8、C語言中允許用外部說明來指定變量、函數(shù)和其他標(biāo)識符的特征,這里所說的外部指的是()。A、冠以關(guān)鍵字externB、位置在函數(shù)體外部C、作用范圍是全程的D、位置在函數(shù)的外部標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言中允許用位置在函數(shù)外部的說明來指定變量、函數(shù)和其他標(biāo)識符的特征。9、將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為()。A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。10、對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、積運(yùn)算標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。11、設(shè)有下面的定義:structst{inta;floatb:}d;int*p;要使p指向結(jié)構(gòu)變量d中的a成員,正確的賦值語句是()。A、*p=d.a(chǎn);B、p=&a;C、p=d.a(chǎn);D、p=&d.a(chǎn);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題主要考查按結(jié)構(gòu)數(shù)組元素方式引用結(jié)構(gòu)成員。結(jié)構(gòu)體變量的成員引用方法有3種:①結(jié)構(gòu)體變量名.成員名;②指針變量名->成員名;③(*旨針變量名).成員名。因?yàn)閜是指針變量,所以應(yīng)該將地址值賦給p。12、有以下程序:#include<stdio.h>main(){chara=4:printf("%d\n",a=a<<1);}程序運(yùn)行后的輸出結(jié)果是()。A、16B、8C、40D、4標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查位運(yùn)算,題目中將4向左移一位然后重新賦值給a,4左移一位為8,程序運(yùn)行結(jié)果為8,選項(xiàng)B正確。13、在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在E-R圖中實(shí)體集用矩形,屬性用橢圓,聯(lián)系用菱形。14、以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是A、結(jié)構(gòu)化程序使用goto語句會很便捷B、在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的C、一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成D、由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:濫用goto語句將使程序的流程毫無規(guī)律,可讀性差,對于初學(xué)者來說盡量不要使用,所以A錯(cuò)誤,一個(gè)結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯(cuò)誤,由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復(fù)雜的問題,所以D錯(cuò)誤。15、以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()。A、棧B、線性表C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。16、以下敘述中正確的是()。A、程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試B、程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C、程序設(shè)計(jì)的任務(wù)就是確定所用算法D、以上三種說法都不完整標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:程序設(shè)計(jì)是指設(shè)計(jì)、編程、調(diào)試程序的方法和過程,通常分為4個(gè)階段:①問題建模;②算法設(shè)計(jì);③編寫代碼;④編譯調(diào)試。17、在三級模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲空間的利用率標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之問提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。18、下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!=’\0’;i++)if(str[i]!=’a’)str[j++]=str[i];str[j]=’\0’;}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}A、str[]=bcdefB、str[]=abcdefC、str[]=aD、str[]=ab標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查函數(shù)調(diào)用是的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的,由于是通過指針調(diào)用,所以改變字符串的結(jié)果。19、下列關(guān)于棧敘述正確的是()。A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A)錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對數(shù)據(jù)對象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。20、以下敘述中正確的是()。A、在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面B、每個(gè)后綴為.C的C語言源程序都可以單獨(dú)進(jìn)行編譯C、在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯D、每個(gè)后綴為.C的C語言源程序都應(yīng)該包含一個(gè)main函數(shù)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言是一種成功的系統(tǒng)描述語言,具有良好的移植性,每個(gè)后綴為.C的C語言源程序都可以單獨(dú)進(jìn)行編譯。21、有以下程序:#includemain(){char*s={"ABC"};do{printf("%d",*s%10);s++:}while(*s);}注意:字母A的ASCII碼值為65,程序運(yùn)行后的結(jié)果是()。A、5670B、656667C、567D、ABC標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:每進(jìn)行一次循環(huán),將輸出s指向字母的ASCII碼值除以10的余數(shù)。字符A的ASCII碼值為65,第一次輸出65%10的余數(shù)5,執(zhí)行s++后,指針指向字母B;第二次輸出66%10的余數(shù)6,執(zhí)行s++后,指針指向字母c;第三次輸出67%10的余數(shù)7,執(zhí)行s++后,指針指向串結(jié)束標(biāo)志’\0’,’\0’對應(yīng)ASCII值為0,即*s等于0,退出循環(huán)。因此,輸出結(jié)果為567。22、有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(’’%d’’,a[i]);}printf(’’\n’’);}程序運(yùn)行后的輸出結(jié)果是()。A、1313B、3234C、4234D、1234標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)“fun(int*x,inti)”的功能是把數(shù)組元素x[i]的值加1賦給x[0]。所以在主函數(shù)中執(zhí)行fun(a,2)后,數(shù)組元數(shù)a[0]的值等于4。然后在for循環(huán)語句中,輸出數(shù)組a中的前4個(gè)元素的值,分別是4、2、3、4。23、以下函數(shù)實(shí)現(xiàn)按每行8個(gè)輸出w所指數(shù)組中的數(shù)據(jù):#includevoidfun(int:*w,intn){inti;for(i=0;iA、if(i/8==0)printf(“\n”);B、if(i/8==0)continue;C、if(i%8==0)printf(“\n”);D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:要按照每行8個(gè)輸出數(shù)據(jù)的話,橫線處語句的功能應(yīng)該為:當(dāng)i是8的倍數(shù)時(shí)(即i%8==0),輸出一個(gè)換行符。因此C選項(xiàng)正確。24、若有以下程序:#includemain(){inta=-2,b=0;do{++b;}while(a++);printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是()。A、1,3B、0,2C、1,2D、2,3標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題重點(diǎn)考查do…while語句及do…while的循環(huán)語句保證會執(zhí)行一次(表達(dá)式的真值在每次循環(huán)結(jié)束后檢查),++b即變量b自增l后再參與運(yùn)算,而a++則表示a參與運(yùn)算后再自增l。所以第一次循環(huán)結(jié)束后,b=1,a=-1;第二次循環(huán)后,b=2,a=0,這里是先對while的判斷為真,然后a才自增為零的,所以還會進(jìn)行第三次循環(huán);第三次循環(huán)后,b=3,a=1。因此A選項(xiàng)正確。25、設(shè)有定義:intk=0;以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()。A、++kB、k+=1C、k++D、k+1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:++k,先使k的值自增1后再使用,k++是先取得k的值再將k的值自增1,所以C選項(xiàng)中表達(dá)式的值為0,而其他三個(gè)表達(dá)式的值均為1,所以選擇C。26、有以下程序:#includemain(){char’b,c;inti:b=‘a(chǎn)’:c=‘A’:for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A、abcdefB、ABCDEFC、aBcDeFD、AbCdEf標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:函數(shù)的含義是如果i的值能被2整除,以字符格式打印輸出i+c的值,如果i的值不能被2整除,打印i+b的值。第一次i值為0,執(zhí)行else語句打印字符‘A’,第二次i值為1,打印1+b的值即字符‘b’,第三次i值為2,打印字符‘c’,依此類推選擇D選項(xiàng)。27、計(jì)算機(jī)能直接執(zhí)行的程序是()。A、源程序B、目標(biāo)程序C、匯編程序D、可執(zhí)行程序標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:計(jì)算機(jī)能直接執(zhí)行的程序是二進(jìn)制的可執(zhí)行程序,擴(kuò)展名為.exe。所以選擇D選項(xiàng)。28、以下敘述中正確的是()。A、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行B、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C、C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行D、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中的主函數(shù)只能是main()函數(shù),不能任意指定,所以B選項(xiàng)錯(cuò)誤。C語言從主函數(shù)main()開始,到主函數(shù)main()結(jié)束,所以C選項(xiàng)錯(cuò)誤。主函數(shù)必須寫成小寫的main,不能混淆大小寫,所以D選項(xiàng)錯(cuò)誤。29、有以下程序:#includemain(){intc,d;c=13&5:d=10&&5;printf("%d,%d\n",c,d);}程序的運(yùn)行結(jié)果是()。A、5,1B、1,1C、18,1D、13,1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:“&”按位與運(yùn)算,13=1101B,5=101B,執(zhí)行語句c=13&5;結(jié)果為101B=5,即c=5?!?&”邏輯與運(yùn)算,10與5均為真,結(jié)果為真,即d=1。30、以下函數(shù)findmin擬實(shí)現(xiàn)在數(shù)組中查找最小值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。#defineMAX2147483647intfindmin(intx[],intn){inti,min;min=MAX;for(i=0;i<n;i++){if(min<x[i])min=x[i];)returnmin;}造成錯(cuò)誤的原因是()。A、定義語句inti,min;中min未賦初值B、賦值語句min=MAN;中,不應(yīng)給min賦MAX值C、語句if(rain<X[i])min=X[i];中判斷條件設(shè)置錯(cuò)誤D、賦值語句min=MAX;放錯(cuò)了位置標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在C語言中,一個(gè)整型變量占用4個(gè)字節(jié)的內(nèi)存單元,并按整型數(shù)的存儲方式存放數(shù)據(jù),允許存放的數(shù)值范圍是:-2147483648~2147483647。所以在這個(gè)題目中定義的宏變量MAX的值就是整數(shù)范圍內(nèi)最大的數(shù)值,因而對于任意一個(gè)整數(shù)來說,其值都比MAX小,而判斷最小值,是當(dāng)找到的數(shù)比min小時(shí),才交換。31、一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為()。A、16B、10C、6D、4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:根據(jù)二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè),所以本題中度刀z的節(jié)點(diǎn)是5一1=4個(gè),所以度為1的結(jié)點(diǎn)的個(gè)數(shù)是25—5一4=16個(gè)。32、數(shù)據(jù)管理技*發(fā)展的三個(gè)階段中,()沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。Ⅰ.人工管理階段Ⅱ.文件系統(tǒng)階段Ⅲ.?dāng)?shù)據(jù)庫階段A、僅ⅠB、僅ⅢC、Ⅰ和ⅡD、Ⅱ和Ⅲ標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)管理技*發(fā)展的三個(gè)階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。33、當(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知識點(diǎn)解析:本程序是通過getchar()函數(shù)讀入字符,并通過putchar()函數(shù)將字符逐個(gè)輸出,當(dāng)用戶輸入“?”時(shí)停止輸出。34、當(dāng)輸入為"Fool&Swalow"時(shí),下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charc;while(c!=’?’){c=getchar();putchar(c);}}A、SwalowB、FoolC、Fool?D、?Swalow標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本程序是通過getch()函數(shù)讀入字符,并通過putchar()函數(shù)將字符逐個(gè)輸出,當(dāng)用戶輸入“?”時(shí)停止輸出。35、有以下程序#include<stdio.h>main(){intx=010,y=10;printf("%d,%d\n",++x,y--);}程序運(yùn)行后的輸出結(jié)果是A、10,9B、11,10C、010,9D、9,10標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:整型常量有3種表示方法,分別是十進(jìn)制數(shù)表示法、八進(jìn)制數(shù)表示法和十六進(jìn)制數(shù)表示法,八進(jìn)制整常量以O(shè)作為前綴。自增和自減運(yùn)算符的兩種用法:前置運(yùn)算,運(yùn)算符放在變量之前,規(guī)則是先使變量的值增(或減)1,然后以變化后表達(dá)式的值參與其他運(yùn)算;后置運(yùn)算,運(yùn)算符放在變量之后,規(guī)則是變量先參與其他運(yùn)算,然后再使變量的值增(或減)1。x=010=8,y=10,++x先自加后取值,輸出9,y--先取值輸出10,再自減y=9,D選項(xiàng)正確。36、某二叉樹的中序序列為BDCA,后序序列為DCBA,則前序序列為A、DCBAB、BDCAC、ABCDD、BADC標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:二叉樹遍歷可以分為3種:前序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之后)。本題中中序序列為BDCA,后序序列為DCBA,可知A為根結(jié)點(diǎn),BDC為左側(cè)結(jié)點(diǎn),C是B右子結(jié)點(diǎn),D是C右子結(jié)點(diǎn),故前序序列為ABCD,C選項(xiàng)正確。37、以下涉及字符串?dāng)?shù)組、字符指針的程序段,沒有編譯錯(cuò)誤的是A、char*str,name[5];str="C/C++";B、char*str,name[6];name="Hello";C、charstr1[7]="prog.c",str2[8];str2=str1;D、charline[];line="http://////";標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:字符數(shù)組只能進(jìn)行初始化,不能直接對字符數(shù)組賦值,B、D錯(cuò)誤;C選項(xiàng)中,str2與str1是常量不能相互賦值。A選項(xiàng)中定義一個(gè)字符指針str,然后把一串字符的首地址賦給str,不會發(fā)生編譯錯(cuò)誤,答案為A選項(xiàng)。38、有如下程序#include<stdio.h>main(){inta=9,b;b=(a>>3)%4;printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、9,1B、4,0C、4,3D、9,3標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:首先,程序執(zhí)行完成后,a值不變始終為9,a轉(zhuǎn)化成2進(jìn)制數(shù)后邏輯即1001>>3=>0001右移三位得到值為1,1再對4求余得到余數(shù)1賦給b值,答案為A選項(xiàng)。39、C語言規(guī)定,在一個(gè)C程序中,main()函數(shù)的位置()。A、必須在系統(tǒng)調(diào)用的庫函數(shù)之后B、必須在程序的開始C、必須在程序的最后D、可以在任意位置標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:每個(gè)C程序有且只有一個(gè)主函數(shù)(main),且程序必須從“main()”函數(shù)開始執(zhí)行,而且“main()”函數(shù)可以放在程序中的任意位置。40、有以下程序:#include<stdio.h>#include<string.h>structA{inta;charb[l0];doublec;};structAf(structAt):main(){structAa={1001,"ZhangDa",1098.0};a=f(a):printf("%d,%s,%6.1f\n",a.a(chǎn),a.b,a.c);}structAf(structAt){t.a(chǎn)=1002:strcpy(t.b,"ChangRong"):t.c=1202.0:returnt;}程序運(yùn)行后的輸出結(jié)果是()。A、1001,ZhangDa,1098.0B、1002,ZhangDa,1202.0C、1001,ChangRong,1098.0D、1002,ChangRong,1202.0標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:函數(shù)f對結(jié)構(gòu)體進(jìn)行修改,并返回新的結(jié)構(gòu)體;main函數(shù)先定義了一個(gè)結(jié)構(gòu)體變量a并為它賦初值,然后調(diào)用函數(shù)f修改結(jié)構(gòu)體變量的成員值,最后輸出新的結(jié)構(gòu)體變量成員。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序中,函數(shù)fun的功能是:求出形參ss所指字符串?dāng)?shù)組中最長字符串的長度,將其余字符串右邊用字符“*”補(bǔ)齊,使其與最長的字符串等長。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長<N。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2#include<string.h>3#defineM54#defineN205voidfun(char(*ss)[N])6{inti,j,n,len=0;7for(i=0;i<M;i++)8{len=strlen(ss[i]);9if(i==0)n=len;10if(len>n)n=len;11}12for(i=0;i<M;i++){13/**********found**********/14n=strlen(__1__);15for(j=0;j<len-n;j++)16/**********found**********/17ss[i][__2__]=’*’;18/**********found**********/19ss[i][n+j+__3__]=’\0’;20}21}22main()23{charss[M][N]={’’shanghai’’,’’guangzhou’’,’’beijing’’,’’tianjing’’,’’cchongqing’’};24inti;25printf(’’Theoriginalstringsare:\n’’);26for(i=0;i<M;i++)printf(’’%s\n’’,ss[i]);27printf(’’\n’’);28fun(ss);29printf(’’Theresuitis:\n’’);30for(i=0;i<M;i++)printf(’’%s\n’’,ss[i]);31}標(biāo)準(zhǔn)答案:(1)ss[i](2)n+j(3)1知識點(diǎn)解析:函數(shù)fun的功能是求出形參ss所指字符串?dāng)?shù)組中最長字符串的長度。第一空:第一個(gè)循環(huán)求最長字符串的長度“l(fā)en”,在第二個(gè)循環(huán)內(nèi)在其他字符串的后面補(bǔ)“*”,使其達(dá)到長度“l(fā)en?!痹凇癴or(j=0;j<len-n;j++)”語句中,“i<len-n”是在字符串的后面填“l(fā)en-n”個(gè)“*”,故n是字符串“ss[i]”的長度,因此第一空應(yīng)為“ss[i]”。第二空:循環(huán)“for(j=0;j<len-n;j++)”目的是在字符串的后面填len-n個(gè)“*”,第二空處應(yīng)為“n+j”。第三空:字符串以“\0”結(jié)束,因此需在字符串后加結(jié)束符,故第三空應(yīng)為“1”。三、程序修改題(本題共1題,每題1.0分,共1分。)42、使用VC++2010打開考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:從11個(gè)學(xué)生的成績中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)作為函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如,輸入8名學(xué)生的成績:80.5、60、72、90.5、98、51.5、88、64則低于平均分的學(xué)生人數(shù)為4(平均分為75.5625)。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#2nclude<stdlib.h>#include<stdio.h>#include<conio.h>#defineN20intfun(float*s,intn,float*caver){floatave,t=0.0;intcount=0,k,i;for(k=0;k<n;k++)/*********found*********/t=s[k];ave=t/n;for(i=0;i<n;1;i++)if(s[i]<ave)count++;/*********found*********/*aVer=&aVe;returncount;}voidmain(){floats[30],aver;intm,i;system("CLS");printf("\nPleaseenterm:");scanf("%d",&m);printf("\nPleaseenter%dmark:\n",m);for(i=0;i<m;i++)scanf("%f",s+i);printf("\nThenumberofstudents:%d\n",fun(s,rm,&aver));printf("Ave=%f\n",aver);}標(biāo)準(zhǔn)答案:(1)t+=s[k];(2)*aver=ave;知識點(diǎn)解析:根據(jù)題目要求,可利用循環(huán)語句累計(jì)n個(gè)學(xué)生的總分,求得平均成績后,再利用循環(huán)語句和條件選擇語句進(jìn)行后面的操作。若小于平均值,則將該值存放于aver存儲單元中。t=s[k]是循環(huán)疊加錯(cuò)誤,*aver=&ave為語法指向的錯(cuò)誤。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫一個(gè)函數(shù)intfun(int*s,intt,int*k),用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為6,980。注意:部分源程序在文件PROG1.C中。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdtib.h>intfun(int*s,intt,int*k){}voidmain(){FILE*wf;inta[10]={876,675,896,101,301,401,980,43l,451,777},k;system("CLS");fun(a,10,&k);printf("%d,%d\n",k,a[k]);/*********found*********/wf=fopen("out.dat","w");fprintf(wf,"%d,%d",k,a[k]);fclose(wf);/*********found*********/}標(biāo)準(zhǔn)答案:inttun(Int*s,intt,int*k){inti;*k=0;/*k所指的數(shù)是數(shù)組的下標(biāo)值*/for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;/*找到數(shù)組的最大元素,把該元素的下標(biāo)賦給k所指的數(shù)*/returns[*k];/*返回?cái)?shù)組的最大元素*/}知識點(diǎn)解析:本題中直接使用指針變量k,使用時(shí)要注意對k進(jìn)行指針運(yùn)算。程序一開始讓k指向數(shù)組中的第一個(gè)元素,即*k=0。國家二級(C語言)機(jī)試模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、有以下程序:#include<stdio.h>intfun(inta,intb){if(b=—0)ret
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 給水廠課程設(shè)計(jì)英文摘要
- 苗族課程設(shè)計(jì)
- 協(xié)商撤案協(xié)議書(2篇)
- 課程設(shè)計(jì)冷凝器
- 貨物運(yùn)輸組織課程設(shè)計(jì)
- 鋼鐵廠污染控制課程設(shè)計(jì)
- 娛樂公共場所衛(wèi)生管理制度
- 繪本閱讀戶外課程設(shè)計(jì)
- 湖北工業(yè)大學(xué)《ProfessionalEthicsandEngineering》2022-2023學(xué)年期末試卷
- 湖泊抽水清淤施工專業(yè)技術(shù)方案
- 中班科學(xué)活動(dòng)制造漩渦
- 大數(shù)據(jù)畢業(yè)答辯
- 銅礦礦山工程案例介紹
- 湛江市水產(chǎn)品出口貿(mào)易現(xiàn)狀、問題及對策
- 創(chuàng)傷失血性休克中國急診專家共識
- 鄉(xiāng)村學(xué)生心理健康問題研究報(bào)告
- 2024企業(yè)數(shù)據(jù)合規(guī)指引
- 《兒科護(hù)理學(xué)》課程說課
- 3年級道德與法治大家的“朋友”省賽一等獎(jiǎng)
- 護(hù)理危重癥培訓(xùn)總結(jié)報(bào)告
- GA/T 2016-2023公安視頻圖像信息系統(tǒng)運(yùn)維管理規(guī)范
評論
0/150
提交評論