版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 C語言程序設(shè)計 實驗報告專業(yè) 計算機 班級 計算機卓工 日期 2012年12月31日 成績 實驗組別 第 8次實驗; 指導(dǎo)教師 李開學(xué)生姓名 徐欽振 學(xué)號 U201215120 實驗名稱 指針實驗1、 實驗?zāi)康?1) 熟練掌握指針的使用,賦值與使用。(2) 掌握用指針引用數(shù)組的元素,熟練指向數(shù)組的指針的使用。(3) 熟練掌握字符數(shù)組與字符串的使用。(4) 掌握指針函數(shù)與函數(shù)指針的使用。(5) 掌握帶有參數(shù)的main函數(shù)的使用。2、 實驗內(nèi)容及要求。1. 源程序改錯 下面的源程序中是否存在問題?如果存在,原因是什么?如果存在錯誤,請改正并輸出正確的結(jié)果。源程序:#include<stdi
2、o.h>int main(void) float *p; scanf("%d",p); printf("%fn",*p); return 0;2. 源程序修改,完善與替換。(1) 下面的源程序的功能是,通過函數(shù)指針和菜單選擇來調(diào)節(jié)用字符串拷貝函數(shù)或字符串連接函數(shù)。請在源程序中的下劃線處填寫正確的表達式,完善程序。源程序:#include<stdio.h>#include<string.h>int main(void) _ char a80,b80,c160,*result=c; int choice,i; do printf
3、("tt1 copy string.n"); printf("tt2 connect string.n"); printf("tt3 exit.n"); printf("tt2 input a number(1-3)please!n"); scanf("%d",&choice); while(choice<1|choice>5); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3:
4、goto down; getchar(); printf("input the first string please!n"); i=0; _ printf("input the second string please!n"); i=0; _ result=_(a,b); printf("The result is %sn",result); down: ; return 0;3. 跟蹤調(diào)試源程序請按下面的要求對所給的源程序進行操作,并回答問題和排除錯誤。(1) 按照單步執(zhí)行源程序,進入strcpy時,watches窗口中的s為何值
5、?返回main函數(shù)時,s為何值?(2) 排除源程序的錯誤,并輸出正確的答案。源程序:#include<stdio.h>char *strcpy(char *,char *);int main() char a20,b60="There is a boat in the lake." printf("%sn",strcpy(a,b); return 0;char *strcpy(char *s,char *t) while(*s+=*t+); return(s);4. 程序設(shè)計編寫并上機調(diào)試運行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1) 已知一個長
6、整型變量占4個字節(jié),其中每個字節(jié)又分為高四位和低四位。是編寫一個程序,從該整型的高字節(jié)開始,一次取出每個字節(jié)的高四位為低四位,并以數(shù)字字符的形式進行顯示。(2) 利用大小為n的指針數(shù)組指向用gets函數(shù)輸入的n行,每行不超過80個字符。是編寫一個函數(shù),他的每一行中連續(xù)的多個空格字符壓縮為一個空格字符。在調(diào)用函數(shù)時輸入壓縮后的各行,空行不予輸出。(3) 編寫一個程序,輸入n個數(shù),排列后輸出。5. 選做題編寫并上機調(diào)試運行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1)設(shè)有N位整數(shù)和M位小數(shù)的兩個數(shù)據(jù)a,b。編寫計算a+b并輸出結(jié)果。(2) 編寫一個使用復(fù)雜申明的程序。(3) 指向main函數(shù)的參數(shù)選擇“p
7、roject/set programsarguments.”菜單命令,即可打開圖2.12所示的對話框,在文本框中輸入main函數(shù)的參數(shù)。注意只輸入命令行中文件名后的參數(shù),文件名不輸入。 (圖2.12 輸入main函數(shù)的參數(shù))(3) 實驗步驟以及結(jié)果1. 源程序改錯:存在錯誤,造成了空指針,并且scanf函數(shù)的格式不對應(yīng)。正確的源程序應(yīng)為:#include<stdio.h>int main(void) float a,*p; p=&a; scanf("%f",p); printf("%fn",*p); return 0;2. 源程序修改
8、,完善與替換。正確的源程序為:#include<stdio.h>#include<string.h>int main(void) char * (*p)(char *,char *); char a80,b80,c160,*pa=a,*pb=b,*result=c; int choice,i; do printf("tt1 copy string.n"); printf("tt2 connect string.n"); printf("tt3 exit.n"); printf("ttinput a n
9、umber(1-3)please!n"); scanf("%d",&choice); while(choice<1|choice>=4); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; getchar(); printf("input the first string please!n"); i=0; gets(pa); printf("input the second string pleas
10、e!n"); i=0; gets(pb); result=(*p)(a,b); printf("The result is: %sn",result); down: ; return 0;運行的結(jié)果為:3. 跟蹤調(diào)試源程序進入strcpy時,s的值為:0x28fefc返回main函數(shù)時,s的值為:0x28fedd修改之后的正確的源程序為:#include<stdio.h>char *strcpy(char *,char *);int main() char a20,b60="There is a boat in the lake."
11、 printf("%sn",strcpy(a,b); return 0;char *strcpy(char *s,char *t) char *p=s; while(*s+=*t+); return(p);4. 程序設(shè)計(1) 源代碼為:#include<stdio.h>int main(void) long x=0x1234ABCD,k; char *p=(char *)&x; char uphalf,lowhalf; for(k=0;k<4;k+) lowhalf=(*(p+3)&0x0f; if(lowhalf<10) lowh
12、alf|='0' else lowhalf=(lowhalf-10)+'A' uphalf=(*(p+3)>>4)&0x0f; if(uphalf<10) uphalf|='0' else uphalf=(uphalf-10)+'A' p-; printf("%ct%cn",uphalf,lowhalf); return 0;運行結(jié)果為:(2) 源程序為:#include<stdio.h>#define N 3void getid(char *);int main() ch
13、ar aN80,*pN; int i; printf("請輸入n行字符n"); for(i=0;i<N;i+) gets(ai); pi=ai; printf("輸出的結(jié)果是:n"); for(i=0;i<N;i+) getid(pi); printf("n"); return 0;void getid(char *ps) int b=0; putchar(*ps); while(*ps+) if(*ps=' ') if(b=0) b=1; putchar(*ps); if(*ps)!=' '
14、;) b=0; putchar(*ps); 運行的結(jié)果為:程序(3):源代碼為:#include<stdio.h>#include<stdlib.h>#include<string.h>void sort1(int *,int );void sort2(int *,int );int main(int argc,char *argv) void (*p1)(int *,int n); void (*p2)(int *,int n); int aargc-2,bargc-1,i; p1=sort1; p2=sort2; if(argc>1&&am
15、p;strcmp(argv1,"-d")=0) for(i=0;i<argc-2;i+) ai=atoi(argvi+2); p1(a,argc); for(i=0;i<argc-2;i+) printf("%dn",ai); else for(i=0;i<argc-1;i+) bi=atoi(argvi+1); p2(b,argc); for(i=0;i<argc-1;i+) printf("%dn",bi); return 0;void sort1(int a,int argc) int j,k; for(
16、j=0;j<argc-2-1;j+) for(k=0;k<argc-2-j-1;k+) int t; if(ak<ak+1) t=ak,ak=ak+1,ak+1=t; void sort2(int a,int argc) int j,k; for(j=0;j<argc-1-1;j+) for(k=0;k<argc-1-j-1;k+) int t; if(ak>ak+1) t=ak,ak=ak+1,ak+1=t; 運行的結(jié)果為:#include<stdio.h>#define M 2#define N 5void averageput(float
17、*);/*計算每個學(xué)生各門課程的平均成績*/float *averageall(float *);/*計算全班每門課程的平均成績*/void below(float *,float *);int main() char aM10,(*pa)10=a; int i,j; printf("請輸入各個課程的名字:n"); for(j=0;j<M;j+) scanf("%s",*pa+j); float bNM; float *pb1=&b00; float *pd; printf("請輸入各個學(xué)生的各門課程的成績:n"); f
18、or(i=0;i<N;i+) for(j=0;j<M;j+) scanf("%f",pb1+M*i+j); averageput(pb1); printf("nn"); pd=averageall(pb1); below(pb1,pd); return 0;void averageput(float *p) float cN,*pc=c,t=0,*pp=p; int i,j; for(i=0;i<N;i+) for(j=0;j<M;j+) t+=*(pp+M*i+j); *(pc+i)=t/M; printf("該同學(xué)的平均成績?yōu)?%.1fn",*(pc+i); t=0; float *averageall(float *p) float cM,*pc=
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高科技企業(yè)商業(yè)秘密保護保密協(xié)議范本下載2篇
- 2024版航空貨物運輸協(xié)議6篇
- 2024消防器材報廢回收與處置合同協(xié)議3篇
- 二零二五年房地產(chǎn)中介加盟區(qū)域代理合作協(xié)議范本3篇
- 專為職場人事定制2024勞動協(xié)議版A版
- 2024音樂素材改編權(quán)轉(zhuǎn)讓合同:視頻素材專用
- 二零二五年度離婚撫養(yǎng)權(quán)夫妻兒女健康保障協(xié)議3篇
- 2025年度融資汽車租賃與客戶滿意度調(diào)查合同3篇
- 二零二五年度財務(wù)顧問與企業(yè)戰(zhàn)略合作合同模板3篇
- 兩岸服務(wù)業(yè)務(wù)合作2024年具體合同一
- 110kV電力變壓器參數(shù)表
- 卡西歐手表GW-M5610中文使用說明書
- 2024年天津三源電力集團限公司社會招聘33人高頻難、易錯點500題模擬試題附帶答案詳解
- 校(園)廉政風(fēng)險防控預(yù)警處置制度
- TB 10106-2023鐵路工程地基處理技術(shù)規(guī)程
- 三年級下冊綜合實踐活動教學(xué)設(shè)計- 嶺南水果|粵教版 52張
- 滬教版數(shù)學(xué)六年級(上)第二章分?jǐn)?shù)課課練和單元練習(xí)卷及參考答案
- 中醫(yī)護理學(xué) 課件 模塊七 中醫(yī)護理操作 項目四麥粒灸技術(shù)
- 小學(xué)心理健康教師資格考試面試2024年下半年試題與參考答案
- 二級MS操作題真題
- (正式版)QC∕T 1206.2-2024 電動汽車動力蓄電池?zé)峁芾硐到y(tǒng) 第2部分:液冷系統(tǒng)
評論
0/150
提交評論