二級c語言母題(機試加筆試)_第1頁
二級c語言母題(機試加筆試)_第2頁
二級c語言母題(機試加筆試)_第3頁
二級c語言母題(機試加筆試)_第4頁
已閱讀5頁,還剩227頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一部分程序填空題字符類:弟1-2題7、函數(shù)fun的功能是進行數(shù)字字符轉換。若形參ch中是數(shù)字字符‘0'?'9',貝『0'轉換成'9',若是其它字符則保持不變;并將轉換后的T'轉換成'8','2'轉換成'7',……,’9'轉換成'0'若是其它字符則保持不變;并將轉換后的結果作為函數(shù)值返回。使程序得出正確的結果。我們處在同一條起跑線上,每位學員應做好考前沖刺的良好淮備.請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。我們處在同一條起跑線上,每位學員應做好考前沖刺的良好淮備.注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>/**********found**********/_1 fun(charch)/**********found**********/if(ch>二'O'&&_2—)return (ch?_3_);returnch;}main(){charcl,c2;printf("\nTheresult:\n");cl=2;c2=fiin(cl);printf(Hc1=%c c2=%c\nn,c1,c2);cl-8*;c2=fun(c1);printf(Hc1=%c c2=%c\nH,c1,c2);cl=fa';c2=fun(cl);printf(Hc1=%c c2=%c\nH,c1,c2);[3]'0'答案:[1]char[2]<=95[3]'0'山主函數(shù)中的語句"c2=ftm(cl);"知:函數(shù)fun的返回類型為字符,故第一空應填char;在題面中要求對數(shù)字字符進行轉換,故第二空的目的是判斷字符ch是否為一數(shù)字字符,即ch是否在。?9之間故第二空應填ch<=9或其等效形式;第三空處語句的目的是返回轉換后的結果,即返回一字符,其所對應的數(shù)字與轉換前字符所對應的數(shù)字的和為9,故第三空應填?;蚱涞刃问?。2、給定程序的功能是將大寫字母轉換為對應小寫字母之后的第五個字母;若小寫字母為v?z,使小寫字母的值減21。轉換后的小寫字母作為函數(shù)值返回。例如,若形參是字母A,則轉換為小寫字母f;若形參是字母W,則轉換為小寫字母b。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>#include<ctype.h>charfun(charc){if(c>='A'&&c<=,Z*)c=c+32;if(c>=,a&&c<=,u*)

/**************found**************/c=c+ 1 ;elseif(c>=,v*&&c<=,z)c=c-21;/**************found**************/return 2 ;)mainO{charcl,c2;printf(*\nEnteraletter(A-Z):");cl=getchar();if(isupper(cl)){/**************found**************/c2=fun(3 );printf(*\n\nTheletter\'%c\'changeto\'%c\'\n",cl,c2);}elseprintfC*\nEnter(A-Z)!\n");)答案:【1[5 [2]c [3]cl本題著重考察考生對C語言中一些簡單算法的掌握情況。解題思路:先判斷輸入的字母是否是大寫字母,若是大寫字母,將其轉化為相應的小寫字母,方法是該大寫字母對應的ASCII碼值加上32就是其小寫字母的ASCII碼值,再判斷該小寫字母是否是a?u,若是轉化為其后的第5個字母。若該小寫字母是v?z,則將其ACSH碼值減去21,轉換后的小寫字母作為函數(shù)值返回。題中第一個空填C語言中,字母從a?z或A?Z的ASCII碼值是依次遞增的,所以將其轉換為其后的第5個字母應該是〃c=c+5;〃或相同作用的語句。題中第二個空填通過return語句將被調用函數(shù)中c的值帶回主調函數(shù)中去。題中第三個空填飛1〃:此句是調用fun()函數(shù),括弧中是其實際參數(shù)。本評析僅作參考。遞歸類:邪3—4題難者不會,會者不難,難易之間并沒有嚴格的界限,相信大家對此深有體會。讓我們攜起手來,共同努力,向全國計簞機等級考試全面沖刺吧!3、下列給定程序中,函數(shù)ftm()的功能是:用遞歸算法計算斐波拉契級數(shù)列中第n項的值。從第一項起,斐波拉契級數(shù)序列為1,1,2,3,5,8,13,21,……,例如,若給n輸入7,該項的斐波拉契級數(shù)值為13o試題程序:?include<stdio.h>longfun(int難者不會,會者不難,難易之間并沒有嚴格的界限,相信大家對此深有體會。讓我們攜起手來,共同努力,向全國計簞機等級考試全面沖刺吧!switch(g){case0:return0;case1: 1_:return1;)return( 2_);}main()(longfib;intn;printf(nInputn:n);scanf("%d”, 3 );printf(nn=%d\nM,n);fib=fun(n);printf("fib=%d\n\n",fib);

