C語言上機(jī)題100套(答案附程序)_第1頁
C語言上機(jī)題100套(答案附程序)_第2頁
C語言上機(jī)題100套(答案附程序)_第3頁
C語言上機(jī)題100套(答案附程序)_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余129頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

第001套ー、程序填空題第一處:t是通過取模的方式來得到*n的個(gè)位數(shù)字,所以應(yīng)填:10.第二處:判斷是否是奇數(shù),所以應(yīng)填:0.第三處:最后通形參n來返回新數(shù)x,所以應(yīng)填:x.參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:條件語句書寫格式錯(cuò)誤,應(yīng)改為:if(n=0)。第二處:語句后缺少分號(hào)。參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<string.h>longfun(char*p){/*以下代碼僅供參考*/inti,len,t;/*len為串長(zhǎng),t為正負(fù)標(biāo)識(shí)*/longx=0;Icn=strlen(p);if(p[O]==*J){t=-l;len-;p++;}elset=l;/?以下完成數(shù)字字符串轉(zhuǎn)換為ー個(gè)數(shù)字?/while(*p)x=x*10-48+(*p++);returnx*t;main()/?主函數(shù)?/{chars[6];longn;printf("En〔erastringAn");gets(s);n=fun(s);printf(H%ld\n",n);NONO();)NONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti;chars[20];longn;fp=fopen("c:\\test\\in.dat,\HrH);wf=fopen("c:\\test\\out.daゼ;for(i=0;i<10;i++){fscanf(fp,"%s",s);n=fun(s);fprintf(wftH%ld\n",n);)fclose(fp);fclose(wf);}本題是將一個(gè)數(shù)字字符串轉(zhuǎn)換為ー個(gè)整數(shù)。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第002套ー、程序填空題本題是考察先把給定的數(shù)據(jù)寫入到文本文件中,再從該文件讀出并顯示在屏幕I-.O第一處:定義文本文件類型變量,所以應(yīng)填:FILE?〇第二處:判斷文件是否結(jié)束,所以應(yīng)填:fp。第三處:顯示讀岀的字符,所以應(yīng)填:Cho參考源程序:c:'wexam\24990001'HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:要求是取出原字符串中所有數(shù)字字符組成一個(gè)新的字符串,程序中是使用變量j來控制新字符串的位置,所以應(yīng)改為:s[j++]=s國;。第二處:置新字符串的結(jié)束符,所以應(yīng)改為:s[j]=W;.參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果?三、程序設(shè)計(jì)題#include<sldio.h>#define M 3#define N 4voidfun(chars[][N],char*b){intiJ,n=O;for(i=0;i<N;i++)/?請(qǐng)?zhí)顚懴鄳?yīng)語句完成其功能?/for(j=0;j<M;j++){b[n]=sU][i];n=i*M+j+I;)Ib[n]=,\O';)main(){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(M%3cM,w[i]|j]);printf("\n");1fun(w,a);printf("TheAstring:\n");puts(a);printf(,'\n\nM);NONO();)NONOO1/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE?rf,*wf;intij,k;chara[100],w[M][N],b;rf=fopen("c:\\test\\in.dat,\HrM);wf=fopen(',c:\\test\\out.dat",,'w'');for(k=0;k<10;k++){for(i=0;i<M;i++){for(j=0;j<N;j++)fscanf(rf,"%c",&w[i][j]);fscanf(rf,H%cH,&b);Ifun(w,a);fprimf(wf,"%s\n”,a);)fclose(rf);fclose(wf);)本題是把:維數(shù)組中的字符數(shù)據(jù)按列存放到ー個(gè)字符串中。.計(jì)算存放到ー維數(shù)組中的位置。.取出:維數(shù)組中的字符存放到一維數(shù)組(已計(jì)算出的位置)中。參考源程序:c:\wexam\24990(X)ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第003套ー、程序填空題本題是考察如何從文件中讀出數(shù)據(jù),再把結(jié)構(gòu)中的數(shù)據(jù)寫入文件屮。第?處:從指定的文件中讀出數(shù)據(jù),所以應(yīng)填:filename。第二處:讀取文件fp的最后一條記錄,所以應(yīng)填:fp。第三處:再把讀出的記錄,寫入文件fp指定的位置上,所以應(yīng)壊:fp.參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:指向剛分配的結(jié)構(gòu)指針,所以應(yīng)改為:p=(NODE*)malloc(sizeof(NODE));第二處:在動(dòng)態(tài)分配內(nèi)存的ドー行語句是,使用臨時(shí)結(jié)構(gòu)指針變量h保存p指針的初始位置,最后返回不能使用P,是因?yàn)閜的位置已經(jīng)發(fā)生了變化,所以應(yīng)改為返回h。參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<string.h>#defineN80intfun(char*s)(intk=1;while(*s){if(*s=つk++;s++;)returnk;)main(){charline[N];intnum=0;printf("Enterastring:\n");gets(line);num=fun(line);printf("Thenumberofwordis:%d\n\n",num);NONO0;1NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,num;charline[N],*p;rf=fopen("c:\\test\\in.dat,,,,,r,');wf=fopcn("c:\\test\\out.dat",,'w'');for(i=0;i<10;i++){fgets(line,N,rf);p=sirehr(line,An');if(p!=NULL)*p=0;num=fun(line);fprintf(wf,M%d\nH,num);fclose(rf);fclose(wf);本題是統(tǒng)計(jì)字符串中的單詞數(shù)。.利用while循環(huán)語句和指針變量,當(dāng)字符為空格時(shí),則單詞數(shù)k加1..循環(huán)結(jié)束返回k。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第004套ー、程序填空題本題是考察把結(jié)構(gòu)中的數(shù)據(jù)寫入文件。第一處:建立文件的類型,考慮到是把結(jié)構(gòu)中的數(shù)據(jù)(結(jié)構(gòu)中的數(shù)據(jù)包含不打印的字符)從文件中讀出,所以應(yīng)填:"rb".第二處:判斷當(dāng)前學(xué)號(hào)是否大于剛讀出的學(xué)號(hào)進(jìn)行相比,如果大于,則進(jìn)行交換,所以應(yīng)填:>。第一:處:把已排序的結(jié)構(gòu)數(shù)據(jù),重新寫入文件,所以應(yīng)填:fwrite.參考源程序:c:\wexam'24990001'HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:指針p應(yīng)指向s,所以應(yīng)改為:p=s;。第二處:死循環(huán),當(dāng)dowhile循環(huán)執(zhí)行一次,臨時(shí)變量P應(yīng)該指向字符串的ドー位置,所以應(yīng)改為:while(*p++);o參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<sKho.h>#define N50#define M 11voidfun(int*a,int*b)(intij;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N;i++){j=a[i]/10;if。>10)b[M-1]++;elseb[j]++;doublemd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;retum((double)r/m);)main(){intage[N],i,d[M];for(i=0;i<N;i++)age[i]=(int)(l15*md());printf("Theoriginaldata:\n");for(i=0;i<N;i++)printf((i+l)%10==0?"%4d\n":H%4dH,ageli]);printf(,,\n\nM);fun(age,d);for(i=0;i<10;i++)printf(M%4d--%4d:%4d\nH,i*10,i*10+9,d[i]);printf(MOver100:%4d\n”,d[10]);NONO(d);1NONO(intd[M]){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*wf;inti;wf=fopen(',c:\\test\\out.dat","w");for(i=0;i<10;i++)fprintf(wf,M%4d—%4d:%4d\n",i*10,i*10+9,d[i]);fprintf(wf,HOver100:%4d'n”,d[10]);fclose(wf);)本題是統(tǒng)計(jì)各年齡段的人數(shù)。.初始化各年齡段人數(shù)為〇。.使用for循環(huán)以及求出各年齡的十位數(shù)字作為存放人數(shù)的地址,如果大于值大于10,則存入d[10]中(大于!10歲的人)。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第005套ー、程序填空題本題是考察先把給定的數(shù)據(jù)寫入到文本文件中,再從該文件讀出并轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù)顯示在屏幕上。第一處:定義文本文件類型變量,所以應(yīng)填:FILE?。第二處:關(guān)閉剛寫入的文件,所以應(yīng)填:fclose(fp)。第三處:從文件中讀出數(shù)據(jù),所以應(yīng)填:fp。參考源程序:c:'wexam\24990001\HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:語句最后缺少分號(hào)。第二處:應(yīng)該使用方括號(hào),而不是圓括號(hào)。像此類,使用編譯,即可發(fā)現(xiàn)。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#defineN80intfun(inta[],intn)(inti,j=l,k=a[O];for(i=1;i<n;i++)if(k!=a[i]){a|j-H-]=ali];k=a[i];}aU]=O;relumj;(main(){inta[N]={2,2,2,3,4,4,5,6,6,6,6,77,8,9,9,10,10,10,10},i,n=20;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf(H%3dH,a[i]);n=fun(a,n);printf("\n\nThedataafterdeleted:\n");fbr(i=O;i<n;i++)printf(M%3dH,a[i]);printf("\n\n");NONO();1NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/HLE*rf,*wf;inta[N],n,i,j;rf=fopen("c:\\test\\in.dat,',Hr,');wf=fopen(',c:\\test\\out.dat",,'w'');for(i=0;i<5;i++)(fscanf(rf,”%d”,&n);for(j=0;j<n;j++)fscanf(rf,M%dH,&a[j]);n=fun(a,n);for(j=0;j<n;j++)fprintf(wf,"%4d",a(j]);fprintf(wf,"\nM);)fclose(rf);fclose(wf);}本題是刪除已排序過數(shù)組中的相同數(shù)。.取出數(shù)組中的第1個(gè)數(shù)存放在臨時(shí)變量k中,再利用for循環(huán)來依次判斷所有的數(shù)。.如果取出的數(shù)和k相比,如果不相同,則仍存放在原數(shù)組中,其中存放的位置由j來控制,接著把這個(gè)數(shù)重新存入k。如果相同,則取ドー數(shù)。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、prog1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第006套、程序填空題本題是根據(jù)給定的公式來計(jì)算函數(shù)的值。第?處:程序中使用雙精度double類型進(jìn)行計(jì)算,所以函數(shù)的返回值類型也為double,所以應(yīng)填:double。第二處:當(dāng)i等于1時(shí),則返回fl函數(shù)的值,所以應(yīng)填:fL第三處:如果i不等于1,則返回f2函數(shù)的值,所以應(yīng)填:f2.參考源程序:c:'wexam\24990001'HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:試題要求返回字符串的首地址,所以應(yīng)改為:char*fun(char*s,char*t)第二處:取字符串指針ss的ドー個(gè)位置,所以應(yīng)改為:SS++;。第三處:取字符串指針tt的下ー個(gè)位置,所以應(yīng)改為:tt++;。參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題##include<stdio.h>#include<string.h>#defineN80voidfun1(char*w)/?本函數(shù)的功能是將字符串中字符循環(huán)左移ー個(gè)位置?/{inti;chart;t=w[0];for(i=0;i<strlen(w)-1;i++)w[i]=w[i+l];w[strlen(w)-l]=t;)voidfun(char*w,intm)/?可調(diào)用funl函數(shù)左移字符?/{inti;for(i=0;i<m;i++)funl(w);)main(){chara[N]="ABCDEFGHIJKintm;printf("Theoriginalstring:\n");puts(a);printf("\n\nEnterm:り;scanf("%d",&m);fun(a,m);printf(H\nThestringaftermoving:\n");puts(a);printf(M\n\n");NONO();NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE?rf,*wf;chara[N];intm,i;rf=fopen("c:\\test\\in.dat,\,,ru);wf=fopen(,'c:\\test\\out.dat",,'w,');for(i=0;i<10;i++){fscanf(rf,"%d%s",&m,a);fun(a,m);fprintf(wf,"%s\n”,a);Ifclose(rf);fclose(wf);1本題是考察字符串的操作。.由于函數(shù)funl是將字符串中字符循環(huán)左移ー個(gè)位置,并通過實(shí)參w返回循環(huán)左移ー個(gè)位置的字符串。.利用循環(huán)for語句來操作多少個(gè)字符(m)需要循環(huán)左移。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到!E確的結(jié)果。第007套ー、程序填空題本題是利用結(jié)構(gòu)體變量存儲(chǔ)了一名學(xué)生的信息。第一處:tt變量在函數(shù)體fun已經(jīng)使用,所以應(yīng)填:tt。第二處:利用循環(huán)分別輸出學(xué)生的成績(jī)數(shù)據(jù),所以應(yīng)填:tt.sco@i]。第一:處:函數(shù)的調(diào)用,所以應(yīng)填:std。參考源程序:c:'wexam'249900Ol'HLPSYS'參考答案'blankl.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:外循環(huán)每循環(huán)一次,把當(dāng)前位置i賦值給m,所以應(yīng)改為:m=i;?第二處:通過內(nèi)循環(huán)來找出最大的ー個(gè)數(shù)的位置k,所以應(yīng)改為:if(a[k]>a[m])m=k;。參考源程序:c:'wexam'24990001'HLPSYS'參考答案'modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到!E確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>unsignedfun(unsignedw)if(w>10000)w%=10000;elseif(w>1000)w%=1000;elseif(w>100)w%=100;elseif(w>10)w%=10;returnw;)main(){unsignedx;printf("Enteraunsignedintegernumber:");scanf("%u",&x);printf("Theoriginaldatais:%u\n",x);if(x<10)printf("Dataerror!H);elseprintf("Theresult:%u\n",fun(x));NONO();}NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/unsignedx;inti;FILE?rf,*wf;rf=fopenC'ciWtestWin.dat","f');wf=fopen("c:\\lest\\out.dat","w");for(i=0;i<20;i++){fscanf(rf,"%u",&x);fprimf(wf,"%u\n",fun(x));)fclose(rf);fclose(wf);)本題是考察考生怎樣獲取ー個(gè)符合要求的無符號(hào)整數(shù)。本題是應(yīng)用if條件語句首先判斷給出的數(shù)是幾位數(shù),再模相應(yīng)的值,最后得出的余數(shù)就是結(jié)果。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果?第008套ー、程序填空題本題是利用結(jié)構(gòu)體存儲(chǔ)學(xué)生記錄并由實(shí)參SS返回。第一處:實(shí)參SS是ー個(gè)結(jié)構(gòu)型指針變量,所以應(yīng)填:STU.第二處:該學(xué)生的各科成績(jī)都乘以ー個(gè)系數(shù)a,所以應(yīng)填:score⑴。第三處:函數(shù)的調(diào)用,由了函數(shù)定義時(shí)使用的指針結(jié)構(gòu)型變量,所以應(yīng)填:&std。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第?處:條件判斷缺少圓括號(hào)。第二處:判斷相等的符號(hào)是參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<stdlib.h>#defineN5intfun(inta[][N],intn)(inti,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]*=n;)main(){inta[N][N],nJJ;printf(M*****Thearray*****\n");for(i=0;i<N;i++)1for(j=0;jvN;j++){a[i][j]=rand()%10;printf("%4d“,a[i][j|);}printf("\n");1don=rand()%10;while(n>=3);printf(Mn=%4d\nM,n);fun(a,n);print"”*****THERESULT*****\nH);for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}NONO();)NONO()1/?木函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,j,n,a[5][5J;rf=fopen("c:\\test\\in.dat,\''r*');wf=fopen(',c:\\test\\out.dat,\"w");for(i=0;i<5;i++)for(j=0;j<5;j++)fscanf(rf,M%d",&a[i][j]);fscanf(rf,"%d",&n);fun(a,n);for(i=0;i<5;i++){for(j=0;j<5;j++)fprintf(wf,"%4d",a[i][j]);fprintf(wf,"\n");)fclose(rf);fclose(wf);1本題是利用兩重循環(huán)給二維數(shù)組左下三角元素屮的值乘以no參考源程序:c:\wexam\249900Ol\HLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第009套ー、程序填空題本題是考察使用鏈表方法,使用兩重while循環(huán)語句,對(duì)鏈表的結(jié)點(diǎn)數(shù)據(jù)進(jìn)行升序排列。第一處:由于外循環(huán)變量使用p指針,內(nèi)循環(huán)變量使用q指針,所以q指向必須指向p的next指針,因此應(yīng)填寫:p.nexto第二處:判斷內(nèi)循環(huán)q指針是否結(jié)束,所以應(yīng)填:q.第三處:外循環(huán)控制變量p指向自己的next指針,所以應(yīng)填:p.nexto參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:使用while循環(huán)來判斷字符串指針s是否結(jié)朿,所以應(yīng)改為:while(*s)?第二處:取字符串指針s的ドー個(gè)位置,所以應(yīng)改為:S++;。參考源程序:c:'wexam\24990001'HLPSYS'參考答案'modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#defineN80voidfun(int*w,intp,intn)(inti,j=0,b[N];for(i=p+1;i<n;i++)b[j++]=w[i];for(i=0;i<=p;i++)b[j++]=w[i];for(i=0;i<n;i++)w[i]=b[i];main(){inta[N]={1,2,3,4,5,67,8,9,10,H,12,13,14,15);inti,p,n=15;printf(MTheoriginaldata:\nu);for(i=0;i<n;i++)printf(H%3dM,a[i]);printf("\n\nEnterp:,');scanf("%d,,,&p);fun(a,p,n);printf("\nThedataaftermoving:\nM);for(i=0;i<n;i++)printf(H%3d'\a[i]);printf(,,\n\nM);NONO();)NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inta[N],i,j,p,n;rf=fopen("c:\\test\\in.dat,\',rH);wf=fopen(',c:\\test\\out.dat","w");for(i=0;i<5;i++){fscanf(rf,"%d%d",&n,&p);for(j=0;j<n;j++)fscanf(rf,M%d",&a|j]);fun(a,p.n);for(j=0;j<n;j++)fprintf(wf,"%3d",a[j]);fprintf(wf,H\n");)fclose(rf);fclose(wf);)本題是考察ー維數(shù)組的操作。.定義ー維數(shù)組中間變量b,把n值后面數(shù)組中的內(nèi)容存入b中。.再把m前的數(shù)組中的內(nèi)容存入b中。.最后把數(shù)組b的內(nèi)容依次存放到w中.參考源程序:c:\wexam\249900()ハHLPSYS、參考答案、progl.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第010套ー、程序填空題第一處:行列變量row和colum的值初始化為〇。第二處:兩個(gè)條件只要有一個(gè)不滿足就返回。,所以應(yīng)填:II.第三處:如果矩陣是“幻方”,則返回U參考源程序:c:'wexam\24990001\HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:在除法運(yùn)算中,如果除數(shù)和被除數(shù)都是整數(shù),所么所除結(jié)果也是整數(shù),因此應(yīng)改為t-=l./i。第二處:應(yīng)是返回公式的值,函數(shù)中公式的值是存放在臨時(shí)變量t中,所以應(yīng)填returnt;.參考源程序:c:\wexam\24990001XHLPSYS、參考答案\modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<sldio.h>#include<ctype.h>intfun(char*str)(char*p=str;inti=0;while(*p){if(*p!='')str[i++]=*p;P++;)str[i]=0;)main()(charstr[81];intn;printf("Inputastring:");gets(str);puts(str);fun(str);printf("***str:%s\n",str);NONO();}NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入調(diào)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/charstr[81];intn=0;FILE*rf,*wf;rf=fopen("c:\\test\\in.dat",Hr");wf=fopen("c:\\test\\out.dat","w");while(n<10){fgets(stn80,rf);fun(str);fprintf(wf,H%sM,str);n++;}fclose(rf);fclose(wf);)本題是考察考生怎樣利用字符串指針來刪除字符串的空格字符。在函數(shù)開始處把指針P先指向字符串str以及位置變量i置0,然后采用while循環(huán)和字符串指針p來處理的,每循環(huán)?次來判斷指針p所指的字符是否為空格,如果不是空格,則把該字符寫到str字符串中,位置由i來控制,如果是空格,則不處理,繼續(xù)取下?字符,直至字符串結(jié)束為止.,最后再把字符串結(jié)束符寫到位置為i的str上,再通過形參str返回。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第on套ー、程序填空題本題是考察使用鏈表方法,對(duì)鏈表的結(jié)點(diǎn)數(shù)據(jù)進(jìn)行降序排列。第一處:使用結(jié)構(gòu)指針P,來控制鏈表的結(jié)朿,P必須指向h結(jié)構(gòu)指針的next指針,來定位p的初始位置。所以應(yīng)填寫:h->next。第二處:判斷p指針是否結(jié)朿,所以應(yīng)填寫:〇。第一:處:q指向原q的next指針,所以應(yīng)填:r。參考源程序:c:'wexam\24990(X)l'HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:程序中子串是由變量t來實(shí)現(xiàn)的,再根據(jù)下面while循環(huán)體中語句可知,所以應(yīng)改為:r=t;?第二處:是判斷相等的條件,所以應(yīng)改為:if(*r=O)。參考源程序:c:'wexam'249900Ol'HLPSYS'參考答案'modi1.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#includc<stdio.h>#defineM3#defineN 20voidfun(chara[M][N],char*b){/?以卜.代碼僅供參考?/inti;*b=0;for(i=0;i<M;i++)strcat(b,a[i]);main(){charw[M][N]={HAAAAH?'BBBBBBBM;,CC,,},a[100];inti;printf("Thestring:\nM);for(i=0;i<M;i++)puts(w[i]);printf("\n");fun(w,a);printf("TheAstring:\n");printf(,,%s,',a);printf(,'\n\n");NONOO;)NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;charw[M][N],a[100];inti;rf=fopen("c:\\test\\in.dat","r");wf=fopen("c:\\test\\out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%s%s%sH,w[0],w[l],w[2]);fun(w,a);fprintf(wf,"%s\n”,a);Ifclose(rf);fclose(wf);}本題是考察字符串的操作。使用for循環(huán)以及C語言函數(shù)strcat依次連接起來。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第012套ー、程序填空題本題是考察使用鏈表方法,対鏈表的結(jié)點(diǎn)數(shù)據(jù)進(jìn)行降序排列,最后通過函數(shù)進(jìn)行返回。第一處:由于鏈表中的所有結(jié)果要求通過函數(shù)進(jìn)行返冋,所以應(yīng)填:NODE?。第二處:中間變量r用來保存q的next指針,所以應(yīng)填:next。第一:處:q指向原q的next指針,所以應(yīng)填:r。參考源程序:c:\wexam\2499000八HLPSYS、參考答案、blank"請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:根據(jù)試題分析,兩個(gè)條件之間應(yīng)該是“或”的關(guān)系,而不是“與'’的關(guān)系,所以應(yīng)改為:if(i%2IIs[i]%2=0)o第二處:當(dāng)字符串處理結(jié)束后,應(yīng)該補(bǔ)上字符串的結(jié)朿符,那么字符串t的位置是由i來控制,所以應(yīng)改為:由1力;。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,nn)(/*以下代碼僅供參考*/inti,j,np=O;/*np用作b數(shù)組下標(biāo)?/for(i=0;i<nn;i++)for(j=0;j<mm;j++){b[np]=s[j][i];np=i*mm+j+1;}*n=np;}main(){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(n%3d",w[i]|j]);printf("\n");)fun(w,a,&n,3,4);printf("TheAarray:\n");for(i=0;ivn;i++)printf("%3d”,a[i]);printf("\n\n");NONO();)NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。?/FILE*rf,*wf;inti,j,k;intw[10][10],af100],n=0,mm,nn;rf=fopenC'ciWtestWin.dafW);wf=fopen("c:\\test\\out.dat",,,w'');for(k=0;k<5;k++){fscanf(rf,"%d%d",&mm,&nn);for(i=0;i<mm;i++)for(j=0;j<nn;j++)fscanf(rf,"%d",&w[i]|j]);fun(w,a,&n,mm,nn);for(i=0;i<n;i++)fprintf(wf,"%3d",a[i]);fprintf(wf,M\n");fclose(rf);fclose(wf);本題是把二維數(shù)組屮的數(shù)據(jù)按行存放到ー維數(shù)組中..計(jì)算存放到?維數(shù)組中的位置。.取出ニ維數(shù)組中的數(shù)據(jù)存放到ー維數(shù)組(已計(jì)算出的位置)中。參考源程序:c:\wexam\2499000ハHLPSYS、參號(hào)答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第013套ー、程序填空題本題是考察使用鏈表方法,對(duì)鏈表的結(jié)點(diǎn)數(shù)據(jù)進(jìn)行升序排列。第一處:使用結(jié)構(gòu)指針p,來控制鏈表的結(jié)朿,p必須指向h結(jié)構(gòu)指針的next指針,來定位p的初始位置。所以應(yīng)填寫:h->next.第二處:使用while循環(huán),對(duì)鏈表中結(jié)點(diǎn)的數(shù)據(jù)進(jìn)行排序,q必須指向P結(jié)構(gòu)指針的next指針。所以應(yīng)填寫:p->next。第三處:如果當(dāng)前結(jié)點(diǎn)中的數(shù)據(jù)大于(大于等于)循環(huán)中的結(jié)點(diǎn)數(shù)據(jù),那么進(jìn)行交換,所以應(yīng)填寫:>(或>=)。參考源程序:c:\wexam'2499000八HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題程序中是使用while循環(huán)語句和結(jié)合結(jié)構(gòu)指針p來找到數(shù)據(jù)域中的最大值。第一?處:p指向形參結(jié)構(gòu)指針h的next指針,所以應(yīng)改為:p=h->next;。第二處:p指向自己的下ー個(gè)結(jié)點(diǎn),所以應(yīng)改為:p=p->next,參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<sldio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn)(inti,j,k;for(i=0;i<mm;i++)for(j=0;j<nn;j++){k=i*nn+j;b[k]=s[i]U];}*n=mm*nn;)main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},ij;inta[100]={0),n=0;printf(HThematrix:\nM);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(H%3dH,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");NONO();NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,j,k;intw[10][10],a[100],n=0,mm,nn;rf=fopen("c:\\test\\in.dat,',Hr,');wf=fopen(,'c:\\test\\out.dat',,,'w");for(k=0;k<5;k++)(fscanf(rf,H%d%dH,&mm,&nn);for(i=0;i<mm;i-H-)for(j=0;j<nn;j++)fscanf(rf,,,%dM,&w[i皿);fun(w,a,&n,mm,nn);for(i=0;i<n;i++)fprintf(wf,,'%3d\a[i]);fprintf(wf,M\n");)fclose(rf);fclose(wf);本題是把二維數(shù)組中的數(shù)據(jù)按行存放到ー維數(shù)組中。.計(jì)算存放到ー維數(shù)組中的位置..取出ニ維數(shù)組中的數(shù)據(jù)存放到ー維數(shù)組(已計(jì)算出的位置)中。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第014套ー、程序填空題本題主要是考察用函數(shù)指針指向要調(diào)用的函數(shù)。程序中共有三處要填上適當(dāng)?shù)膬?nèi)容,使程序能運(yùn)行出正確的結(jié)果。第一處:定義函數(shù)指針的類型,所以應(yīng)填:double.第二處:使f指向函數(shù)fl,所以應(yīng)填:H。第三處:使f指向函數(shù)f2,所以應(yīng)填:f2.參考源程序:c:'wexam'24990001'HLPSYS'參考答案'blank"請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題本題是考察如何使用單向鏈表把數(shù)據(jù)域的值按條件進(jìn)行累加。第一處:試題要求不計(jì)算頭結(jié)點(diǎn),所以應(yīng)改為:p=h->next;第二處:指向p的下ー個(gè)結(jié)點(diǎn)來實(shí)現(xiàn)循環(huán),所以應(yīng)改為:p=p->next;參考源程序:c:\wexam\24990001\HLPSYS\參考答案、modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<sldio.h>#defineN80intfun(char*str)(inti,j=strlen(str);for(i=0;i<j/2;i++)if(str[i]!=str|j-i-1])return0;return1;main(){chars[N];printf("Enterastring:");gets(s);printf(H\n\nu);puts(s);if(fun(s))printf(HYES\n”);elseprintf(HNO\nM);NONO();)NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti;chars[N];rf=fopen("c:\\test\\in.dat,\Hr,');wf=fopen(,'c:\\test\\out.dat",,'w'');for(i=0;i<10;i++){fscanf(rf,"%s",s);if(fun(s))fprintf(wf,"%sYES\n",s);elsefprintf(wf,H%sNO\n",s);)fclose(rf);fclose(wf);}木題是考察如何判斷ー個(gè)字符串是回文字符串,回文是指順讀和倒讀都一樣的字符串.可以利用for循環(huán)語句來判斷,如果前后不一致,則不是冋文字符串。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到!E確的結(jié)果。第015套ー、程序填空題本題是考察如何從指定文件中找出指定學(xué)號(hào)的學(xué)生數(shù)據(jù),并進(jìn)行適當(dāng)?shù)男薷?修改后重新寫回到文件中該學(xué)生的數(shù)據(jù)上,即用該學(xué)生的新數(shù)據(jù)覆蓋原數(shù)據(jù)。第一處:判斷讀文件是否結(jié)束,所以應(yīng)填:fp。第二處:從讀出的數(shù)據(jù)中判斷是否是指定的學(xué)號(hào),其中學(xué)號(hào)是由形參sn。來傳遞的,所以應(yīng)填:=.第三處:從已打開文件fp中重新定位當(dāng)前讀出的結(jié)構(gòu)位置,所以應(yīng)填:fp。參考源程序:c:\wexam\2499000ハHLPSYS、參號(hào)答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第?處:函數(shù)應(yīng)該使用圓括號(hào),所以應(yīng)改為:n=str】en(aa);。第二處:變量c沒有定義,但后面使用的是ch變量,所以應(yīng)改為:ch=aa[i];.參考源程序:cへwexam'24990001XHLPSYS、參考答案、modil.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<stdlib.h>#defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h)(doublemax=h->s;STREC*p;p=h->next;while(p){if(p->s>max)max=p->s;p=p->next;1returnmax;}STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)mal!oc(sizeof(STREC));p->s=0;while(i<N){q=(STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;)p->next=();returnh;outlist(STREC*h){STREC*p;p=h->next;printf("head,');do{printf(,'->%2.0f',p->s);p=p->next;}while(p!=0);printf("\n\nu);)main(){double虱N]={85,76,69,85,91,72,64,87),max;STREC*h;h=creat(s);outlist(h);max=fun(h);printf(Mmax=%6.1f\nM,max);NONO();}NONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;intij;doubles|N|,max;STREC*h;in=fopen("c:\\test\\in.dat"/,rH);out=fopen(',c:\\test\\out.dat,',,,wH);for(i=0;i<10;i++){for(j=0;j<N;j++)fscanf(in,H%lf,H,&s[j]);h=creat(s);max=fun(h);fprintf(out."%6.11f\nH,max);)fclose(in);fclose(out);1本題是考察如何從鏈表中求出學(xué)生的最髙分。我們給出的程序是利用while循環(huán)語句以及臨時(shí)結(jié)構(gòu)指針p變量來求出最高分。.將鏈表屮的第1個(gè)值賦給變量max。.將鏈表指針p的初始位置指向h的next指針(h->next)o3?判斷p指針是否結(jié)束,如果結(jié)束,則返回max,否則做下ー步。4,判斷max是否小于p->s?如果小于,則max取p->s?否則不替換。5.取p->nexl賦值給p(取下ー結(jié)點(diǎn)位置給p),轉(zhuǎn)3繼續(xù)。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第016套ー、程序填空題第?處:利用for循環(huán)語句取當(dāng)前字符串的長(zhǎng)度,所以應(yīng)填:ss[i]。第二處:在字符串的右邊填字符?,其開始位置是n+j,其中n是該字符串本身的長(zhǎng)度,j是循環(huán)控制變量,所以應(yīng)填:n+j.第三處:字符串處理結(jié)束應(yīng)置字符串結(jié)束符,其位置是n+j+1,所以應(yīng)填:1。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:關(guān)鍵字int錯(cuò)寫成1NT。第二處:該行括號(hào)沒有配對(duì),所以只要加上一個(gè)右括號(hào)即可.參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*s,intnum)(charch;inti,j;for(i=1;i<6;i++)for(j=i+1;j<6;j++){if(*(s+i)<*(s+j)){ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;main()(chars[10];printf("輸入フ個(gè)字符的字符串:");gets(s);fun(s,7);printf(',\n%s,,,s);NONO();NONO()/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/chars|1()|;FILE*rf,*wf;inti=0;rf=fopen("c:\\test\\in.dat,',Hr");wf=fopen(,'c:\\test\\out.dat",,'w,');while(i<10){fgets(s,10,rf);s[7]=0;fun(s,7);fprintf(wf,"%s\nM,s);i++;1fclose(rf);fclose(wf*);)本題是考察考生如何對(duì)字符串中的字符按降序進(jìn)行排序。給出的程序是使用雙重for循環(huán)以及冒泡法進(jìn)行排序的,結(jié)果仍存放在原先的字符串上。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第017套ー、程序填空題本題是對(duì)結(jié)構(gòu)體數(shù)組中的姓名按升序進(jìn)行排列。第一處:t是ー個(gè)臨時(shí)變量,主要是存放學(xué)生數(shù)據(jù)的結(jié)構(gòu)變量,所以應(yīng)填:structstudent。第二處:利用兩重for循環(huán)進(jìn)行排序操作,排序的終止條件應(yīng)該是總?cè)藬?shù)減1,所以應(yīng)填:n-1。第三處:對(duì)姓名進(jìn)行比較大小,所以應(yīng)填:a[i].name,aG].nameo參考源程序:c:\wexam\24990001XHLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:在語句后缺少分號(hào),所應(yīng)改為:q=p+i:。第二處:保留字while寫錯(cuò),所應(yīng)改為:while(q>p)o參考源程序:c:'wexam\24990001\HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b,int1,inth)(inti,j=0;for(i=0;i<N;i++)if(a[i].s>=I&&a[i].s<=h)b|j++|=a|i);returnj;1main(){STRECs[N]={{"GAOO5",85),{"GAOO3,,,76),{"GA002",69),ドGAOO4”,85),{“GAOOド,96},ドGAOO7”,72},{"GA(X)8M,64},{”GA006”,87},{“GA015”,85},ドGAO13",94],{"GAO12",64),{"GA014",91),{"GA011",90)4"GA017\64},{"GA018",64),{"GA016”,72}};STRECh[N],tt;HLE*out;inti,j,n,low,heigh,t;printf("Enter2integernumberlow&heigh:");scanf("%d%d",&low,&heigh);if(heigh<low){t=heigh;heigh=low;low=t;)n=fun(s,h,low,heigh);printf("Thestudent'sdatabetween%d—%d:\n",low.heigh);fbr(i=O;i<n;i++)printf("%s%4d\n",h[i].num,h[i].s);printf("\n");out=fopen("c:\\test\\out.dat","w");n=fun(s,h,8O,98);fprintf(out,"%d\n",n);for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(h[i].s>h[j].s){tt=h[i];h[i]=h[jl;hU]=tt;}for(i=0;i<n;i++)fprintf(out,"%4d\n",h[i].s);fprintf(out,"\n");fclose(out);)本題是把符合條件的學(xué)生記錄存入到另一個(gè)結(jié)構(gòu)體,最后通過主函數(shù)進(jìn)行輸出。1,符合條件的學(xué)生人數(shù)存在變量j(初始值為0)中,最后返回其值。2.利用for循環(huán)語句,依次判斷是否符合條件,如果符合,則存入另ー個(gè)記錄體中,人數(shù)j加1。參考源程序:c:\wexam\24990(X)ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第018套ー、程序填空題第一處:函數(shù)中申請(qǐng)了兩個(gè)內(nèi)存空間,其p是存放字母字符串,I是存放非字母字符串,根據(jù)條件可知,P依次存放字母字符串,其位置由j來控制,所以應(yīng)填:s[i]。第二處:利用for循環(huán)再把t屮的內(nèi)容依次追加到P中,其中t的長(zhǎng)度為k,所以應(yīng)填:k。第三處:字符串處理好后必須添加字符串結(jié)束符,所以應(yīng)填:ヘ〇、參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:判斷w指針?biāo)傅闹凳欠袷墙Y(jié)朿符,應(yīng)改為:while(*w)o第二處:if錯(cuò)寫成If。參考源程序:c:'wexam\24990001'HLPSYS'參考答案'modi1.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<string.h>voidfun(char*s,chart[])(intij=0;for(i=0;i<strlen(s);i++)if(s[i]%2=0)t[j++]=s[i];中】=0;)main()(chars[100],t[100];printf("\nPleaseenterstringS:H);scanf("%s",s);fun(s,t);printf(H\nTheresultis:%s\n",t);NONO();)NONO()1/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。?/chars[100],t[100];HLE*rf,*wf;inti;rf=fopen("c:\\test\\in.dat,\Hr,');wf=fopen(',c:\\test\\out.dat"/'w'');for(i=0;i<10;i++){fscanf(rf,"%s*\s);fun(s,t);fprintf(wf,H%s\nr,,t);)fclose(rf);fclose(wf);)本題是從?個(gè)字符串按要求生成另?個(gè)新的字符串。我們使用for循環(huán)語句來解決這個(gè)問題。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、progl.c清此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第019套ー、程序填空題本題是利用形參對(duì)結(jié)構(gòu)體變量中的值進(jìn)行修改并通過地址把函數(shù)值返回。第一處:必須定義結(jié)構(gòu)指針返回類型,所以應(yīng)填:structstudent?。第二處:分別對(duì)成績(jī)?cè)黾?分,所以應(yīng)填:a->score[i].第三處:返回結(jié)構(gòu)指針a,所以應(yīng)填:a。參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:要求返回字符串的首地址,所以應(yīng)改為:char*fun(char(*sq)[M])。第二處:返回一個(gè)由變量sp控制的字符串指針,所以應(yīng)改為:returnsp;?參考源程序:c:'wexam\24990(X)l'HLPSYS'參考答案'modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#includc<stdio.h>voidfun(inta,intb,long*c){*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;)main(){inta,b;longc;printf(MInputa,b:M);scanf(H%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();)NONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("c:\\test\\in.dat,',,,r,');wf=fopen(,,c:\\test\\oul.dat",',w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a.&b);fun(a,b,&c);fprintf(wf,Ha=%d,b=%d,c=%ld\n",a,b,c);)fclose(rf);fclose(wf);本題是給出兩個(gè)兩位數(shù)的正整數(shù)分別取出各位上的數(shù)字,再按條件組成一個(gè)新數(shù)。取a十位數(shù)字的方法:a/10取a個(gè)位數(shù)字的方法:a%10參考源程序:c:\wexam\2499000ハHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第020套ー、程序填空題第一處:求出N個(gè)數(shù)的平均值,所以應(yīng)填:No第二處:利用for循環(huán)語句,把數(shù)組x中小于平均值的數(shù),依次存放到數(shù)組y中,其中位置由變量j來控制,所以應(yīng)填:j++。第三處:i是while循環(huán)體的控制變量,每做一次循環(huán)均要加1。參考源程序:c:\wexam\24990001\HLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:num初始化錯(cuò)誤,應(yīng)為:num[k]=0;o第二處:由于s是指針型變量,所以應(yīng)改為:switches)。參考源程序:c:'wexam'24990001'HLPSYS'參考答案'modil.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#defineM4#defineN5intfun(inta[M][N]){inttot=0,i,j;for(i=0;i<N;i++){for(i=1;i<M-i;i++){tot+=a[i][0];tot+=a|i][N-l];)returntot;main(){intaa[M][N]={{13,5,7,9),(2,9,994),{6,9,9,9,8),(1,3,5,7,0));inti,j,y;clrscr();printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",aa[i]|j]);printf(H\nH);1y=fun(aa);printf("\nThesum:%d\n",y);printf(n\n");NONO();NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti,j,y,k,aa[M][N];FILE*rf,*wf;rf=fopen("c:\\test\\in.dat","rH);wf=fopen("c:\\test\\out.dat","w");for(k=0;k<10;k++){for(i=0;i<M;i++)for(j=0;j<N;j++)fscanf(rf,"%dH,&aa[i][j]);y=fun(aa);fprintf(wf,"%d\n",y);)fclose(rf);fclose(wf);本題是統(tǒng)計(jì)二維數(shù)組周邊元素值之和,但要注意的是不要重復(fù)計(jì)算四個(gè)角上的元素值,結(jié)果作為函數(shù)值返回。參考源程序:c:\wexam\24990001\HLPSYS、參號(hào)答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第021套ー、程序填空題第一處:計(jì)算N個(gè)數(shù)的平均值,所以應(yīng)填:s/N。第二處:利用for循環(huán)語句,把數(shù)組x中大于平均值的數(shù),依次存放到數(shù)組y中,同時(shí)把數(shù)組x上的該數(shù)置為ー1,其中位置由變量j來控制,所以應(yīng)填:j++。第三處:再利用循環(huán)把不是ー1的數(shù),依次仍存放到數(shù)組y中,所以應(yīng)填:-1。參考源程序:c:\vvexam'24990001XHLPSYS、參考答案、blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:包含頭文件的標(biāo)識(shí)錯(cuò)誤,在include前漏寫了#。第二處:由于傳入的參數(shù)是字符串,所以應(yīng)為upfst(char*p)。參考源程序:c:\wexam\24990001\HLPSYS'參考答案'modi1.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。三、程序設(shè)計(jì)題#include<stdio.h>#include<stdlib.h>#defineN5doublefun(intw[][N])(inti,j,n=0;doublesum=0;for(i=0;i<N;i++){sum+=w[0][i]+w[N-l][i];n+=2;)for(i=1;i<N-1;i++){sum+=w[i][0]+w[i][N-l];n+=2;)returnsum/n;main(){inta[N][N]={0,l,2,7,9,l,9,7,4,5,2,3,8,3,l,4,5,6,8,2,5,9,l,4,l);inti,j;doubles;printf(M*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++)(printf(M%4d\a[i]|j]);)printf("\nM);1s=fun(a);printf(H*****THERESULT*****\nM);printf("Thesumis:%lAn",s);NONO();NONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,j,a[5][51;doubles;rf=fopen("c:\\test\\in.dat,\"ru);wf=fopen("c:\\test\\out.dat","w");for(i=0;i<5;i++)for(j=0;j<5;j++)fscanf(rf,"%d",&a[i][j]);s=fun(a);fprintf(wf,"%lf\n",s);fclose(rf);fclose(wf);)本題是統(tǒng)計(jì)二維數(shù)組周邊元素值的平均值,但要注意的是不要重復(fù)計(jì)算四個(gè)角I:的元素值。參考源程序:c:\wexam\24990001XHLPSYS、參考答案、progl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。第022套ー、程序填空題本題要求所求出的數(shù)寫入到指定的文件中保存。程序中共有三處要填上適當(dāng)?shù)膬?nèi)容,使程序能運(yùn)行出正確的結(jié)果。第一處:intfprintf(FILE*stream,constchar*format[.argument,??,]);因此本處只能填寫文件流的變量fp。第二處:由于文件打開寫操作,所以必須要關(guān)閉,因此,只能填寫關(guān)閉文件的函數(shù)fclose(fp)。第三處:Fh于本題耍把剛寫入文件中的數(shù)據(jù)重新顯示出來,讀方式已經(jīng)給出,但沒有給出文件名,所以本處只能寫文件名變量fname或者直接給出文件名"myfile3.dat"。參考源程序:c:'wexam\24990(X)l'HLPSYS'參考答案'blankl.c請(qǐng)此程序拷貝到考生文件夾中,然后運(yùn)行這個(gè)程序就可以得到正確的結(jié)果。二、程序修改題第一處:for循環(huán)的終止值應(yīng)該<n或者是<=n-l。第二處:使用臨時(shí)變量p來保存最小值位置i,所以應(yīng)改為:p

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論