C語言第三次作業


一、學習動態內存分配、字符串操作、字符串函數的實現

 1.1 觀看1.2.2,1.3.1,1.3.2,1.4視頻

 1.2 觀看視頻記錄紙質的筆記  

 

 

 

 1.3 觀看視頻時所敲打的代碼文件

 

 

展示內存

 

 

 

1.4 學習中存在的問題

(1)指針p被free之后變成了什么值,還有值嗎?

   答:地址是不可能被刪掉的,free只是告訴系統,這塊內存不需要了,系統可以拿來做別

          的事,這塊內存被釋放之后暫時還沒有其他程序訪問這塊內存,所以之前的數據還在,

          讀也能讀出來。

(2)Ctrl+Z和Ctrl+D結束運行那里不太懂。

  答:通過查詢Ctrl+Z是把當前的程序掛起,暫停執行這個程序。Ctrl-D表示一個特殊的二進制值,

         表示EOF,作用相當於在終端中輸入exit后回車。鍵盤輸入字符,通過shell傳給電腦內部做

         運算,敲下回車后程序仍未結束,當輸入 Ctrl + Z 或 Ctrl + D時相當於文件結束符(EOF),

         shell攔截並做對應處理。

(3)程序參數int main(int argc, char * argv[])?

   答:百度查詢。  argc: 代表啟動程序時,命令行參數的個數,且argc的值至少是1。

          argv[]:指針數組,其中的每個元素都是一個char* 類型的指針,該指針指向一個字符串,

          這個字符串里就存放着命令行參數。

 

二、pta作業問題

1、單選題

2-1

以下不正確的賦值或賦初值的方式是( )。 (2分)

正確答案:應選C。    給string類型賦值字符串,默認字符串結尾有'\0賦值時可寫 入。

C:str是一個數組,寫入程序也是該數組首地址,str是一個指針常量,不能被賦值。

2-2

假設scanf語句執行時輸入ABCDE<回車>,能使puts(s)語句正確輸出ABCDE字符串的程序段是__。 (2分)

解釋:A和B中字符的定義都是字符數組的形式,並不是字符串,puts函數輸出字符串專用,遇

          到‘\0’停止輸出,找不到就一直輸出。C選項沒有對指針s賦值,卻對s指向的單元賦值,

          針的值是不確定的。

2-3

下面描述正確的是 (2分)

 

為什么字符串“That”小於字符串“The”?

答:因為比較是按順序的,第一個都是T,第二個都是h,第三個a<e,所以“That”<“The”,

       比較方法就是挨個比較,利用ASC碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM