1樓:木葉一人
while(*p) x = x*10-48+(*p++);
只要*p有值就迴圈,
x=x乘10-48+p[0]
x=x乘10-48+p[1]
x=x乘10-48+p[2]
48是0的ascii碼,比如字元'0'-48=0,字元'1'-48=1;所以(*p++)-48就是要求的那個數字。
每次乘10就是前進一位,空出個位再加上(*p++)-48。
最後迴圈結束就是最終答案。
2樓:匿名使用者
字元『0』的ascii值為0x30,也就是10進製的48數字0的ascii值為0x00,10進製為0-48的目的是為了把字元轉化成數字。
例如字元p[2] = "12",那麼轉換後的數字應為12。
那麼計算過程為:
1、十位數應為p[0]的值為0x31(十進位制為49),p[0]-48=1,在把1*10 = 10
2、各位數應為p[1]的值為0x32(十進位制為50),p[1]-48=2,在把2
3、10+2 = 12
3樓:
首先要知道c中的字元與其ascii碼是可以互換的,所以就有了將乙個字元數字的ascii碼減去『0』的ascii碼(48)變成這個數的方法。
比如『1』的ascii碼是49,49減去48對應了1,所以這個可以將數字從字元型轉成整形。也就是「-48+(*p++)」的功能。注意(*p++)是先取內容再加一。
變數x中儲存了最終結果的值。轉化是從高位向低位進行的,每次乘以10,就相當於把以前的資料擴大了10倍,比如:
x=1;
x=10+2;
x=12;
x=120+3;
x=123;
x=1230+4
x=1234
當p指向的字元為空時,這個迴圈結束。
歡迎交流討論:)
4樓:
48就是'0',數字0的ascii碼
這一句等價於
int c;
while(*p)
5樓:匿名使用者
0的字元表示貌似是48吧 假設*p=1 那麼字元表示就是49 (*p++)-48 就=1 就轉換成了數字了
c語言二級考試題及答案
計算機二級c語言考試的題型是什麼我知道有40道選擇題乙個一分,請問後
6樓:匿名使用者
全國計算機二級c語言程式設計包括40個單選題(每題一分)和三道操作題(60分)。
單選題中1~10題為二級公共基礎知識,考試內容包括資料結構與演算法、程式設計基礎、軟體工程基礎、資料庫設計基礎四部分。單選題的11~40題是c語言的內容。
操作題包括程式填空(18分)、程式改錯(18分)和程式設計題(24分)各一題。
程式填空是將乙個完整的程式,扣掉兩到三處,讓考生將它填寫完整。由於每位考生具體抽到的題目不同,程式填空有2到3個空要填。程式填空題以實際填寫的內容為評分依據,填寫正確乙個空,給乙個空的分。
如果是2個空,每個空就是9分;如果是3個空每個空是6分。
程式改錯也是乙個完整的程式,其中有2~3處錯誤要求考生將他們改正。與程式填空類似,2處錯誤的話,每處9分,3處錯誤的話,每處6分。程式改錯題的題目會提示每一處錯誤所在的行,在那一行的上一行有********found********標識。
程式設計題是要求考生編寫乙個程式,然後執行出題幹要求的結果。題目中主函式main()會完整給出,在主函式中將呼叫fun()函式,fun函式由考生自己編寫。程式設計題以執行結果給分,所編寫完成後必須執行,否則沒分。
因此,大多數情況下,程式設計題要麼就是得24分滿分,要麼就是0分。
7樓:焱炙淼
考試形式及分值:
筆試:選擇(70分)填空(30分)
機試:改錯(30分)填空(30分)程式(40分)◆ 考試內容
一、c語言程式的結構
1.程式的構成,main函式和其他函式。
2.標頭檔案,資料說明,函式的開始和結束標誌以及程式中的注釋。
3.源程式的書寫格式。
4.c語言的風格。
二、資料型別及其運算
1.c的資料型別(基本型別,構造型別,指標型別,無值型別)及其定義方法。
2.c運算子的種類、運算優先順序和結合性。
3.不同型別資料間的轉換與運算。
4.c表示式型別(賦值表示式,算術表示式,關係表示式,邏輯表示式,條件表示式,逗號表示式)和求值規則。
三、基本語句
1.表示式語句,空語句,復合語句。
2.輸入輸出函式的呼叫,正確輸入資料並正確設計輸出格式。
四、選擇結構程式設計
1.用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的巢狀。
五、迴圈結構程式設計
1.for迴圈結構。
2.while和do-while迴圈結構。
3.continue語句和break語句。
4.迴圈的巢狀。
六、陣列的定義和引用
1.一維陣列和二維陣列的定義、初始化和陣列元素的引用。
2.字串與字元陣列。
七、函式
1.庫函式的正確呼叫。
2.函式的定義方法。
3.函式的型別和返回值。
4.形式引數與實在引數,引數值傳遞。
5.函式的正確呼叫,巢狀呼叫,遞迴呼叫。
6.區域性變數和全域性變數。
7.變數的儲存類別(自動,靜態,暫存器,外部),變數的作用域和生存期。
八、編譯預處理
1.巨集定義和呼叫(不帶引數的巨集,帶引數的巨集)。
2.「檔案包含」處理。
九、指標
◆ 考試方式
1.筆試:90分鐘,滿分100分,其中含公共基礎知識部分的30分。
2.上機:90分鐘,滿分100分
3、上機操作包括:
(1)填空。
(2)改錯。
(3)程式設計。
8樓:匿名使用者
c語言,是一種通用的、過程式的程式語言,廣泛用於系統與應用軟體的開發。全國計算機二級c語言程式設計包括40個單選題(每題1分)和3道操作題(共60分)。選擇題的考試內容包括資料結構與演算法、程式設計基礎、軟體工程基礎、資料庫設計基礎四部分。
操作題三部分分別是:1、程式填空(18分)根據題目和不完整的程式寫一句正確的程式使其能夠執行。2、程式改錯(18分)在已指出錯誤的程式中改錯使程式得以執行。
3、程式設計題(24分)根據題目給出的要求設計程式並使程式能夠正確執行。
c語言二級考試題目
9樓:君未凌
第一題:\141的值是"a"(a的8進製ascii碼值是141),\\的值是"\",所以s列印出來就是\141aabc,當然後面有乙個\t,所以長度是9。
第二題:32位機器中,int值佔4個位元組,這裡char佔4個位元組(由於32位機器按4位元組對齊,char佔乙個位元組後,剩下的3個位元組不足以放下4個位元組的float,所以這裡char後面的3個位元組會被浪費,看起來char佔了4個位元組),float佔4個位元組。
union裡面的所有資料一起占用一塊記憶體,此記憶體為union內占用記憶體最多的資料的大小,也就是int[2]的大小,所以union佔8個位元組。
加起來就是20個位元組。
不是你把題抄錯了,就是沒有正確答案,或者沒說明機器是多少位的機器。現在一般不說明機器的位數,預設情況下都是32位的。
第三題:ps=s後,ps會指向s的第一行第一列的位置,ps+1和*(ps+1)都等於s第二行第一列的位址,對ps的操作都是對記憶體位址的操作,答案中只有ps[ ][ ]能取到s中的元素。
第四題:因為pb比b1大3,所以while會迴圈3次,第一次因為*bp 從第三個字元開始,所以*bp = 「ddwer」,所以b2=「ddwer」,第二次b2=「oddwer」,第三次b2=「goddwer」,所以strlen(b2)最終等於7。
第五題:答案是3,ascii值中「\08」表示空格,所以s實際上等於「012xy」,而n記錄字元值在0到9之間的字元的個數,所以n=3。
10樓:匿名使用者
樓上給出答案了,字串判斷是以'\0'結束,而 i f 判斷找出字元值在0到9之間的字元。
全國二級c語言考試形式和考試題目型別是什麼?
11樓:線雅青易堯
全國計算機等級考試二級c語言的考試題目的小題不是從《c語言題庫》中抽取的,後面的大題即程式設計題全部是從最近的一年的《c語言題庫》中抽取的。
考題大部分是c語言,少部分是演算法與資料結構裡面的東西。
如果覺得滿意就採納吧!
12樓:匿名使用者
2023年無紙化考試:
選擇題:40分,程式填空題:18分,程式修改題:18分,程式設計題:24分。
60分且程式題達36分,才算過。。
今年沒有填空題,而 且都是機試。
真題庫,其中選擇題8套,共320題,程式題105套,共315題。
考生考試時,按考點隨機抽取40到題組成選擇題部分,程式題從題庫105套中隨機抽取一套。。
13樓:匿名使用者
抱歉 看成省考試了
計算機二級考試C語言VFVB那個更簡單
如果平時認真學的話 c 語言絕對簡單。vb vf 雖然 說是入門的語言,但是一拉上來就是系統函式,訊息驅動。感覺不適應,還是 c語言 一筆一劃 規範的好,就想學英語一樣。c語言比較難 vb,vf都是比較容易些,vf是資料庫 所以相對來說vb比較好些 哈 二級vf vb c語言 我都沒考過,但都做過模...
二級C問題
1,3,5 指標就是乙個變數,存放著目標的首位址,作為其值k為指標的指標,陣列名即為陣列首位址的指標,所以,指標可以像陣列那樣使用。由k為指標的指標,k i 即為第i個指標,前面再加乙個 即為所指向位置的值。a 2 i 為陣列a第2 i個元素的位址 include void main k 3 i 0...
c語言和c有什麼區別計算機等級考試二級證書到
c語言和c 的區別你自己搜百科就能找到,很詳細。計算機等級考試二級c,指的是c語言程式設計,不是c 語言,只是c語言程式可以在vc 軟體環境下編寫,但是依然是c語言程式設計。在計算機等級考試二級裡c 語言程式設計是c 程式考試。所以在計算機等級考試裡分別有c語言程式設計和c 語言程式設計,是不同的兩...