版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、南開100 題二級c題目1編一個(gè)函數(shù) fun(char*s),函數(shù)的功能是把字符串中的內(nèi)容逆置。例子如:字符串中原有的內(nèi)容為:abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為:gfedcba。試題程序:#include#include#include#definen81/*注:該題的算法是先分別找出字符串的兩頭,然后同時(shí)逐一往中間移動,每移動一次都進(jìn)行兩字符的位置對換,直到中間字符(用s+is+n-1-i 來控制)。由于s+i 中一個(gè)地址,因此要注意把它的內(nèi)容取出再進(jìn)行換位。即先進(jìn)行取內(nèi)容運(yùn)算*) */fun(char*s)inti=0,t,n=strlen(s);for(;s+is+n-1-i;
2、i+)t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;main()charan;clrscr();printf(enterastring:);gets(a);printf(theoriginalstringis:);puts(a);fun(a);printf(n);printf(thestringaftermodified:);puts(a); 題目2 寫程序,實(shí)現(xiàn)矩陣(3 行3 列)的轉(zhuǎn)置(即行列互換)。例如,輸入一面的矩陣:程序輸出:試題程序:#include#include/*這題的關(guān)鍵在于進(jìn)行行列下標(biāo)轉(zhuǎn)換的算法,由矩陣的對稱性我們不難看出在進(jìn)行行列互換時(shí)
3、aj在好是與aji互換,因而只要我位讓程序走完矩陣的左上角即可(用for(i=0;i2;i+)再套for(j=i+1;j3;j+)來完成左上角的走動。*/intfun(intarray33)inti,j,t;for(i=0;i2;i+)for(j=i+1;j3;j+)t=arrayij;arrayij=arrayji;arrayji=t;main()inti,j;intarray33=100,200,300,400,500,600,700,800,900;clrscr();for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d,arrayij);printf(n);fun
4、(array);printf(convertedarray:n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d,arrayij);printf(n);題目3 請編一個(gè)函數(shù)fun(int*a,intn,int*odd,int*even),函數(shù)的功能是分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參n 給了數(shù)組中數(shù)據(jù)的個(gè)數(shù):利用指針odd 返回奇數(shù)之和,利用指針even 返回偶婁這和。例如:數(shù)組中的值依次為:1,8,2,3,11,6;則利用指針odd 返回奇數(shù)之和24;利用指針even 返回偶數(shù)之和8。試題程序。#include#include#definen20/
5、*注:該題的算法是:用for()循環(huán)一步一步地找元素,用if(!ai%2)來判斷是否是奇數(shù),%運(yùn)算是求余運(yùn)算,當(dāng)對2 求余為1 時(shí)表示原數(shù)為奇數(shù),否則為偶數(shù)。*/fun(int*a,intn,int*odd,int*even)inti;*even=0;*odd=0;for(i=0;in;i+)if(!(ai%2)*even+=ai;else*odd+=ai;main()intan=1,9,2,3,11,6,i,n=6,odd,even;clrscr();printf(theoriginaldatais:n);for(i=0;in;i+)printf(%5d,*(a+i);printf(nn);
6、fun(a,n,&odd,&even);printf(thesumofoddnumbers:%dn,odd);printf(thesumofevennumber:%dn,even);題目4 要求程序的功能是:把20 個(gè)隨機(jī)數(shù)存入一個(gè)數(shù)組,然后輸出該數(shù)組中的最小值。其中確定最小值的下標(biāo)的操作在fun 函數(shù)中實(shí)現(xiàn),請給出該函數(shù)的定義。試題程序。#include#include#definevsize20intvectorvsize;/*注:該題的算法是用一個(gè)變量(j)來存儲最小值元素的下標(biāo),在循環(huán)過程中讓每個(gè)元素都與原最小值元素進(jìn)行大小比較(if(listilistj),如發(fā)現(xiàn)更小的則讓j 重新?lián)?/p>
7、有最小值元素的下標(biāo)(j=i)。*/intfun(intlist,intsize)inti,j=0;for(i=1;isize;i+)if(listilistj)j=i;returnj;main()inti;clrscr();for(i=0;ivsize;i+)vectori=rand();printf(vector%d=%6dn,i,vectori);i=fun(vector,vsize);printf(nmininum:vector%d=%6dn,i,vectori);題目5 請編一個(gè)函數(shù)floatfun(doubleh),函數(shù)的功能是對變量h 中的值保留2 位小數(shù),并對第三位進(jìn)行四舍五入(
8、規(guī)定h 中的值為正數(shù))。例如:h 值為8.32433,則函數(shù)返回8.32;h 值為8.32533,則函數(shù)返回8.33。試題程序。#include#include/*注:h 乘以1000 后正好是原小數(shù)點(diǎn)后第三位做了新數(shù)的個(gè)位數(shù),然后再進(jìn)行加5 運(yùn)算時(shí)。如原小數(shù)點(diǎn)后第三位為4 及以下則加5 后還是不能進(jìn)一位(即四舍),如是5 及以上則加5 后該位就要向前進(jìn)一位數(shù)(即五入)。進(jìn)行加5 運(yùn)算后除10 再賦給一個(gè)整型變量此時(shí)就只有原小數(shù)點(diǎn)第二位及以前各位保留在整型變量中,最后再對整型變量除100,這樣又出現(xiàn)了兩位小數(shù)。該題中,進(jìn)行四舍五入后一定要賦給一個(gè)整型變量才能將不用部分徹底變成0 。*/floa
9、tfun(floath)longt;h=h*1000;t=(h+5)/10;return(float)t/100;main()floata;clrscr();printf(entera:);scanf(%f,&a);printf(theoriginaldatais:);printf(%fnn,a);printf(theresult:%6.2fn,fun(a);題目6 編寫函數(shù)fun,函數(shù)的功能是:從字符串中刪除指定的字符。同一字母的大、小寫按不同字符處理。若程序執(zhí)行時(shí),輸入字符串為:turbocandborlandc+從鍵盤上輸入字符:n,則輸出后變?yōu)椋簍urbocadborladc+如果輸入
10、的字符串不存在,則字符串照原樣輸出。試題程序。#include#include/*注:該題的算法是讓i 控制一個(gè)一個(gè)字符往后走,在移動過程中如果si不是要刪的字符,則將其按順序放到新串中(新串亦是用s 來做,只是用k 來控制新串的下標(biāo),由于要刪除一些元素,因此新串的下標(biāo)總是比原下標(biāo)i 要慢。因而可用此法即同一字符串變量的方法。*/intfun(chars,intc)inti,k=0;for(i=0;si;i+)if(si!=c)sk+=si; sk=0;main()staticcharstr=turbocandborlandc+;charch;clrscr();printf(:%sn,str)
11、;printf(:);scanf(%c,&ch);fun(str,ch);printf(str=%sn,str);題目7 請編寫一個(gè)unsignedfun(unsignedw),w 是一個(gè)大于10 的無符號整數(shù),若w 是n(n=2)位的整數(shù),函數(shù)求出w 的后n-1 位的數(shù)作為函數(shù)值返回。例如:w 值為5923,則函數(shù)返回923;w 值為923 則函數(shù)返回23。試題程序。#include#include/* 注:由于unsigned 型整數(shù)在0-65535 這間,只要它大于10000 則對10000 求余即得出后面4 位,否則如果大于1000 則對1000 求余得出后3 位數(shù),這樣一層一層往小的
12、判斷。由于return 的作用除了返回值以外,還有當(dāng)執(zhí)行到return 時(shí)就跳出該程序,所以可以連續(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(x10)printf(dataerror!);elseprintf(theresult:%un,fun(x);題目8 編寫函數(shù)intf
13、un(intlim,intaamax),該函數(shù)的功能是求出小于lim 的所有素?cái)?shù)并放在aa 數(shù)組中,該函數(shù)返回所求出素?cái)?shù)的個(gè)數(shù)。試題程序。#include#include#definemax100/*注:循環(huán)for(i=2;i=k)用于判斷在上一個(gè)for()循環(huán)中i 能否走到k,如果能則表示在2 到k-1 的數(shù)都不能整除k,即k 為素?cái)?shù)。*/intfun(intlim,intaamax)inti,j=0,k;for(k=2;klim;k+)for(i=2;i=k)aaj+=k;returnj;main()intlimit,i,sum;intaamax;printf(ninputainteger
14、number:);scanf(%d,&limit);sum=fun(limit,aa);for(i=0;isum;i+)if(i%10=0&i!=0)printf(n);printf(%5d,aai);題目9請編寫函數(shù)fun,函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如:二維數(shù)組中的值為則函數(shù)值為61。試題程序。#include#include#definem4#definen5/*注:該題的第一個(gè)for()循環(huán)是計(jì)算矩陣的最上一行和最下一行的總和,第二個(gè)for()是計(jì)算除兩頭元素以外的最左一列和最右一列的元素的和,最后sun 就是周邊元素的和。*/
15、intfun(intamn)intsum=0,i;for(i=0;in;i+)sum+=a0i+am-1i;for(i=1;im-1;i+);sum+=ai0+ain-1;returnsum;main()intaamn=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0;inti,j,y;clrscr();printf(theoriginaldatais:n);for(i=0;im;i+)for(j=0;jn;j+)printf(%6d,aaij);printf(n);y=fun(aa);printf(nthesum:%dn,y);printf(n);題目10請編寫
16、函數(shù)fun,對長度為7 個(gè)字符的字符串,除首、尾字符外,將其余5 個(gè)字符按降序排列。例如,原來的字符串為ceaedca,排序后輸出為cedceaa。試題程序。#include#include#include/*該題采用的排序法是選擇法進(jìn)行降序排序,算法是用外for()循環(huán)從字符串的前端往后端走動,每走動一個(gè)字符都用內(nèi)嵌的for()循環(huán)在該字符后找出最小的字符與該字符進(jìn)行換位。直到外for()循環(huán)走到最后一個(gè)字符。此外,此題還要注意把首尾字符除開,即在最外層for()循環(huán)中從1 開始,只到num-2 即可。*/intfun(char*s,intnum)inti,j,t;for(i=1;inum-
17、2;i+)for(j=i+1;jnum-1;j+)if(sisj)t=si;si=sj;sj=t;main()chars10;clrscr();printf(輸入7 個(gè)字符的字符串:);gets(s);fun(s,7);printf(n%s,s);題目11請編一函數(shù)voidfun(intttmn,intppn),tt 指向一個(gè)m 行n 列的二維數(shù)組,求出二維數(shù)組每列中最小元素,并依次放入pp 所指一維數(shù)組中,二維數(shù)組中的數(shù)已在主函數(shù)中賦予。試題程序。#includeconio.h#includestdio.h#definem3#definen4/*注:該題用for(i=0;in;i+)來控制一
18、列一列地找,而內(nèi)嵌循環(huán)for(j=0;jm;j+)用于控制同列內(nèi)元素的比較。多重循環(huán)的嵌套總是最里層循環(huán)變化最快,即外層循環(huán)改變一個(gè)值,內(nèi)層循環(huán)就要循環(huán)完一次,對于多重循環(huán)一定要好好去體會和理解,在多數(shù)題目中都要用到多重循環(huán)(一般為二重)。*/voidfun(intttmn,intppn)inti,j;for(i=0;in;i+)pp=tt0i;for(j=0;jm;j+)if(ttjippi)ppi=ttji;main()inttmn=22,45,56,30,19,33,45,38,20,22,66,40;intpn,i,j,k;clrscr();printf(theoriginaldata
19、is:n);for(i=0;im;i+)for(j=0;jn;j+)printf(%6d,tij);printf(n);fun(t,p);printf(ntheresultis:n);for(k=0;kn;k+)printf(%4d,pk);printf(n);題目12 寫一個(gè)函數(shù),從傳入的num 個(gè)字符串中找出最長的一個(gè)字符串,并通過形參指針max傳回該串地址。(注意:用*作為結(jié)束輸入的標(biāo)志。)試題程序。#includestdio.h#includestring.h#includeconio.h/* 函數(shù)strlen()用于求出字符串的長度,這個(gè)題中主要是*max=p;不能換成max=&p;
20、如果用maz=&p;則只改變了max 的指向,它不能傳回給實(shí)參。因此我們要改變max 指向地址中的內(nèi)容,這才能使得實(shí)參ps 有正確的值。*/fun(char(*a)81,intnum,char*max)char*p=a0;inti;for(i=1;istrlen(p)p=ai; *max=p;main()charss1081,*ps;intn,i=0;clrscr();printf(enterstring:n);gets(ssi);puts(ssi);while(!strcmp(ssi,*)=0)i+;gets(ssi);puts(ssi);n=i;fun(ss,n,&ps);printf(n
21、max=%sn,ps);題目13 請編一個(gè)函數(shù)fun,其中n 所指存儲單元中存放了數(shù)組中元素的個(gè)數(shù)。函數(shù)的功能是:刪除所有值為y 的元素。數(shù)組元素中的值和y 的值由主函數(shù)通過健盤讀入。試題程序。#include#include#definem20/*注:該題的算法是,用for()循環(huán)控制元素逐一判斷數(shù)組元素是否等于y,若不等則賦給新數(shù)bb,由于刪除的關(guān)系j 總是小于或等于i,故而可用bb 作為新數(shù)組,與第6 題相似。還要注意*n=j;如果沒有這個(gè)語句則不能傳回新數(shù)組的個(gè)數(shù),另外也不能換成n=&j;這點(diǎn)是用指針時(shí)常犯的錯(cuò)誤,切記!*/voidfun(intbb,int*n,inty)inti,j
22、=0;for(i=0;i*n;i+)if(bbi!=y)bbj+=bbi;*n=j;main()intaam,n,y,k;printf(npleaseentern:);scanf(%d,&n);printf(nenter%dpositivenumber:n,n);for(k=0;kn;k+)scanf(%d,&aak);printf(theoriginaldatais:n);for(k=0;kn;k+)printf(%5d,aak);printf(nenteranumbertodeleted:);scanf(%d,&y);fun(aa,&n,y);printf(thedataafterdele
23、ted%d:n,y);for(k=0;kn;k+)printf(%4d,aak);printf(n);題目14 編寫一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長度為2 的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為:asdasasdfgasdaszx67asdmklo,子字符串為:as,則應(yīng)輸出6。試題程序。#includestdio.h#includestring.h#includeconio.h/*注:由于小串中只有2 個(gè)字符所以可用stri=sbustr0&stri+1=substr1來判斷小串是否與長串當(dāng)前位置(stri)相同(即出現(xiàn)一次)。因而只要讓長串當(dāng)前位置逐一向后移即可(用fo
24、r()循環(huán)來完成)。*/intfun(char*str,char*substr)inti,n=0,s=strlen(str);for(i=0;i100)printf(dataeror!n);exit(0);y=fun(x);if(y)printf(%dyesn,x);elseprintf(%dno!n,x);題目16請編寫函數(shù)fun,函數(shù)的功能是:在字符串中所有數(shù)字字符前加一個(gè)$字符。例如,輸入:a1b23cd45,則輸出為:a$1b$2$3cd$4$5。注意:部分源程序給出如下。#include/*注:該題用while()循環(huán)來控制原字符串從頭走到尾,在走動過程中判斷是當(dāng)前字符是否是數(shù)字,若
25、是則在新串中先連一個(gè)$然后再連原字符,否則直接連原字符。一定要注意指針和下標(biāo)的變化。最后要把新串拷貝到s 所指的地址中,注意不能用s=a;若用了,則實(shí)參數(shù)組還是原字符串。*/voidfun(char*s)chara100;inti=0;while(*s)if(*s=0&*s=9)ai+=$;ai+=*s+;elseai+=*s+; a=0;strcpy(s,a);main()chars80;printf(enterastring:);scanf(%s,s);fun(s);printf(theresult:%sn,s);題目17 請編一個(gè)函數(shù)fun(char*s),函數(shù)的功能是把字符串中所有的字
26、符前移一個(gè)位置,串中的第一個(gè)字符移到最后。例如:原有的字符串為:mn.123xyz,則調(diào)用該函數(shù)后,串中的內(nèi)容為:n.123xyzm。試題程序。#includeconio.h#includestdio.h#definen81/* 注:該題要先將字符串的頭元素存到某一變量(用c=*s)中,然后后面的字符依向前移(用for()循環(huán)),要記得在串的未尾加一個(gè)結(jié)束符。*/fun(char*s)charc=*s;for(;*(s+1);s+)*s=*(s+1);*s=c;*(s+1)=0;main()charan;clrscr();printf(enterastring:);gets(a);printf
27、(theoriginalstringis:);puts(a);fun(a);printf(thestringaftermodified:);puts(a);題目18請編寫函數(shù)fun,函數(shù)的功能是:將所有大于1 小于整數(shù)m 的非素?cái)?shù)存入xx 所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過k 傳回。例如,若輸入:17,則應(yīng)輸出:9 和46891012141516。試題程序。#include#include/* 注:內(nèi)嵌的for()循環(huán)用于判斷是否是素?cái)?shù),在ji 的情況下,只要j 對i 求余,余數(shù)為0 則表示i 不是素?cái)?shù),則將i 存入xx 數(shù)組中。break;語句只是讓它提前結(jié)束循環(huán)。不用亦可。*/voidfun(i
28、ntm,int*k,intxx)inti,j;*k=0;for(i=2;im;i+)for(j=2;ji;j+)if(i%j=0)xx(*k)+=i;break;main()intm,n,zz100;printf(npleaseenteranintegernumberbetween10and100:);scanf(%d,&n);fun(n,&m,zz);printf(nnthereare%dnon-primenumberslessthan%d:,m,n);for(n=0;nm;n+)printf(n%4d,zzn);題目19請編一個(gè)函數(shù)fun(char*s),函數(shù)的功能是把字符串中所有的字母改
29、寫成該字母的下一個(gè)字母,最后一個(gè)字母z 改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他的字符不變。例如:原有的字符串為:mn.123zyz,則調(diào)用該函數(shù)后,串中的內(nèi)容為:no.123yza。試題程序。#includeconio.h#includestring.h#includestdio.h#includectype.h#definen81/* 該題的思路較為明顯,用for()循環(huán)一個(gè)字符一個(gè)字符地走動,移動過程中判斷是否在a 到y(tǒng) 之間,若是則加1(即下移一個(gè)字母),若是z 則換成對應(yīng)的a*/fun(char*s)inti,n=strlen(s);for(i=0;i=a&si
30、=a&si<z)si=si+1;elseif(si=z)si=a;elseif(si=z)si=a;main()charan;clrscr();printf(enterastring:);gets(a);printf(theoriginalstringis:);puts(a);fun(a);printf(thestringaftermodified:);puts(a);題目20請編寫函數(shù)fun,函數(shù)的功能是:將s 所指字符串中、下標(biāo)為奇數(shù)位置上的大寫字母轉(zhuǎn)換為字母序列中的下一個(gè)小寫字母;若該位置上是小寫字母,則不轉(zhuǎn)換;若該位置上是大寫字母z,則僅轉(zhuǎn)換成小寫字母z。例如,輸入:abcdxz
31、zz,則輸出為:accdxzzz。試題程序。#includestdio.h#definen80/* 該題的算法與上一題相似,注意同一個(gè)字母小寫要比大寫在ascii 值上大32。*/voidfun(char*s)inti;for(i=1;i=a&siz)si+=32+1;elseif(si=z)si+=32;main()charsn;printf(nenterastring:);scanf(%s,s);fun(s);printf(ntheresult:%sn,s);題目21程序定義了n*n 的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:給數(shù)組周邊元素置0 值。例如:a 數(shù)組中的值
32、為則返回主程序后a 數(shù)組中的值應(yīng)為 注意:部分源程序給出如下。請勿改動主函數(shù)main 和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun 的花括號中填入你編寫的若干語句。試題程序。#include#include#include#definen5/* 由于是賦值0,因而只要能表示出周邊元素即好辦,它與求和不同在于求和不能重復(fù)對某個(gè)元素進(jìn)行運(yùn)算,而賦值則可重復(fù)賦值。所以這里只用了一個(gè)for()循環(huán)來找出所有 的周邊元素。*/fun(intwn)inti;for(i=0;in;i+)wi0=0;win-1=0;w0i=0;wn-1i=0;main()intann,i,j;clrscr();printf(*
33、thearray*n);for(i=0;in;i+)for(j=0;jn;j+)aij=rand()%10;printf(%4d,aij);printf(n);fun(a);printf(*theresult*n);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);題目22請編寫函數(shù)fun,它的功能是:求出ss 所指字符串中、指定字符的個(gè)數(shù),并返回此值。例如:若輸入字符串:123412132,輸入字符為:1,則輸出:3。試題程序。#include#include#definem81/* 注:本題用while()循環(huán)來控制字符的移動,每移
34、動一個(gè)字符都要進(jìn)行判斷(if(*ss=c))是否為指定的字母,若是則個(gè)數(shù)加1。這里要注意如何讓ss 指針向下走動(ss+)。*/intfun(char*ss,charc)intnum=0;while(*ss!=0)if(*ss=c)num+;ss+;return(num);main()charam,ch;clrscr();printf(npleaseenterastrint:);gets(a);printf(npleaseenterachar:);ch=getchar();printf(nthenumberofthecharis:%dn,fun(a,ch);題目23程序定義了n*n 的二維數(shù)組
35、,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如:a 數(shù)組中的值為則返回主程序后s 的值應(yīng)為:3.375。試題程序。#include#include#include#definen5/* 注意不能重復(fù)計(jì)算,它與題21 不同,第一個(gè)for()循環(huán)求出第一列與最后一列的和,第二個(gè)for()循環(huán)求出第一行與最后一行(已除去兩頭元素),要注意第二個(gè)for()中起始為1,最后為n-2。*/doublefun(intwn)inti,t=0;doubles=0;for(i=0;in;i+)s+=wi0+win-1;t+=2;for(i=1;in
36、-1;i+)s+=w0i+wn-1i;t+=2;s=s/t;returns;main()intann=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1;inti,j;doubles;clrscr();printf(*thearray*n);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);s=fun(a);printf(*theresult*n);printf(thesumis%lfn,s);題目24編寫一個(gè)函數(shù)fun,它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不使用庫函數(shù)strcat)。例如,
37、分別輸入下面兩個(gè)字符串:firstsrtingsecondstring程序輸出:firststringsecondstring注意:部分源程序給出如下。請勿改動主函數(shù)main 和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun 的花括號中填入你編寫的若干語句。試題程序。#include#include/* 注:第一個(gè)for()循環(huán)用于讓i 成為第一個(gè)字符串的結(jié)束符的下標(biāo),要注意在這個(gè)for()后要有一個(gè)分號否則出錯(cuò)。第二個(gè)for()的作用是將第二個(gè)字符串一個(gè)一個(gè)字符依次放到第一個(gè)字符串的未尾。此外,還要注意最后一定要有p1i=0;來給字符串加上結(jié)束符。*/voidfun(charp1,charp2)i
38、nti,j;for(i=0;p1i;i+);for(j=0;p2j;j+)p1i+=p2j;p1i=0;main()chars180,s280;clrscr();printf(enters1ands2:n);scanf(%s%s,s1,s2);printf(s1=%sn,s1);printf(s2=%sn,s2);printf(invokefun(s1,s2):n);fun(s1,s2);printf(afterinvoking:n);printf(%sn,s1);題目25程序定義了n*n 的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(intan),函數(shù)的功能是:使數(shù)組第一列元素中的值與
39、最后一列元素中的值對調(diào)、第二列元素的值與倒數(shù)第二列中的值對調(diào)、其他依次類推。例如:a 數(shù)組中的值為則返回主程序后a 數(shù)組中的值應(yīng)為 注意:部分源程序給出如下。請勿改動主函數(shù)main 和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun 的花括號中填入你編寫的若干語句。試題程序。#include#include#include#definen5/* 本題的第一個(gè)for()循環(huán)用于控制行,而內(nèi)嵌的for()用于在同一行中將列與列對調(diào),當(dāng)i 為0 時(shí)ami為第m 行的第一列元素,amn-1-i為第m 行的最后一列的元素,正好符合調(diào)換的要求。依次類推。*/intfun(intan)inti,m,t;for(m=
40、0;mn;m+)for(i=0;in/2;i+)t=ami;ami=amn-1-i;amn-1-i=t;main()intann,i,j;clrscr();printf(*thearray*n);for(i=0;in;i+)for(j=0;jn;j+)aij=rand()%30;printf(%4d,aij);printf(n);fun(a);printf(*theresult*n);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);題目26請編寫函數(shù)fun,函數(shù)的功能是:實(shí)現(xiàn)b=a+a,即把矩陣a 加上a 的轉(zhuǎn)置,存放在矩陣b 中。計(jì)
41、算結(jié)果在main 函數(shù)中輸出。例如:輸入下面的矩陣: 其轉(zhuǎn)置矩陣為: 程序輸出: 注意:部分源程序給出如下。請勿改動主函數(shù)main 和其它函數(shù)中的任何去何內(nèi)容,僅在函數(shù)fun 的花括號中填入你編寫的若干語句。試題程序。#include#include/*26 題:本題沒有先求出a 的轉(zhuǎn)置,而是直接利用轉(zhuǎn)置的性質(zhì)(即第一行作為轉(zhuǎn)置后的第一列,第二行作為轉(zhuǎn)置后的第二列,的行列互換的性質(zhì))。而且最后要求出兩矩陣的相加后得出的新矩陣,由轉(zhuǎn)置性質(zhì)可知原aji轉(zhuǎn)置后位置為aij,在表達(dá)式:bij=aij+aji第一個(gè)a 為a 的元素,第二個(gè)a 為a的元素。*/voidfun(inta33,intb33)inti,j;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aji;main()inta33=1,2,3,4,5,6,7,8,9,t33;inti,j;clrscr();fun(a,t);for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d,tij);printf(n);題目27序定義了n*n 的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(intan),函數(shù)的功能是:使數(shù)組第一行元素中的值與最后一行元素中的值對調(diào)、第二行元素
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 授權(quán)制度在人力資源管理中的應(yīng)用
- 冷藏租賃協(xié)議:化妝品加工專用
- 游樂場物業(yè)管理委托招標(biāo)
- 古鎮(zhèn)景區(qū)內(nèi)部便利店租賃合同
- 綠色出行招投標(biāo)文件評審表
- 地產(chǎn)開盤現(xiàn)場制片協(xié)調(diào)書
- 休閑娛樂設(shè)施鋼筋施工合同
- 公司宿舍假期住宿申請流程
- 城市綠化招投標(biāo)文件審核指南
- 大型影劇院改造工程合同會簽表
- 農(nóng)產(chǎn)品質(zhì)量安全及農(nóng)藥安全科學(xué)使用技術(shù)
- 漿囊袋注漿錨桿應(yīng)用介紹
- 化糞池有限空間告知牌
- 認(rèn)識光罩以及簡要的工藝流程
- 藥品批發(fā)企業(yè)內(nèi)審報(bào)告
- JJF1944-2021電容式測微儀校準(zhǔn)規(guī)范(高清最新版)
- 如何做課題研究PPT課件
- 工程竣工驗(yàn)收與竣工備案流程組織PPT課件
- 九年級英語1-4單元復(fù)習(xí)要點(diǎn)
- 一年級《20以內(nèi)的加減法填括號口算題(共100道)》專項(xiàng)練習(xí)題
- 企業(yè)的國際化戰(zhàn)略與績效
評論
0/150
提交評論