第 1 頁:選擇題 |
第 2 頁:程序填空題 |
第 3 頁:程序修改題 |
第 4 頁:程序設計題 |
一、選擇題
1[單選題] 設有定義:char*C;以下選項中能夠使C正確指向一個字符串的是( )。
A.char str( )=”string”;C=str;
B.scanf(”%s”,
C.;C.c=getchar( );
D.*c=”strin9”;
參考答案:A
參考解析:A選項為正確用法,先將字符串存于字符數組中,然后將數組名賦給字符指針(數組名代表數組首地址,定義數組時為其分配確定地址)。C選項錯誤,getchar()函數只能輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現問題。因為在B選項和D選項中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內存區域,這個區域可能存放有用的指令或數據。在這個不確定的區域重新存放字符串,可能會發生無法預知的錯誤。因此A選項正確。
2[單選題] 若有以下程序
則程序的輸出結果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
參考答案:C
參考解析:本題重點考查C語言中for語句和邏輯表達式,for語句的一般形式為:
for(表達式1;表達式2;表達式3)語句其循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以缺省,但“;”不能缺省。該題目中省了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相當于while(a&&(b==0)){b+=a;a-=c++;}。因此c選項正確。
3[單選題] 以下敘述中正確的是
A.對于邏輯表達式:a++|| b++,設a的值為1,則求解表達式的值后,b的值會發生改變
B.對于邏輯表達式:a++&&b++,設a的值為0,則求解表達式的值后。b的值會發生改變
C.else不是一條獨立的語句,它只是if語句的一部分
D.關系運算符的結果有三種:0,1,-1
參考答案:C
參考解析:B選項和A選項中,&&、||都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值。而且&&、||的優先級比++高,所以題中只需判斷a的值即可知道符合表達式的真假;D選項中,關系運算符的結果有“真”和“假”兩種。因此c選項正確。
4[單選題] 以下選項中合法的c語言常量是( )。
A.,C—STR’B.2014.1C.”\l.0D.2EK
參考答案:B
參考解析:所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,但使用單引號,錯誤,選項c,D,為實型常量中指數形式,但指數形式e(E)之前必須是數字,之后必須為整數,錯誤。故答案為B選項。
5[單選題] 有以下程序-
程序運行后的輸出結果是( )。
A.4B.2C.8D.1
參考答案:C
參考解析:在c語言中,需要在main函數后面定義函數,需要提前聲明,否則調用報錯,無法找到該函數。HI=f(f(f(n))),一共調用3次f()函數,f()函數是對n:it2,因此,結果是n}2}2$2,得到結果為8。故答案為c選項。
6[單選題] 若有定義:float x=1.5;int a=1,b=3,c=2;則正確的switch語句是( )。
參考答案:A
參考解析:B選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。
7[單選題] 有以下程序
程序運行后的輸出結果是
A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;
參考答案:A
參考解析:聲明結構類型S中有兩個整形變量x,y,在main函數中,為s結構類型定義一個數組變量data初始化3個結構體元素,分別兩兩賦值給結構體中的x,y。在for循環中,對3個結構體元素y值轉換成二進制數后向右移一位,再對此時x,y值依次進行輸出,答案為A選項。
8[單選題] 設有定義:char*C;以下選項中能夠使C正確指向一個字符串的是( )。
A.char str( )=”string”;C=str;
B.scanf(”%s”,
C.;C.c=getchar( );
D.*c=”strin9”;
參考答案:A
參考解析:A選項為正確用法,先將字符串存于字符數組中,然后將數組名賦給字符指針(數組名代表數組首地址,定義數組時為其分配確定地址)。C選項錯誤,getchar()函數只能輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現問題。因為在B選項和D選項中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內存區域,這個區域可能存放有用的指令或數據。在這個不確定的區域重新存放字符串,可能會發生無法預知的錯誤。因此A選項正確。
9[單選題] 若有以下程序
則程序的輸出結果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
參考答案:C
參考解析:本題重點考查C語言中for語句和邏輯表達式,for語句的一般形式為:
for(表達式1;表達式2;表達式3)語句其循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以缺省,但“;”不能缺省。該題目中省了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相當于while(a&&(b==0)){b+=a;a-=c++;}。因此c選項正確。
10[單選題] 以下敘述中正確的是
A.對于邏輯表達式:a++|| b++,設a的值為1,則求解表達式的值后,b的值會發生改變
B.對于邏輯表達式:a++&&b++,設a的值為0,則求解表達式的值后。b的值會發生改變
C.else不是一條獨立的語句,它只是if語句的一部分
D.關系運算符的結果有三種:0,1,-1
參考答案:C
參考解析:B選項和A選項中,&&、||都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值。而且&&、||的優先級比++高,所以題中只需判斷a的值即可知道符合表達式的真假;D選項中,關系運算符的結果有“真”和“假”兩種。因此c選項正確。
11[單選題] 以下選項中合法的c語言常量是( )。
A.,C—STR’B.2014.1C.”\l.0D.2EK
參考答案:B
參考解析:所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,但使用單引號,錯誤,選項c,D,為實型常量中指數形式,但指數形式e(E)之前必須是數字,之后必須為整數,錯誤。故答案為B選項。
12[單選題] 有以下程序-
程序運行后的輸出結果是( )。
A.4B.2C.8D.1
參考答案:C
參考解析:在c語言中,需要在main函數后面定義函數,需要提前聲明,否則調用報錯,無法找到該函數。HI=f(f(f(n))),一共調用3次f()函數,f()函數是對n:it2,因此,結果是n}2}2$2,得到結果為8。故答案為c選項。
13[單選題] 若有定義:float x=1.5;int a=1,b=3,c=2;則正確的switch語句是( )。
參考答案:A
參考解析:B選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。
14[單選題] 有以下程序
程序運行后的輸出結果是
A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;
參考答案:A
參考解析:聲明結構類型S中有兩個整形變量x,y,在main函數中,為s結構類型定義一個數組變量data初始化3個結構體元素,分別兩兩賦值給結構體中的x,y。在for循環中,對3個結構體元素y值轉換成二進制數后向右移一位,再對此時x,y值依次進行輸出,答案為A選項。
15[單選題] 有以下程序:
程序執行后的輸出結果是( )。
A.x=4B.X=8C.x=6D.x=12
參考答案:B
參考解析:eoulinue的作用是跳出循環體中剩余的1語句而進行下一次循環。第一次執行外循環i的值為0,執行|x++,x的值變為l,第一次執行內層循環j的值為0,不滿足if1條件,執行x++,x的值變為2,第二次內循環j的值為1,if條1件成立,跳出本次循環,第三次執行內循環j的值為2,不滿足l if條件,x的值變為3,第四次執行內循環j的值為3滿足條件1跳出本次內循環,x的值加l,即為4,第一次外循環結束。第1二次執行外循環時,同理,i的值被加了,4次,變為8,所以選擇I,B選項。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |