




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C語言程序設計》實驗報告實驗序號:7實驗項目:指針學號姓名專業、班級實驗地點指導教師實驗時間一、實驗目的及要求1、通過實驗掌握指針的定義和使用指針變量;2、掌握使用指針對數組和字符串進行操作;3、掌握函數中指針類型參數的使用;4、要求采用指針方法完成。二、實驗設備(環境)及要求使用VS2010或VisualC++6.0或DEVC++;windows系列操作系統的環境。三、實驗內容與步驟1.輸入運行下面這個程序,觀察并分析結果:#include"stdio.h"voidmain(){ inta[]={2,3,4,5,6}; int*p1;char*p2="computer\n"; p1=a; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); p1=a+2; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); printf(p2+2); printf("%s",p2+2);}運行結果截圖:分析:第一行:p1+2就是數組元素a[2]的地址,指向數組a的第3個元素第二行:*(p1+2)就是p1+2所指向的數組元素a[2]第三行:因為p1=a+2,所以p1+2=a+4,就是數組元素a[4]的地址,指向數組a的第5個元素第四行:指向數組元素a[4]第五行:輸出包括p2+2之后的字符串第六行:%s
表示輸出一個字符串,給出字符指針變量名p2,系統先輸出p2+2所指向的一個字符數據,即m,然后自動使p2+2加1,使之指向下一個字符...直到遇到字符串結束標識符‘\0’2.以下程序調用invert函數按逆序重新放置a數組中的值,a數組中的值在main函數中讀入,請填空。#include"stdio.h"voidinvert(int*s,inti,intj){intt;if(i<j){t=*(s+i);//s[i]*(s+i)=__*(s+j)__;*(s+j)=t;//s[j]invert(s,__i+1___,j-1);}}voidmain(){inta[10],i;for(i=0;i<10;i++)scanf("%d",_&a[i]_____);invert(a,0,10-1);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}運行結果截圖:3.以下程序段的功能是輪流輸出a、b中的字符串(先輸出a中的字符串,且各輸出5次),請填空。voidmain(){chara[80],b[80],*p;inti;gets(a);gets(b);for(i=0;i<10;i++){if(i%2==0)____p=a___;else___p=b_____;puts(p);}}運行結果截圖:4.定義一個可以保存10個整型數的一維數組,用數組初始化的方法將10個數據(3,7,9,8,5,4,3,1,0,2)賦值到數組,用指針操作數組依次輸出這十個數,再以逆序輸出這十個數。運行結果截圖:5.從鍵盤輸入的字符串有若干個數字字符,編寫程序,用移動指針的方法將其中的數字字符取出(按自左向右的順序)并組成一個整數,例如輸入的字符串為12ab345c,則組成的整數為12345。運行結果截圖:6.寫一個函數,實現兩個字符串的比較。即寫一個自己的strcmp1函數,函數的原型為:intstrcmp1(char*p1,char*p2)設p1指向字符串s1,p2指向字符串s2。要求當s1=s2時,返回值為0;若s1不等于s2,返回它們二者第一個不同字符的ASCⅡ碼差值(如”BOY”與”BAD”,第二個字母不同,”O”與”A”之差為79-65=14)。如果s1>s2,則輸出正值,如果s1<s2,則輸出負值。)運行結果截圖:7.[附加題]完成課本第232頁章節習題4(編程題)。P232(1)輸入3個字符串,按由小到大順序輸出。(2)輸入2個字符串,要求輸出最長的公共子串。(3)輸入1個字符串,統計字符串中每個字符出現的次數。(4)輸入一個字符串,把該字符串的前3個字母移到最后,輸出變換后的字符串。例如輸入“abcdef”,輸出為“defabc”運行結果截圖:(1)(2)(3)(4)四、分析與討論難。五、教師評語簽名:日期:成績附源程序清單:4.#include<stdio.h>intmain(){ inta[]={3,7,9,8,5,4,3,1,0,2}; int*p=a,i; for(i=0;i<=9;i++) { printf("%d",p[i]); } printf("\n"); for(i=9;i>=0;i--) { printf("%d",p[i]); } return0;}5.#include<stdio.h>intmain(){ longa=0,*p=&a; charb[50],*q=b; inti;printf("請輸入一個字符串:\n");scanf("%s",b);for(i=0;q[i];i++){ if((int)(q[i]>='0')&&((int)q[i]<='9')) { (*p)=(*p)*10+(int)b[i]-48; } } printf("組成的整數為:\n%ld",*p); return0;}6.(1)#include<stdio.h>#include<string.h>voidpx(char*p,char*q){ chart[50]; if(strcmp(p,q)>0) { strcpy(t,p); strcpy(p,q); strcpy(q,t); }}intmain(){ chara[50],b[50],c[50]; char*p=a,*q=b,*r=c; printf("請輸入第一個字符串:"); gets(p); printf("請輸入第二個字符串:"); gets(q); printf("請輸入第三個字符串:"); gets(r); px(p,q); px(p,r); px(q,r); printf("由小到大的順序如下:\n%s\t%s\t%s\t",p,q,r); return0;}(2)(3)#include<stdio.h>#include<string.h>//升序char*sort(char*src){chartem,len=strlen(src);for(inti=0;src[i];i++){for(intj=0;j<len-i-1;j++)if(src[j]>src[j+1]){tem=src[j];src[j]=src[j+1];src[j+1]=tem;}}returnsrc;}intmain(){charstr[1000],ch;inti=0,cnt;printf("請輸入一個字符串:");gets(str);sort(str);ch=str[0];cnt=1;for(i=1;str[i];i++){if(str[i]!=ch){if(cnt)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自助餐飲創新創業
- 冷鏈物流掛靠合作合同
- 腰疼的預防及護理
- 老年口腔知識科普
- 學校培訓展示
- 股權投資基金合同回購兜底:新趨勢與合同規范
- 2024沅陵縣職業中等專業學校工作人員招聘考試及答案
- 2024淮南市文匯女子職業學校工作人員招聘考試及答案
- 民事離婚合同樣本指南
- 騰訊員工培訓
- 2025年中國高壓注射器行業發展策略、市場環境及前景研究分析報告
- 寧德時代供應商申請入庫教程
- 手術患者轉運交接課件
- Unit+6+The+power+of+plants+大單元教學設計2024-2025學年外研版英語七年級上冊+
- 四川大學華西口腔醫學院課件
- 中華民族共同體概論講座第一講中華民族共同體基礎理論課件
- 第六章-GIS分析導論
- 《LED顯示屏介紹》課件
- 美容預付消費合同范例
- 兒科醫療糾紛防范
- DB41T 2406-2023 鍋爐低氮改造安全防控要求
評論
0/150
提交評論