答案:【1】case2 [2]fun(g-l)+fun(g-2) [3]&n【解析】填空】:根據(jù)題目的意思,這里應該是對于值為1和2的時候的處理,注意case語句常量后應用的是冒號,而且不同的case對應同一個值可以連續(xù)寫(像題目中那樣)。填空2:根據(jù)題目的意思,此處是求值的遞歸部分,由遞推公式可以很容易的得到答案的形式,對于這種簡單的遞歸考生一定要掌握。填空3:山算法可以看出,此處是輸入數(shù)列的項數(shù)n,使用了scanf函數(shù),其參數(shù)應該是變量的地址,即使用符號。4、下列給定程序中,函數(shù)fun()的功能是:應用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:如,2的平方根為1.414214?include<math.h>#include<stdio.h>1fun(doublea,doublexO){doublexl,y; 2 ;if(fabs(xl-xO)>=0.00001) 3 ;elsey=xl;returny;}main(){doublex;printf("Enterx:n);scanf(H%lfnz&x);printf(nThesquarerootof%lfis%lf\nM,x,fun(xz1.0));}答案:[1]double [2]xl=(x0+a/x0)/2.0 [3]y=fiin(a,xl)【解析】填空1:這里要問的是函數(shù)的類型,由主函數(shù)main()對函數(shù)的調用可以得到函數(shù)的類型是double型的,當然也可以由函數(shù)的返回值語句得到。填空2:我們看到在下一條語句中已經(jīng)開始對變量xl的值進行比較了,所以這里要對xl進行賦值,由題意可知xl=(x0+a/x0)/2.0。填空3:用C語言求平方根的方法一般有兩種經(jīng)典的算法,它們分別是迭代法和遞歸法,本題要求用遞歸法。該程序采用了if語句,程序的含義是當?shù)Y果差小于誤差時進行循環(huán)。文件疾寫類:第5—9題5、給定程序的功能是:從犍盤輸入若干行文件(每行不超過80個字符),寫到文件myfile4.txt中,用T作為字符串輸入結束的標志。然后將文件的內容讀出顯示在屏幕上。文件的讀寫分別由自定義函數(shù)ReadText和WriteText實現(xiàn)。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include <stdio.h>#include <string.h>^include <stdlib.h>voidWriteText(FILE*);voidReadText(FILE*);-E- 朦過關只有:main(){if((fp=fopenC/myfile4.txt","w"))=NULL){printf(*openfail!!\n,z);exit(0);}WriteText(fp);fclose(fp);if((fp=fopenC*myfi1e4.txt","r"))=NULL){printf("openfail!!\nz/);exit(0);}ReadText(fp);fclose(fp);}/**********found**********/voidWriteText(FILE—1—){charstr[81];printf(,z\nEnterstringwith-1toend:\n");gets(str);while(strcmp(str,^-1*)!=0){/**********found**********/fputs( 2 ,fw);fputs('\n",fw);gets(str);})voidReadText(FILE*fr){charstr[81];printf('\nReadfileandoutputtoscreen:\n");fgets(str,81,fr);while(!feof(fr)){/**********found**********/printf 3 );fgets(str,81,fr);}}本題考核點為:文件的讀寫函數(shù)等。答案:[1]*fw[2]str [3]str題中第一個空填"*fw":fw是一個文件指針,從鍵盤上讀入數(shù)據(jù),輸入其所指向的文件中。題中第二空填"str":fputs函數(shù)向文件中寫數(shù)據(jù),其函數(shù)原型為:fputs(ch,fp)其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量。fp是文件指針變量。題中第三個空填"str":printf函數(shù)的一般格式為:printf(格式控制,輸出表列)1、〃格式控制〃是用雙引號括起來的字符串,也稱“轉換控制字符串〃,它包括兩種信息:格式說明:由"%"和格式字符組成,如%山%£等。它的作用是將輸出的數(shù)據(jù)轉換為指定的格式輸出。格式說明總是山級”字符開始的。普通字符,即需要原樣輸出的字符。2、〃輸出表列":是需要輸出的一些數(shù)據(jù),可以是表達式。6、給定程序的功能是:調用函數(shù)fun將指定源文件中的內容復制到指定的目標文件中,復制成功時函數(shù)返回值是1,失敗時返回值為0。在復制的過程中,把復制的內容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標文件名放在變量tfname中。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結構!ftinclude <stdio.h>ftinclude <stdlib.h>intfun(char*source,char*target){FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source, 1 ))==NULL)return0;if((ft=fopen(target,"w"))==NULL)return0;printf(*\nThedatainfile:\n");ch=fgetc(fs);/**********found**********/while(!feof(—2—)){putchar(ch);/**********found**********/fputc(ch, 3 );ch=fgetc(fs);}fclose(fs);fclose(ft);printf('\n\n");return1;)main(){charsfname[20]=*myfile1*,tfname[20]=,/myfile2*;FILE*myf; inti;charc;myf=fopen(sfname,z/w/z);printf(*\nTheoriginaldata:\n");for(i=l;i<30;i++){c='A'+rand()%25;fprintf(myf,"%c”,c);printfc);}fclose(myf);printf('\n\n");if(fun(sfname,tfname))printf("Succeed!”);elseprintf("Fail!");}答案:[2]fs[3]ft本題的考核點是文件的讀寫函數(shù)等。題中第一個空填"r":"r”是文件的使用方式之一,其含義是為輸入打開一個文件用于輸入。題中第二個空填〃fs”:此語句是設置循環(huán)退出條件,即判斷是否到文件末尾。題中第三個空填"ft":fputc函數(shù)功能是把一個字符寫到磁盤文件上去。其一般調用形式為:fputc(ch,fp);其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量。fp是文件指針變量。7、給定程序中,函數(shù)fun的功能是:將自然數(shù)1?10以及它們的平方根寫到名為myfile3.txt的文本文件中,然后再順序讀出顯示在屏幕匕請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結構!ftinclude <math.h>#include<stdio.h>intfun(char*fname){FILE*fp;inti,n;floatx;if((fp=fopen(fname,〃w"))=NULL)return0;for(i=l;i<=10;i++)/**********found**********/fprintf(」 ,*%d%f\n”,i,sqrt((double)i));printf(/z\nSucceed!\n,z);/**********found**********/_2—;printf(*\nThedatainfile:\n");/**********found**********/if((fp=fopen( 3 ,"r"))==NULL)return0;fscanf(fp, &n,&x);while(!feof(fp)){printf("%d%f\n”,n,x); fscanf(fp,"%d%f”,&n,&x);}fclose(fp);return1;}main(){charfname口=“myfile3.txt”;fun(fname);)答案:【1】fp[2]fclose(fp)[3]fname本題考核點為:文件的打開,關閉和讀寫操作。題中第一個空填"fp”:是向文件指針fp所指向的文件中寫數(shù)據(jù)。題中第二個空填〃fclose(fp);〃:此語句是文件的關閉操作。題中第三個空填〃fname〃:fopen函數(shù)用于文件的打開操作,其調用形式一般為:fopen(文件名,使用文件方式)?!癴name”為所要打開的文件名。8、給定程序的功能是調用fun函數(shù)建立班級通訊錄。通訊錄中記錄每位學生的編號、姓名和電話號碼。班級的人數(shù)和學生的信息從鍵盤讀入,每個人的信息作為一個數(shù)據(jù)塊寫到名為myfile5.dat的二進制文件中。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include <stdio.h>#include <stdlib.h>#defineN5typedefstruct{intnum;charname[10];chartel[10];}STYPE;voidcheck();/**********found**********/intfun( 1 *std){/**********found**********/_2_*fp;inti;if((fp=fopen(/rmyfile5.dat","wb"))=NULL)return(0);printf(*\nOutputdatatofile!\n");for(i=0;i<N;i++)/**********found**********/fwrite(&std[i],sizeof(STYPE),1, 3 );fclose(fp);return(1);}main(){STYPEs[10]={{1,"aaaaa","111111”},{2,“bbbbb","222222”},{3,"ccccc","333333”},{4,"ddddd","444444”},{5,"eeeee","555555”}};intk;k=fun(s);if(k==l){printf("Succeed!");check();}elseprintf("Fail!");)voidcheck(){FILE*fp;inti;STYPEs[10];if((fp=fopen(/zmyfile5.dat","rb"))==NULL){printf(*Fail!!\n");exit(0);)printf(*\nReadfileandoutputtoscreen:\n");printf(*\nnumnametel\n,z);for(i=0;i<N;i++){fread(&s[i],sizeof(STYPE),1,fp);printf("%6d %s%s\n”,s[i].num,s[i].name,s[i].tel);}fclose(fp);}答案:【1】STYPE[2]FILE[3]fp本題考核點為結構體和文件的操作等。題中第一空填〃STYPE":typedef可以用來聲明新的類型名來代替已有的類型名,此題用"STYPE〃來代替未命名的結構體。題中第二空填"FILEFILE〃關鍵字用于聲明文件指針。題中第三空填"fp〃:fwrite函數(shù)的一般調用形式為:fwrite(buffer,size,count,fp);其中buffer:是一個指針,是要輸出數(shù)據(jù)的地址;size:是要寫的字節(jié)數(shù);count:要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;fp:文件型指針。9、程序通過定義學生結構體變量,存儲了學生的學號、姓名和3門課的成績。所有學生數(shù)據(jù)均以二進制方式輸出到文件中。函數(shù)fun的功能是從形參filename所指的文件中讀入學生數(shù)據(jù),并按照學號從小到大排序后,再用二進制方式把排序后的學生數(shù)據(jù)輸出到filename所指的文件中,覆蓋原來的文件內容。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>ttdefineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename){FILE*fp;inti,j;STUs[N],t;/**********found**********/fp=fopen(filename,—1—);fread(s,sizeof(STU),N,fp);fclose(fp);for(i=0;i<NT;i++)for(j=i+l;j<N;j++)/**********found**********/if(s[i].sno—2—){t=s[i];s[i]=s[j];s[j]=t;}fp=fopen(filename,"wb");/**********found**********/_3_(s,sizeof(STU),N,fp);fclose(fp);}main(){STUt[N]={{10005,"ZhangSan",95,80,88},{10003, 85,70,78},{10002,"CaoKai*,75,60,88},{10004,"FangFang",90,82,87},{10001/MaChao",91,92,77}},ss[N];inti,j;FILE*fp;fp=fopen("student,dat","wb");fwrite(t,sizeof(STU),5,fp);fclose(fp);printf(zz\n\nTheoriginaldata:\n\n");for(j=0;j<N;j++){printf(z/\nNo:%ldName:%-8sScores:",t[j].sno,t[j],name);for(i=0;i<3;i++)printf(*%6.2f",t[j].score[i]);printf("\n");)fun("student,dat");printf(,z\n\nThedataaftersorting:\n\n");fp=fopen("student,dat","rb");fread(ss,sizeof(STU),5,fp);fclose(fp);for(j=0;j<N;j++)(printf("\nNo:%ldName:%-8sScores:ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f”,ss[j].score[i]);printf('\n");答案:【l】“rb" [2]s[j].sno[3]fwrite本題的考核點是結構體類型變量的定義和引用以及文件函數(shù)的應用。fopen函數(shù)的作用是打開一個文件,在fun函數(shù)中為輸入打開一個二進制文件,所以第一個空填:〃rb”或與此語句功能相同的語句;利用嵌套循環(huán)語句按學號從小到大排序,所以第二個空填:>s[j].sno或與此語句功能相同的語句;再用二進制方式把排序后的數(shù)據(jù)輸出到指定文件中,fwrite函數(shù)的作用是往文件的當前位置寫入指定字節(jié)的數(shù)據(jù)塊,所以第三個空填:fwriteo字符串類:第70—38題10.給定程序中,函數(shù)fun的功能是:求出形參ss所指字符串數(shù)組中最長字符串的長度,其余字符串左邊用字符*補齊,使其與最長的字符串等長。字符串數(shù)組中共有M個字符串,且串長〈N。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結構!#include <stdio.h>ttinclude <string.h>#define M 5itdefine N 20voidfun(char(*ss)[N]){inti,j,k=0,n,m,len;for(i=0;i<M;i++){len=strlen(ss[i]);if(i==0)n=len;if(len>n){/**********found**********/n=len; 1 =i;)}for(i=0;i<M;i++)if(i!=k){m=n;len=strlen(ss[i]);/**********found**********/for(j=_2_;j>=0;j—)ss[i][m-]=ss[i][j];for(j=0;j<n-len;j++)/**********found**********/—3—T)}mainO{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};inti;printf(/z\nTheoriginalstringsare:\n");for(i=0;i<M;i++)printf("%s\n”,ss[i]);printf('\n");fun(ss);printf(*\nTheresult:\n*);for(i=0;i<M;i++)printf(*%s\n*,ss[i]);

