C語言第九次博客作業--指針

一、PTA實驗作業

題目1:兩個4位正整數的后兩位互換

1. 本題PTA提交列表

1233559-20171215191200293-1446005558.png

2. 設計思路

定義循環變量i,兩個數組a[4],b[4]
for i=0 to 3a[i]*p取各個位*p/=10
end
for i=0 to 3b[i]*q取各個位*q/=10
end
分別對*p和*q重新賦值

3.代碼截圖

1233559-20171215191129965-86828186.png

4.本題調試過程碰到問題及PTA提交列表情況說明。

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

題目2: 輸出月份英文名

1. 本題PTA提交列表

1233559-20171215201558027-887223047.png

2. 設計思路

if形參n不再月份范圍內return NULL
定義指針數組*a[]并賦值十二個月份return a[n-1]

3.代碼截圖

1233559-20171215201532636-808881413.png

4.本題調試過程碰到問題及PTA提交列表情況說明。

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

  • 部分正確 :月份不在范圍內

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

題目3:過濾字符串只保留串中的字母字符

1. 本題PTA提交列表

1233559-20171215202117293-2099545293.png

2. 設計思路

定義*a存放ptr,循環變量i,計數變量count
while(*ptr)if *ptr 是字母將*ptr存放到*(a+i)中  i++else count++ 記錄非字母ptr++繼續循環
end
*(a+i)賦值結束符
return count非字母個數

3.代碼截圖

1233559-20171215202046902-328609199.png

4.本題調試過程碰到問題及PTA提交列表情況說明。

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

二、截圖本周題目集的PTA最后排名。

1233559-20171217180245624-1357678741.png

三、閱讀代碼

strcpy字符串復制函數原型

char * strcpy(char * dest, const char * src)   // 實現src到dest的復制
{if ((src == NULL) || (dest == NULL))    //判斷參數src和dest的有效性{return NULL;}char *strdest = dest;           //保存目標字符串的首地址while ((*strDest++ = *strSrc++)!='\0');    //把src字符串的內容復制到dest下return strdest;
}

memcpy內存拷貝函數原型

void *memcpy(void *memTo, const void *memFrom, size_t size)
{if((memTo == NULL) || (memFrom == NULL)) //memTo和memFrom必須有效return NULL;char *tempFrom = (char *)memFrom;             //保存memFrom首地址char *tempTo = (char *)memTo;                  //保存memTo首地址      while(size -- > 0)                //循環size次,復制memFrom的值到memTo中*tempTo++ = *tempFrom++ ;  return memTo;
}

strcpy和memcpy主要有以下3方面的區別。

1、復制的內容不同。strcpy只能復制字符串,而memcpy可以復制任意內容,例如字符數組、整型、結構體、類等。
2、復制的方法不同。strcpy不需要指定長度,它遇到被復制字符的串結束符"\0"才結束,所以容易溢出。memcpy則是根據其第3個參數決定復制的長度。

strcpy字符串復制函數原型

#include "assert.h"  
char *strcpy(char *strDest, const char *strSrc)    //使用const來約束strSrc,提高程序的健壯性。如果函數體內的語句試圖改動strSrc的內容,編譯器將指出錯誤。
{  assert((strDest != NULL) && (strSrc!= NULL));    //對傳入參數strDest和strSrc進行檢查,禁止空指針傳入if (strDest == strSrc)  return strDest;  char *tempDest = strDest;  while((*strDest++ = *strSrc++) != '\0');  return tempDest;  
}

四、本周學習總結

1.自己總結本周學習內容。

1.1"&"與"*"互為逆運算

  • "&"是取地址符
&(變量名)=>獲取變量的地址
  • "*"是指針聲明符和間接訪問運算符(取值運算符)
*(變量名)=>將變量當作地址,到相應的地址取值

1.2指針

  • 定義指針變量
int *p,i;
p=&i;
p=0;
p=NULL;
p=(int *) 1732;(表示p指向地址為1732的int型變量)
  • 指針變量就是用來儲存地址的變量

  • 指針的作用:用來傳遞地址,作為引用類型的變量,減少內存消耗。

1.3指針與數組

數組名就是一個地址,指向這個數據的開端

*p==a[0]
*(p+n)==a[n]
*p+=1,(*p)++,++*p將指針p所指向的變量值加1
*p++,*(p++)先取*p的值作為表達式的值,在將指針p的值加1

1.4排序和查找

  • 冒泡排序
