1[簡答題]下列給定程序中函數(shù)fun的功能是:將P所指字符串中的所有字符復制到b中,要求每復制三個字符之后插入一個空格。
例如,若給a輸入字符串:“ABCDEFGHIJK”,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:“ABCDEFGHIJK”。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:
【參考答案】
(1)b[k]=*p;
(2)b[k]=’’;k++;
【考點分析】
本題考查:指針類型變量作為函數(shù)的參數(shù),函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù)類型,還可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中。
【解題思路】
(1)題目中P是指針型變量作函數(shù)參數(shù),因此給b[k]賦值時出現(xiàn)錯誤。
(2)題目要求復制三個字符后加一個空格,所以應該是先給b[k]賦值空格,然后變量k再加l。
【解題寶典】 .c語言中為了表示指針變量和它所指向的變量之間的關(guān)系,在程序中用“木”符號表示“指向”,例如,pointer代表指針變量,而+pointer是pointer所指向的變量。
2[簡答題]規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應當是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容.僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【考點分析】
本題考查:刪除字符串中所有*號,需用循環(huán)語句遍歷字符串,用判斷語句判斷字符是否為*號,由此可以決定該程序應使用循環(huán)判斷結(jié)構(gòu)。
【解題思路】
用循環(huán)操作從字符串開始往后逐個進行比較,若不是要刪除的字符(用if(aEi]!=’*’)來控制)則保留。變量i和j用來表示原字符串的下標和刪除*號后新字符串的下標。注意,下標變量J要從0開始,最后還要加上字符串結(jié)束標識‘\0’。
3[單選題] 有以下程序:
當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,代表回車,注意:回車也是一個字符]1234則輸出結(jié)果是( )。
A.12B.123C.1234D.12343
參考答案:D
參考解析:按照從鍵盤輸入的數(shù)據(jù)可以_判斷字符l給了變量a,字符2給了變量b,字符即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D選項。
4[單選題] 在最壞情況下,二分查找法的時間復雜度為( )。
參考答案:C
參考解析:二分法查找也稱拆半查找,能使用二分1法查找的線性表必須滿足兩個條件,用順序存儲結(jié)構(gòu)以及線性f表有序。利用二分法查找元素x的過程如下:將x與線性表1的中間項比較,如果X的值與中間項的值相等,則查找成功,1結(jié)束查找;如果x小于中間項的值,則在線性表的前半部分以二分法繼續(xù)查找;如果x大于中間項的值,則在線性表的后半1部分以二分法繼續(xù)查找?梢宰C明,對于長度為n的有序線性f表,在最壞情況下,二分法查找需比較l092n次,故時間復雜度1為l092n。故選擇C選項。
5[單選題] 有以下結(jié)構(gòu)體說明、變量定義和賦值語句:
則以下scanf函數(shù)調(diào)用語句有錯誤的是( )。
A.scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].age);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
參考答案:D
參考解析:本題考查結(jié)構(gòu)體的相關(guān)知識,題目中需要輸入一個變量,scanf要求參數(shù)為指針,而D選項中ps一>age為一個變量,不是指針,所以錯誤。
6[單選題] 設P是指針變量,語句P=NULL;等價于
A.P=´0´;B.P=";C.P="";D.P=0;
參考答案:D
參考解析:P=NULL;等價P=0;因此D選項正確。
7[單選題] 下列敘述中正確的是( )。
A.棧是一種先進先出的線性表
B.隊列是一種后進先出的線性表
C.棧與隊列都是非線性結(jié)構(gòu)
D.以上三種說法都不對
參考答案:D
參考解析:棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結(jié)構(gòu)。
8[單選題] 有以下程序
程序的輸出結(jié)果是
A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%dD.a=%%d,b=%%d
參考答案:C
參考解析:c語言中用“%%”打印輸出字符“%”,所以%%d。輸出為%d兩個普通字符,而不是格式控制符“%d”的含義,所以打印結(jié)果為C。
9[單選題] 有以下程序:
若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運行后的輸出結(jié)果是:l2,a,34,b。則正確的輸入格式是(以下-代表空格,代表回車)( )。
A.12-a34-bB.12-a-34-bC.12,a,34,bD.12a34b
參考答案:D
參考解析:在輸入多個數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。所以應按選項D的順序輸入數(shù)據(jù)。
10[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1B.11C.6D.21
參考答案:D
參考解析:本題考查位運算,以及按位或操作,將a左移一位相當于是將a乘以了4,所以a<<2等于20,二進制表示為00010100,與b按位或得到00010101,即21,所以選項D正確。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |