版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷3(共9套)(共27題)國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]、……中。把奇數(shù)從數(shù)組中刪除,偶數(shù)個(gè)數(shù)通過函數(shù)值返回。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7,刪除奇數(shù)后a所指數(shù)組中的數(shù)據(jù)為:4、2、6、8,返回值為4。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#defineN9intfun(inta[],intn){inti,j;j=0;for(i=0;i<n;i++)/**********found**********/if(___1___==0){/**********found**********/___2___=a[i];j++;}/**********found**********/return___3___;}main(){intb[N]={9,1,4,2,3,6,5,8,7},i,n;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");n=fun(b,N);printf("\nThenumberofeven:%d\n",n);printf("\nTheeven:\n");for(i=0;i<n;i++)printf("%4d",b[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)a[i]%2(2)a[j](3)j知識(shí)點(diǎn)解析:奇數(shù)和偶數(shù)的判斷可用取余的方法來實(shí)現(xiàn),a[i]%2等于0,那么a嘲是偶數(shù),否則是奇數(shù)。函數(shù)fun的功能是把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a中,把奇數(shù)從數(shù)組中刪除。第一空:由“___1___=a[i];j++;”是將偶數(shù)元素保存起來并且計(jì)數(shù)變量加1,可知j記錄了偶數(shù)元素的個(gè)數(shù),第一空處是判斷a[i]是否是偶數(shù),因此,第一空處應(yīng)為“a[i]%2”。第二空:a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]…,j初始化為0,a[j]就可以將偶數(shù)元素存放在a中,故第二空處應(yīng)為“a[j]”。第三空:fun函數(shù)的返回值是偶數(shù)個(gè)數(shù),故第三空處應(yīng)為“j”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODI1.C中函數(shù)fun的功能是:按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入5時(shí),函數(shù)值為18;當(dāng)給n輸入3時(shí),函數(shù)值為14。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include<stdio.h>/**********found**********/intfun(n){intc;/**********found**********/if(n=1)c=10;elsec=fun(n-1)+2;return(c);}mein(){intn;printf("Entern:");scanf("%d",&n);printf("Theresult:%d\n\n",fun(n));}標(biāo)準(zhǔn)答案:(1)intfun(intn)(2)if(n==1)知識(shí)點(diǎn)解析:函數(shù)功能是按題目中給出的遞歸公式求函數(shù)值。(1)定義函數(shù)fun時(shí),形參n并沒有指定參數(shù)類型,因此,“intfun(n)”改為“intfun(intn)”。(2)根據(jù)題目要求,原題中的“if(n=1)”應(yīng)該是用于判斷n是否等于1,但是被錯(cuò)誤表示成賦值表達(dá)式。因此,“if(n=1)”應(yīng)該改為“if(n==1)”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、假定輸入的字符串中只包含字母和“*”號(hào)。請(qǐng)編寫函數(shù)fun,它的功能是:使字符串中尾部的“*”號(hào)不得多于n個(gè);若多于n個(gè),則刪除多余的“*”號(hào);若少于或等于n個(gè),則什么也不做,字符串中間和前面的“*”號(hào)不刪除。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:****A*BC*DEF*G****;若n的值為7,則字符串中的內(nèi)容仍為:****A*BC*DEF*G*******。n的值在主函數(shù)中輸入。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。#include<stdio.h>voidfun(char*a,intn){}main(){chars[81];intn;voidNONO();printf("Enterastring:\n");gets(s);printf("Entern:");scanf("%d",&n);fun(s,n);printf("Thestringafterdeleted:\n");putS(s);NONO(),}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti,n;chars[81];in=open("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);fscanf(in,"%d",&n);fun(s,n);fprintf(out,"%s\n",s);}fclose(in);fclose(out);}標(biāo)準(zhǔn)答案:inti=0,j=0;char*p,*t;p=t=a;while(*t)//讓指針t指向串尾t++;t--;//t指向串中的最后一個(gè)字符while(*t==’*’)//當(dāng)t指針當(dāng)前指向的字符是“*”號(hào)時(shí){j++;//對(duì)“*”號(hào)計(jì)數(shù)的累加器加1t--;)}//指向前一個(gè)字符t++;//跳出“*”號(hào)統(tǒng)計(jì)后,指針t繼續(xù)指向字符串的下一個(gè)字符if(j>n)//對(duì)統(tǒng)計(jì)的“*”號(hào)數(shù)目大于給定的“*”號(hào)總數(shù)n{while(*p&&p<t+n)//當(dāng)超出給定的“*”號(hào)數(shù)目,則開始進(jìn)行截取{a[i]=*p;//截取n個(gè)“*”號(hào)i++;p++;}a[i]=’\0’;}//對(duì)新生成的串加尾符知識(shí)點(diǎn)解析:解題過程首先確定字符串尾,然后由串尾開始對(duì)字符進(jìn)行判斷,同時(shí)對(duì)“*”字符進(jìn)行統(tǒng)計(jì),如果大于n,就進(jìn)行截取。(1)首先確定字符串的結(jié)尾,然后判斷“*”號(hào)字符,并對(duì)字符串中的字符進(jìn)行判斷,如果字符是符號(hào)“*”則對(duì)“*”號(hào)進(jìn)行統(tǒng)計(jì)。(2)根據(jù)統(tǒng)計(jì)的“*”號(hào)數(shù)目結(jié)合題目中對(duì)“*”號(hào)個(gè)數(shù)的要求,判斷是執(zhí)行對(duì)“*”號(hào)的截取操作,還是什么都不用做。(3)所有字符處理完后,記得在新串s的末尾加上結(jié)束符“’\0’”。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:計(jì)算如下公式前n項(xiàng)的和,并作為函數(shù)值返回。例如,當(dāng)形參n的值為10時(shí),函數(shù)返回值為9.612558。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>doublefun(intn){inti;doubles,t;/*********found*********/s=【1】;/*********found*********/for(i=1;i<=【2】;i++){t=2.0*i;/*********found*********/s=s+(2.0*i﹣1)*(2.0木i+1)/【3】;}returns;}voidmain(){intn=﹣1;while(n<0){printf("Pleaseinput(n>0):");scanf("%d",&n);}printf("\nTheresultis:%f\n",fun(n));}標(biāo)準(zhǔn)答案:(1)0.0(2)n(3)(t*t)知識(shí)點(diǎn)解析:填空1:程序開始定義了變量s,但沒有對(duì)其進(jìn)行初始化,根據(jù)公式及后面的程序可知變量s用來存放公式的前n項(xiàng)和,因此該變量應(yīng)初始化為0.0。填空2:通過for循環(huán)語句將表達(dá)式各項(xiàng)進(jìn)行累加,結(jié)果存于變量s中,循環(huán)變量i的取值范圍為1~n。填空3:根據(jù)題目要求確定表達(dá)式通項(xiàng)。前面已定義t=2.0*i,因此此空應(yīng)填(t*t)。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:統(tǒng)計(jì)substr所指的字符串在str所指的字符串中出現(xiàn)的次數(shù)。例如,若字符串為aaas1kaaas,子字符串為as,則應(yīng)輸出2。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>intfun(char*str,char*substr){inti,j,k,num=0;/*********found*********/for(i=0,str[i],i++)for(j=i,k=0;substr[k]==str[j];k++,j++)/*********found*********/If(substr[k+1]==’\0’){num++;break;}returnnum;}main(){charstr[80],substr[80];printf("Inputastring:");gets(str);printf("Inputasubstring:");gets(substr);printf("%d\n",fun(str,substr));}標(biāo)準(zhǔn)答案:(1)for(i=0;str[i];i++)(2)if(substr[k+1]==’\0’)知識(shí)點(diǎn)解析:先看循環(huán)條件for(i=0,str[i],i++),不難發(fā)現(xiàn)此處for循環(huán)語句的格式有誤,其中表達(dá)式之間應(yīng)以“;”相隔;同時(shí)很容易發(fā)現(xiàn)if條件語句處的關(guān)鍵字書寫錯(cuò)誤。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)。程序運(yùn)行后,若輸入精度0.0005,則程序應(yīng)輸出為3.140578。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf("Inputeps:”);Scanf("%lf",&x);printf("\neps:%if,PI=%lf\n",x,fun(x));}標(biāo)準(zhǔn)答案:doublefun(doubleeps){doubles=0.0,s1=1.0;intn=1;while(s1>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下一項(xiàng)*/s=s+s1;/*求和*/{s1=s1*n/(2*n+1);/*求多項(xiàng)式的每一項(xiàng)*/n++;}return2*s;}知識(shí)點(diǎn)解析:首先應(yīng)該定義double類型變量,并且賦初值,用來存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第二項(xiàng)開始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用s1來表示每一項(xiàng),s表示求和后的結(jié)果。需注意s1和s的初值都為1.0,因?yàn)檠h(huán)變量從第二項(xiàng)開始累加。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第3套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是將帶頭節(jié)點(diǎn)的單向鏈表節(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:10、4、2、8、6,排序后鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:2、4、6、8、10。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BIANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN6typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p,*q;intt;/*********found*********/p=【1】;while(p){/*********found*********/q=【2】;while(q){/*********found*********/if(p一>data【3】q一>data){t=P一>data;p一>data=q一>data;q一>data=t;}q=q一>next;}p=p一>next;}}NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h一>next=NULL;for(i=0;i<N;i++){q=(NODE★)malloc(sizeof(NODE));q一>data=a[i];q一>next=NULL;if(h一>next==NULL)h一>next=p=q;else{p一>next=q;p=q;}}returnh;}voidoutlist(NODE*h){NODE*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");}}main(){NODE*head;inta[N]={0,10,4,2,8,6};head=creatlist(a);printf("\nTheoriginallist:\n");outlist(head);fun(head);printf("\nThelistaftersorting:\n");outlist(head);}標(biāo)準(zhǔn)答案:(1)h一>next(2)p一>next(3)>知識(shí)點(diǎn)解析:填空1:本題考查了指針變量p賦初值,使p指向鏈表的頭節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn),因此本空應(yīng)該填寫h一>next。填空2:本空考查了q的作用,q代表p的下一個(gè)數(shù),因此次空應(yīng)該填寫p一>next。填空3:if判斷句是比較鏈表中相鄰兩個(gè)數(shù)的大小,如果p一>data>q一>data就交換這兩個(gè)數(shù)的值,因而此空填寫>。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。此程序的功能是:建立一個(gè)帶頭節(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各節(jié)點(diǎn)數(shù)據(jù)域賦值。函數(shù)fun的作用是求出單向鏈表節(jié)點(diǎn)(不包括頭節(jié)點(diǎn))數(shù)據(jù)域中的最大值,并且作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>typedefstructaa{intdata;structaa*next;}NODE;fun(NODE*h){intmax=-1;NODE*P;/*********found*********/p=h;while(p){if(p一>data>max)max=p一>data;/*********found*********/p=h一>next;}returnmax;}outresult(ints,F(xiàn)ILE*pf){fprintf(pf,"\nThemaxinlink:%d\n",s);}NODE*creatlink(intn,intm){NODE*h,*p,*s;inti;h=p=(NODE*)malloc(sizeof(NODE));h一>data=9999;for(i=1;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s一>data=rand()%m;s一>next=p一>next;p一>next=s;p=p一>next;}p一>next=NULL:returnh;}outlink(NODE*h,F(xiàn)ILE*pf){NODE*p;p=h一>next;fprintf(pf,"InTheLIST:\n\nHEAD");while(p){fprintf(pf,"—>%d",p—>data);p=p一>next;)fprintf(pf,"\n");}main(){NODE*head;intm;system("CLS");head=creatlink(12,100);outlink(head,stdout);m=fun(head),printf("\nTheRESULT:\n");outresult(m,stdout);}標(biāo)準(zhǔn)答案:(1)p=h一>nex!;(2)p=p一>next;知識(shí)點(diǎn)解析:(1)因?yàn)殒湵淼念^節(jié)點(diǎn)沒有數(shù)據(jù)域,所以對(duì)指針p進(jìn)行初始化時(shí),要將p指向頭節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。(2)通過指針p的移動(dòng)遍歷鏈表,因此此處應(yīng)改為p=p一>next;。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為則一維數(shù)組中的內(nèi)容應(yīng)該是:333333334444444455555555。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){4}voidmain(){FILE*wf;intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j,inta[100]={0),n=0;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("\n");}fun(w,a,&n,3,4);printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");/*****************/wf=fopen("out.dat","w");for(i=0;i<n;i++)fprintf(wf,"%3d",a[i]);fclose(wf);/*****************/}標(biāo)準(zhǔn)答案:voidfun(int(*s)[0],int*b,int*n,intmm,intnn){inti,j,k=0;for(i=0;i<mm;i++)/*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次放到一維數(shù)組b中*/for(j=0;j<nn;j++)b[k++]=s[i][j];*n=k;/*通過指針返回元素個(gè)數(shù)*/}知識(shí)點(diǎn)解析:本題可以用兩個(gè)循環(huán)來處理,由于是按行的順序取出,所以第1個(gè)循環(huán)用于控制行下標(biāo),第2個(gè)循環(huán)用于控制列下標(biāo);若改成按列的順序取出,則循環(huán)應(yīng)改成:for(i=0;i<nn;i++)for(j=0;j<mm;j++)b[k++]=s[j][i];要注意s[j][i]的下標(biāo),不能用s[i][j]。若按行取出則列標(biāo)變化較快,若按列取出則行標(biāo)變化較陜,即循環(huán)嵌套時(shí),越在內(nèi)層的循環(huán),其循環(huán)變量變化就越快。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第4套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中.函數(shù)fun()的功能是計(jì)算x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),平均值通過形參返回給主函數(shù),將小于平均值且最接近平均值的數(shù)作為函數(shù)值返回,并在主函數(shù)中輸出。例如,有10個(gè)正數(shù):46、30、32、40、6、17、45、15、48、26,其平均值為30.500000。主函數(shù)中輸出m=30。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件blank1.c中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdlib.h>2#include<stdio.h>3#defineN104doublefun(doublex[],double*av)5{inti,j;doubled,s;6s=0;7for(i=0;i<N;i++)s=s+x[i];8/*********found*********/9<u>【1】</u>=s/N;10d=32767;11for(i=0;i<N;i++)12if(x[i]<*av&&*av-x[i]<=d){13/*********found*********/14d=*av-x[i];15j=<u>【2】</u>;16}17/*********found*********/18return[3];19}20main()21{inti;doublex[N],av,m;22for(i;0;i<N;i++);23{x[i]=rand()%50;24printf("%4.0f",x[i]);}25printf("\n");26m=fun(x,&av);27printf("\nTheaverageis:%f\n",av);28printf("m=%5.1f",m);29printf("\n");30}標(biāo)準(zhǔn)答案:(1)*av(2)i(3)x[j]知識(shí)點(diǎn)解析:填空1:從源程序中可以看出,*av代表的是平均值,而s/N用來計(jì)算平均值,故空1處應(yīng)該填*av,對(duì)*av賦值。填空2:if語句用來查找最接近平均值的數(shù),下標(biāo)為i的元素最接近平均值,將此下標(biāo)賦給變量j,故空2處應(yīng)該填i。填空3:題目要求將小于平均值且最接近平均值的數(shù)作為函數(shù)值返回。而j表達(dá)的是最接近平均值的數(shù)在數(shù)組中的下標(biāo),故空3處應(yīng)該填x[j]。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun()的功能是根據(jù)整型形參n,計(jì)算如下公式的值。A1=1,A2=,A3=,…,An=若n=10,則應(yīng)輸出0.617977。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件mcdi1.c中,不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdlib.h>2#include<conio.h>3#include<stdio.h>4/*********found*********/5intfun(intn)6{floatA=1;inti;7/*********found*********/8for(i=2;i<n;i++)9A=1.0/(1+A);10returnA;11}12voidmain()13{intn;14system("CLS");15printf("\nPleaseentern:");16scanf("%d",&n);17printf("A%d=%lf\n",n,fun(n));18}標(biāo)準(zhǔn)答案:(1)floatfun(intn)(2)for(i=2;i<=n;i++)知識(shí)點(diǎn)解析:(1)根據(jù)函數(shù)的返回值可知,函數(shù)應(yīng)定義為float型。(2)該題中函數(shù)fun()的作用是計(jì)算公式前n項(xiàng)的和。而公式的組成方式是:第n項(xiàng)的分母是1加第n-1項(xiàng)的值,分子為1。如果循環(huán)累加按題目中給出的"for(i=2;j<n;i++)"執(zhí)行,當(dāng)n=2時(shí)循環(huán)不會(huì)執(zhí)行,程序?qū)⒌貌坏较胍慕Y(jié)果。因此循環(huán)變量的取值范圍應(yīng)包括n,循環(huán)的條件為j<=n。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,定義了N×N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是使數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#include<string.h>5#defineN56voidfun(inta[][N],intm)7{89)10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<N;i++)16{for(j=0;j<N;j++)17{a[i][j]=rand()%20;18printf("%4d",a[i][j]);19}20printf("\n");21}22m=rand()%4;23printf("m=%4d\n",m);24fun(a,m);25printf("TheResult\n");26for(i=0;i<N;i++)27{for(j=0;j<N;j++)28printf("%4d",a[i][j]);29printf("\n");30}31/*********found*********/32out=fopen("out.dat","w");33for(i=0;i<N;i++)34for(j=0;j<N;j++)35a[i][j]=i*j;36fun(a,8);37for(i=0;i<N;i++)38{for(j=0;j<N;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found*********/44}標(biāo)準(zhǔn)答案:1voidfun(inta[][N],intm)2{3inti,j;4for(j=0;j<N;j++)5for(i=0;i<=j;i++)6a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/7}知識(shí)點(diǎn)解析:本程序?qū)崿F(xiàn)的是:矩陣上三角元素中的值乘以m。上三角元素下標(biāo)的特點(diǎn)是行下標(biāo)小于等于列下標(biāo),即"i<=j"。使用循環(huán)語句遍歷數(shù)組元素,第1個(gè)循環(huán)用于控制列坐標(biāo),第2個(gè)循環(huán)用于控制行下標(biāo)。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第5套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將a所指3×5矩陣中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原來左邊的各列依次繞到右邊。例如,有下列矩陣:123451234512345若k為2,程序執(zhí)行結(jié)果為345123451234512請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineM3#defineN5voidfun(int(*a)[N],intk){inti,j,p,temp;/*********found*********/for(p=1;p<=【1】;p++)for(i=0;i<M;i++){temp=a[i][0];/*********found*********/for(j=0;j<【2】;j++)a[i][j]=a[i][j+1];/*********found*********/a[i][N﹣1]=【3】;}}main(){intx[M][N]=f{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;printf("Thearraybeforemoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++).printf("%3d",x[i][j]);printf("\n"),}fun(x,2);printf("Thearrayaftermoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]),printf("\n");}}標(biāo)準(zhǔn)答案:(1)k(2)N﹣1(3)temp知識(shí)點(diǎn)解析:填空1:外循環(huán)p的值為數(shù)組移動(dòng)的次數(shù),試題要求第k列左移,則需要移動(dòng)的次數(shù)為k,所以應(yīng)填k。填空2:矩陣共N列,所以應(yīng)填N﹣1。填空3:臨時(shí)變量temp中存放的值為數(shù)組最左邊元素的值,需要把temp放到數(shù)組的末尾,即放到a[i][N﹣1]中,所以應(yīng)填temp。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:根據(jù)形參m的值(2≤m≤9),在m行m列的二維數(shù)組中存放如下所示規(guī)律的數(shù)據(jù),由main函數(shù)輸出。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<conio.h>#include<stdio.h>#defineM10inta[M][M]={0};/*********found*********/voidfun(int**a,intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)/*********found*********/a[j][k]=k*j;}main(){inti,j,n;printf("Entern:");scanf("%d",&n);fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("\n");}}標(biāo)準(zhǔn)答案:(1)voidfun(inta[][M],intm)(2)a[j][k]=(k+1)*(j+1);知識(shí)點(diǎn)解析:(1)在函數(shù)體fun中可知,a是一個(gè)二維整型數(shù)組變量,設(shè)置實(shí)參時(shí),用**a表示是錯(cuò)誤的,所以應(yīng)改為voidfun(inta[][M],intm)。(2)根據(jù)輸出的結(jié)果可知,應(yīng)改為a[j][k]=(k+1)*(j+1);。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,函數(shù)fun的功能是:將a、b中的兩個(gè)正整數(shù)合并形成一個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十位和個(gè)位數(shù)依次放在變量c的十位和千位上,b中的十位和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,當(dāng)a=45,b=12。調(diào)用該函數(shù)后,c=5241。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stclio.h>voidfun(inta,intb,long*c){}main(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:voidfun(inta,intb,long*c){*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);}知識(shí)點(diǎn)解析:本題是給出兩個(gè)兩位數(shù)的正整數(shù)分別取出各位上的數(shù)字,再按條件組成一個(gè)新數(shù)。取a十位數(shù)字的方法a/10,取a個(gè)位數(shù)字的方法a%10。同理可取出整數(shù)b的個(gè)位數(shù)和十位數(shù)。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第6套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù),作為函數(shù)值返回。為便于統(tǒng)計(jì),規(guī)定各單詞之間用空格隔開。例如,形參s所指的字符串為:ThisisaClanguageprogram,函數(shù)的返回值為6。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>intfun(char*s){intn=0,flag=0;while(*s!=’\0’){if(*s!=’’&&flag==0){/**********found**********/___1___;flag=1;}/**********found**********/if(*s==’’)flag=___2___;/**********found**********/___3___;}returnn;}main(){charstr[81];intn;printf("\nEnteralinetext:\n");gets(str);n=fun(Str);printf("\nThereare%dwordsinthistext.\n\n",n);}標(biāo)準(zhǔn)答案:(1)n++(2)0(3)s++知識(shí)點(diǎn)解析:函數(shù)fun的功能是計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù)。第一空:“if(*s!=’’&&fla==0)”說明找到空格了,單詞的數(shù)量應(yīng)加1,故第一空處應(yīng)為“n++”。第二空:“if(*s!=’’&&flag==0)”和“if(*s==’’)flag=___2___;”在flag為0的情況下,n才加1,因此,第二空處是將flag置,即第二空處應(yīng)為“0”。第三空:“while(*s!=’\0’)”循環(huán)的終止條件是s達(dá)到結(jié)尾,因此,在循環(huán)體內(nèi)s應(yīng)該不斷往字符串尾移動(dòng),即第三空為“s++”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODI1.C中函數(shù)fun的功能是:從n(形參)個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,若輸入8名學(xué)生的成績(jī):80.5607290.59851.58864則低于平均分的學(xué)生人數(shù)為:4(平均分為:75.5625)。請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#inolude<stdio.h>#defineN20intfun(float*s,intn,float*aver){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;i++)if(s[i]<ave)count++;/**********found**********/*aver=Ave;returncount,}main(){floats[30],aver;intm,i;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,m,&aver));printf("Ave=%f\n",aver);}標(biāo)準(zhǔn)答案:(1)t+=s[k];(2)*aver=ave;知識(shí)點(diǎn)解析:程序功能是統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù)。(1)根據(jù)題目要求求出平均分,首先要求總分,要把所有學(xué)生成績(jī)相加再求平均分,因此第一個(gè)標(biāo)識(shí)下面的“t=s[k];”應(yīng)改為“t+=s[k];”。(2)根據(jù)題目可知,比較的結(jié)果中低于平均分的分?jǐn)?shù)ave放入指針aver所指的地址單元中,而變量Ave沒有定義,因此,第二標(biāo)識(shí)下應(yīng)將“*aver=Ave;”改為“*aver=ave;”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫函數(shù)fun,其功能是求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為:6,980注意:部分源程序在文件PROGl.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。#include<stdio.h>voidfun(int*s,intt,int*k){}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;voidNONO();fun(a,10,&k);printf("%d,%d\n",k,a[k]);NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inta[10],i,k,j;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j<10;j++)fscanf(rf,"%d",&a[j]);fun(a,10,&k);fprintf(wf,"%d,%d\n",k,a[k]);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:inti,pos=0,max=*s;for(i=1;i<t;i++){if(max<*(s+i)){max=*(s+i);pos=1;}}*k=pos;知識(shí)點(diǎn)解析:(1)該程序功能是求最大元素在數(shù)組中的下標(biāo)。它的解題思路是,用最大值變量max標(biāo)記第一個(gè)待找數(shù)據(jù),逐個(gè)把所有待找數(shù)據(jù)和max進(jìn)行比較,并用pos標(biāo)記其當(dāng)前最大值所在位置,從而找出最大值。(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)“fun(a,10,&k);”中的參數(shù)a存放著給出的整數(shù),fun函數(shù)實(shí)現(xiàn)查找最大元素的下標(biāo)。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第7套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blankl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun()的功能是將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本文件中,再用字符方式從此文本文件中逐個(gè)讀取并顯示在終端屏幕上。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2voidfun(char*s,inta,doublef)3{4/*********found*********/5<u>【1】</u>fp;6charch;7fp=fopen("file1.txt","w");8fprintf(fp,"%s%d%\n",s,a,f);9fclose(fp);10fp=fopen("file1.txt","r");11printf("\nTheresult:\n\n");12ch=fgetc(fp);13/*********found*********/14while(!feof(<u>【2】</u>)){15/*********found*********/16putchar(<u>【3】</u>);ch=fgetc(fp);}17putchar('\n’);18fclose(fp);19}20main()21{chara[10]="Hello!";22intb=12345;23doublec=98.76;24fun(a,b,c);25}標(biāo)準(zhǔn)答案:(1)FILE*(2)fp(3)ch知識(shí)點(diǎn)解析:填空1:由語句fopen("iilel.txt","r")可知,fp應(yīng)該是文件類型指針,故空1處應(yīng)該填FILE*。填空2:feof()函數(shù)檢測(cè)文件是否結(jié)束,如果文件結(jié)束返回非0值,否則返回0。故空2處應(yīng)該填fp。填空3:putchar()代表輸入一個(gè)字符,從ch=fgetc(fp)可以看出空3處應(yīng)該填ch。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modil.c。在此程序中,函數(shù)fun()的功能是依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdlib.h>2#include<stdio.h>3#include<conio.h>4voidfun(char*s)5{6inti,j;7for(i=0,j=0;s[i]!=’\0’;i++)8if(s[i]>='0'&&s[i]<='9')9/*********found*********/10s[j]=s[i];11/*********found*********/12s[j]="\0";13}14voidmain()15{16charitem[80];17system("CLS");18printf("\nEnterastring:");19gets(item);20printf("\n\nThestringis:%s\n",item);21fun(item);22printf("\n\nThestringofchangingis:%s\n",item);23}標(biāo)準(zhǔn)答案:(1)s[j++]=s[i];(2)s[j]='\0';知識(shí)點(diǎn)解析:題目要求依次取出字符串中所有的數(shù)字字符,形成新字符串。(1)將字符串s中數(shù)字字符取出存放至原字符串s中,這時(shí)下標(biāo)j需要自增,即改為s[j++]=s[i];。(2)數(shù)字字符存放到字符串s后,需要在字符串結(jié)尾加字符串結(jié)束標(biāo)志"\0",即改為s[j]='\0’;。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件progl.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次存放到一個(gè)字符串中。例如,若二維數(shù)組中的數(shù)據(jù)為則字符串中的內(nèi)容應(yīng)是WSHWSHWSHWSH。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<stdio.h>2#defineM33#defineN44voLdfun(char(*s)[N],char*b)5{67}8voidmain()9{10chara[100],wM][N]={{'W’,’W’,’W’,’W’},{’S’,’S’,’S’,’S’},{’H’,’H’,’H’,’H’}};11inti,j;12printf("Thematrix:\n");13for(i=0;i<M;i++)14{15for(j=0;j<N;j++)16printf("%3c",w[i][j]);17printf("\n");18}19fun(w,a);20printf("Thestring:\n");21puts(a);22printf("\n\n");23}標(biāo)準(zhǔn)答案:1voidfun(char(*s)[N],char*b)2{3inti,j,k=0;4for(i=0;i<N;i++)/*按列的順序依次存放到一個(gè)字符串中*/5for(j=0;j<M;j++)6b[k++]=s[j][i];7b[k]=’\0';8}知識(shí)點(diǎn)解析:看到程序后,很容易便能想到采用循環(huán)嵌套的方法,本題中將字符數(shù)據(jù)按列的順序依次存放到一個(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)變化就越快。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第8套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blankl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。程序的功能是調(diào)用fun()函數(shù)建立班級(jí)通訊錄。通訊錄中記錄每位學(xué)生的編號(hào)、姓名和電話號(hào)碼。班級(jí)人數(shù)和學(xué)生信息從鍵盤讀人,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫到名為myfile5.dat的二進(jìn)制文件中。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include(stdio.h>2#include<stdlib.h>3#defineN54typedefstruct5{intnum;6charname[10];7chartel[10];8}STYPE;9voidcheck();10/*********found*********/11intfun(<u>【1】</u>std)12{13/*********found*********/14<u>【2】</u>*fp;inti;15if((fp=fopen("myfile5.dat","wb"))==NULL)16return(0);17printf("\nOutputdatatofile!\n");18for(i=0;i<N;i++)19/*********found*********/20fwrite(&std[i],sizeof(STYPE),1,<u>【3】</u>);21fclose(fp);22return(1);23}24main(){STYPEs[10]=f{1,"aaaaa","111111"},{1,"bbbbb","222222"},{1,"ccccc","333333"},{1,"ddddd","444444"},{1,"eeeee","555555"}};25intk;26k=fun(s);27if(k==1)28{printf("Succeed!");check();}29else30printf("Fail!");31}32voidcheck()33{FILE*fp;inti;34STYPEs[10];35if((fp=fopen("myfile5.dat","rb"))==NULL)36{printf("Fail!\n");exit(0);}37printf("\nReadfileandoutputtoscreen:\n");38printf("\nnumnametel\n");39for(i=0;i<N;i++)40{fread(&s[i],sizeof(STYPE),1,fp);41printf("%6d%s%s\n",s[i].num,s[i].name,s[i].tel);42}43fclose(fp);44}標(biāo)準(zhǔn)答案:(1)STYPE(2)FILE(3)fp[*]本題考查:函數(shù)定義、變量定義、寫數(shù)據(jù)塊函數(shù)fwrite()。知識(shí)點(diǎn)解析:填空1:根據(jù)主函數(shù)中的調(diào)用函數(shù)可知,函數(shù)的形參應(yīng)為結(jié)構(gòu)體類型,故空1處應(yīng)該填STYPE。填空2:"fp"是指向文件類型的指針變量,故空2處應(yīng)該填FILE。填空3:函數(shù)fwrite()調(diào)用的一般形式為fwrite(buffer,size,count,fp);。buffer:一個(gè)指針變量,在fread()函數(shù)中,它用來存放輸入數(shù)據(jù)的首地址;在fwrite()函數(shù)中。它用來存放輸出數(shù)據(jù)的首地址。size:表示數(shù)據(jù)塊的字節(jié)數(shù)。count:表示要讀寫的數(shù)據(jù)塊數(shù)。fp:表示文件指針。故空3處應(yīng)該填fp。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modil.c。在此程序中,函數(shù)fun()的功能是先將字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序連接到字符串t的后面。例如,當(dāng)s中的字符串為"ABCDE"時(shí),t中的字符串應(yīng)為"ABCDEEDCBA"。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdlib.h>2#include<conio.h>3#include<stdio.h>4#include<string.h>5voidfun(char*s,char*t)6{7inti,s1;8sl=strlen(s);9/*********found*********/10for(i=0;i<=s1;i++)11t[i]=s[i];12for(i=0;i<s1;i++)13t[s1+i]=s[s1-i-1];14/*********found*********/15t[s1]='\0';16}17voidmain()18{19chars[100],t[100];20system("CLS");21printf("\nPleaseenterstrings:");22scanf("%s",s);23fun(s,t);24printf("Theresultis:%s\n",t);25}標(biāo)準(zhǔn)答案:(1)for(i=0;i知識(shí)點(diǎn)解析:(1)字符串長(zhǎng)度為s1,但數(shù)組中元素的下標(biāo)為0~s1-1,因此不包括s1。(2)正序和逆序字符串都加入了t字符串中,此時(shí)t字符串中最后一個(gè)元素的下標(biāo)為2*s1-1。所以在2*s1下標(biāo)處加字符串結(jié)束標(biāo)志"\0"。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,函數(shù)fun()的功能是將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個(gè)位數(shù)依次放在c的千位和十位上,b中的十位數(shù)和個(gè)位數(shù)依次放在c的百位和個(gè)位上。例如,當(dāng)a=45.b=12時(shí),調(diào)用該函數(shù)后c=4152。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<conio.h>2#include<stdio.h>3voidfun(inta,intb,long*c)4{5}6main()7{8inta,b;9longc;10printf("Inputa,b:");11scanf("%d%d",&a,&b);12fun(a,b,&c);13printf("Theresultis:%d\n",c);14}標(biāo)準(zhǔn)答案:1vOidfun(inta,intb,long*c)2{3/*b%10獲取b的個(gè)位數(shù),a/10獲取a的十位數(shù),a%10獲取a的個(gè)位數(shù),b/10獲取b的十位數(shù)*/4*c=b%10+(a%10)*10+5(b/10)*100+(a/10)*1000;6}知識(shí)點(diǎn)解析:本題主要考查如何取出a和b的個(gè)位數(shù)和十位數(shù),取出后如何將其表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),因此分別對(duì)它們除以10可得到它們的十位數(shù),分別用10對(duì)它們求余可得到它們的個(gè)位數(shù)。將得到的數(shù)對(duì)應(yīng)乘以1000、100、10、1,就可得到c的千位數(shù)、百位數(shù)、十位數(shù)、個(gè)位數(shù)。注意使用c時(shí)要進(jìn)行指針運(yùn)算。國(guó)家二級(jí)C語言機(jī)試(操作題)模擬試卷第9套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后將新字符串的首地址作為函數(shù)值返回。例如,若
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物探課程設(shè)計(jì)報(bào)告總結(jié)
- 礦井通風(fēng)課程設(shè)計(jì)心得
- 綜合通信系統(tǒng)課程設(shè)計(jì)
- 電工電子課程設(shè)計(jì)概述
- 英文秋天主題課程設(shè)計(jì)
- 研學(xué)谷物分揀課程設(shè)計(jì)
- 線上公交類培訓(xùn)課程設(shè)計(jì)
- 按鍵電燈課程設(shè)計(jì)
- 職業(yè)素養(yǎng)課程設(shè)計(jì)總結(jié)
- 自然教育課程設(shè)計(jì)冬天
- 中國(guó)成人血脂異常防治指南解讀
- 醫(yī)學(xué)專家談靈芝孢子粉課件
- 彈性力學(xué)19年 吳家龍版學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 有沒有租學(xué)位的協(xié)議書
- 車載智能計(jì)算芯片白皮書
- 住宅小區(qū)綠化管理規(guī)定
- 土建工程定額計(jì)價(jià)之建筑工程定額
- 2022年7月云南省普通高中學(xué)業(yè)水平考試物理含答案
- 學(xué)校安全工作匯報(bào)PPT
- 一年級(jí)語文上冊(cè)《兩件寶》教案1
- 關(guān)注健康預(yù)防甲流甲型流感病毒知識(shí)科普講座課件
評(píng)論
0/150
提交評(píng)論