答案:【1答案:【1】“rb”s[j].snofwrite本題考查的是字符串中字符的插入。在ftm函數(shù)中,第一個for循環(huán)的作用是求出所有字符串中,長度最長的字符串的長度n,并記下此字符串在數(shù)組中的下標k,故第一空應填k。在第二個for循環(huán)中,如果當前字符串不是最長字符串,則計算其長度len,并將從下標0到len的字符向右移動n-len位,故第二空為len;最后,再通過一個for循環(huán)語句在當前字符串前面補充len?n個”,故第三空應為ss[i][j]或其等效形式。11、下列給定的程序中,fun()函數(shù)的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫(這里的〃單詞”是指有空格隔開的字符串)。例如,若輸入:Iamastudenttotaketheexamination則應輸出:IaMAstudenTtOtakEthEexaminatioN試題程序:ttinclude<conio.h>#include<ctype.h>ttinclude<stdio.h>#include<string.h>voidfun(char*p)(intk=0;for(;*p;p++)if(k)(if(*p==,')2=toupper(*(p-1));})elsek=l;}main(){charchrstr[64];intd;printf(*\nPleaseenteranEnglishsentencewithin63letters:");gets(chrstr);d=strlen(chrstr);chrstr[d]=,';chrstr[d+l]=0;printf(^XnBoforechanging:\n%s”,chrstr);_3. ;printf(*\nAfterchanging:\n%s”,chrstr);}答案:【1】k=0 [2]*(p-l) [3]fun(chrstr)【解析】填空1:根據(jù)題目的意思,這里應該是以變量k作為判斷標志,如果標志為1并且當前指針指向空格就應該把標志返回0,以便下一次檢測。填空2:根據(jù)題目的意思,此處進行的是將p所指單詞的最后一個字母改成大寫,但是此時p已經(jīng)循環(huán)到了單詞后面的那個空格,所以應該對p-1進行操作。填空3:由算法可以看出,這里應該是進行函數(shù)調用,根據(jù)前面的子函數(shù)定義可以知道,參數(shù)是一個指向向字符串的指針,所以應該把數(shù)組的名字(也可以認為是指向數(shù)組首地址的指針)作為參數(shù)。12、str是一個由數(shù)字和字母字符組成的字符串,由變量num傳入字符串長度。請補充函數(shù)fUn(),該函數(shù)的功能是:把字符串str中的數(shù)字字符轉換成數(shù)字并存放到整型數(shù)組bb中,函數(shù)返回數(shù)組bb的長度。例如:sti="Bcdl23e456hui890”,結果為:123456890.注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fUn()的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>#defineN80intbb[N];intfun(chars[]rintbb[],intnum)(intirn=0;for(i=0;i<num;i++)(if([1]){bb[n]=[2];n++;}}return[3];}main(){charstr[N];intnum=0,n,i;printf(nEnterastring:\nn);gets(str);while(str[num])num++;n=fun(strrbb,num);printf(n\nbb=");for(i=0;i<n;i++)printf(H%dn,bb[i]);}答案:[1]s[i]>=,0,&&s[i]<=<9,[2]s[i]-'O'[3]n【解析】填空1:如果當前字符的ASCH碼大于字符。的ASCII碼,而小于字符9的ASCH碼,則說明當前字符是數(shù)字字符。填空2:將數(shù)字字符轉換為數(shù)字的方法是,用當前數(shù)字字符的ASCII碼減去字符'0'的ASCH碼。填空3:題目要求函數(shù)返回數(shù)組bb的長度,而變量n記錄了數(shù)字字符的個數(shù),也就是數(shù)組bb的長度,所以函數(shù)應該返回n。73、請補充函數(shù)該函數(shù)的功能是:把一個整數(shù)轉換成字符串,并倒序保存在字符數(shù)組str中。例如:當n=13572468時,str="86427531”。注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>#include<conio.h>#defineN80charstr[N];voidfun(longintn){inti=0;while([[]){str[i]=[2];n/=10;i++;main(){longintn=13572468;clrscr();printf(n***theorigialdata***\nn);printf(nn=%ldH,n);fun(n);printf(n\n%sn,str);)答案:【l】n>0 [2]n%10+'0' 【3】str[i]=,\0'【解析】填空1:while循環(huán)的執(zhí)行條件是n>0,當n等于0時,說明已經(jīng)將整數(shù)的各位數(shù)字都轉換為數(shù)字字符并存入字符串中了。填空2:n對10求余,得到整數(shù)n的個位數(shù)字,在加上字符。的ASCII碼,得到對應的數(shù)字字符,并存入字符串str中。填空3:將整數(shù)轉換為字符串并倒序存放入字符數(shù)組str中后,還要在str最后加上字符串結束標記符14、下列給定程序中,函數(shù)fiin()的功能是:從字符串s中,刪除所有小寫字母,c,。試題程序:1<stdio.h>voidfun(char*s){inti,j;for(i=j=0;_2=;i++)if(s[i]!=*c1) 3 ;s[j]=,\Ot;}main(){chars[80];printf(w\nEnterastring: M);gets(s);printf(nTheoriginalstring: ");puts(s);fun(s);printf(nThestringafterdeleted:puts(s);printf(n\n\nn);)答案:【1】include [2]s[i]!=W [3]s[j++]=s[i]【解析】填空1:由我們對C語言的掌握和學習知道,這是程序對頭文件的聲明,根據(jù)C語言的規(guī)定頭文件要用關鍵字include來聲明,并用"#"開始。填空2:這里考查的是對循環(huán)結束語句的掌握和字符串的結束標志的理解,我們知道字符串由'O'作為結束標志,由題意知,i一直增加到字符串結束,因此循環(huán)結束判斷語句使用s[i]!=W。填空3:由本題選擇條件if(s[i]!=e)可知,如果字符串中的字符不是"c",則執(zhí)行循環(huán),根據(jù)題目的意思這句應該執(zhí)行的是sU-H-]=s[i],這里考查了自加運算符的靈活使用。15、請補充main函數(shù),該函數(shù)的功能是:從一個字符串中截取前面若干個給定長度的子字符串。其中,strl指向原字符串,截取后的字符存放在str2所指的字符數(shù)組中,n中存放需截取的字符個數(shù)。例如:當strl="cde埴hij”,然后輸入4,則str2="cdef’。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達式或語句。試題程序:?include<stdio.h>#include<conio.h>#defineLEN80main(){charstrl[LEN],str2[LEN];intn,i;clrscr();printf("Enterthestring:\n");gets(strl);printf("Enterthepositionofthestringdeleted:");scanf([1]);for(i=0;i<n;i++)[2]str2[i]='\0';printf("Thenewstringis:%s\n",[3]);}【答案】【1】"%d",&n[2]str2[i]=strl[i];[3]str2【解析】填空1:本題考查對標準輸入函數(shù)scanf()的調用格式,由后面的程序可以知道,變量n保存了要截取的字符數(shù),注意在n前面不要忘了取址符'填空2:截取前n個字符,就是將字符串strl的前n個字符依次賦給字符串str2的前n個字符。填空3:本題考查對標準輸出函數(shù)printf()的調用格式,根據(jù)題意,應輸出截取后的字符串,即字符串str2。76、給定程序的功能是判斷字符ch是否與串str中的某個字符相同;若相同,什么也不做,若不同,則插在串的最后。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!ttinclude<stdio.h>^include<string.h>voidfun(char*str,charch){while(*str&&*str!=ch)str++;/**********found**********/if(*str 1 ch)

