最近學習c語言,發現有幾個測試題是最容易錯的,不知道學習c語言的朋友也會犯這樣的錯誤呢?
1.大家看以下**會輸出什麼( ).
void
main()
...
a) a b) 100 c) c d) d
我們知道宣告了乙個字元型變數,同時給它初始化為ch='a'+3;那麼這裡就應該輸出'd'.我們知道字元型變數在記憶體中是以整型儲存的,通過ascii碼知道'a'對應的整數是97.那麼97+3就是100對應的字元'd'.所以選d).
2.分析下面的c程式:
#include
<
stdio.h
>
#include
<
string
.h>
void
main()
...
輸出結果是( ).(選擇一項)
a) 9 b) 12 c) 13 d) 8
在我們學習c語言的過程中,我們知道對字串的操作是通過字元陣列來表示字串的,如char ch[ ] = "abcdefgh";
這裡我們知道字串是以'/0'來表示字串的結束,那麼使用strlen(str)這個函式計算字串的長度並不計算字串的結束符'/0'.
首先我們宣告了乙個指標變數char *p;讓它指向str1的首位址,然後"+3"那麼指向的是陣列的第四個元素'd'.那麼這裡我們又通過strcat(str1,str2)函式,它表示將源字串的str2連線到str1字串的後面.那麼p的值就是"defgh",同時相應的字串長度就是5+4等於9.
3.分析下面的c語言**:
inta=1
,b=10;
do...
while
(b--<0);
則執行迴圈語句後b的值為( )。(選擇一項)
a) 9 b) -2 c) -1 d) 8
我們來回顧一下do--while語句的用法:它是先執行後判斷,無論條件為真或為假,迴圈體裡的語句至少執行一次;而while迴圈是:先判斷後執行,如果條件不成立那麼就退出迴圈。那麼我們再來看一下for迴圈,它的語法為:for(表示式1;表示式2;表示式3){}它首先給表示式1賦初值,然後再判斷表示式2的值是否為真,如果為真的話就執行迴圈體中的語句,執行完後再計算表示式3的值來更新變數的值而改變迴圈條件,至到迴圈結束;如果表示式2為假的話就退出迴圈。
我們來看這一題,首先b -= a,這個表示式考察了我們學習c語言中的復合賦值運算子,可表示為:b = b - a; b = 9;執行完後就判斷迴圈條件: b -- < 0;條件為假,迴圈退出。我們知道b-- ,它是先賦值,之後自身減 1(如:b=9,c = b-- .執行過程為:c=9, b = b - 1 ;)那麼所得結果就是:8 所以答案為:d.
4.執行下面的c程式段後,輸出結果是()。(選擇一項)
inta =5
;while
( a
--);
printf("%d
",a);
a) 54321 b) 4321 c) 0 d) -1
我們來分析一下這一道題,看似簡單,但是做起來容易出錯。我們知道c語言中無論是迴圈條件或者是邏輯表示式,它所計算所得的結果為:真或假。c語言中真的值就是 ! ,假的值為: 0 。那麼我們來看while(a--);當條件a--的值為假時,迴圈退出,即:a -- = 0時,那麼a 的值也就為: - 1;我們這裡要知道這個迴圈總共迴圈執行了 5 次。答案就選擇:d。
5.研究下面的c程式段:
inti,j;
for(i =5
; i; i --)
for(j =0
; j
<
4; j++)
...
迴圈體的總執行次數是()。(選擇一項)
a) 20 b) 25 c) 24 d) 30
我們看到題之後首先應該想到的是,它是乙個巢狀的for迴圈,相當於乙個二維陣列。如:a[5][4],我們知道它是有5行4列組成,共有5x4=20個元素。為它動態賦值的話可表示為:
inta[5][
4], i, j;
for(i=0
;i<5;i
++)
for(j =0
; j
<
4; j++)
...
C語言 幾個測試題
預處理器 preprocessor 1.用預處理指令 define 宣告乙個常數,用以表明1年中有多少秒 忽略閏年問題 define seconds per year 60 60 24 365 ul 我在這想看到幾件事情 1.define 語法的基本知識 例如 不能以分號結束,括號的使用,等等 2....
C語言測試題
1 c程式的入口 a switch b if c main d getchar 2.c語言中,整數型別中的浮點型別,常用的關鍵字是 a int b char c short d float 3.輸出整數型別的格式符是 a d b c c x d o 4.輸出浮點型別的格式符是 a c b o c d...
C語言測試題07
結構體 自定義複雜 復合型別 由其他基本型別構成 普通型別的缺點 int char 變數之間是沒有關係 結構體描述了一種構成關係 所屬關係 定義乙個結構體型別 描述了學生結構體的構成 型別名是 struct student struct student 給結構體起別名 struct student ...