C語言博客做業--字符數組

1、PTA實驗做業

題目1:7-5 統計大寫輔音字母

1. 本題PTA提交列表

2. 設計思路(用代碼表示扣分)

3.代碼截圖

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

  • 最開始沒有看清楚題意,題目要求的是輸出大寫輔音字母,沒有沒弄清條件致使錯誤
  • 設計思路問題,在統計大寫字母總個數時,我最開始用了i來直接統計,沒有另外設置一個變量,可是i的值已經不是從0開始了,致使錯誤,後查錯改正

題目2:字符串轉換成十進制整數

1. 本題PTA提交列表

2. 設計思路(用代碼表示扣分)

- 定義i做循環變量,index存放負號所在的下標,數組a[100],number用來存放最後結果
- 輸入字符串
- for  i=0  to   a[i]!='#'
- 若是字符在數字0到9之間, number=number*16+a[i]-'0';
- 若是在a到f之間 number=number*16+a[i]-'a'+10;
- 若是在A到Z之間number=number*16+a[i]-'A'+10;
- i值自增1
- for  i=0  to   a[i]!='#'
- 若是a【i】中的元素在0到9;a到f;A到Z
- index=i;記錄這個元素下標,並結束循環
- for i=0  to  i<index 
- if(a[i]=='-'){ number=-number並結束循環
- 輸出number

3.代碼截圖

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

  • 最開始用了兩個數組,另外一個數組用來存放刪掉非十六進制字符的字符們,這樣作由於一些下標問題致使錯誤,後來放棄了它,爲何錯怎麼改正解決中
  • 在判斷負號問題的時候,最開始我把負號放在最前面判斷,但它的保留又是個問題,參考了一下同窗的方法改進

題目3:IP地址轉換

1. 本題PTA提交列表

2. 設計思路(用代碼表示扣分)

- 定義長度爲32的數組a,循環變量i,j,num
- for i=0 to 32
- 不斷輸入字符存進數組a
- for i=0 to 32 每循環一次i值自增8
- 賦num=0
- for(j=i;j<i+8;j++)
- 若是字符==1;num=num+(int)pow(2,8-j+i-1)
- 輸出num
- j!=32,每結束一次上述循環輸出一個點

3.代碼截圖

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

  • 小數點的位置的添加錯誤,在內循環每結束一次就應該加小數點

2、截圖本週題目集的PTA最後排名。

3、同窗代碼結對互評

1.互評同窗名稱

  • 李琴同窗

2.個人代碼、互評同窗代碼截圖

  • 上圖爲同窗的,下圖爲個人

3.我和同窗代碼不一樣在哪裏?有哪些各自優點?你更喜歡哪一種代碼風格?

  • 我和同窗的代碼的主要不一樣在於分支結構部分,我用的是switch語句來選擇元音字母的個數,而後再統計整體大寫字母的個數再減去元音字母的個數; 同窗則直接用if選擇大寫字母進入嵌套分支,若是是大寫字母並且它不爲元音字母,則負責統計的變量值加一;
  • 同窗的優點在於更加簡便,直接就能夠統計出輔音字母的數目;個人方法還得再進行算術操做,更喜歡同窗的一點

4、本週學習總結

1.你學會了什麼?

1.1指針變量如何定義(設計代碼能夠用markdown代碼符號渲染)?

  • 通常形式:類型名 *指針變量名
  • int *p,a=3; p=&a;

1.2 指針加法運算運用在哪一種狀況,2個指針變量可否相加?

  • 指針p所指向的變量值加一:p=p+一、++p、(p)++;p++==(p++),是將*p的值做爲表達式的值,再將指針p加一,運算後p再也不指向原來所指的變量
  • 兩個指針變量不能相加

1.3 指針不賦初值,直接使用,會出現什麼狀況,請用DEVC驗證,並截圖展現?


  • 指針不賦初值便使用會致使系統奔潰,見圖二

1.4 課堂派上關於分離浮點數的整數部分和小數部分那題,請用DEVC驗證明現,並在此貼圖展現,同時說明哪句是指針變量作函數形參,函數實參應該怎麼表示。指針變量作函數形參有什麼用處?


  • 分別爲指針變量作形參和函數作實參
  • 指針變量作形參能夠在調用函數中改變主函數的值

1.5 請把課本的冒泡排序的函數改爲指針變量作形參格式,並把代碼寫在底下,注意用markdown語法渲染。

void bubble(int *p,int n)
 {
int i,j,t;
for(i=1;i<n;i++)
   for(j=0;j<n-i;j++)
   if(*(p+j)>*(p+j+1)){
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}

1.6 如何定義一個指針變量指向數組,如何用指針變量表示數組元素?

  • 先定義好數組,p=a即表示指針變量p首指的地址爲數組元素a[0]的地址
  • p=a+1等同於p=&a[1]

1.7 如何定義字符指針指向字符串?指針指向字符串後,初始位置在哪裏?

  • 類型名 *指針變量名=「字符串」
  • 初始位置是存放字符串常量首字符的儲存單元的地址

1.8 利用字符指針操做字符串,如設計函數實現字符串鏈接,請在此貼圖展現代碼。說明指針表示字符的方法好處是什麼?

char str1[80] =''hello'',t[80]=''world'';
strcat(str1,t);
stract(str1,''!'');
最後輸出結果:hello world!

2.本週你不會內容有什麼?

2.1 課堂派錯題羅列及如何訂正。


這種類型的題我寫了前兩步或者寫到第三步就不知道要寫什麼了,答案已經給出,只要再其實在題目中也有,須要認真閱讀和發現數組

2.2 其餘不會的?打算怎麼解決

  • 對於指針變量做爲參數的應用和寫法不是很熟悉,多分析課本例題和敲一些代碼。

3.數組上機考試小結

3.1 那題錯了,請羅列?

  • jmu-c-二維數組轉置並按列排序
  • 數組元素的刪除

  • 二維數組的題對數組有些不會運用,下標也常常搞混,數組的轉置出現問題,到排序的時候不知道怎麼按行和列排
  • 數組元素的刪除時,刪除了一個元素致使數組發生變化再次刪除時不是按舊的數組來,,,致使錯誤
相關文章
相關標籤/搜索