{str[0]=ch;/**********found**********/2__=0;)}main(){chars[81],c;printf("\nPleaseenterastring:\n^);gets(s);printf("\nPleaseenterthecharactertosearch;c=getchar();/**********found**********/fun( 3 );printf("\nTheresultis%s'n”,s);)答案:【1】!= [2]str[l][3]str2本題著重考察考生對C語言中函數(shù)的調用以及一些簡單算法的掌握情況。題中第一空填"!=":從題意得知,若字符ch與字符串str中的某個字符相同,什么也不做;若不同,則插在str的最后。因此fun函數(shù)中先設置了一個循環(huán)從字符串str中尋找字符ch,如果找到則中斷循環(huán)并保留字符ch的地址,否則一宜循環(huán)到串尾。因此通過判斷*str的內容即可判斷是否已找到字符ch。題中第二個空填”str[1]":如果沒有找到字符ch,則在while循環(huán)后str指針指向串結束符0x00,此時應將字符ch寫入這里并在下一地址寫入一個串結束符0x00,所以應該是"str[l]=0;”語句。題中第三個空填"s,c":此句是調用fun()函數(shù),括弧中是其實際參數(shù)。77、給定程序的功能是將在字符串s中出現(xiàn)、而未在字符串t中出現(xiàn)的字符形成一個新的字符串放在u中,u中字符按原字符串中字符順序排列,不去掉重復字符。例如:當5="1如345",t="2467"時,u中的字符串為"1135"。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!Sinclude<stdio.h>ttinclude<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl;si=strlen(s);tl=strlen(t)for(i=0;i<sl;i++){for(j=0;j<tl;j++)版褊M殿#版褊M殿#if(s[i]==t[j])_1_if(j>=tl)/************「ound************/*u++= 2 ;)/************found************/―3—二,\0';}main(){chars[100],t[100],u[100];printf("\nPleaseenterstrings:");scanf("%s”,s);printf(*XnPleaseenterstringt:");scanf("%s”,t);fun(s,t,u);printf("theresultis:%s\n”,u);)答案:【1】break[2]s[i] [3]*u本題考核點為字符串的查找,賦值操作。題中第一空填"break;〃:break為跳出循環(huán)的語句。〃if(s[i]=t[j])break;〃語句是指當即t[j]中的字符已經(jīng)在字符指針s[j]所指向的字符數(shù)組中存在時,循環(huán)就結束。題中第二空填”和++=s[i];〃是將s[i]賦給*U,然后U加1。題中第三空填〃*u〃:"*(!='\0';〃,字符串的最后一個字符應該是'\0'的。%、請補充函數(shù)ftin(),該函數(shù)的功能是:把字符下標為非素數(shù)的字符從字符串str中刪除,把字符下標為素數(shù)的字符重新保存在字符串str中。字符串str從鍵盤輸入,其長度作為參數(shù)傳入函數(shù)fun()o例如,輸入“abcdefjghijkl”,輸出“cdfhl”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>?defineN80voidfun(chars[]rintn)(inti,j,kfflag;Q];for(i=0;i<n;i++){if(i>l)s[k++]=s[i];flag=l;for([2];j<i&&flag;j++)if(i%j==0){flag=0;[3];)}s[k]=,\0,;}main(){inti=0zstrlen=0;charstr[N];clrscr();printf(n\nInputastring:\n,f);gets(str);while(str[i]!=*\01)strlen++;i++;}fun(str,strlen);printf(n\n***displaystring***\nn);puts(str);)【答案】【l】k=o [2]j=2 [3]k-【解析】填空1:變量k聲明時沒有初始化,所以要在使用前初始化為0。填空2:如果一個數(shù)能被除了1和其自身之外的數(shù)整除,即余數(shù)為0,則這個數(shù)不是素數(shù)。所以除數(shù)j從2開始取數(shù)。填空3:如果當前字符的下標為非素數(shù),則應將此字符刪除,所以變量k減1,使下一個字符覆蓋它,達到刪除的目的。19、給定程序的功能是把s串中所有的字符前移一個位置,串中的第一個字符移到最后。例如:s串中原有的字符串為:Mn.123xyZ,則調用該函數(shù)后,s串中的內容為:n.123xyZM。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>ttdefineN81fun(char*s){charb[N];fprintf(b, s+1,*s);/**************found**************/strcpy( 1 );}main(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);/**************f'ound**************/fun(—2—);printf("Thestringaftermodified:");/**************found**************/一3一(a);)答案:【l】a [2]s,b [3]puts本題的考核點是c語言中循環(huán)語句的使用。立人教育提示思路:先保存原字符串的第一個字符,然后將后面的字符依次向前移一位,最后將原字符串的第一個字符添加到新字符串的最后。20、請補充函數(shù)fun(),該函數(shù)的功能是:按,0'到,9,統(tǒng)計一個字符串中的奇數(shù)數(shù)字字符各自出現(xiàn)的次數(shù),結果保存在數(shù)組num中。注意:不能使用字符串庫函數(shù)。例如:輸入“x=l12385713.456+0.909*bc”,結果為:1=3,3=2,5=2,7=1,9=2。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>#defineN1000voidfun(char*ttrintnum[])inti,j;intbb[10];char*p=tt;for(i=0;i<10;i++)(num[i]=0;bb[i]=0;}while([1])(if(*p>=,0,&&*p<=,9,)P++;}for(i=l,j=0;i<10;i=i+2zj++)[3];main(){charstr[N];intnum[10],k;printf(n\nPleaseenteracharstring:H);gets(str);printf(n\n**Theoriginalstring**\nn);puts(str);fun(strznum);printf(n\n**Thenumberofletter**\nM);for(k=0;k<5;k++){printf(”\n");printf(M%d=%dMr2*k+lrnum[k]);}printf(n\nn);return;)【答案】【1]*p[2]bb[*p-'0']++[31num[j]=bb[i]【解析】填空1:通過移動指針p,指向字符串tt中的各個字符,當指針p所指的字符為‘\0'時,即指向字符串tt的最后一個字符,while循環(huán)結束。填空2:將字符串中的數(shù)字字符'0'到'9'的個數(shù)都保存在數(shù)組bb[10]中。*p-'0‘實現(xiàn)將字符'0'的個數(shù)保存在bb[0]中,將字符’1'的個數(shù)保存在bb[l]中,依此類推,直到將字符'9'的個數(shù)保存在bb[9]中。填空3:由于奇數(shù)數(shù)字字符的個數(shù)存于bb[l]、bb[3]、bb[5]、bb[7]、bb[9]中,所以for循環(huán)的目的是將這些元素分別賦給num[0]、num[1]^num[2]>num[3],num[4]o21.下列給定程序中,函數(shù)fun()的功能是:從N個字符串中找出最長的那個串,并將其地址作為函數(shù)值返回。各字符串在主函數(shù)中輸入,并放入一個字符串數(shù)組中。試題程序:ttinclude<string.h>#include<stdio.h>itdefineN5ttdefineM811fun(char(*sq)[M]){inti;char*sp;―2;for(i=0;i<N;i++)if(strlen(sp)<strlen(3))sp=sq[i];returnsp;)mainO{charstr[N][M],*longest;inti;printf("Enter%dlines:\n",N);for(i=O;i<N;i++)gets(str[i]);printf(zz\nThe%dstring:\n",N);for(i=0;i<N;i++)puts(str[i]);longest=fun(str);printf(zz\nThelongeststring:\n");puts(longest);}答案:【1】char* [2]sp=sq[0] [3]sq[i]【解析】填空1:從C語言的學習中我們知道,這里應該是對子函數(shù)返回值類型的定義,由卜面返回的指針型變量sp可以知道,應該定義成char*,注意中間的空格。填空2:根據(jù)題目的意思,此處應該是先假設指針數(shù)組的第1個元素所指的字符串最長,之后對字符串指針數(shù)組進行遍歷,即給sp賦初值。填空3:由算法可以看出,這里應該是把二維數(shù)組的每一行作為一個字符串的首地址進行長度比較,所以若遇字符串長度大于待定最長字符串,則令該字符串為待定最長字符串,如此循環(huán)直至指針數(shù)組末尾,即可得到最長字符串的地址。22、下列給定程序中,函數(shù)fun()的功能是:將字符串p中所有字符復制到字符串b中,要求每復制3個字符之后插入一個空格。例如,在調用fun()函數(shù)之前給字符串a(chǎn)輸入ABCDEFGHIJK,調用函數(shù)之后,字符串b中的內容則為ABCDEFGHIJK。試題程序:?include<stdio.h>voidfun(char*prchar*b){inti,k=0;while( ){i=0;while( 2&&*0){b[k]=*p;k++;p++;i++;)if(*p){b[_3 ]='?;}}b[k]=*\0*;main()

