何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针
1、第8章 指針【練習(xí)8-1】如果有定義”int m, n = 5, *p = &m;”與m = n等價(jià)的語(yǔ)句是 B 。A m = *p; B. *p = *&n; C. m = &n; D. m = *p;解答: A:p是指向m的指針變量,所以*p等價(jià)于m。即m=m。B:&n是n的地址,*&n是n的值,即把n的值賦給p指向的值m。即m=n。C:&n是n的地址。即把n的地址賦給m。D:*p是指p指向的指針?biāo)赶虻闹?#xff0c;在此無(wú)意義。故選B。 【練習(xí)8-2】調(diào)用函數(shù)求兩個(gè)數(shù)的和與差:計(jì)算輸入的兩個(gè)數(shù)的和與差,要求自定義一個(gè)函數(shù)sum_diff(float op1,float op2, float *ps。
2、um, float *pdiff),其中op1和op2是輸入的兩個(gè)數(shù),*psum 和*pdiff 是計(jì)算得出的和與差。解答:#includevoid sum_diff(float op1,float op2,float *psum,float *pdiff);int main(void)float op1,op2,sum,diff;printf(Input op1 and op2: );scanf(%f%f,&op1,&op2);sum_diff(op1,op2,&sum,&diff);printf(%f+%f=%f;%f-%f=%f n,op1,op2,sum,op1,op2,diff);r。
3、eturn 0;void sum_diff(float op1,float op2,float *psum,float *pdiff)*psum=op1+op2;*pdiff=op1-op2;【練習(xí)8-3】?jī)蓚€(gè)相同類型的指針變量能不能相加?為什么?解答:不能。因?yàn)橹羔樧兞渴且环N特殊的變量,指針變量的值存放的是所指向變量的地址,兩個(gè)地址相加并不能保證結(jié)果為一個(gè)有效的地址值,因而在 C 語(yǔ)言中指針變量相加是非法的。【練習(xí)8-4】根據(jù)表 8.2 所示,這組數(shù)據(jù)的冒泡排序其實(shí)循環(huán)到第 6 遍(即n-2)時(shí)就已經(jīng)排好序了,說(shuō)明有時(shí)候并不一定需要 n-1 次循環(huán)。請(qǐng)思考如何改進(jìn)冒泡排序算法并編程實(shí)現(xiàn)(提示。
4、:當(dāng)發(fā)現(xiàn)一遍循環(huán)后沒(méi)有數(shù)據(jù)發(fā)生交換,說(shuō)明已經(jīng)排好序了)。解答:設(shè)置一個(gè)標(biāo)志變量 flag,進(jìn)入一輪循環(huán)前設(shè)置為 0,在循環(huán)中有發(fā)生數(shù)據(jù)交換就改寫(xiě)flag 值為 1。當(dāng)該輪循環(huán)結(jié)束后檢查 flag 值,如果變?yōu)?1 說(shuō)明發(fā)生了數(shù)據(jù)交換,還沒(méi)有排好序,如果為 0 說(shuō)明沒(méi)有發(fā)生交換,已經(jīng)排好序。#includevoid bubble (int a,int n);int main(void) int n,i,a8;printf(Enter n (naj+1) temp=aj;aj=aj+1;aj+1=temp; flag=1;if(flag=0) break;【練習(xí)8-5】重做例 8-9,要求使用選擇。
5、排序算法。解答:#includevoid bubble(int a, int n);int main(void) int i,n,a8;printf(Enter n (n#include#define MAXLINE 100int main(void)char lineMAXLINE,str4;int i;printf(Input the string:);gets(line);if(strlen(line)#includevoid bubble(int a,int n); int main(void)int n,j,*a,i,temp;printf(Enter n(n*(a+j+1)temp。
6、=*(a+j); *(a+j)=*(a+j+1);*(a+j+1)=temp;習(xí)題8一、選擇題1.下列語(yǔ)句定義 x 為指向 int 類型變量 a 的指針,其中哪一個(gè)是正確的 B 。Aint a, *x = a; B. int a, *x = &a;Cint *x = &a,a; Dint a, x = a;2. 以下選項(xiàng)中,對(duì)基本類型相同的指針變量不能進(jìn)行運(yùn)算的運(yùn)算符是 A 。A+ B- C= D=3若有以下說(shuō)明,且 0=i10,則對(duì)數(shù)組元素的錯(cuò)誤引用是 C 。int a = 0,1,2,3,4,5,6,7,8,9, *p = a,i;A*(a+i) Bap-a+i Cp+i D*(&ai)4下列程序的輸出結(jié)果是 B 。int main(void)int a10 = 0,1,2,3,4,5,6,7,8,9, *p = a+3;printf(“%d”, *+p);return 0;A3 B4 Ca4。
《c語(yǔ)言程序設(shè)計(jì)(第3版)何欽銘-顏-暉-第8章--指針》由會(huì)員F****n分享,可在線閱讀,更多相關(guān)《c語(yǔ)言程序設(shè)計(jì)(第3版)何欽銘-顏-暉-第8章--指針》請(qǐng)?jiān)诮痄z頭文庫(kù)上搜索。
總結(jié)
以上是生活随笔為你收集整理的何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: notepad++ c语言编译,Note
- 下一篇: c语言程序结果 856400,C语言程序