國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共27題)_第1頁
國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共27題)_第2頁
國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共27題)_第3頁
國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共27題)_第4頁
國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共27題)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家二級(jí)C語言機(jī)試(操作題)模擬試卷22(共9套)(共27題)國家二級(jí)C語言機(jī)試(操作題)模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:找出N×N矩陣中每列元素中的最大值,并按順序依次存放于形參b所指的一維數(shù)組中。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<std~o.h>#defineN4voidfun(int(木a)[N],int木b){inti,j;for(i=0;i<N;i++){/*********found*********/b[i]=【1】;for(j=ljj<N;j++)/*********found*********/if(b[i]【2】a[j][i])b[i]=a[j][i];}}main(){intx[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],i,j;printf("\nThematrix:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",x[i][j]);printf("\n");}/*********found*********/fun(【3】);9rintf("\nTheresultis:");for(i=0;i<N;i++)printf("%3d",y[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)a[0][i](2)<(3)x,y知識(shí)點(diǎn)解析:填空1:數(shù)組b用于存放每列元素中的最大值,首先將第i列的第一個(gè)數(shù)賦給b[i],然后用b[i]與其他數(shù)進(jìn)行比較,因此此空應(yīng)填a[0][i]。填空2:if條件表達(dá)式表示當(dāng)b[i]小于a[j][i]時(shí),就把a(bǔ)[j][i]的值賦給b[i],因此此空應(yīng)該填<。填空3:fun函數(shù)的調(diào)用,通過fun(int(*a)[N],int*b)可知,此空應(yīng)該填x,y。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:將主函數(shù)中兩個(gè)變量的值進(jìn)行交換。例如,若變量a中的值為8,b中的值為3,則程序運(yùn)行后,a中的值為3,b中的值為8。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>/*********found*********/voidfun(intx,inty){intt;/*********found*********/t=x;x=y;y=t;}voidmain(){inta,b;a=8;b=3;fun(&a,&b);printf("%d%d\n",a,b);}標(biāo)準(zhǔn)答案:(1)voidfun(int*x,int*y)(2)t=*x;*x=*y;*y=t;知識(shí)點(diǎn)解析:(1)本題考查指針變量作函數(shù)參數(shù)。一般變量作參數(shù)時(shí),不能改變實(shí)參的值,采用指針變量作為參數(shù)則能夠改變實(shí)參的值。主函數(shù)中fun函數(shù)的調(diào)用方式表明fun函數(shù)的參數(shù)應(yīng)當(dāng)為指針類型。(2)此處是一個(gè)變量交換操作錯(cuò)誤,可知x、y是指針類型,變量類型不同,因而x、y不能與t進(jìn)行值的交換。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)intfun(intlim,intaa[MAX]),其功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,并返回所求出的素?cái)?shù)的個(gè)數(shù)。注意:部分源程序在文件PROG1.C中。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容。僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineMAX100intfun(intlim,intaa[MAX]){}voidmain(){FILE*wf;intlimit,i,sum;intaa[MAX];system("CLS");printf("輸入一個(gè)整數(shù):");scanf("%d",&limit);sum=fun(limit,aa);for(i=0;i<sum;i++){if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/printf("\n");printf("%5d",aa[i]);}/*********found*********/wf=fopen("out.dat","w");sum=fun(15,aa);for(i=0;i<sHm;i++){if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/fprintf(wf,"\n");fprintf(wf,"%5d",aa[i]);}fclose(wf);/*********found*********/}標(biāo)準(zhǔn)答案:intfun(intlim,intaa[MAX]){inti,j,k=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素?cái)?shù)*/{for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;/*將求出的素?cái)?shù)放入數(shù)組aa中*/}returnk;/*返回所求出的素?cái)?shù)的個(gè)數(shù)*/}知識(shí)點(diǎn)解析:本程序如果一個(gè)數(shù)是合數(shù),那么它的最小質(zhì)因數(shù)肯定小于等于他的平方根。使用for循環(huán)語句查找小于lim的所有數(shù),使用內(nèi)嵌的循環(huán)判斷語句判斷該數(shù)是否為素?cái)?shù)。在做這道題時(shí),需要重點(diǎn)掌握素?cái)?shù)的判定方法:for(j=2;j<sqrt(i);j++)if(i%j==0)break;國家二級(jí)C語言機(jī)試(操作題)模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序的主函數(shù)中,已給出由結(jié)構(gòu)體構(gòu)成的鏈表節(jié)點(diǎn)a、b、c,各節(jié)點(diǎn)的數(shù)據(jù)域中均存入字符,函數(shù)fun()的作用是:將a、b、c三個(gè)節(jié)點(diǎn)鏈接成一個(gè)單向鏈表,并輸出鏈表節(jié)點(diǎn)中的數(shù)據(jù)。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>typedefstructlist{chardata;structlist*next;}Q;voidfun(Q*pa,Q*pb,Q*pc){Q*P;/*********found*********/pa一>nextnext=【1】;pb一>next=pc;p=pa;while(p){/*********found*********/printf("%c",【2】);/*********found*********/p=【31】;}printf("\n");}main(){Qa,b,c;a.data=’E’;b.data=’F’;c.data=’G’;c.next=NULL;fun(&a,&b,&C);}標(biāo)準(zhǔn)答案:(1)pb(2)p一>data(3)p一>next知識(shí)點(diǎn)解析:填空1:將三個(gè)節(jié)點(diǎn)連接起來,即將pa的指針域指向pb,pb的指針域指向pc。填空2:輸出鏈表節(jié)點(diǎn)中的數(shù)據(jù),表示為p一>data。填空3:指針后移,指向下一個(gè)節(jié)點(diǎn),即p=p一>next。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun()的功能是統(tǒng)計(jì)S所指一維數(shù)組中0的個(gè)數(shù)(存在變量zero中)和1的個(gè)數(shù)(存在變量one中),并輸出結(jié)果。請改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>voidfun(int*s,intn){/*********found*********/inti,one=0rzero;for(i=0;i<n;i++)/*********found*********/switch(s[i]);{/*********found*********/case0:zero++;case1:one++;}printf("one:%dzero:%d\n",one,zero);}main(){inta[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0},n=20;fun(a,n);}標(biāo)準(zhǔn)答案:(1)inti,one=0,zero=0;(2)switch(s[i])(3)case0:zero++;break;知識(shí)點(diǎn)解析:(1)變量zero用來統(tǒng)計(jì)數(shù)字0的個(gè)數(shù),應(yīng)將其初始化為0。(2)語法錯(cuò)誤,switch語句后不加分號(hào)。(3)當(dāng)數(shù)字為0時(shí),變量zero加1,此時(shí)應(yīng)使用break語句跳出switch語句,進(jìn)行下一次循環(huán),否則會(huì)繼續(xù)執(zhí)行case1語句,使程序不能得出正確結(jié)果。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.C。在此程序中,請編寫函數(shù)fun,其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存在PROG1.C中,請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun指定的部位填入所編寫的若干語句。試題程序:#include<stdio.h>#defineN20voidNONO();voidfun(char*a,char*s){}main(){chars1[N],*s2="abcdefghijk";fun(s1,s2);printf("%S\n",s1);printf("%S\n",s2);NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti;chars1[256],s2[256];fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fgets(s2,255,fp);fun(s1,s2);fprintf(wf,"%s",s1);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:voidfun(char*a,char*s){while(*s!=’\0’){*a=*s;a++;s++;}*a=’\0’;}知識(shí)點(diǎn)解析:要將s所指的字符串存入a所指的字符串中,程序要求不能使用系統(tǒng)提供的字符串函數(shù),本題可以使用循環(huán)語句,依次取出a所指字符串中的元素,將其存入s所指的字符串中,最后為s所指的字符串添加結(jié)束標(biāo)識(shí)’\0’。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第3套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本文件中,再用字符方式從此文本文件中逐個(gè)讀入并顯示在終端屏幕上。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>voidfun(char*s,inta,doublef){/*********found*********/【1】fp;charch;fp=fopen("file1.txt","w");fprintf(fp,"%s%d%f\n",s,a,f);fclose(fp);fp=fopen("file1.txt","r");printf("\nTheresult:\n\n");ch=fgetc(fp);/*********found*********/while(!feof(【2】)){/*********found*********/putchar(【3】);ch=fgetc(fp);}putchar(’\n’);fclose(fp);}main(){chara[10]="Hello!";intb=12345;doublec=98.76;fun(a,b,c);}標(biāo)準(zhǔn)答案:(1)FILE*(2)fp(3)ch知識(shí)點(diǎn)解析:填空1:由語句:fopen("file1.txt","r")可知,fp應(yīng)該是文件類型指針,因此本空應(yīng)該填寫FILE*。填空2:feof函數(shù)只能對文件類型數(shù)據(jù)進(jìn)行操作,因此本空應(yīng)填寫fp。填空3:putchar()代表輸入一個(gè)字符,從ch=fgetc(fp)可以看出本題應(yīng)該填寫ch。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(char*s){inti,j;for(i=0,j=0;s[i]!=’\0’;i++)if(s[i]>=’0’&&s[i]<=’9’)/*********found*********/s[j]=s[i];/*********found*********/s[j]="\0";}voidmain(){charitem[80];system("CLS");printf("\nEnterastring:");gets(item);printf("\n\nThestringis:%s\n",item);Eun(item);printf("\n\nThestringofchangingis:%s\n",item);}標(biāo)準(zhǔn)答案:(1)s[j++]=s[i];(2)s[j]=’\0’;知識(shí)點(diǎn)解析:題目要求依次取出字符串中所有的數(shù)字字符,因此將元素s[i]存入s[j]后要使j加1,為下次存儲(chǔ)做準(zhǔn)備。s[j]="\0";是一個(gè)語法錯(cuò)誤。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun,其功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個(gè)字符串中。例如,若二維數(shù)組中的數(shù)據(jù)為WWWWSSSSHHHH則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHWSH。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineM3#defineN4voidfun(char(*s)[N],char*b){}voidmain(){chara[100],w[M][N]={{’W’,’W’,’W’,’W’},{’S’,’S’,’S’,’S’},{’H’,’H’,’H’,’H’}};inti,j,printf("Thematrix:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3c",w[i][j]);printf("\n");}fun(w,a);printf("TheAstring:\n");puts(a);printf("\n\n");}標(biāo)準(zhǔn)答案:voidfun(char(*s)[N],char*b){inti,j,k=0;for(i=0;i<N;i++)/*按列的順序依次放到一個(gè)字符串中*/for(j=0;j<M;j++)b[k++]=s[j][i];b[k]=’\0’;}知識(shí)點(diǎn)解析:看到程序后,很容易便能想到用循環(huán)嵌套的方法,本題中按列的順序依次放到一個(gè)字符串中,所以列標(biāo)變化慢,行標(biāo)變化快。注意:第1個(gè)循環(huán)條件為i<N(即列);第2個(gè)循環(huán)條件為j<M(即行),因?yàn)樵谘h(huán)的嵌套中越在內(nèi)層,循環(huán)變化就越快。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第4套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,人員的記錄由編號(hào)和出生年、月、日組成,N名人員的數(shù)據(jù)已在主函數(shù)中存入結(jié)構(gòu)體數(shù)組std中,且編號(hào)唯一。函數(shù)fun的功能是:找出指定編號(hào)人員的數(shù)據(jù),作為函數(shù)值返回,由主函數(shù)輸出,若指定編號(hào)不存在,返回?cái)?shù)據(jù)中的編號(hào)為空串。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#defineN8typedefstruct{charnulm[10];intyear,month,day;}STU;/*********found*********/【1】fun(STU*std,char*hum){inti;STUa={"",9999,99,99};for(i=0;i<N;i++)/*********found*********/if(stramp(【2】,hum)==0)/*********found*********/return(【3】);returna;}main(){STUstd[N]={{"111111",1984,2,15},{"222222",1983,9,21},{"333333”,1984,9,1},{"444444",1983,7,15),{"555555",1984,9,28},{"666666",1983,11,15},{"777777",1983,6,22},{"888888",1984,8,19}};STUp;charn[10]="666666";P=fun(std,12);if(p.num[0]==0){printf("\nNotfound!\n");}else{printf("\nSuceeed!\n");printf("%s%d-%d-%d\n",p.num,p.year,p.month,p.day);}}標(biāo)準(zhǔn)答案:(1)STU(2)std[i].num(3)std[i]知識(shí)點(diǎn)解析:填空1:根據(jù)函數(shù)fun的返回值類型可知,函數(shù)類型標(biāo)識(shí)符應(yīng)該是結(jié)構(gòu)體類型的,所以填入STU。填空2:根據(jù)題目說明,找出指定編號(hào)人員,并將其數(shù)據(jù)返回。通過strcmp函數(shù)比較編號(hào),若相同則函數(shù)值為0,所以填入std[i].num。填空3:由題目可知,假如編號(hào)對應(yīng),則返回其編號(hào)對應(yīng)數(shù)據(jù),所以填入數(shù)據(jù)std[i]。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:從s所指字符串中,找出t所指字符串的個(gè)數(shù)作為函數(shù)值返回。例如,當(dāng)s所指字符串中的內(nèi)容為“abcdabfab”,t所指字符串的內(nèi)容為“ab”,則函數(shù)返回整數(shù)3。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>intfun(char*s,char*t){intn;char*p,*r;n=0;while(*s){p=s;r=t;while(*r)/*********found*********/if(*r==*p){r++;p++)elsebreak;/*********found*********/if(r==’\0’)n++;s++;}returnn;}voidmain(){chars[100],t[100];intm;system("CLS");printf("\nPleaseenterstrings:"),scanf("%s",s);printf("\nPleaseentersubstringt:");scanf("%s",t);m=fun(s,t);printf("\nTheresultis:m=%d\n”,m);}標(biāo)準(zhǔn)答案:(1)if(*r==*p){r++;p++;}(2)if(*r==’\0’)知識(shí)點(diǎn)解析:從字符串s中找出子串t的方法是:從第1個(gè)字符開始,對字符串進(jìn)行遍歷,若s串的當(dāng)前字符等于t串的第1個(gè)字符,兩個(gè)字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串t的結(jié)尾,則跳出循環(huán);若s串的字符與t串的字符不對應(yīng)相同,則繼續(xù)對s串的下一個(gè)字符進(jìn)行處理。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun,該函數(shù)的功能是:將s所指字符串中ASCII碼值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符B的ASCII碼值為偶數(shù),字符2的ASCII碼值為偶數(shù),都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“ACEG135”。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>voidfun(char*s,chart[]){}voidmain(){chars[100],t[100];system("CLS");printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);}標(biāo)準(zhǔn)答案:voidfun(char*s,chart[]){inti=0;for(;*s!=’\0’;s++)/*找出ASCII值為奇數(shù)的字符依次存入數(shù)組t中*/if(*s%2==1)t[i++]=*s;t[i]=’\0’;/*在字符串的末尾加上串結(jié)束符*/}知識(shí)點(diǎn)解析:要?jiǎng)h除ASCII碼值為偶數(shù)的字符,也就是要留下ASCII碼值為奇數(shù)的字符。由于最終是要求出剩余字符(即ASCII碼值為奇數(shù))形成的新串,所以本題程序的算法是對原字符串從頭到尾掃描,并找出ASCII碼值為奇數(shù)的字符并將其依次存入數(shù)組t中。此外,還要注意數(shù)組t的下標(biāo)變化和下標(biāo)的初值(初值必須為0,即i=0),t[i++]的作用是先使用t[i],然后再使i自增1。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第5套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:計(jì)算N×N矩陣的主對角線元素和反向?qū)蔷€元素之和,并作為函數(shù)值返回。要求先累加主對角線元素中的值,再累加反向?qū)蔷€元素中的值。例如,若N=3,有下列矩陣:123456789首先累加1、5、9,然后累加3、5、7,函數(shù)返回值為30。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdi*.h>#defineN4fun(intt[][N],intn){inti,sum;/*********found*********/【1】;for(i=0;i<n;i++)/*********found*********/sum+=【2】;for(i=0;i<n;i++)/*********found*********/sum+=t[i][n﹣i﹣【3】];returnsum;}main(){inti,j,t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10};printf("\nTheoriginalclata:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",t[i][j]);printf("\n");}printf("Theresultis:%d",fun(t,N));}標(biāo)準(zhǔn)答案:(1)sum=0(2)t[i][i](3)1知識(shí)點(diǎn)解析:填空1:變量sum用來儲(chǔ)存“和”結(jié)果,所以將其初始化為0。填空2:從題目中可以了解到,主對角線元素的行和列下標(biāo)是相同的,所以應(yīng)填入t[i][i]。填空3:對于反向?qū)蔷€元素的行和列的下標(biāo),它們的關(guān)系是相加和為n﹣1,所以應(yīng)填入1。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun和funx的功能是:用二分法求方程2x3﹣4x2+3x﹣6=0的一個(gè)根,并要求絕對誤差不超過0.001。例如,若給m輸入﹣100,給n輸入90,則函數(shù)求得的一個(gè)根為2.000。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<math.h>doublefunx(doublex){return(2*x*x*x﹣4*x*x+3*x﹣6);}doublefun(doublem,doublen){/*********found*********/intr;r=(m+n)/2;/*********found*********/while(fabs(n﹣m)<0.001){if(funx(r)*funx(n)<0)m=r;elsen=r;r=(m+n)/2;}returnr;}main(){doublem,n,root;printf("Entermn:\n");scanf("%lf%lf",&m,&n);root=fun(m,n);printf("root=%6.3f\n",root);}標(biāo)準(zhǔn)答案:(1)doubler;(2)while(fabs(n﹣m)>0.001)知識(shí)點(diǎn)解析:(1)程序中會(huì)發(fā)現(xiàn)r=(m+n)/2,而m和n都是double型的,并且根據(jù)題意可知,變量r需要定義為double型。(2)絕對誤差不超過0.001,所以循環(huán)條件應(yīng)為fabs(n﹣m)>0.001。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)和尾部的*號(hào)外,將串中其他的水號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參p指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(cha*a,char*h,char*p){}main(){chars[81],*t,*f;printf("Enterastring:\n");gets(s);t=f=s;while(*t)t++;t﹣﹣;while(*t==’*’)t﹣﹣;while(*f==’*’)f++;fun(s,f,t),printf("Thestringafterdeleted:\n");puts(s);}標(biāo)準(zhǔn)答案:voidfun(char*a,char*h,char*p){inti=0;char*q=a;/*將前導(dǎo)水號(hào)保存到a中*/while(q<h){a[i]=*q;q++;i++;}/*繼續(xù)遍歷數(shù)組*/while(q<p){if(*q!=’*’){/*如果不是*保存到a中*/a[i]=*q;i++;}q++;}/*將末尾*號(hào)保存到a中*/while(*q){a[i]=*q;i++;q++;}a[i]=’\0’;}知識(shí)點(diǎn)解析:本題的重點(diǎn)是要選擇好判斷條件,首先是需要判斷前導(dǎo)*號(hào)的結(jié)束,然后判斷是否指向最后一個(gè)字母,最后補(bǔ)充尾部*號(hào),只要思路對了即可正確解答。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第6套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blankl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun()的功能是統(tǒng)計(jì)整型變量m中各數(shù)字出現(xiàn)的次數(shù),并將其存放到數(shù)組a中。其中,a[0]存放0出現(xiàn)的次數(shù),a[1]存放1出現(xiàn)的次數(shù)……a[9]存放9出現(xiàn)的次數(shù)。例如,若in為14579233,則輸出結(jié)果應(yīng)為0,1,1,2,1,1,0,1,0,1,。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的文件blank1.c中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2voidfun(intm,inta[10])3{inti;4for(i=0;i<10;i++)5/*********found*********/6<u>【1】</u>=0;7while(m>0)8{9/*********found*********/10i=<u>【2】</u>;11a[i]++;12/*********found*********/13m=<u>【3】</u>;14}15}16main()17{intm,a[10],i;18printf("請輸入一個(gè)整數(shù):");19scanf("%d",&m);20fun(m,a);21for(i=0;i<10;i++)22printf("%d,",a[i]);23printf("\n");24}標(biāo)準(zhǔn)答案:(1)a[i](2)m%10(3)m/10知識(shí)點(diǎn)解析:數(shù)組a各元素初始化為0,用求余和整除相結(jié)合的方法得到變量的每一位數(shù)字,并將它作為數(shù)組a的下標(biāo),相應(yīng)元素值加1。填空1:數(shù)組a的10個(gè)元素賦值為0。故空1處應(yīng)該填a[i]。填空2:m%10可得到數(shù)m的最后一位數(shù)字。故空2處應(yīng)該填m%10。填空3:m/10可使數(shù)字截短,即去掉最后一位。故空3處應(yīng)該填m/10。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modil.c。在此程序中,函數(shù)fun()的功能是求矩陣(二維數(shù)組)a[N][N]中每行的最小值,并將結(jié)果存放到數(shù)組b中。例如:則結(jié)果應(yīng)為1,5,9,13。請改正函數(shù)fun()中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:1#include<stdio.h>2#defineN43voidfun(inta[][N],intb[])4{inti,j;5for(i=0;i<N;i++)6{7/*********found*********/8b[i]=a[0][0];9/*********found*********/10for(j=1;j<N-1;j++)11/*********found*********/12if(b[i]<a[i][j])13b[i]=a[i][j];14}15}16main()17{inta[N][N]={{1,4,3,2},{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N];18inti;19fun(a,b);20for(i=0;i<N;i++)21printf("%d,",b[i]);22printf("\n");23}標(biāo)準(zhǔn)答案:(1)b[i]=a[i][0];(2)for(j=1;j<N;j++)(3)if(b[i]>a[i][j])知識(shí)點(diǎn)解析:數(shù)組b存放每行的最小值。針對二維數(shù)組a使用兩層循環(huán)。在第1層循環(huán)的開始將每行的第1個(gè)數(shù)賦給數(shù)組b相應(yīng)的元素。在第2層循環(huán)中,數(shù)組b中的元素依次與本行中的每個(gè)元素進(jìn)行比較,找到一行中的最小值存入數(shù)組b。(1)b[i]存放二維數(shù)組a每一行中第1個(gè)元素值,表示為a[i][0]。(2)每行元素的第1個(gè)值要和這一行中的每個(gè)元素進(jìn)行比較,條件j<N可使a[i][j]取到最后元素,而條件j<N-1可使a[i][j]最終取得倒數(shù)第2個(gè)元素。(3)因?yàn)槭钦易钚≈?,所以?dāng)b[i]大于其后的數(shù)值時(shí),說明它不是最小值,要把比較中較大的值賦給它。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件progl.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中去掉一個(gè)最高分和一個(gè)最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個(gè)數(shù)(n>2)。例如,若輸入9.9、8.5、7.6、8.5、9.3、9.5、8.9、7.8、8.6、8.4共10個(gè)得分,則輸出結(jié)果為8.687500。注意:部分源程序存放在文件pmgl.c中,請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<stdio.h>2voidNONO();3doublefun(doublea[],intn)4}56}7main()8{doubleb[10],r;inti;9printf("輸入10個(gè)分?jǐn)?shù)放入b數(shù)組中:");10for(i=0;i<10;i++)11scanf("%if",&b[i]);12printf("輸入的10個(gè)分?jǐn)?shù)是:"};13for(i=0;i<10;i++)14printf("%4.1lf",b[i]);15printf("\n");16r=fun(b,10);17printf("去掉最高分和最低分后的平均分:%f\n",r);18NONO();19}20voidNONO()21{/*本函數(shù)用于打開文件、輸入數(shù)據(jù)、調(diào)用函數(shù)、輸出數(shù)據(jù)及關(guān)閉文件*/22FILE*fp,*wf;23inti,j;24doubleb[10],r;25fp=fopen("in.dat","r");26wf=fopen("out.dat","w");27for(i=0;i(10;i++){28for(j=0;j<10;j++){29fscanf(fp,"%1f",&b[j]);30}31r=fun(b,10);32fprintf(wf,"%f\n",r);33}34fclose(fp);35fclose(wf);36}標(biāo)準(zhǔn)答案:1doublefun(doublea[],intn)2{3doublesum=0,max,min;inti;4max=min=a[0];5for(i=0;i<n;i++)6{7sum=sum+a[i];8if(max<a[i])max=a[i];9if(min>a[i])min=a[i];10}11stirs=sum-max-min;12return(sum/(n-2));13}知識(shí)點(diǎn)解析:設(shè)定3個(gè)變量,sum存放和值,max存放最大值,min存放最小值。max和min都賦為數(shù)組中第1個(gè)元素的值。利用循環(huán)將數(shù)組中元素累加到sum中,并找出最大值和最小值。sum值減去最大值和最小值。函數(shù)返回sum除以(元素個(gè)數(shù)減2)得平均值。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第7套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:統(tǒng)計(jì)帶頭節(jié)點(diǎn)的單向鏈表中節(jié)點(diǎn)的個(gè)數(shù),并存放在形參n所指的存儲(chǔ)單元中。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;SLIST*creatlist(int*a);voidoutlist(SLIST*);voidfun(SLIST*h,int*n){SLIST*p;/*********found*********/【1】=0;p=h一>next;while(p){(*n)++;/*********found*********/p=p一>【2】;}}main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48},num;head=creatlist(a);outlist(head);/*********found*********/fun(【3】,&hum);printf("\nnumber=%d\n",num);}SLIST*creatlist(inta[]){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q一>data=a[i];p一>next=q;p=q;}p一>next=0;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h一>next;if(p==NULL)printf("ThelistisNULL!\n");else{printf("\nHead");do{printf("一>%d",p一>data);p=p一>next;)while(p!=NULL);printf("一>End\n");}}標(biāo)準(zhǔn)答案:(1)*n(2)next(3)head知識(shí)點(diǎn)解析:填空1:*n用來存放節(jié)點(diǎn)的個(gè)數(shù),對其賦初值為0。填空2:while循環(huán)用于遍歷鏈表,循環(huán)一次,指針指向鏈表的下一個(gè)節(jié)點(diǎn)。填空3:根據(jù)函數(shù)定義語句確定調(diào)用函數(shù)的實(shí)際參數(shù),即fun(head,&num);。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是“abcdx”。當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“abd”時(shí),則程序輸出未找到信息“notbefound!”。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>char*fun(char*s,char*t){char*p,*r,*a;/*********found*********/a=Null;while(*s){p=s;r=t;while(*r)/*********found*********/if(r==p){r++;p++;}elsebreak;if(*r==’\0’)a=s;s++;)returna;}voidmain(){chars[i00],t[i00],*p;system("CLS");printf("\nPleaseenterstrings:");scanf("%s",s);printf("\nPleaseentersubstringt:");scanf("%s",t);p=fun(s,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!\n");}標(biāo)準(zhǔn)答案:(1)a=NULL;(2)if(*r==*p)知識(shí)點(diǎn)解析:(1)a=Null;是個(gè)明顯的語法錯(cuò)誤,指針指向空值的關(guān)鍵字應(yīng)為NULL。(2)r和p均為指針變量,分別指向兩個(gè)字符串中的字符變量,循環(huán)條件是當(dāng)r和p所指向的字符相同時(shí),進(jìn)行指針后移操作,故此處應(yīng)為if(*r==*p)。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后,c=5142。注意:部分源程序給出如下。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(inta,intb,long**c){}voidmain(){inta,b;longc;system("CLS");printf("Inputa,b:");scanf("%d%d”,&a,&b);fun(a,b,&c);printf("Theresultis:%id\n",c);}標(biāo)準(zhǔn)答案:voidfun(inta,intb,long*c){/*b%10獲取b的個(gè)位,a/10獲取a的十位,a%10獲取a的個(gè)位,b/10獲取b的十位*/*c=b%10+(a/10)★10+(b/10)★100+(a%10)★1000;}知識(shí)點(diǎn)解析:本題主要的問題是如何取出a和b的個(gè)位數(shù)和十位數(shù),取出后如何表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),所以分別對它們除10可得到它們的十位數(shù),分別用10對它們求余可得到它們的個(gè)位數(shù)。得到后對應(yīng)乘以1000、100、10、1即可得到c的千位數(shù)、百位數(shù)、十位數(shù)和個(gè)位數(shù)。注意使用c時(shí)要進(jìn)行指針運(yùn)算。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第8套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blankl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:計(jì)算形參X所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指數(shù)組中大于平均值的數(shù)據(jù)移至數(shù)組的前部,小于等于平均值的數(shù)據(jù)移至X所指數(shù)組的后部,平均值作為函數(shù)值返回,在主函數(shù)中輸出平均值和移動(dòng)后的數(shù)據(jù)。例如,有10個(gè)正數(shù):46、30、32、40、6、17、45、15、48、26,平均值為30.500000。移動(dòng)后的輸出為:46、32、40、45、48、30、6、17、15、26。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<stdio.h>#defineN10doublefun(double*x){inti,j;doubles,av,y[N];s=0;for(i=0,i<N;i++)s=s+x[i],/*********found*********/av=【1】;for(i=j=0;i<N;i++)if(x[i]>av){/*********found*********/y[【2】]=x[i];x[i]=-1;)for(i=0;i<N;i++)/*********found*********/if(x[i]!=【3】)y[j++]=x[i];for(i=0;i<N;i++)x[i]=y[i];returnav:}main(){inti;doublex[N];for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);}printf("\n");printf("\nTheaveragis:%f\n",fun(x));printf("\nTheresult:\n",fun(x));for(i=0;i<N;i++)printf("%5.0f",x[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)s/N(2)j++(3)-1知識(shí)點(diǎn)解析:填空1:由原程序可知,av代表的是平均值,而平均值的求法是所有數(shù)的總和除以數(shù)的個(gè)數(shù),因而本空應(yīng)該填寫s/N。填空2:y數(shù)組代表暫時(shí)存放x數(shù)組,if(x[i]>av)表達(dá)的是當(dāng)x數(shù)組中的數(shù)大于平均值時(shí),應(yīng)該把這些大于平均值的數(shù)放在y數(shù)組的前半部分,因而此空應(yīng)該填y[j++]。填空3:此空表明當(dāng)x[i]不等于什么時(shí),x[i]中的數(shù)要賦值給y數(shù)組,由題意可知此空只能填寫-1。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。此程序的功能是:讀入一個(gè)英文文本行,將其中每個(gè)單詞的第一個(gè)字母改成大寫,然后輸出此文本行(這里”單詞”是指由空格隔開的字符串)。例如,若輸入”Iamastudenttotaketheexamination”,則應(yīng)輸出”IAmAStudentToTakeTheExamination”。請改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stcllib.h>#include<string.h>#include<conio.h>#include<ctype.h>#include<stdio.h>#include<string.h>/*********found*********/voidupfst(charP){intk=0;for(;*p;p++)if(k){if(*P=’’)k=0;}else{if(*p!=’’){k=1;*P=toupper(*P);}}}voidmain(){charchrstr[81];system("CLS");printf("\nPleaseenteranEnglishtextline:");gets(chrstr);printf("\nBoforechanging:\n%s",chrstr);upfst(chrstr);printf("\nAfterchanging:\n%s\n",chrstr);}標(biāo)準(zhǔn)答案:voidupfst(char*p)知識(shí)點(diǎn)解析:主函數(shù)中fun函數(shù)的調(diào)用方式說明函數(shù)fun的參數(shù)應(yīng)為指針類型。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件progl.c。在此程序中,定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為:則返回主程序后s的值應(yīng)為3.375。注意:部分源程序在文件PROG1.C中。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5doublefun(intw[][N]){}voidmain(){FILE*wf;inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;doubles;system("CLS");printf("***Thearray***\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",a[i][j]);}printf("\n");}s=fun(a);printf("***THERESULT***\n");printf("Thesumis:%lf\n",s);/*****************/wf=fopen("out.dat","w");fprintf(wf,"%lf",S);fclose(wf);/*****************/}標(biāo)準(zhǔn)答案:doublefun(intw[][N]){inti,j,k=0;doublesum=0.0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1)/*只要下標(biāo)中有一個(gè)為0或N-1,則它一定是周邊元素*/{sum=sum+w[i][j];/*將周邊元素求和*/k++;}returnsum/k;/*求周邊元素的平均值*/}知識(shí)點(diǎn)解析:本題要求計(jì)算二維數(shù)組周邊元素的平均值,for循環(huán)語句控制循環(huán)過程,if條件語句根據(jù)數(shù)組元素的下標(biāo)判斷該元素是否為二維數(shù)組的周邊元素。本題采用逐一判斷的方式,周邊元素的規(guī)律為下標(biāo)中有一個(gè)是0或N-1,所以只要下標(biāo)中有一個(gè)為0或N一1,那么它一定是周邊元素。計(jì)算周邊元素個(gè)數(shù)的方式是當(dāng)給sum累加一個(gè)值時(shí),k也加1。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第9套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:求SS所指字符串?dāng)?shù)組中長度最短的字符串所在的行下標(biāo),作為函數(shù)值返回,并把其串長放在形參n所指變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長<N。請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!{l}include<std~o.h>#include<string.h>#def~heM5#defineN20intfun(char(*ss)[N],int*n){inti,k=0,fen=N;/**********found**********/for(i=0;i<___1___;i++){len=strlen(ss[i]);if(i==0)*n=len;/**********found**********/if(fen___2___*n){*n=len;k=i;}}/**********found**********/return(___3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論