{chara[80],b[80];printf(nEnterastring:n);gets(a);printf(nTheoriginalstring: puts(a);fun(a,b);printf(n\nThestringafterinsertspace:n);puts(b);printf(n\n\n");)答案:【l】*p [2]i<3 [3]k++【解析】填空1:根據(jù)題目的意思,這里應該是利用wile循環(huán)處理字符串,因為字符串的結束標志\0可以作為循環(huán)結束的判斷條件,所以C語言中很多情況都這樣使用,考生要注意。填空2:根據(jù)題目的意思,此處是對于寫入的字符個數(shù)進行計數(shù),如果到3就應該結束這個循環(huán)插入空格,所以應該和是否到達串結尾為邏輯與的關系。填空3:由算法可以看出,此處是在輸出結果中置入空格字符,注意插入空格后指針應該后移。23、給定程序功能是用冒泡法對6個字符串進行排序。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>#defineMAXLINE20fun(char*pstr[6]){inti,j;char*p;for(i=0;i<5;i++){for(j=i+1;j<6;j++){/**************found**************/if(strcmp(*(pstr+i), 1 )>0)(p=*(pstr+i);/**************found**************/pstr[i]= 2 ;/**************found**************/*(pstr+j)=—3—;main(){inti;char*pstr[6],str[6][MAXLINE];for(i=0;i<6:i++)pstr[i]=str[i];printf(*\nEnter6string(lstringateachline):\n")for(i=0;i<6;i++)scanfpstr[i]);fun(pstr);printf(,zThestringsaftersorting:\n/z);for(i=0;i<6;i++)printf("%s\n”,pstr[i]);答案:【1】答案:【1】*(pstr+j)【2】pstr[j][3]p首先,我們必須先讀懂題中程序的大致意思,這是正確填空的重要前提。程序中的重要思想如下:1、建立了一個二維字符串數(shù)組,用于存放用戶輸入的6個字符串;2、建立了一個指針數(shù)組,目的是用6個指針分別指向6個字符串;3、函數(shù)fun()的形參只有一個,即指針數(shù)組pstr口,這表明要想在函數(shù)fun()中對6個字符串進行操作,只能通過pstr口中的6個指針。題中第一個空填"*(pstr+j廣:觀察源程序可以發(fā)現(xiàn),在程序中使用strcmpO函數(shù)是為了判斷字符串str[i]與str[i+l]兩者的大小,在fun()函數(shù)中只能通過指針來表達各個字符串,所以應當填"*(pstr+j)”。題中第二個空填"pstr[j/:對兩個字符進行比較后,若pstr[i]中的字符比pstr[j]中的字符大,則將pstr[j]中的字符賦給pstr[i]。題中第三個空填"p":對兩個字符進行比較后,若pstr[i]中的字符比pstr[j]中的字符大,則將pstr[j]和pstr[i]的內容進行交換。24、給定程序的功能是分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。例如,給字符串ss輸入:AaaaBBbl23CCccccd,則輸出結果應為:upper=5,lower=9請在程序的下劃線處填入正確的內容并把下劃線刪除,注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include<stdio.h>voidfun(char*s,int*a,int*b){while(*s){if(*s>='A'&&*s<='Z')/**********found**********/_1—;if(*s>='a'&&*s<='z')/**********found**********/―2—;s++;main(){chars[100];intupper=0,lower=0;printf(*\nPleaseastring:");gets(s);fun(s,&upper,&lower);/**********found**********/printf("\nupper=%dlower=%d\n", 3 );}upper,lower答案:[1](*a)++ [2](*b)++ [3]upper,lower本題的考核點是C語言中輸入輸出函數(shù)及指針的使用。題中第一個空填”(柏)++“:程序中,a是一個整型指針,要使a指向的數(shù)據(jù)實現(xiàn)遞增,則要把指針改為實際數(shù)據(jù)。同樣道理,題中第二個空填〃(*b)++〃或相同作用的語句。題中第三個空填“upper,lower”:根據(jù)題義要求輸出統(tǒng)計的字符串中大寫字母和小寫字母的個數(shù)。25、給定程序中,函數(shù)fun的功能是:求ss所指字符串數(shù)組中長度最短的字符串所在的行下標,作為函數(shù)值返回,并把其串長放在形參n所指變量中。ss所指字符串數(shù)組中共有M個字符串,且串長請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!ttinclude <stdio.h>ttinclude <string.h>#defineM5ttdefineN20intfun(char(*ss)[N],int*n){inti,k=0,len=N;/**********found**********/for(i=0;i< 1 ;i++){len=strlen(ss[i]);if(i==0)*n=len;/**********found**********/if(len 2 *n){*n=len;k=i;}}/**********found**********/return( 3 );)main(){charss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing");intn,k,i;printfCAnTheoriginalstringsare:\n");for(i=0;i<M;i++)puts(ss[i]);k=fun(ss,&n);printf(*\nThelengthofshorteststringis:%d\n”,n);printf(zz\nTheshorteststringis:%s\n”,ss[k]);}答案:[1]M[2]< [3】k本題考查的是字符串長度的比較。由于在fun函數(shù)中要對字符串數(shù)組中的每個字符串(共有M個)都要求其長度,故在外層循環(huán)中,其循環(huán)條件應為i<M,故第一空應填M:在比較時,先使長度的初始值*n為第一個字符串的長度,然后逐個比較其它字符串的長度len,如果長度len小于*n,則將len賦值給*n,并記錄下此時字符串在字符串數(shù)組中的下標i?故第二空應為<或<=;最后要返回數(shù)組的下標,即代碼中的k,故第三空應為k。26、下列給定程序中,函數(shù)fun()的作用是:將字符串tt中的大寫字母都改為對應的小寫字母,其他字符不變。例如,若輸入"Ab,cD",則輸出"ab,cd"。試題程序:ttinclude<stdio.h>#include<string.h>#include<conio.h>char1fun(chartt[]){inti;for(i=0;tt[i];i++)

if((tt[i]>=,A')&&(tt[i]<= 2 ))tt[i]+=32;)return(tt);main()(chartt[81];printf("\nPleaseenterastring:");gets(tt);printf("\nTheresultstringis:\n%s*,fun( 3 ));)答案:【1】* 【21'Z' [3]tt【解析】填空1:由return語句可以看出,該函數(shù)的返回值類型是指向字符串的指針,所以應該使用符號填空2:從ASCH碼表中可以看出,小寫字母的ASCII碼值比對應大寫字母的ASCII碼值大32,根據(jù)ASCII碼值判斷該字母是不是大寫字母,判斷的標準是ASCII碼值是否介于A和Z之間。填空3:根據(jù)題目的意思這里應該調用函數(shù)fun對字符串tt進行轉換,所以應該使用tt作為函數(shù)的參數(shù)。27、給定程序的功能是將在字符串s中出現(xiàn)、而未在字符串t中出現(xiàn)的字符,構成一個新的字符串放在u中,u中字符按原字符串中字符順序的逆序排列,不去掉重復字符。例如,當5=例如34當,t="2467"時,u中的字符是:"5311"。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程ftinclude<stdio.h>#include<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl,ul;charr,*up=u;si=strlen(s);tl=strlen(t);for(i=0;i<sl;i++){for(j=0;j<tl;j++)/************found************/if(s[i]==t[j])—1—/************found************/if(j—2—tl)*u++=s[i];}*u='\0';ul=strlen(up);for(i=0;i<ul/2;i++){/************found************/r=—3—;up[i]=up[ul-l-i];up[ul-l-i]=r;mainO{chars[100],t[100],u[100];printf("\nPleaseenterstrings:");scanf("s”,s);printf("\nPleaseenterstringt:");scanf('s”,t);fun(s,t,u);printf(*Theresultis:%s\n*,u);)答案:【1】break [2]>= [3]up[i]題中第一個空填"break;":break語句可以作為循環(huán)跳出語句,常與if語句結合使用。題中第二個空填">=":"if(j>=tl)*u++= 是和上面循環(huán)語句"for(j=0;j<tl;j++)if(s[i]=t[j])break;”結合起來的。如果循環(huán)一直進行下去,則最后j和tl是相等的。題中第三個空填”up[i/:兩個數(shù)的交換通常用一個中間變量。28、下列給定程序中函數(shù)ftin()的功能是:先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如:當s中的字符串為ABCDE時,則t中的字符串應為EDCBAABCDEo試題程序:?include<conio.h>?include<stdio.h>?include<string.h>voidfun(char*s,char*t){inti,si;sl=1_;for(i=0;i<sl;i++)t[i]=s[_2_];for(i=0;i<sl;i++)t[sl+i]=s[i];t-i='\ot}main(){chars[100]zt[100];printf(n\nPleaseenterstrings:");scanf(M%snzs);fun(s,t);printf("Theresultis:%s\nnzt);)答案:【1】strlen(s) [2]sl-l-i [3]2*sl【解析】填空1:根據(jù)題目的意思,這里應該是對于變量si進行賦值,由下面的算法可以看出si是紀錄變量s指向的字符串長度的,即應該調用字符串函數(shù)strlen(s)。填空2:根據(jù)題目的意思,此處是算法要求的第一步,進行逆序輸入,這個并不困難,關鍵是找到逆序的規(guī)律,即t的下標為i時,s的下標為sl-1-i。填空3:由算法可以看出,這里應該是給新產(chǎn)生的字符串加上結束標志,其下標應該是2*sl。29、下列給定程序中,函數(shù)firn。的功能是:將s所指字符串中的字母轉換為按字母序列的后續(xù)字母(但Z轉化為A,z轉化為a),其他字符不變。試題程序:#include<stdio.h>?include<ctype.h>#include<conio.h>voidfun(char*s){while( 1_){if(*s>=,A*&&*s<=*Z*||*s>=*a*&&*s<=*z*)(if(*S==?Z?) *s=,A,elseif(*s==1z*) *s=1a*;else*s+=2 ;)_3_;))main(){chars[80];printf(n\nEnterastringwithlength<80:\n\nM);gets(s);printf(n\nThestring:\n\nM);puts(s);fun(s);printf(n\n\nTheCords:\n\nM;puts(s);}答案:【1】*s [2]1 [3]s++【解析】填空1:從C語言的學習中我們知道,while語句的結束條件是括號中的式子結果為0,而一個字符串的結尾標志為、0’,即滿足循環(huán)的結束條件,所以一般情況下C語言中使用字符串的結尾作為結束循環(huán)的標志;s為指向一個數(shù)組的指針,*s為取出s指向的內容。填空2:根據(jù)題目的意思,若該字母不是N或Z,則該字母的ASCII碼值加1°填空3:根據(jù)題目的意思,要對字符串所有字母進行遍歷,使用指針進行這一過程應該使用循環(huán),即每次都對該指針進行加一操作。30、給定程序的功能是把s串中所有的字母改寫成該字母的下一個字母,字母z改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其它的字符不變。例如:s串中原有的字符串為:Mn.123Zxy,則調用該函數(shù)后,s串中的內容為:No.123Ayz。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確結果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!#include<string.h>#include<stdio.h>ttinclude<ctype.h>#defineN81fun(char*s){/**************found**************/char*p= 1 ;while(*p){/**************found**************/if(*p==fZf)*p= 2 ;/**************found**************/elseif(*p==9z)*p= 3 ;elseif(isalpha(*p))*p=(*p)+1;p++;printf("Thefun(a);printf("Theputs(a);答案:printf("Thefun(a);printf("Theputs(a);答案:【1】s[2]'A'{chara[N];printf("Enterastring:〃);gets(a);originalstringis:");puts(a);stringaftermodified:");本題的考核點是C語言中的循環(huán)語句和條件判斷語句的使用。解題思路:從本題的要求來看,我們應該采用循環(huán)條件判斷的算法。本參考函數(shù)使用while循環(huán)從頭到尾掃描字符串,并在掃描時進行條件判斷,對'z','Z'和其它字符進行不同的處理。本評析僅供參考。3人請補充函數(shù)fun,該函數(shù)的功能是比較字符串strl和str2的大小,并返回比較的結果。例如:當strl="cde『,str2="cde”時,函數(shù)fun()返回注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fim()的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>#include<conio.h>#defineN80char*fun(char*strl,char*str2){char*pl=strlz*p2=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論