




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一、用指針方法編寫一個程序,輸入3個整數(shù),將它們按由小到大的順序輸出#include<stdio.h>voidswap(int*pa,int*pb){inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;seanf(”%d%d%d”,&a,&b,&c);if(a>b)swap(&a,&b);if(b>e)swap(&b,&e);if(a>e)swap(&a,&e);printf("%d,%d,%d",a,b,e);}二、C語言用指針方法輸入3個字符串按由小到大順序輸出#inelude"stdio.h"#inelude"string.h”intmain(intarge,ehar*argv[]){ehar*t;ehar*p1=NULL,*p2=NULL,*p3=NULL;eharch1[20]={0},ch2[20]={0},ch3[20]={0};p1=eh1;p2=ch2;p3=eh3;printf("No1:");seanf("%s",p1);fflush(stdin);printf("No2:");seanf("%s",p2);fflush(stdin);printf("No3:");scanf("%s",p3);fflush(stdin);if(strcmp(p1,p2)>0){t=p1;p1=p2;p2=t;}if(strcmp(p1,p3)>0){t=p1;p1=p3;p3=t;}if(strcmp(p2,p3)>0){t=p2;p2=p3;p3=t;}printf(”%s\n%s\n%s\n",p1,p2,p3);return0;}94編程輸入一行文字,找出其中的大寫字母,小寫字母,空格,數(shù)字,及其他字符的個數(shù)#includevstdio.h>voidmain(){inta=0,b=0,c=0,d=0,e=0,i=0;char*p,s[20];while((s[i]=getchar())!='\n')i++;p=s;while(*p!=10){if(*p>='A'&&*pv='Z')a++;elseif(*p>='a'&&*pv='z')b++;elseif(*p=='')c++;elseif(*p>='0'&&*pv='9')d++;elsee++;p++;}printf("大寫字母%d小寫字母%d\n",a,b);printf("空格%d數(shù)字%d非字符%d\n",c,d,e);9.5寫一個函數(shù),將33矩陣轉置#include"stdio.h"voidTranspose(int(*matrix)[3]){inttemp;inti,j;for(i=1;iv3;i++)/*轉置*/{for(j=0;jvi;j++){temp=*(*(matrix+j)+i);*(*(matrix+j)+i)=*(*(matrix+i)+j);*(*(matrix+i)+j)=temp;}}}voidmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};Transpose(a);for(inti=0;i<3;i++){for(intj=0;jv3;j++){printf("%d",a[i][j]);}printf("\n");}}}9.6用指向一維數(shù)組的指針做函數(shù)參數(shù)#includevstdio.h>#includevstring.h>chartemp[6],*t;chartemp[6],*t;intmain(){voidsort(char(*s)[6]);〃一維數(shù)組的指針做函數(shù)參數(shù)inti;charstr[10][6];char(*p)[6];〃定義一維數(shù)組的指針做函數(shù)參數(shù)printf("pleaseinputstring:/n");for(i=0;iv10;i++)scanf("%s",&str[i]);p=str;//將str一維數(shù)組指針,賦值給p;sort(p);printf("theoutputsequenee:/n");for(i=0;i<10;i++)printf("%s/n",str[i]);return0;}voidsort(char(*s)[6])//s指向一維數(shù)組的指針做函數(shù)參數(shù);{inti,j;t=temp;charstr[10][6],*p[10];charstr[10][6],*p[10];for(i=0;iv9;i++)//i應該小于9;如果小于10,那么就比較了9+1次;按照冒泡法則,for(j=0;jv9-i;j++)〃第一次比較需要9次就是i=0到i=8共九次;第二次需要比較8次;依次類推;if(strcmp(s[j],s[j+1])>0){strcpy(t,s[j]);strcpy(s[j],s[j+1]);strcpy(s[j+1],t);}}9.7編一程序,用指針數(shù)組在主函數(shù)中輸入十個等長的字符串。用另一函數(shù)對它們排序,然后在主函數(shù)中輸出10個已排好序的字符串〃用指針數(shù)組處理#includevstdio.h>#includevstring.h>intmain(){voidsort(char*[]);inti;printf("pleaseinput10string:/n");for(i=0;iv10;i++)〃首先將10個str的首地址賦值給10個p[i];p[i]=str[i];〃將第i個字符串的首地址賦予指針數(shù)組p的第i個元素;for(i=0;i<10;i++)scanf("%s",p[i]);//scanf輸入到&p[i]sort(p);printf("theoutput10string:/n");for(i=0;i<10;i++)printf("%s/n",p[i]);〃輸出到p[i];}voidsort(char*s[]){char*temp;inti,j;for(i=0;iv9;i++)for(j=0;j<9-i;j++)if(strcmp(*(s+j),*(s+j+1))>0){temp=*(s+j);//*(s+j)指向數(shù)組指針,我想應該是字符串的首地址;所以可以直接賦值給temp扌旨針;*(s+j)=*(s+j+1);*(s+j+1)=temp;charstr1[20],str2[20],*p1,*p2;charstr1[20],str2[20],*p1,*p2;}9.8指針將n個數(shù)按輸入時順序的逆序排列,用函數(shù)實現(xiàn)#include<stdio.h>voidreverse(inta[],intn){int*p;for(p=a+n_1;p>=a;p__)printf(”%4d”,*p);printf("\n");}main(){inta[20],n;inti;printf(”lnputthelengthofarray:");seanf("%d",&n);printf("lnputthenumberofarray:");for(i=0;i<n;i++)seanf(”%d”,&a[i]);reverse(a,n);}9.9寫一函數(shù),實現(xiàn)兩個字符串的比較。即自己寫一個stremp函數(shù),函數(shù)原型為:intstremp(char*pl,char*p2)設pl指向字符串sl,p2指向字符串s2。要求:當s1=s2時,返回值為0。當sl不等于s2時,返回它們二者的第一個不同字符的ASCII碼差值(如“BOY”與“BAD”,第二字母不同,“O”與“A”之差為79-65=14);如果s1>s2,則輸出正值;如果s1<s2,則輸出負值。#include<stdio.h>main(){intstrcmp(char*p1,char*p2);intm;printf("Inputtwostrings:\n");scanf("%s",str1);scanf("%s",str1);scanf("%s",str2);p1=&str1[0];p2=&str2[0];m=strcmp(p1,p2);printf("result:%d\n",m);}intstrcmp(char*pl,char*p2)/*兩個字符串比較的函數(shù)*/{inti;i=0;while(*(pl+i)二二*(p2+i))if(*(pl+i++)二二'\0')return(O);/*相等時返回結果0*/return(*(pl+i)-*(p2+i));/*不等時返回結果為第一個不等字符ASCII碼的差值*/}運行情況如下:Inputtwostrings:CHINA/Chen/Result:-32Inputtwostrings:hello!/Hello!/Result:0Inputtwostings:dog/cat/result:19.10編一個程序,打入月份號,輸出該月的英文月名。例如,輸入“3”,則輸出“March”,要求用指針數(shù)組處理。#include<stdio.h>main(){char*month_name[13]={"illegalmonth","January","February","March","April","May","June","July","August","September","0ctober","November","December"};intn;printf("Inputmonth:");scanf("%d",&n);if((n<=12)&&(n>=l))printf("Itis%s.\n",*(month_name+n));elseprintf("Itiswrong.\n");}運行結果:Inputmonth:2/ItisFebruary.Inputmonth:8/ItisAugust.Inputmonth:13/Itiswrong.9.11c語言:將字符串computer賦給一個字符數(shù)組,然后從第一個字母開始間隔地輸出該串。請用指針實現(xiàn)#ineludevstdio.h>#includevstring.h>#defineMAX_LENGTH32intmain(){charstr[MAX_LENGTH]={0};char*pStr=(char*)&str;〃1.將字符串computer賦給一個字符數(shù)組strcpy(str,"computer");//2.然后從第一個字母開始間隔地輸出該串while(*pStr!='\0'){printf(”%c\n",*pStr);pStr++;}return1;}9.12從鍵盤上輸入一個字符串,按后按照下面要求輸出一個新字符串,新的字符串是在原來字符串中,每兩個字符之間插入一個空格,如原來的字符串為“abed”,新產(chǎn)生的字符串應為“abed”編寫一個程序咯用C就是輸出的字符是每兩個字符之間有一個空格#include<stdio.h>voidmain(){chara[10],b[10],i=0,j=0;printf(“輸出字符串");scanf("%s",a);//abcdeffor(i=0;a[i]!='\0';i++){b[j++]=a[i];b[j++]='';}b[j]='\O';printf("%s",b);}9.13設有一數(shù)列,包含10個數(shù),已按升序排好?,F(xiàn)要求編一程序,它能夠把從指定位置開始的n個數(shù)按逆序重新排列并輸出新的完整數(shù)列。進行逆序處理時要求使用指針方法(例如:原數(shù)列為2,4,6,8,10,12,14,16,18,20,若要求把從第4個數(shù)開始的5個數(shù)按逆序重新排列,則得到新數(shù)列為2,4,6,16,14,12,10,8,18,20。)#ineludeviostream.h>voidmethod(intn,intm,int*a){int*p=a,*q=newint[m];p=p+n_1;for(inti=0;ivm;i++){q[i]=*p;p++;}p=p-m;for(i=0;ivm;i++){*p=q[m-1-i];p++;}}intmain(){inta[10]={2,4,6,8,10,12,14,16,18,20};method(4,5,a);for(inti=0;iv10;i++){cout<<a[i]<<'';}return0;}9.3有一字符串,包含n個字符。寫一個函數(shù),將此字符串從第m個字符開始的全部字符復制成為另一個字符串并輸出voidstrepyn(char*s,char*t,intn){char*p=s+n;char*q=t;while(*p){*q=*p;q++;p++;}*q='\0';}main(){chars[100]={0};chart[100]={0};intn=0;printf("inputstrings:\n”);scanf("%s",s);printf("inputstartn:\n");scanf("%d",&n);strcpyn(s,t,n);puts(t);}實驗101.設計函數(shù)char*insert(s1,s2,n),用指針實現(xiàn)在字符串si中的指定位置n處插入字符串s2#include<stdio.h>char*insert(char*s1,char*s2,intn){intj=0;char*ss=newchar[100];char*tsptr=ss;for(inti=0;i<n;i++)*ss++=*s1++;while(*s2!='\0')*ss++=*s2++;while(*s1!='\0'){*ss++=*s1++;}*ss='\0';returntsptr;}voidmain(){chars1[]="123456789"
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬礦行業(yè)人才培養(yǎng)與知識管理考核試卷
- 經(jīng)濟型酒店業(yè)市場趨勢分析考核試卷
- 數(shù)據(jù)庫安全隱患發(fā)現(xiàn)與處理試題及答案
- 計算機四級軟件測試實時反饋試題及答案
- 未來智能家居中的嵌入式角色試題及答案
- 敏捷測試在項目中的應用試題及答案
- 航空器飛行中的機載娛樂系統(tǒng)與乘客體驗考核試卷
- 信息系統(tǒng)現(xiàn)場應用試題及答案
- 解析能力提升的試題及答案清單
- 信息系統(tǒng)監(jiān)理師考試重要考點試題及答案
- 2025年大學英語四級真題試卷及答案
- 2025年國際關系與外交專業(yè)考試試題及答案
- 2025年物流行業(yè)安全生產(chǎn)考試題庫(物流安全生產(chǎn)法規(guī)與事故處理)試題
- 完善土地清表協(xié)議書
- 醫(yī)療器械公司質量管理體系文件
- 小升初語文閱讀技巧第十講把握人物情感變化含例題解析答案
- 初中語文同步課件 17.陋室銘
- 機械工程師資格證書考試真題與試題及答案
- 玉盤二部合唱簡譜
- 燈謎文化智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學
- 模擬電子技術基礎智慧樹知到期末考試答案章節(jié)答案2024年北京航空航天大學
評論
0/150
提交評論