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-二維數組轉置並按列排序
- 數組元素的刪除
- 二維數組的題對數組有些不會運用,下標也常常搞混,數組的轉置出現問題,到排序的時候不知道怎麼按行和列排
- 數組元素的刪除時,刪除了一個元素致使數組發生變化再次刪除時不是按舊的數組來,,,致使錯誤