2012計算機二級考試題庫-南開一百題(C語言)_第1頁
2012計算機二級考試題庫-南開一百題(C語言)_第2頁
2012計算機二級考試題庫-南開一百題(C語言)_第3頁
2012計算機二級考試題庫-南開一百題(C語言)_第4頁
已閱讀5頁,還剩163頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

南開100題二級C題目1編一個函數(shù)fun(char*s),函數(shù)的功能是把字符串中的內(nèi)容逆置。例子如:字符串中原有的內(nèi)容為:abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為:gfedcba試題程序:incIude<string.h>incIude<conio.h>incIude<stdio.h>defineN81/?注:該題的算法是先分別找出字符串的兩頭,然后同時逐一往中間移動,每移動一次都進行兩字符的位置對換,直到中間字符(用s+iくs+n-1-i來控制)。由于s+i中ー個地址,因此要注意把它的內(nèi)容取出再進行換位。即先進行取內(nèi)容運算?) */fun(char*s){inti=0,t,n=strlen(s);for(;s+i<s+n-1-i;i++)(t=*(s+i);?(s+i)=*(s+n-1-i);?(s+n-1-i)=t;}1main(){chara[N];cIrscr();print"Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("\n");printf("Thestringaftermodified:);puts(a);1題目2寫程序,實現(xiàn)矩陣(3行3歹リ)的轉(zhuǎn)置(即行列互換)。例如,輸入一面的矩陣:程序輸出:試題程序:include<stdio.h>include<conio.h>/?這題的關(guān)鍵在于進行行列下標轉(zhuǎn)換的算法,由矩陣的對稱性我們不難看出在進行行列互換時a[j]在好是與a[j][i]互換,因而只要我位讓程序走完矩陣的左上角即可(用for(i=0;i<2;i++)再套for(j=i+1;jく3;j++)來完成左上角的走動。*/intfun(intarray[3][3]){inti,j,t;for(i=0;i<2;i++)for(j=i+1;j<3;j++)(t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;l1main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};cIrscr();for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d”,array[i][j]);printf("\n");]fun(array);printf("Convertedarray:\n,z);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d”,array[i][j]);printf("\n");}}題目3請編ー個函數(shù)fun(int*a,intn,int*odd,int*even),函數(shù)的功能是分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參n給了數(shù)組中數(shù)據(jù)的個數(shù):利用指針odd返回奇數(shù)之和,利用指針even返回偶婁這和。例如:數(shù)組中的值依次為:1,8,2,3,11,6;則利用指針odd返回奇數(shù)之和24:利用指針even返回偶數(shù)之和8。試題程序。#include<stdio.h>#include<conio.h>#defineN20/?注:該題的算法是:用for()循環(huán)ー步ー步地找元素,用if(!a[i]%2)來判斷是否是奇數(shù),%運算是求余運算,當對2求余為1時表示原數(shù)為奇數(shù),否則為偶數(shù)。*/fun(int*a,intn,int*odd,int*even){inti;*even=0;*odd=0;for(i=0;i<n;i++)if(!(a[i]%2))*even+=a[i];eIse*odd+=a[i];main(){inta[N]={1,9,2,3,11,6},i,n=6,odd,even;cIrscr();printtlTheoriginaldatais:\n");for(i=0;i<n;i++)printf("%5d”,*(a+i));printf(〃'n\n");fun(a,n,&odd,Seven);printf(z,Thesumofoddnumbers:%d\n,z,odd);printf("Thesumofevennumber:%d\nz,,even);)題目4要求程序的功能是:把20個隨機數(shù)存入ー個數(shù)組,然后輸出該數(shù)組中的最小值。其中確定最小值的下標的操作在fun函數(shù)中實現(xiàn),請給出該函數(shù)的定義。試題程序。include<stdio.h>incIude<conio.h>defineVSIZE20intvector[VSIZE];/?注:該題的算法是用ー個變量(j)來存儲最小值元素的下標,在循環(huán)過程中讓每個元素都與原最小值元素進行大小比較(if(list[iklistロ]),如發(fā)現(xiàn)更小的則讓j重新?lián)碛凶钚≈翟氐南聵?j=i)〇?/intfun(intIist[],intsize){inti,j=0;for(i=1;i<size;i++)if(Iist[i]<list[j])j-i;returnj;1main()(inti;cIrscr();for(i=0;i<VSIZE;i++)(vector[i]=rand();printf("Vector[%d]二%6d\n〃,i,vector[i]);)i=fun(vector,VSIZE);printf("\nMininum:vector[%d]=%6d\n”,i,vector[i]);]題目5請編一個函數(shù)floatfun(doubleh),函數(shù)的功能是對變量h中的值保留2位小數(shù),并對第三位進行四舍五入(規(guī)定h中的值為正數(shù))。例如:h值為8.32433,則函數(shù)返回8.32;h值為8.32533,則函數(shù)返回8.33。試題程序。#incIude<stdio.h>#include<conio.h>/?注:h乘以1000后正好是原小數(shù)點后第三位做了新數(shù)的個位數(shù),然后再進行加5運算時。如原小數(shù)點后第三位為4及以下則加5后還是不能進一位(即四舍),如是5及以上則加5后該位就要向前進一位數(shù)(即五人)。進行加5運算后除10再賦給ー個整型變量此時就只有原小數(shù)點第二位及以前各位保留在整型變量中,最后再對整型變量除100,這樣又明現(xiàn)了兩位小數(shù)。該題中,進行四舍五入后一定要賦給一個整型變量才能將不用部分徹底變成。。*/fIoatfun(fIoath){longt;h=h*1000;t=(h+5)/10;return(float)t/100;]main()(floata;cIrscr();printf("Entera:");scanf("%f",&a);printf("Theoriginaldatais:");printf("%f\n\n",a);printf("Theresult:%6.2f\n",fun(a));1題目6編寫函數(shù)fun,函數(shù)的功能是:從字符串中刪除指定的字符。同一字母的大、小寫按不同字符處理。若程序執(zhí)行時,輸入字符串為:turbocandBorIandc++從鍵盤上輸入字符:n,則輸出后變?yōu)椋簍urbocadborladc++如果輸入的字符串不存在,則字符串照原樣輸出。試題程序。#incIude<stdio.h>#include<conio.h>/?注:該題的算法是讓i控制一個ー個字符往后走,在移動過程中如果s[i]不是要刪的字符,則將其按順序放到新串中(新串亦是用S來做,只是用k來控制新串的下標,由于要刪除ー些元素,因此新串的下標總是比原下標i要慢。因而可用此法即同一字符串變量的方法。*/intfun(chars[],intc){inti,k=0;for(i=0;s[i];i++)if(s[i]!=c)s[k++]=s[i]:s[k]=’、〇';]main(){staticcharstrロゴturbocandborIandc++”;charch;cIrscr();print"':%s\n",str);printf(":");scanf("%c",&ch);fun(str,ch);printf("str[]=%s\n",str);)題目7請編寫ー個unsignedfun(unsignedw),w是一個大于10的無符號整數(shù),若w是n(n>=2)位的整數(shù),函數(shù)求出w的后n-1位的數(shù)作為函數(shù)值返回。例如:w值為5923,則函數(shù)返回923;w值為923則函數(shù)返回23。試題程序。#include<conio.h>#include<stdio.h>/?注:由于unsigned型整數(shù)在。-65535這間,只要它大于10000則對10000求余即得出后面4位,否則如果大于1000則對1000求余得出后3位數(shù),這樣ー層ー層往小的判斷。由于return的作用除了返回值以外,還有當執(zhí)行到return時就跳岀該程序,所以可以連續(xù)的用if()語句。*/unsignedfun(unsignedw){if(w>=10000)returnw%10000;if(w>=1000)returnw%1000;if(w>=100)returnw%100;returnw%10;)main(){unsignedx:printf("enteraunsignedintegernumber:");scanf("%u",&x);if(x<10)printf("dataerror!,z);eIseprintf("theresu11:%u\n",fun(x));)題目8編寫函數(shù)intfun(intIim,intaa[MAX]),該函數(shù)的功能是求出小于Iim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出素數(shù)的個數(shù)。試題程序。#include<stdio.h>#include<conio.h>#defineMAX100/?注:循環(huán)for(i=2;iくk;i++)用于判斷k是否為素數(shù),原理是當用2至IJkT這間的數(shù)去對k求余,如余數(shù)為〇(即被整除)則表示k不是ー個素數(shù)。語句if(i>=k)用于判斷在上一個for()循環(huán)中i能否走到k,如果能則表示在2至リk-1的數(shù)都不能整除k,即k為素數(shù)。*/intfun(intIim,intaa[MAX]){inti,j=0,k;for(k=2;k<lim;k++){for(i=2;i<k;i++)if(!(k%i))break;if(i>=k)aa[j++]=k;]returnj;)main(){intlimit,i,sum;intaa[MAX];printf("\ninputaintegernumber:,z);scanf("%d”,&limit);sum=fun(Iimit,aa);for(i=0;i<sum;i++){if(i%10==0&&i!=0)printf(z/\nz,);printf("%5d”,aa[i]);題目9請編寫函數(shù)fun,函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如:二維數(shù)組中的值為則函數(shù)值為61。試題程序。#include<conio.h>#include<stdio.h>#defineM4#defineN5/?注:該題的第一個for()循環(huán)是計算矩陣的最上一行和最下一行的總和,第二個for()是計算除兩頭元素以外的最左一列和最右一列的元素的和,最后sun就是周邊元素的和。*/intfun(inta[M][N]){intsum=0,i;for(i=0;i<N;i++)sum+=a[0][i]+a[M-l][i];for(i=1;i<M-1;i++);sum+=a[i][0]+a[i][N-1];returnsum;1main(){intaa[M][N]={{1,3,5,7,9),(2,9,9,9.4),(6,9,9,9,8),(1,3,5,7,0));inti,j,y;cIrscr();printtlTheoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d”,aa[i][j]);printf("\n");1y=fun(aa);printf("\nThesum:%d\n”,y);printf("\n");)題目10請編寫函數(shù)fun,對長度為7個字符的字符串,除首、尾字符外,將其余5個字符按降序排列。例如,原來的字符串為CEAedca,排序后輸出為CedcEAa。試題程序。#include<string.h>#incIude<conio.h>#include<stdio.h>/?該題采用的排序法是選擇法進行降序排序,算法是用外for()循環(huán)從字符串的前端往后端走動,每走動一個字符都用內(nèi)嵌的for()循環(huán)在該字符后找出最小的字符與該字符進行換位。直到外for()循環(huán)走到最后ー個字符。此外,此題還要注意把首尾字符除開,即在最外層for()循環(huán)中從1開始,只到num-2即可。*/intfun(char*s,intnum){inti,j,t;for(i=1:i<num-2;i++)for(j=i+1;j<num-1;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;1)main(){chars[10];cIrscr();printf("輸入7個字符的字符串:“);gets(s);fun(s,7);printf("\n%s”,s);]題目”請編ー函數(shù)voidfun(inttt[M][N],intpp[N]),tt指向ー個M行N列的二維數(shù)組,求出ニ維數(shù)組每列中最小元素,并依次放入pp所指ー維數(shù)組中,二維數(shù)組中的數(shù)已在主函數(shù)中賦予。試題程序。#incIude〃conio.h"#incIude"stdio.h"#defineM3#defineN4/?注:該題用for(i=0;iくN;i++)來控制一列一列地找,而內(nèi)嵌循環(huán)for(j=O;jくM;j++)用于控制同列內(nèi)元素的比較。多重循環(huán)的嵌套總是最里層循環(huán)變化最快,即外層循環(huán)改變ー個值,內(nèi)層循環(huán)就要循環(huán)完一次,對于多重循環(huán)一定要好好去體會和理解,在多數(shù)題目中都要用到多重循環(huán)(一般為二重)。*/voidfun(inttt[M][N],intpp[N]){inti,j;for(i=0;i<N;i++){pp=tt[0][i];for(j=0;j<M;j++)if(tt[j][i]<pp[i])pp[i]=tt[j][i];])main(){intt[M][N]={{22,45,56,30),{19,33,45.381,{20,22,66.40}};intp[N],i,j,k;cIrscr();printf("theoriginaldatais:\n");for(i=0:i<M;i++){for(j=0;j<N;j++)printfぐ%6d”,t[i][j]);printf("\n");}fun(t,p);printf("\ntheresultis:\n");for(k=0;k<N;k++)printf("%4d”,p[k]);printf("\n");}題目12寫一個函數(shù),從傳入的num個字符串中找出最長的一個字符串,并通過形參指針max傳回該串地址。(注意:用****作為結(jié)束輸入的標志。)試題程序。#include“stdio.h"#incIude“string.h"#include“conio.h"/?函數(shù)strlen()用于求出字符串的長度,這個題中主要是?max=p;不能換成max=&p;如果用maz=&p;則只改變了max的指向,它不能傳回給實參。因此我們要改變max指向地址中的內(nèi)容,這才能使得實參ps有正確的值。*/fun(char(+a)[81],intnum,char**max){char*p=a[0];inti;for(i=1:i<num;i++)if(strIen(a[i])>strIen(p))p=a[i];*max=p;1main(){charss[10][81],*ps;intn,i=0;cIrscr();printf("enterstring:\n");gets(ss[i]);puts(ss[i]);whiIe(!strcmp(ss[i],"****")=0)(i++;gets(ss[i]);puts(ss[i]);]n=i;fun(ss,n,&ps);printf("\nmax=%s\n",ps);)題目13請編ー個函數(shù)fun,其中n所指存儲單元中存放了數(shù)組中元素的個數(shù)。函數(shù)的功能是:刪除所有值為y的元素。數(shù)組元素中的值和y的值由主函數(shù)通過健盤讀入。試題程序。#include<conio.h>#include<stdio.h>#defineM20/?注:該題的算法是,用for()循環(huán)控制元素逐一判斷數(shù)組元素是否等于y,若不等則賦給新數(shù)bb,由于刪除的關(guān)系j總是小于或等于i,故而可用bb作為新數(shù)組,與第6題相似。還要注意*n=j;如果沒有這個語句則不能傳回新數(shù)組的個數(shù),另外也不能換成n=&j;這點是用指針時常犯的錯誤,切記!*/voidfun(intbb[],int*n,inty){inti,j=0;for(i=0;i<*n;i++)if(bb[i]!=y)bb[j++]=bb[i];*n=j;)main(){intaa[M],n,y,k;printf(z\npIeaseentern:“);scanf(”%cT,&n);printf(,z\nenter%dpositivenumber:\n\n);for(k=0;k<n;k++)scanf(&aa[k]);printf(〃theoriginaldatais:\n〃);for(k=0;k<n;k++)print"'%5d",aa[k]);printf(,z\nenteranumbertodeleted:");scanf("%d",&y);fun(aa,&n,y);printf("thedataafterdeleted%d:\n",y);for(k=0;k<n;k++)printf("%4d",aa[k]);printf("\n");)題目14編寫ー個函數(shù),該函數(shù)可以統(tǒng)計ー個長度為2的字符串在另ー個字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為:asdasasdfgasdaszx67asdmklo,子字符串為:as,則應(yīng)輸出6。試題程序。#incIude"stdio.h"#incIude"string.h"#incIude"conio.h"/?注:由于小串中只有2個字符所以可用str[i]=sbustr[〇]&&str[i+1]=substr[1]來判斷小串是否與長串當前位置(str[i])相同(即出現(xiàn)一次)。因而只要讓長串當前位置逐一向后移即可(用for()循環(huán)來完成)。*/intfun(char*str,char*substr){inti,n二〇,s二strIen(str);for(i=0;i<s;i++)if((str[i]==substr[0])&&(str[i+1]==substr[1]))n++;returnn;1main()(charstr[81],substr[3];intn;cIrscr();printf("enter1:");gets(str);printf("enter2:");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf("n=%d\n”,n);]題目15請編寫一個函數(shù)intfun(intx),它的功能是:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回〇。所謂“同構(gòu)數(shù)”是指這樣的數(shù),它出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)。x的值由主函數(shù)從健盤讀入,要求不大于100。試題程序。#include“conio.h"#include“stdio.h"/?注:由“同構(gòu)數(shù)”的定義可得只要求出平方數(shù)或平方數(shù)的最后一位或平方數(shù)的最后兩位然后與x進行判斷即可,分別求余后即得岀平方數(shù)的右邊。*/intfun(intx){intxx=x*x;if(xx-x//xx%10—x//xx%100~x)return1;eIsereturn0;)main(){intx,y;cIrscr();printf("\npIeaseenteraintegernumbers:");scanf("%d",&x);if(x>100){printfCdataeror!\n");exit(0);}y=fun(x);if(y)printfC%dyes\n",x);eIseprintf("國dno!\n",x);]題目16請編寫函數(shù)fun,函數(shù)的功能是:在字符串中所有數(shù)字字符前加一個$字符。例如,輸入:A1B23CD45.則輸出為:A$1B$2$3CD$4$5O注意:部分源程序給出如下。#include<stdio.h>/?注:該題用while。循環(huán)來控制原字符串從頭走到尾,在走動過程中判斷是當前字符是否是數(shù)字,若是則在新串中先連ー個‘$’然后再連原字符,否則直接連原字符。一定要注意指針和下標的變化。最后要把新串拷貝到s所指的地址中,注意不能用s=a;若用了,則實參數(shù)組還是原字符串。*/voidfun(char*s){chara[100];inti二。;while(*s)if(*s>ゴ?!?&*sくゴ9'){a[i++]='$';a[i++]=*s++;}eIsea[i++]=*s++;aゴ、?!籹trcpy(s,a);]main(){chars[80];printf(,zenterastring:");scanf("%s",s);fun(s);printf("theresult:%s\n",s);1題目17請編一個函數(shù)fun(char*s),函數(shù)的功能是把字符串中所有的字符前移ー個位置,串中的第一個字符移到最后。例如:原有的字符串為:Mn.123xyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:n.123xyZMo試題程序。#incIude"conio.h"#incIude"stdio.h"#defineN81/?注:該題要先將字符串的頭元素存到某ー變量(用c二?s)中,然后后面的字符依向前移(用for()循環(huán)),要記得在串的未尾加一個結(jié)束符。*/fun(char*s){charc二?s;for(;*(s+1);s++)s=*(s+1);s二c;(s+1)二'、?!?main(){chara[N];clrscr();printf("enterastring:");gets(a);printf("theoriginalstringis:");puts(a);fun(a);printfC'thestringaftermodified:");puts(a);1題目18請編寫函數(shù)fun,函數(shù)的功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,非素數(shù)的個數(shù)通過k傳回。例如,若輸入:17,則應(yīng)輸出:9和46891012141516。試題程序。#include<conio.h>#include<stdio.h>/?注:內(nèi)嵌的forO循環(huán)用于判斷是否是素數(shù),在jくi的情況下,只要j對i求余,余數(shù)為0則表示i不是素數(shù),則將i存入XX數(shù)組中。break;語句只是讓它提前結(jié)束循環(huán)。不用亦可。*/voidfun(intm,int*k,intxx[]){inti,j;*k=0;for(i=2;i<m;i++)for(j=2;j<i;j++)if(i%j=0){xx[(*k)++]=i;break;})main(){intm,n,zz[100];printf("\npIeaseenteranintegernumberbetween10and100:");scanf("%d",&n);fun(n,&m,zz);printf("\n\nthereare%dnon-primenumbersIessthan%d:",m,n);for(n=0;n<m;n++)printf("\n%4d",zz[n]);1題目19請編ー個函數(shù)fun(char*s),函數(shù)的功能是把字符串中所有的字母改寫成該字母的下ー個字母,最后一個字母z改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他的字符不變。例如:原有的字符串為:Mn.123zyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:No.123yzA?試題程序。include"conio.h〃incIudestring.h〃incIude"stdio.h〃incIude"ctype.h〃defineN81/?該題的思路較為明顯,用for()循環(huán)一個字符一個字符地走動,移動過程中判斷是否在a至b之間,若是則加1(即下移ー個字母),若是z則換成對應(yīng)的a*/fun(char*s){inti,n=strIen(s);for(i=0;i<n;i++){if((s[i]>='A,&&s[i]<'Z')//(s[i]>='a,&&s[i]<'z'))s[i]=s[i]+1;elseif(s[i]='z')s[i]='a';elseif(s[i]='Z')s[i]='A';)]main(){chara[N];cIrscr();printf("enterastring/);gets(a);print"theoriginalstringis:;puts(a);fun(a);printtlthestringaftermodified:);puts(a);)題目20請編寫函數(shù)fun,函數(shù)的功能是:將s所指字符串中、下標為奇數(shù)位置上的大寫字母轉(zhuǎn)換為字母序列中的下ー個小寫字母;若該位置上是小寫字母,則不轉(zhuǎn)換;若該位置上是大寫字母Z,則僅轉(zhuǎn)換成小寫字母z。例如,輸入:ABCdxZZZ,則輸出為:AcCdXzZzo試題程序。#incIude“stdio.h#defineN80/?該題的算法與上一題相似,注意同一個字母小寫要比大寫在ASCII值上大32〇*/voidfun(char*s)inti;for(i=1:i<N:i=i+2)if(s[i]>='A'&&s[i]<Z')s[i]+=32+1;elseif(s[i]=="Z')s[i]+=32;1main()(chars[N];printf(,z\nenterastring:");scanfs);fun(s);printf("\ntheresult:%s\n”,s);]題目21程序定義了N*N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:給數(shù)組周邊元素置〇值。例如:a數(shù)組中的值為則返回主程序后a數(shù)組中的值應(yīng)為注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序。#incIude<stdio.h>#incIude<conio.h>#incIude<stdIib.h>#defineN5/?由于是賦值〇,因而只要能表示岀周邊元素即好辦,它與求和不同在于求和不能重復(fù)對某個元素進行運算,而賦值則可重復(fù)賦值。所以這里只用了一個for()循環(huán)來找出所有的周邊元素。*/fun(intw[][N]){inti;for(i=0:i<N;i++){w[i][0]=0;w[i][N-1]=0;w[0][i]=0;w[N-1][i]=0;))main(){inta[N][N],i,j;cIrscr();print"'*****Thearray*****\n");for(i=0;i<N;i++){for(j=O;j<N;j++){a[i][j]=rand()%10;printf("%4d",a[i][j]);)printf("\n");)fun(a);printf(''*****Theresu11*****\n");for(i=0:i<N;i++){for(j=O;j<N;j++)printf("%4d",a[i][j]);printf("\n");1]題目22請編寫函數(shù)fun,它的功能是:求出ss所指字符串中、指定字符的個數(shù),并返回此值。例如:若輸入字符串:123412132,輸入字符為:1,則輸出:3。試題程序。#includeくconio.h>#includeくstdio.h>#defineM81/?注:本題用while。循環(huán)來控制字符的移動,每移動ー個字符都要進行判斷(if(*ss=c))是否為指定的字母,若是則個數(shù)加1o這里要注意如何讓ss指針向下走動(SS++)〇?/intfun(char*ss,charc){intnumニ〇;while(*ss!=r\0f){if(*ss==c)num++;ss++;)return(num);)main。{chara[M],ch;clrscr();printf(,z\nPleaseenterastrint:z,);gets(a);printf(z,\nPIeaseenterachar:zz);ch=getchar();printf(z,\nThenumberofthecharis:%d\n〃,fun(a,ch));)題目23程序定義了N*N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如:a數(shù)組中的值為則返回主程序后s的值應(yīng)為:3.3750試題程序。incIude<stdio.h>incIude<conio.h>#include<stdlib.h>defineN5/?注意不能重復(fù)計算,它與題21不同,第一個for()循環(huán)求出第一列與最后ー列的和,第二個for()循環(huán)求出第一行與最后一行(已除去兩頭元素),要注意第二個for()中起始為1,最后為N-2。*/doubIefun(intw[][N]){inti,t=0;doubIes=0;for(i=0;i<N;i++){s+=w[i][0]+w[i][N-1];t+=2;}for(i=1;i<N-1;i++){s+=w[0][i]+w[N-1][i];t+=2;}s=s/t;returns;1main(){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;doubIes;cIrscr();print"'*****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);)題目24編寫一個函數(shù)fun,它的功能是:實現(xiàn)兩個字符串的連接(不使用庫函數(shù)strcat)例如,分別輸入下面兩個字符串:FirstSrting—SecondString程序輸出:FirstString一SecondString注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序。#includeくstdio.h>#include<conio.h>/?注:第一個for()循環(huán)用于讓i成為第一個字符串的結(jié)束符的下標,要注意在這個for()后要有一個分號否則岀錯。第二個for()的作用是將第二個字符串ー個一個字符依次放到第一個字符串的未尾。此外,還要注意最后一定要有P"i]ゴ、〇';來給字符串加上結(jié)束符。*/voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i];i++);for(j=O;p2[j];j++)p1[i++]=p2[j];p1[i]=>\01;]main(){chars1[80],s2[80];cIrscr();printf("Enters1ands2:'n");scanf("%s%s”,s1,s2);printf("sに%s'n”,s1);printf("s2=%s'n”,s2);printf(z,Invokefun(s1,s2):'n");fun(s1,s2);printf("Afterinvoking:\n,z);printf(zz%s\n,z,s1);)題目25程序定義了N*N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][N]),函數(shù)的功能是:使數(shù)組第一列元素中的值與最后一列元素中的值對調(diào)、第二列元素的值與倒數(shù)第二列中的值對調(diào)、……、其他依次類推。例如:a數(shù)組中的值為則返回主程序后a數(shù)組中的值應(yīng)為注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序。#include<stdIib.h>#include<conio.h>#include<stdio.h>#defineN5/?本題的第一個for()循環(huán)用于控制行,而內(nèi)嵌的for()用于在同一行中將列與列對調(diào),當1為0時為第m行的第一列元素,a[m][NT-i]為第m行的最后一列的元素,正好符合調(diào)換的要求。依次類推。*/intfun(inta[][N]){inti,m,t;for(m=0;m<N;m++)for(i=0;i<N/2;i++){t=a[m][i];a[m][i]=a[m][N-1-i];a[m][N-1-i]=t;)1main(){inta[N][N],i,j;cIrscr();print"'*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%3O;printf("%4d",a[i][j]);}printf("\n");)fun(a);printf("*****TheresuIt*****\n");for(i=0:i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");)1題目26請編寫函數(shù)fun,函數(shù)的功能是:實現(xiàn)B=A+A',即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main函數(shù)中輸出。例如:輸入下面的矩陣:其轉(zhuǎn)置矩陣為:程序輸出:注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序。#include<conio.h>#include<stdio.h>/*26題:本題沒有先求出A的轉(zhuǎn)置,而是直接利用轉(zhuǎn)置的性質(zhì)(即第一行作為轉(zhuǎn)置后的第一列,第二行作為轉(zhuǎn)置后的第二列,的行列互換的性質(zhì))。而且最后要求出兩矩陣的相加后得出的新矩陣,由轉(zhuǎn)置性質(zhì)可知原轉(zhuǎn)置后位置為a[i]ロ],在表達式:b[i] [i]第一個a為A的元素,第二個a為A,的元素。*/voidfun(inta[3][3],intb[3][3]){inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];)main(){inta[3][3]={{1,2.3},{4,5.6},{7,8,9}},t[3][3];inti,j;cIrscr();fun(a,t);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(,z%7dw,t[i][j]);printf("\n");)1題目27序定義了N*N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][N]),函數(shù)的功能是:使數(shù)組第一行元素中的值與最后一行元素中

溫馨提示

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

評論

0/150

提交評論