C語言第九次部落格作業 指標

2022-05-29 13:48:09 字數 3049 閱讀 4699

定義迴圈變數i,兩個陣列a[4],b[4]

for i=0 to 3

a[i]*p取各個位

*p/=10

endfor i=0 to 3

b[i]*q取各個位

*q/=10

end分別對*p和*q重新賦值

本題沒有多大問題,就是想再找一種更簡單的做法。

if形參n不再月份範圍內

return null

定義指標陣列*a並賦值十二個月份

剛開始我用的switch語句來判斷月份,後來在舍友提醒下改成了陣列來存放英文並直接返回。

解決辦法:加入if判斷若不在範圍內,就返回null

定義*a存放ptr,迴圈變數i,計數變數count

while(*ptr)

if *ptr 是字母

將*ptr存放到*(a+i)中 i++

else count++ 記錄非字母

ptr++繼續迴圈

end*(a+i)賦值結束符

return count非字母個數

這道題前面一直在對p直接判斷,導致提交執行超時,後來利用另乙個指標來存放符合題意的字元並返回,就不會執行超時。

char * strcpy(char * dest, const char * src)   // 實現src到dest的複製

char *strdest = dest; //儲存目標字串的首位址

while ((*strdest++ = *strsrc++)!='\0'); //把src字串的內容複製到dest下

return strdest;

}

void *memcpy(void *memto, const void *memfrom, size_t size)

1、複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。

2、複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符"\0"才結束,所以容易溢位。memcpy則是根據其第3個引數決定複製的長度。

#include "assert.h"  

char *strcpy(char *strdest, const char *strsrc) //使用const來約束strsrc,提高程式的健壯性。如果函式體內的語句試圖改動strsrc的內容,編譯器將指出錯誤。

&(變數名)=>獲取變數的位址
*(變數名)=>將變數當作位址,到相應的位址取值
int *p,i;

p=&i;

p=0;

p=null;

p=(int *) 1732;(表示p指向位址為1732的int型變數)

陣列名就是乙個位址,指向這個資料的開端

*p==a[0]

*(p+n)==a[n]

*p+=1,(*p)++,++*p將指標p所指向的變數值加1

*p++,*(p++)先取*p的值作為表示式的值,在將指標p的值加1

void bubble (int a,int n)

}

void choose (int a,int n)

}

int bsearch(int *p, int n, int x)   \\ 二分查詢函式 

if(low <= high)

return mid; \\ 找到返回下標

else

return -1; \\找不到返回-1

這道題尤其要注意最後乙個空n=n-1,平時很容易忽略掉

C語言第九次部落格作業 指標

函式傳入位址,給形參s 定義flag,i為迴圈變數,k為字串數。k strlen s 1。for i 0 to i k 如果s i s k 則flag 1。i k end如果flag 0 則返回true 其他 則返回false 定義環境變數i,j 0,count 0,length,陣列circle ...

C語言第九次作業

問題 答案這個作業屬於那個課程 c語言程式設計1 這個作業要求在 我在這個課程的目的是 學習並掌握c語言 這個作業在那個具體方面幫助我實現目標 幫助我更好的理解conmunit語句,並熟練的打 參考文獻 c語言程式設計 資料表達 x,count 0 k,i,j都是整形變數。資料處理 for int ...

第九次作業

1 osi七層模型,描述每層的功能 應用層 為應用程式提供網路服務 表示層 資料格式標準化,加密,解密 會話層 建立 維護 管理會話鏈結 傳輸層 建立 維護 管理端到端間的鏈結 網路層 ip尋找和路由選擇 資料鏈路層 管理網路層和物理層之間的通訊 物理層 使用位元流傳輸 2 交換機只學源mac的位址...