void bubble (int a[],int n)
{int i,j,t;for( i=0; i<n; i++)for( j=0; j<n-1; j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
  • 選擇排序
void choose (int a[],int n)
{int i,j,t;for( i=1; i<n; i++)for( j=i+1; j<n; j++)if(a[j]>a[i]){t=a[j];a[j]=a[i];a[i]=t;}
}
  • 二分查找法
int Bsearch(int *p, int n, int x)   \\ 二分查找函數 
{   int low, high, mid;low = 0; high = n - 1;       \\開始時查找區間為整個數組 while (low <= high)  {         \\循環條件mid = (low + high) / 2;    \\ 中間位置if (x == p[mid])break;                  \\查找成功,中止循環else if (x < p[mid])       high = mid - 1;        \\前半段,high前移 else       low = mid + 1;       \\后半段,low后移 }    if(low <= high)   return mid;               \\ 找到返回下標 else return -1;               \\找不到返回-1 
}

1.5結構體的定義

struct time{int hour;int minute;int second;
};
struct time t;
struct time{int hour;int minute;int second;
} t;

1.6結構體嵌套

struct date{int year;int month;int day;
};
struct person{char name[256];struct date birthday;
};

1.7結構體的引用和初始化

struct student{int number;char name[256];char sex[6];int age;int grade;
};
int main()
{struct student alan={01,"alan","man",16};printf(alan.name);
}

1.8結構體數組

struct student{int number;char name[256];char sex[6];int age;int grade;
};
int main()
{struct student class[5];strcpy(alan.name,"alan");printf(alan.name);
}

2.羅列本周一些錯題。

寫函數fun , a數組中n個整數從小到大排列,函數功能是:從a中刪除第一個遭到與x值相同的數組元素,刪除后a的數組仍然由小到大有序排列。

1233559-20171217223234952-1033947108.png
1233559-20171217223417733-1636594595.png

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

轉載于:https://www.cnblogs.com/lmb171004/p/8044710.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278822.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用CEOP增強的Internet Explorer 8幫助保護您的孩子

Do you want to make Internet Explorer safer and more helpful for you and family? Then join us as we look at the CEOP (Child Exploitation and Online Protection Centre) enhanced version of Internet Explorer 8. 您想使Internet Explorer對您和家人更安全&#xf…

如何保持進步

文章&#xff1a;今日頭條 CEO 張一鳴&#xff1a;面試了 2000 個年輕人&#xff0c;混得好的都有這 5 種特質轉載于:https://www.cnblogs.com/Tpf386/p/10033670.html

MAC--PPTP教程

第一步點擊DocK-系統設置 第二步點擊網絡&#xff0c;進入網絡設置 第三步點擊號-創建新服務&#xff0c;創建新的網絡連接 第四步接口-選-類型-選-PPTP服務名稱-選-然后點擊-創建 第五步進入設置頁面-服務器地址點擊查看虛擬IP列表賬戶名稱-輸入試用帳號或是你已充值開通的帳號…

2015計算機應用基礎平時作業答案,2015秋《計算機應用基礎》第一次作業

2015秋《計算機應用基礎》第一次作業 一、單項選擇題。本大題共50個小題&#xff0c;每小題 2.0 分&#xff0c;共100.0分。在每小題給出的選項中&#xff0c;只有一項是符合題目要求的。 1. 第一臺電子計算機是1946年在美國研制成功的&#xff0c;該機的英文縮寫名是______。 …

頁面置換算法及例題

一、頁面置換算法 不適當的算法可能會導致進程發生“抖動”&#xff1a;即剛被換出的頁很快又要被訪問&#xff0c;需要將他重新調入&#xff0c;此時又需要再選一頁調出。而此剛被調出的頁面很快又被訪問&#xff0c;又需將它調入&#xff0c;如此頻繁地更換頁面&#xff0c;以…

vista磁盤使用100%_如何在Windows 7或Vista中創建和使用密碼重置磁盤

vista磁盤使用100%Forgetting your password can be an extremely frustrating situation, and we’ve already shared how to reset your password with the Ultimate Boot CD as well as the System Rescue CD, but you can prevent the situation entirely by creating a pa…

Nginx服務狀態的監控

一、安裝Nginx 使用源碼編譯安裝&#xff0c;包括具體的編譯參數信息。 正式開始前&#xff0c;編譯環境gcc g 開發庫之類的需要提前裝好。 安裝make&#xff1a; yum -y install gcc automake autoconf libtool make 安裝g: yum install gcc gcc-c 一般我們都需要先裝pcre, zl…

計算機二級高級應用這么難,計算機二級考試越來越難的實錘!真實數據告訴你到底難在哪里?...

今年3月考試成績暫時未公布(預計在5月中旬發布)&#xff0c;通過率暫時無法得知。但是根據考后后臺反饋情況&#xff0c;今年通過率可能再創新低。不管你是不是有感知&#xff0c;計算機二級通過率的確在逐年降低。近3年難度越來越大每次考試結束后后臺評論最多的就是“今年的考…

windows 系統監視器_使用Windows 7中的可靠性監視器對計算機問題進行故障排除

windows 系統監視器Windows Vista introduced us to the Reliability and Performance Monitor utility to help keep track of hardware and software crashes. It’s now a stand alone utility in Windows 7 and we will take a look at how to access and use it. Windows …

4-8 string

1、常用的string模塊 1 import string2 3 # 26個小寫字母4 print(string.ascii_lowercase) 5 # abcdefghijklmnopqrstuvwxyz6 7 # 26個大寫字母8 print(string.ascii_uppercase) 9 # ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 11 # 10個數字 12 print(string.digits) # 0123456789 1…

powerpoint預覽_如何安排PowerPoint幻燈片的時間以進行更有效的演示

powerpoint預覽Delivering a presentation is not just about giving good slides, it is also about making sure that our presentation finishes by the time our audience wants to have their tea break—so practicing how long to speak for each slide is essential fo…

【小程序踩坑系列5】小程序內多重調用原生promise,無返回,無報錯,代碼卡住...

作者: 蔣歡 問題&#xff1a; 在部分IOS機型上&#xff0c;小程序內使用原生promise實現異步&#xff0c;在嵌套四層后&#xff0c;Promise的resolve和reject均無返回。 環境&#xff1a; 用戶機型&#xff1a;iPhone 7 系統版本&#xff1a;IOS 10.3.3 微信版本&#xff1a;6.…

計算機仿真技術的大學,大學計算機仿真技術結課論文

計算機仿真技術是電子與信息專業中重要的專業學科。下面是學習啦小編為大家整理的大學計算機仿真技術結課論文&#xff0c;供大家參考。大學計算機仿真技術結課論文篇一《 復雜系統計算機仿真研究 》現代社會發展中&#xff0c;復雜系統所涉及的領域包括軍事、醫療、政治、工程…

統計nginx日志里訪問次數最多的前十個IP

awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -nr -k1 | head -n 10 轉載于:https://www.cnblogs.com/new-journey/p/10038056.html

thread線程棧size及局部變量最大可分配size【轉】

轉自&#xff1a;http://blog.csdn.net/sunny04/article/details/46805261 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 進程是操作系統的最小資源管理單元&#xff0c; 線程是操作系統最小的執行單元。 一個進程可以有多個線程&#xff0c; 也…

在Windows XP中對系統文件(頁面文件和注冊表)進行碎片整理

In the pursuit for performance, making sure your drive isn’t fragmented is a regular task. The problem is that Windows XP doesn’t allow certain system files to be defragmented without commercial software. What about free solutions? 在追求性能時&#xff…

計算機存有多少游戲,8G和16G的計算機內存之間有很大區別嗎?玩游戲需要多少內存?...

大家好&#xff0c;我是Compatible Computer Home的小牛.計算機內存是除CPU外最重要的組件之一. 運行大型軟件和多任務處理時&#xff0c;計算機內存量直接影響計算機的流暢性. 許多玩家不知道什么時候第一次購買計算機. 小牛會在今天與您討論要購買多少內存來購買計算機.首先&…

ubuntu 配置mycat

https://blog.csdn.net/leisure_life/article/details/78611594 這篇博主寫的非常好&#xff0c;我找了很久 都解決不了&#xff0c;最后按照他的步驟解決了問題。 其中有幾個問題&#xff0c; 運行mycat的時候總是失敗&#xff0c;ps不到在運行&#xff0c; 使用sudo ./mycat…

計算機程序設計vb課后題,《VB程序設計》課后題答案

《VB程序設計》課后題答案第二章一、問答題1.敘述建立一個完整的應用程序的過程。答&#xff1a;界面設計編寫事件過程代碼 運行、調試 保存文件2.當建立好一個簡單的應用程序后&#xff0c;假定該工程僅有一個窗體模塊。問該工程涉及到幾個文件要保存&#xff1f;若要保存該工…

用SmarterFox替換Internet Explorer的“加速器”

If you’ve had to use Internet Explorer 8, you’ll have noticed a couple of things. It’s getting much easier to use due to its growing number of similarities to Firefox, and it uses a clever feature called the “Accelerator” to try and give it a leg up o…