計算機二級C語言考試題庫100道及答案_第1頁
計算機二級C語言考試題庫100道及答案_第2頁
計算機二級C語言考試題庫100道及答案_第3頁
計算機二級C語言考試題庫100道及答案_第4頁
計算機二級C語言考試題庫100道及答案_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機二級C語言考試題庫100道及答案1.以下關于C語言變量聲明的說法,正確的是()A.變量聲明只能在函數體的開頭B.變量聲明可以在函數體內的任何位置C.變量聲明只能在主函數中進行D.變量聲明必須在程序的開頭答案:B解析:在C語言中,變量聲明可以在函數體內的任何位置,并非只能在函數體開頭或主函數中,也不一定要在程序開頭。2.若有定義inta=5,b=3;則表達式a/b*2的結果是()A.3B.3.333333C.4D.2答案:A解析:在C語言中,整數相除結果取整,a/b即5/3結果為1,再乘以2得2,不過這里考查整數運算特性,實際結果為3(因為取整)。3.以下哪個是合法的C語言標識符()A.2abcB.intC._abcD.abc@答案:C解析:C語言標識符只能由字母、數字和下劃線組成,且不能以數字開頭,int是關鍵字不能作為標識符,@不是合法字符。4.若有定義charch='A';則執行ch=ch+32;后,ch的值是()A.'a'B.'A'C.'32'D.不確定答案:A解析:在ASCII碼中,大寫字母和小寫字母相差32,將大寫字母'A'加上32就得到對應的小寫字母'a'。5.以下關于for循環的說法,錯誤的是()A.for循環的初始化部分可以省略B.for循環的條件判斷部分可以省略C.for循環的迭代部分可以省略D.for循環不能嵌套使用答案:D解析:for循環的初始化、條件判斷和迭代部分都可以省略,并且for循環是可以嵌套使用的。6.若有定義intarr[5]={1,2,3,4,5};則arr[2]的值是()A.1B.2C.3D.4答案:C解析:數組下標從0開始,arr[2]表示數組的第3個元素,值為3。7.以下關于函數的說法,正確的是()A.函數必須有返回值B.函數可以沒有參數C.函數名不能和變量名相同D.函數只能在主函數之后定義答案:B解析:函數可以沒有返回值(返回類型為void),可以沒有參數,函數名可以和變量名相同,函數也可以在主函數之前定義。8.若有定義intx=10,y=20;則執行語句x=x^y;y=x^y;x=x^y;后,x和y的值分別是()A.10,20B.20,10C.10,10D.20,20答案:B解析:通過異或運算可以實現兩個變量值的交換,經過這三條語句后,x和y的值交換。9.以下關于指針的說法,錯誤的是()A.指針可以指向任何數據類型B.指針變量必須初始化C.指針可以進行算術運算D.指針可以作為函數參數答案:B解析:指針變量不一定要初始化,如果未初始化就使用會導致未定義行為,但不是必須初始化。10.若有定義struct{inta;charb;}s;則sizeof(s)的值可能是()A.4B.5C.6D.8答案:D解析:結構體存在內存對齊,int通常占4字節,char占1字節,考慮對齊后可能占8字節。11.以下關于C語言注釋的說法,正確的是()A.注釋只能單行使用B.注釋可以嵌套使用C.注釋在編譯時會被忽略D.注釋可以放在代碼的任何位置答案:C解析:C語言注釋有單行注釋和多行注釋,注釋不能嵌套,注釋在編譯時會被忽略,但不是可以放在代碼的任何位置。12.若有定義inta=10;則執行語句a+=a-=a*a;后,a的值是()A.-180B.180C.0D.-200答案:D解析:根據運算符優先級和結合性,先計算a*a為100,然后a-=100得a為-90,最后a+=-90得a為-180。13.以下哪個是正確的C語言轉義字符()A.'\n'B.'\08'C.'\x1g'D.'\a1'答案:A解析:'\n'是換行符,是合法的轉義字符,'\08'八進制不能出現8,'\x1g'十六進制不能出現g,'\a1'不是合法轉義字符。14.若有定義intarr[3][4];則arr[1][2]是該二維數組的第()個元素A.6B.7C.8D.9答案:B解析:二維數組按行存儲,第一行4個元素,arr[1][2]是第二行第3個元素,所以是第7個元素。15.以下關于while循環的說法,正確的是()A.while循環的條件判斷部分必須是布爾表達式B.while循環一定會執行至少一次C.while循環可以嵌套使用D.while循環不能使用break語句答案:C解析:while循環條件判斷部分可以是任意表達式,do-while循環一定會執行至少一次,while循環可以使用break語句跳出循環,且可以嵌套使用。16.若有定義voidfunc(int*p);則以下調用正確的是()A.inta=10;func(a);B.inta=10;func(&a);C.int*p;func(p);D.intarr[5];func(arr[0]);答案:B解析:函數參數是指針類型,需要傳遞變量的地址,A選項傳遞的是值,C選項指針未初始化,D選項傳遞的是數組元素的值。17.以下關于switch語句的說法,錯誤的是()A.switch語句的表達式只能是整數類型B.case后面的常量表達式可以相同C.switch語句可以沒有default分支D.break語句可以用于跳出switch語句答案:B解析:case后面的常量表達式不能相同,switch語句表達式可以是整數類型,可沒有default分支,break可跳出switch語句。18.若有定義inta=5,b=7;則表達式!(a>b)的值是()A.0B.1C.5D.7答案:B解析:a>b為假,值為0,!0為真,值為1。19.以下關于數組名的說法,正確的是()A.數組名是一個指針常量B.數組名可以進行自增自減運算C.數組名可以作為函數返回值D.數組名可以直接賦值給另一個數組名答案:A解析:數組名是一個指針常量,不能進行自增自減運算,不能作為函數返回值,也不能直接賦值給另一個數組名。20.若有定義charstr[]="hello";則strlen(str)的值是()A.5B.6C.7D.不確定答案:A解析:strlen函數計算字符串長度,不包括字符串結束符'\0',"hello"長度為5。21.以下關于函數返回值的說法,錯誤的是()A.函數可以返回多個值B.函數返回值的類型必須和函數定義的返回類型一致C.函數可以返回指針類型D.函數可以返回void類型答案:A解析:C語言中函數一次只能返回一個值,返回值類型要和定義的一致,可以返回指針類型和void類型。22.若有定義inta=10,b=20;則執行語句if(a>b)a=b;b=a;后,b的值是()A.10B.20C.30D.不確定答案:A解析:由于a>b為假,不執行a=b;但會執行b=a;所以b的值為10。23.以下關于宏定義的說法,正確的是()A.宏定義必須在程序開頭B.宏定義可以帶參數C.宏定義會進行類型檢查D.宏定義只能定義常量答案:B解析:宏定義可以在程序任意位置,可帶參數,宏定義不會進行類型檢查,還可以定義帶參數的宏等。24.若有定義intarr[5]={1,2,3,4,5};則*(arr+3)的值是()A.1B.2C.3D.4答案:D解析:arr是數組首地址,arr+3指向數組第4個元素,*(arr+3)就是該元素的值4。25.以下關于do-while循環的說法,正確的是()A.do-while循環的條件判斷部分在循環體之前B.do-while循環至少會執行一次C.do-while循環不能嵌套使用D.do-while循環不能使用continue語句答案:B解析:do-while循環條件判斷在循環體之后,至少執行一次,可嵌套使用,也能使用continue語句。26.若有定義int*p,a=10;p=&a;則*p的值是()A.指針p的地址B.變量a的地址C.10D.不確定答案:C解析:p指向變量a的地址,*p表示取p所指向地址的值,即a的值10。27.以下關于文件操作的說法,錯誤的是()A.打開文件時必須指定文件打開模式B.文件操作完成后必須關閉文件C.可以同時打開多個文件D.文件只能以文本模式打開答案:D解析:文件可以以文本模式或二進制模式打開,打開文件要指定模式,操作完要關閉,可同時打開多個文件。28.若有定義inta=5;則執行語句a*=a+1;后,a的值是()A.25B.30C.36D.42答案:B解析:先計算a+1為6,然后a*=6即a=a*6,a變為30。29.以下關于條件運算符(?:)的說法,正確的是()A.條件運算符是三元運算符B.條件運算符的優先級高于算術運算符C.條件運算符只能用于整數類型D.條件運算符不能嵌套使用答案:A解析:條件運算符是三元運算符,優先級低于算術運算符,可用于多種數據類型,也能嵌套使用。30.若有定義intarr[3][4];則&arr[1][2]-&arr[0][0]的值是()A.6B.7C.8D.9答案:B解析:&arr[1][2]和&arr[0][0]都是地址,相減得到元素個數差,是7。31.以下關于for循環嵌套的說法,錯誤的是()A.外層循環執行一次,內層循環可能執行多次B.內層循環執行完一次,外層循環才會執行下一次C.嵌套的循環可以是不同類型的循環D.嵌套循環的層數沒有限制答案:D解析:雖然理論上嵌套循環層數沒有絕對限制,但受內存等因素影響,實際上不能無限嵌套。32.若有定義inta=10;則執行語句a=a<<2;后,a的值是()A.20B.40C.80D.160答案:B解析:左移運算符,a<<2相當于a乘以2的2次方,10乘以4得40。33.以下關于函數調用的說法,正確的是()A.函數調用時實參和形參的類型必須完全一致B.函數調用時實參和形參的個數必須相同C.函數調用時可以使用函數名作為實參D.函數調用時可以傳遞數組名答案:D解析:函數調用時實參和形參類型兼容即可,個數要相同,函數名不能作為實參,可傳遞數組名。34.若有定義charstr1[]="hello",str2[]="world";則strcmp(str1,str2)的值()A.小于0B.等于0C.大于0D.不確定答案:A解析:strcmp函數比較字符串大小,按字典序"hello"小于"world",返回值小于0。35.以下關于靜態變量的說法,正確的是()A.靜態變量只能在函數內部定義B.靜態變量在程序運行期間一直存在C.靜態變量不能被初始化D.靜態變量每次函數調用時都會重新初始化答案:B解析:靜態變量可在函數內部或外部定義,在程序運行期間一直存在,可初始化,且只初始化一次。36.若有定義inta=5,b=3;則表達式a%b的值是()A.0B.1C.2D.3答案:C解析:%是取余運算符,5除以3余數為2。37.以下關于指針和數組的關系,說法錯誤的是()A.數組名可以隱式轉換為指針B.指針可以指向數組元素C.指針和數組是完全相同的概念D.可以通過指針訪問數組元素答案:C解析:數組名可隱式轉換為指針,指針可指向數組元素,可通過指針訪問數組元素,但指針和數組不是完全相同概念。38.若有定義intarr[5]={1,2,3,4,5};int*p=arr;則p[2]的值是()A.1B.2C.3D.4答案:C解析:p指向數組首地址,p[2]等價于*(p+2),即數組第3個元素的值3。39.以下關于if-else語句的說法,正確的是()A.if-else語句只能嵌套一層B.if-else語句的條件判斷部分必須是布爾表達式C.if-else語句可以省略else分支D.if-else語句不能和switch語句嵌套使用答案:C解析:if-else語句可多層嵌套,條件判斷部分可以是任意表達式,可省略else分支,也能和switch語句嵌套使用。40.若有定義inta=10;則執行語句a=a>>1;后,a的值是()A.5B.10C.20D.40答案:A解析:右移運算符,a>>1相當于a除以2,10除以2得5。41.以下關于函數遞歸調用的說法,錯誤的是()A.遞歸調用必須有終止條件B.遞歸調用會消耗大量棧空間C.遞歸調用的效率一定比迭代高D.遞歸調用可以解決一些復雜的問題答案:C解析:遞歸調用要有終止條件,會消耗棧空間,能解決復雜問題,但效率不一定比迭代高。42.若有定義structStudent{charname[20];intage;}stu;則對stu中age成員賦值為20的正確語句是()A.stu.age=20;B.Student.age=20;C.stu->age=20;D.&stu.age=20;答案:A解析:對于結構體變量,使用“.”運算符來訪問成員,stu是結構體變量,所以用stu.age=20賦值;B選項Student是結構體類型名,不能這樣用;C選項“->”用于結構體指針;D選項&stu.age是取地址,不能作為左值賦值。43.以下關于逗號運算符的說法,正確的是()A.逗號運算符的優先級高于賦值運算符B.逗號表達式的值是最后一個表達式的值C.逗號表達式只能用于整數類型D.逗號運算符不能嵌套使用答案:B解析:逗號運算符優先級低于賦值運算符,逗號表達式的值是最后一個表達式的值,可用于多種數據類型,也能嵌套使用。44.若有定義intarr[10];要給數組arr的所有元素賦值為0,以下正確的是()A.arr={0};B.for(inti=0;i<10;i++)arr[i]=0;C.arr[10]={0};D.arr[]={0};答案:B解析:A選項數組名是常量指針,不能這樣整體賦值;C選項arr[10]越界;D選項語法錯誤,要給數組元素逐個賦值可以用循環,所以B正確。45.若有定義int*p,a[5]={1,2,3,4,5};p=a+2;則*p++的值是()A.1B.2C.3D.4答案:C解析:p指向a[2],*p++先取p所指的值即3,然后p再自增指向下一個元素。46.以下關于循環語句中break和continue的說法,錯誤的是()A.break語句可以跳出當前所在的循環B.continue語句可以跳過本次循環的剩余部分C.break語句只能用于循環語句D.continue語句可以用于switch語句答案:D解析:break可跳出當前循環,continue跳過本次循環剩余部分,break還可用于switch語句,continue不能用于switch語句。47.若有定義inta=3,b=4,c;c=a>b?a:b;則c的值是()A.3B.4C.7D.不確定答案:B解析:條件運算符,a>b為假,取冒號后面的值,即b的值4。48.以下關于函數原型聲明的說法,正確的是()A.函數原型聲明必須在函數定義之前B.函數原型聲明可以省略參數名C.函數原型聲明不能在頭文件中D.函數原型聲明的返回類型必須和函數定義一致答案:B解析:函數原型聲明不一定要在函數定義之前,可省略參數名,可放在頭文件中,返回類型要和函數定義一致,但強調可省略參數名更突出該知識點特性。49.若有定義charstr[]="abc\0def";則strlen(str)的值是()A.3B.4C.7D.8答案:A解析:strlen遇到'\0'就結束計算長度,所以長度是3。50.以下關于內存動態分配的說法,錯誤的是()A.可以使用malloc函數分配內存B.分配的內存使用完后必須釋放C.可以使用free函數釋放內存D.動態分配的內存不會出現內存泄漏答案:D解析:可以用malloc分配內存,用free釋放,使用完要釋放,但如果不釋放就會出現內存泄漏。51.若有定義inta=5,b=6;則表達式(a<b)?(a++):(b++)的值是()A.5B.6C.7D.不確定答案:A解析:a<b為真,取a++的值,先取a的值5,然后a自增。52.以下關于字符數組和字符串的說法,錯誤的是()A.字符串可以用字符數組存儲B.字符數組一定是字符串C.字符串以'\0'結尾D.可以使用strcpy函數復制字符串答案:B解析:字符串可用字符數組存儲,字符串以'\0'結尾,可用strcpy復制,但字符數組不一定是字符串,只有以'\0'結尾的字符數組才是字符串。53.若有定義intarr[2][3]={{1,2,3},{4,5,6}};則arr[1][0]的值是()A.1B.4C.5D.6答案:B解析:二維數組arr[1][0]是第二行第一個元素,值為4。54.以下關于函數參數傳遞的說法,正確的是()A.函數參數傳遞只有值傳遞B.指針作為參數傳遞是值傳遞C.數組作為參數傳遞是值傳遞D.結構體作為參數傳遞是地址傳遞答案:B解析:函數參數傳遞有值傳遞和地址傳遞,指針作為參數傳遞是將指針的值(地址)傳遞,屬于值傳遞,數組作為參數傳遞會退化為指針,結構體作為參數傳遞默認是值傳遞。55.若有定義inta=10;則執行語句a%=3;后,a的值是()A.0B.1C.2D.3答案:B解析:a%=3等價于a=a%3,10除以3余數為1。56.以下關于預處理指令的說法,正確的是()A.預處理指令在編譯前處理B.預處理指令必須以分號結尾C.預處理指令只能在程序開頭使用D.預處理指令不能嵌套使用答案:A解析:預處理指令在編譯前處理,不以分號結尾,可在程序任意位置使用,也能嵌套使用。57.若有定義int*p,a=5;p=&a;則++*p的值是()A.5B.6C.地址值D.不確定答案:B解析:先取p所指的值即a的值5,然后自增為6。58.以下關于嵌套if語句的說法,錯誤的是()A.嵌套if語句可以實現多分支選擇B.嵌套if語句的層次沒有限制C.嵌套if語句的else總是和最近的if配對D.嵌套if語句的效率一定比switch語句高答案:D解析:嵌套if可實現多分支選擇,層次無絕對限制,else和最近的if配對,但效率不一定比switch高。59.若有定義intarr[5]={1,2,3,4,5};int*p=arr+4;則*--p的值是()A.1B.2C.3D.4答案:D解析:p指向arr[4],先將p自減指向arr[3],然后取其值4。60.以下關于文件讀寫操作的說法,正確的是()A.只能按順序讀寫文件B.可以使用fread函數讀取二進制文件C.寫入文件的數據不能是結構體類型D.打開文件后不需要關閉答案:B解析:文件讀寫可以隨機讀寫,fread可讀取二進制文件,可寫入結構體類型數據,打開文件后要關閉。61.若有定義inta=7,b=2;則表達式a/b的值是()A.3B.3.5C.4D.不確定答案:A解析:整數相除結果取整,7除以2結果為3。62.以下關于枚舉類型的說法,錯誤的是()A.枚舉類型是一種用戶自定義類型B.枚舉常量的值默認從0開始C.枚舉常量可以手動賦值D.枚舉類型可以直接進行算術運算答案:D解析:枚舉類型是自定義類型,常量默認從0開始,可手動賦值,但枚舉類型不能直接進行算術運算。63.若有定義struct{intx;inty;}point={1,2};則point.x的值是()A.0B.1C.2D.不確定答案:B解析:結構體變量point初始化,point.x的值為1。64.以下關于邏輯運算符的說法,正確的是()A.邏輯與運算符(&&)的優先級高于邏輯或運算符(||)B.邏輯運算符的操作數只能是整數類型C.邏輯非運算符(!)的優先級最低D.邏輯運算符的結果只能是0或1答案:A解析:邏輯與優先級高于邏輯或,操作數可以是多種類型,邏輯非優先級最高,結果是0或1。65.若有定義intarr[3][3]={{1,2,3},{4,5,6},{7,8,9}};則arr[2][1]的值是()A.7B.8C.9D.6答案:B解析:二維數組arr[2][1]是第三行第二個元素,值為8。66.以下關于函數重載的說法,在C語言中()A.可以實現函數重載B.函數名相同但參數不同就是函數重載C.C語言不支持函數重載D.函數重載可以提高程序效率答案:C解析:C語言不支持函數重載,函數重載是C++的特性。67.若有定義inta=10;則執行語句a+=5;后,a的值是()A.5B.10C.15D.20答案:C解析:a+=5等價于a=a+5,a變為15。68.以下關于字符串處理函數的說法,錯誤的是()A.strcat函數用于連接兩個字符串B.strchr函數用于查找字符在字符串中第一次出現的位置C.strstr函數用于查找子字符串在字符串中第一次出現的位置D.這些函數都在<stdio.h>頭文件中答案:D解析:字符串處理函數如strcat、strchr、strstr等在<string.h>頭文件中,不在<stdio.h>中。69.若有定義int*p,arr[5]={1,2,3,4,5};p=arr;則*(p+1)的值是()A.1B.2C.3D.4答案:B解析:p指向數組首地址,p+1指向數組第二個元素,*(p+1)就是2。70.以下關于do-while循環和while循環的區別,說法正確的是()A.do-while循環至少執行一次,while循環可能一次都不執行B.do-while循環的條件判斷在循環體之后,while循環的條件判斷在循環體之前C.以上兩者都是D.以上兩者都不是答案:C解析:do-while循環先執行循環體再判斷條件,至少執行一次;while循環先判斷條件,可能一次都不執行。71.若有定義inta=3,b=5;則表達式!(a<b)的值是()A.0B.1C.3D.5答案:A解析:a<b為真,值為1,!1為假,值為0。72.以下關于數組初始化的說法,錯誤的是()A.可以只對數組部分元素初始化B.初始化列表中的元素個數可以超過數組大小C.若不初始化,數組元素的值是不確定的D.可以使用大括號對數組進行初始化答案:B解析:可以只對部分元素初始化,不初始化元素值不確定,可用大括號初始化,但初始化列表元素個數不能超過數組大小。73.若有定義int*p,a=10;p=&a;則p和&a的關系是()A.p和&a是不同類型B.p和&a的值相等C.p是變量a的值,&a是變量a的地址D.以上都不對答案:B解析:p是指針變量存儲變量a的地址,&a是取變量a的地址,它們的值相等。74.以下關于條件判斷語句的說法,正確的是()A.條件判斷語句只能使用if語句B.switch語句只能判斷整數類型的表達式C.條件判斷語句的條件表達式只能是布爾類型D.條件判斷語句可以嵌套使用答案:D解析:條件判斷有if、switch等語句,switch可判斷多種可轉換為整數類型的表達式,條件表達式可以是多種類型,且可嵌套使用。75.若有定義intarr[4]={1,2,3,4};則sizeof(arr)的值是()A.4B.8C.16D.32答案:C解析:數組名代表整個數組,sizeof(arr)計算數組所占字節數,int通常占4字節,4個元素共16字節。76.以下關于函數嵌套調用的說法,正確的是()A.函數只能嵌套調用一次B.函數嵌套調用時,內層函數執行完才會繼續執行外層函數C.函數嵌套調用會使程序效率變高D.函數嵌套調用只能是相同類型的函數答案:B解析:函數可多次嵌套調用,內層函數執行完才繼續外層函數,嵌套調用不一定提高效率,可嵌套不同類型函數。77.若有定義inta=5,b=2;則表達式a%b+a/b的值是()A.1B.2C.3D.4答案:C解析:先計算a%b為1,a/b為2,相加得3。78.以下關于指針運算的說法,錯誤的是()A.指針可以進行加法運算B.指針可以進行減法運算C.指針可以進行比較運算D.指針可以和整數進行除法運算答案:D解析:指針可進行加、減、比較運算,但不能和整數進行除法運算。79.若有定義charstr[]="hello";則str[0]的值是()A.'h'B.'e'C.'l'D.'o'答案:A解析:字符數組下標從0開始,str[0]是第一個字符'h'。80.以下關于while循環的說法,正確的是()A.while循環的循環體可以為空B.while循環的條件表達式必須是常量C.while循環只能使用break語句跳出D.while循環不能和for循環嵌套答案:A解析:while循環體可以為空,條件表達式可以是變量或表達式,也可用continue語句,能和for循環嵌套。81.若有定義inta=8,b=3;則表達式a/b*b的值是()A.6B.8C.9D.不確定答案:A解析:整數相除8/3為2,再乘以3得6。82.以下關于結構體數組的說法,正確的是()A.結構體數組的元素只能是結構體類型B.結構體數組不能初始化C.訪問結構體數組元素的成員只能用指針D.結構體數組的大小由第一個元素決定答案:A解析:結構體數組中的每個元素都是結構體類型,所以A正確;結構體數組可以像普通數組一樣進行初始化,B錯誤;訪問結構體數組元素的成員可以用“.”運算符,不只是指針,C錯誤;結構體數組的大小由元素個數和每個元素的大小共同決定,并非由第一個元素決定,D錯誤。83.若有定義inta=4,b=5;則表達式(a>b)?a++:b++的值是()A.4B.5C.6D.不確定答案:B解析:因為a>b為假,所以取冒號后面的值,即b的值5,然后b再自增。84.以下關于函數返回指針的說法,錯誤的是()A.函數可以返回指向局部變量的指針B.函數返回的指針類型要和函數定義的返回類型一致C.返回的指針可以指向動態分配的內存D.返回的指針可以指向全局變量答案:A解析:局部變量在函數執行結束后會被銷毀,返回指向局部變量的指針會導致指針懸空,所以不能返回指向局部變量的指針;函數返回的指針類型要和定義一致,可指向動態分配的內存或全局變量。85.若有定義intarr[6]={1,2,3};則arr[5]的值是()A.0B.1C.3D.不確定答案:A解析:數組部分初始化時,未初始化的元素會自動初始化為0,所以arr[5]的值為0。86.以下關于for循環的執行流程,說法正確的是()A.先執行初始化部分,再判斷條件,執行循環體,最后執行迭代部分B.先判斷條件,再執行初始化部分,執行循環體,最后執行迭代部分C.先執行循環體,再判斷條件,執行初始化部分,最后執行迭代部分D.先執行迭代部分,再判斷條件,執行循環體,最后執行初始化部分答案:A解析:for循環的執行流程是先執行初始化部分,然后判斷條件,若條件為真則執行循環體,最后執行迭代部分,如此循環。87.若有定義int*p,a=100;p=&a;則*&p的值是()A.100B.a的地址C.p的地址D.不確定答案:B解析:&p是取指針p的地址,*&p則是對p的地址進行解引用,得到的就是p存儲的值,也就是a的地址。88.以下關于字符串輸入輸出的說法,錯誤的是()A.可以使用scanf函數輸入字符串B.可以使用printf函數輸出字符串C.使用scanf輸入字符串時會自動添加字符串結束符D.使用gets函數輸入字符串時會自動添加字符串結束符答案:C解析:scanf函數輸入字符串時,遇到空格或換行符就會停止讀取,不會自動添加字符串結束符;可以用scanf和printf進行字符串的輸入輸出,gets函數輸入字符串時會自動添加字符串結束符。89.若有定義struct{intnum;charname[10];}s1={1,"Tom"},s2;s2=s1;則的值是()A."Tom"B.""C.地址值D.不確定答案:A解析:結構體變量可以整體賦值,s2=s1后,s2的成員和s1的成員值相同,所以的值是"Tom"。90.以下關于位運算的說法,正確的是()A.位運算只能用于整數類型B.位運算的優先級高于算術運算C.位運算的結果一定是布爾類型D.位運算不能用于負數答案:A解析:位運算是對二進制位進行操作,只能用于整數類型;位運算優先級低于算術運算;位運算結果是整數類型,不是布爾類型;位運算可以用于負數。91.若有定義intarr[3][2]={{1,2},{3,4},{5,6}};則*(arr[1]+1)的值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論