版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
上機試驗九指針一.目的規(guī)定掌握指針的基本概念。掌握指針變量的定義和初始化。二.試驗內(nèi)容【試驗題1】程序填空,互換指針p1,p2所指向的變量。#include<stdio.h>voidmain(){ inta=1,b=2,*p1,*p2,*pt; p1=&a; p2=&b; printf(“p1=%d,p2=%d\n”,p1,p2); //互換指針變量p1,p2所指向的變量 pt=p1;p1=p2; p2=pt;//注意:這三個指針變量前均無間接引用符* printf(“p1=%d,p2=%d\n”,p1,p2);}運行成果: (注意:輸出的是p1、p2所指變量的地址,即變量a或b的地址)【試驗題2】程序填空,互換指針p1,p2所指變量的值。#include<stdio.h>voidmain(){ inta=1,b=2,*p1,*p2,temp; p1=&a; p2=&b; printf(“*p1=%d,*p2=%d\n”,*p1,*p2); //互換p1,p2所指向的變量的值 temp=*p1;*p1=*p2;*p2=temp;//注意:temp是一般變量,而指針p1,p2前均使用間接引用符* printf(“*p1=%d,*p2=%d\n”,*p1,*p2);}運行成果: (注意:指針前加*,代表指針?biāo)缸兞浚驹囼烆}3】程序填空:輸入三個整型變量i,j,k的值。請設(shè)置三個指針變量p1,p2,p3,分別指向i,j,k。然后通過p1,p2,p3使i,j,k三個變量的值依次互換,即本來i的值賦給j,本來j的值賦給k,本來k的值賦給i。輸出互換后i,j,k的值。i jk分析:三個值輪換跟兩個值互換是同樣的原理,在變量被賦新值之前必須保證原值已經(jīng)被保留。設(shè)temp為臨時變量,則 temp=i;i=k;k=j;j=temp,參照以上做法,輪換時規(guī)定用指針p1,p2,p3來替代i,j,k.源程序:#include<stdio.h>voidmain(){ inti,j,k,temp,*p1=&i,*p2=&j,*p3=&k; printf("Inputijk:");scanf("%d%d%d",&i,&j,&k);//輸入ijk //i-->j-->k-->i temp=*p1; *p1=*p3; *p3=*p2; *p2=temp; printf("%d%d%d\n",*p1,*p2,*p3); //輸出輪換后的ijk}輸入:123輸出:312【試驗題4】程序填空:輸入三個整數(shù),規(guī)定設(shè)計2個指針變量p1,p2,使p1指向這三個數(shù)的最大值,p2指向最小者,并輸出最大值和最小值。#include<stdio.h>voidmain(){ inta,b,c,*p1,*p2,*p3; scanf(“%d%d%d”,&a,&b,&c); //令p1指向最大值 p1=a>b?&a:&b;//p1指向a,b中較大者 if(c>*p1) p1=&c; //令p2指向最小值 p2=a<b?&a:&b;//p2指向a,b中較小者 if(c<*p2)p2=&c; printf(“max=%d,min=%d”,*p1,*p2);}運行成果:輸入123 輸出max=3,min=1【試驗5】程序設(shè)計(冒泡排序):輸入8個實數(shù),規(guī)定用冒泡法將這8個實數(shù)按降序排列,輸出排序成果。#include<stdio.h>voidmain(){ doublea[8],temp,*p,*q;for(i=0;i<7;ifor(i=0;i<7;i++) for(j=0;j<7-i;j++) if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}或者 printf("Input8doubles:\n"); for(p=a;p<a+8;p++)scanf("%lf",p);//冒泡法 for(q=a+7;q>a;q--) for(p=a;p<q;p++) if(*p>*(p+1)){temp=*p;*p=*(p+1);*(p+1)=temp;} //輸出排序后的數(shù)組 printf("Aftersorted:"); for(p=a;p<a+8;p++)printf("%f",*p);}Part2:指針與數(shù)組【試驗題1】程序填空:請用下標(biāo)、數(shù)組名、指針等不一樣措施來輸出數(shù)組元素。措施2:用數(shù)組名引用數(shù)組元素,源程序如下:#include措施2:用數(shù)組名引用數(shù)組元素,源程序如下:#include<stdio.h>voidmain(){inti,a[5]={1,2,3,4,5};for(i=0;i<5;i++) printf("%d",*(a+i)); printf("\n");}#include<stdio.h>voidmain(){inti,a[5]={1,2,3,4,5};for(i=0;i<5;i++) printf("%d",a[i]); printf("\n");}措施4:用指針引用數(shù)組元素,源程序如下:#include措施4:用指針引用數(shù)組元素,源程序如下:#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5},*p;for(p=a;p<a+5;p++) printf("%d",*p); printf("\n");}#include<stdio.h>voidmain(){inti,a[5]={1,2,3,4,5},*p;for(p=a,i=0;i<5;i++) printf("%d",*(p+i)或p[i]); printf("\n");}【試驗題2】程序填空:運用指針,將數(shù)組a中的10個整數(shù)按相反次序寄存.源程序如下:#include<stdio.h>voidmain(){ inti,t,a[10],*p,*q; printf("Input10integers:"); for(i=0;i<10;i++)scanf("%d",&a[i]); p=a;q=a+9;//p指向首元素,q指向最終一種元素 for(;p<q;p++,q--){//逐對互換對稱元素 t=*p;*p=*q;*q=t; } for(i=0;i<10;i++)printf("%d",a[i]); printf("\n");}【試驗題3】程序填空:自定義函數(shù)del(s),功能是刪除字符串s中的數(shù)字字符,規(guī)定使用字符處理函數(shù)isdigit()和字符串處理函數(shù)strcpy()。在主函數(shù)中輸入1個字符串,然后調(diào)用函數(shù)del(),用于刪除其中的數(shù)字字符,并輸出處理后的字符串。提醒:從字符串s的首字符開始,到結(jié)束符’\0’之前為止,逐一檢查第i個字符與否是數(shù)字字符,是則刪除該字符——使用字符鑒別函數(shù)isdigit(s[i]),假如s[i]是數(shù)字字符,該函數(shù)返回1,否則返回0.難點:怎樣刪除s的第i個字符?——使用字符串復(fù)制函數(shù)strcpy(),將子串s+i+1(從字符s[i+1]開始的子串)復(fù)制到給s+i(從字符s[i]開始的子串),即strcpy(s+i,s+i+1)。#include<stdio.h>#include<ctype.h> #include<string.h> voiddel(char*s);//line4函數(shù)申明voidmain(){ charstr[80];gets(str);//輸入字符串strdel(str);//調(diào)用函數(shù)del(),刪除str中的數(shù)字puts(str);//輸出字符串str}voiddel(char*s)//line12函數(shù)定義{inti=0;while(s[i]!='\0')if(isdigit(s[i]))strcpy(s+i,s+i+1);//假如字符s[i]是數(shù)字,用函數(shù)strcpy刪除它elsei++;//否則,繼續(xù)查看下一種字符}運行程序,輸入字符串"a1b2<c3d4",輸出成果是:ab<cd語句行l(wèi)ine4和line12分別是函數(shù)申明和函數(shù)定義首部,其中的參數(shù)采用了指針的形式,此外,還可采用數(shù)組名的形式,即亦可寫為voiddel(chars[])【試驗題4】分析程序運行成果,源程序如下#include<stdio.h>#include<string.h>voidmain(){char*s1="****",*s2="****";while(*s2!='\0'){puts(s1+strlen(s2)-1); s2++;} }運行程序運行時,共循環(huán)4次,每次輸出一行字符串,其中1)第1行輸出:*,此時,字符串s2="****",strlen(s2)=4,s1+strlen(s2)-1=s1+3;2)第2行輸出:**,此時,字符串s2="***",strlen(s2)=3,s1+strlen(s2)-1=s1+2;3)第3行輸出:***,此時,字符串s2="**",strlen(s2)=2,s1+strlen(s2)-1=s1+1;4)第4行輸出:****,此時,字符串s2="*",strlen(s2)=1,s1+strlen(s2)-1=s1+0.
【試驗題5】程序填空:用選擇法將5個字符串“Zhao”、“Qian”、“Sun”,“Li”,“Wang”按降序排序,并輸出(規(guī)定:使用字符型指針數(shù)組)#include<stdio.h>#include<string.h>//Line2voidmain(){ char*name[5]={"Zhao","Qian","Sun","Li","Wang"},*s;//1個指針對應(yīng)1個字符串,共5個字符型指針 inti,j,k; for(i=0;i<4;i++){ k=i; for(j=i+1;j<5;j++) if(str
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度打樁機租賃與施工標(biāo)準(zhǔn)化合同2篇
- 二零二五年度按揭車輛交易全程跟蹤服務(wù)合同范本3篇
- 二零二五年度房地產(chǎn)銷售網(wǎng)絡(luò)營銷內(nèi)部承包合同3篇
- 2025年度網(wǎng)絡(luò)安全服務(wù)合同標(biāo)的擴大協(xié)議3篇
- 2025年度水庫水面生態(tài)環(huán)境保護合同3篇
- 二零二五年度公司駕駛員勞動合同及駕駛規(guī)范協(xié)議3篇
- 二零二五年度新能源儲能技術(shù)研發(fā)科研技術(shù)服務(wù)合同2篇
- 玩具主題益智課程設(shè)計
- 二零二五年度文化產(chǎn)業(yè)發(fā)展規(guī)劃與實施合同
- 藍(lán)莓汁課程設(shè)計
- 應(yīng)收帳款管理辦法
- 食品安全分享
- 跨境代運營合同范例
- 水利水電工程驗收實施細(xì)則模版(3篇)
- 四川雅安文化旅游集團有限責(zé)任公司招聘筆試沖刺題2024
- 造價框架協(xié)議合同范例
- 2024-2025學(xué)年 語文二年級上冊 部編版期末測試卷 (含答案)
- 無人機飛行安全協(xié)議書
- 山西省晉中市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- DB34T4912-2024二手新能源汽車鑒定評估規(guī)范
- 《商務(wù)溝通(第二版)》 課件全套 第1-4章 商務(wù)溝通概論 -商務(wù)溝通實務(wù)
評論
0/150
提交評論