國家計算機二級c語言考試真題100道及答案_第1頁
國家計算機二級c語言考試真題100道及答案_第2頁
國家計算機二級c語言考試真題100道及答案_第3頁
國家計算機二級c語言考試真題100道及答案_第4頁
國家計算機二級c語言考試真題100道及答案_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家計算機二級c語言考試真題100道及答案1.若有定義:inta=5,b=3;則表達式a%b的值是()A.1B.2C.3D.0答案:A解析:“%”是取余運算符,5除以3商1余2,所以5%3的結果是2。2.以下關于C語言中函數(shù)的說法,正確的是()A.函數(shù)必須有返回值B.函數(shù)可以沒有參數(shù)C.函數(shù)名可以和變量名相同D.函數(shù)定義可以嵌套答案:B解析:函數(shù)可以沒有返回值,用void類型;函數(shù)名和變量名不能相同,會產(chǎn)生命名沖突;函數(shù)定義不能嵌套,但函數(shù)調(diào)用可以嵌套;函數(shù)可以沒有參數(shù)。3.已知intx=10;執(zhí)行語句x+=x-=x*x;后,x的值是()A.-180B.180C.0D.-100答案:A解析:先計算x*x得100,然后x-=100,此時x變?yōu)?90,再x+=-90,x最終為-180。4.以下哪個是C語言合法的標識符()A.2abcB.intC._abcD.ab-c答案:C解析:標識符只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,int是關鍵字不能作為標識符,ab-c中有非法字符-。5.若有定義:charch='A';則執(zhí)行語句ch=ch+32;后,ch的值是()A.'a'B.'A'C.'B'D.'b'答案:A解析:在ASCII碼中,大寫字母和小寫字母相差32,'A'加32得到'a'。6.下面關于數(shù)組的說法,錯誤的是()A.數(shù)組元素的下標從0開始B.數(shù)組名代表數(shù)組首元素的地址C.數(shù)組定義時可以不指定大小D.可以通過數(shù)組名和下標訪問數(shù)組元素答案:C解析:數(shù)組定義時必須指定大小,除非同時進行初始化。7.若有定義:intarr[5]={1,2,3,4,5};則arr[3]的值是()A.1B.3C.4D.5答案:C解析:數(shù)組下標從0開始,arr[3]是數(shù)組的第4個元素,值為4。8.以下關于指針的說法,正確的是()A.指針只能指向變量B.指針變量可以不初始化C.指針的類型和它所指向變量的類型必須一致D.指針不能進行算術運算答案:C解析:指針可以指向變量、數(shù)組等;指針變量不初始化會是野指針,很危險;指針可以進行算術運算;指針的類型和它所指向變量的類型必須一致。9.若有定義:int*p,a=10;p=&a;則*p的值是()A.變量a的地址B.指針p的地址C.10D.不確定的值答案:C解析:p指向變量a,*p表示取p所指向地址的值,即a的值10。10.下面哪個是C語言的邏輯與運算符()A.||B.&&C.!D.^答案:B解析:“||”是邏輯或運算符,“!”是邏輯非運算符,“^”是按位異或運算符,“&&”是邏輯與運算符。11.若有定義:inta=2,b=3;則表達式(a<b)?a:b的值是()A.2B.3C.5D.0答案:A解析:這是三目運算符,a<b條件成立,取冒號前的值,即a的值2。12.以下關于循環(huán)結構的說法,正確的是()A.for循環(huán)只能用于已知循環(huán)次數(shù)的情況B.while循環(huán)的循環(huán)體至少執(zhí)行一次C.do-while循環(huán)的循環(huán)體至少執(zhí)行一次D.三種循環(huán)結構不能相互嵌套答案:C解析:for循環(huán)也可用于未知循環(huán)次數(shù)的情況;while循環(huán)先判斷條件,條件不成立循環(huán)體一次都不執(zhí)行;do-while循環(huán)先執(zhí)行循環(huán)體再判斷條件,循環(huán)體至少執(zhí)行一次;三種循環(huán)結構可以相互嵌套。13.若有定義:inti;for(i=0;i<5;i++){if(i==3)break;}循環(huán)結束后i的值是()A.2B.3C.4D.5答案:B解析:當i等于3時,執(zhí)行break語句跳出循環(huán),此時i的值為3。14.下面關于函數(shù)調(diào)用的說法,錯誤的是()A.函數(shù)調(diào)用時實參和形參可以類型不同B.函數(shù)調(diào)用可以作為另一個函數(shù)的參數(shù)C.函數(shù)調(diào)用可以出現(xiàn)在表達式中D.函數(shù)調(diào)用時實參和形參的個數(shù)必須相同答案:A解析:函數(shù)調(diào)用時實參和形參類型必須一致,或者可以進行隱式類型轉換;函數(shù)調(diào)用可以作為另一個函數(shù)的參數(shù),也可以出現(xiàn)在表達式中,實參和形參個數(shù)必須相同。15.若有函數(shù)定義:voidfun(intx){x=x+1;}調(diào)用該函數(shù)時,下面說法正確的是()A.可以改變實參的值B.不能改變實參的值C.實參和形參共用一個內(nèi)存單元D.形參是實參的別名答案:B解析:C語言中函數(shù)參數(shù)傳遞是值傳遞,形參是實參的副本,改變形參的值不會影響實參的值。16.以下關于字符串的說法,正確的是()A.字符串以'\0'結尾B.字符串可以用字符數(shù)組存儲,但不能用指針存儲C.字符串的長度不包括'\0'D.可以用賦值語句直接給字符數(shù)組賦值字符串答案:A解析:字符串以'\0'結尾,字符串既可以用字符數(shù)組存儲,也可以用指針存儲;字符串長度不包括'\0';不能用賦值語句直接給字符數(shù)組賦值字符串。17.若有定義:charstr[]="hello";則strlen(str)的值是()A.5B.6C.7D.不確定答案:A解析:strlen函數(shù)計算字符串長度,不包括'\0',"hello"長度為5。18.下面關于結構體的說法,正確的是()A.結構體成員只能是基本數(shù)據(jù)類型B.結構體變量不能整體賦值C.結構體定義時必須初始化D.結構體可以嵌套定義答案:D解析:結構體成員可以是基本數(shù)據(jù)類型,也可以是其他結構體等;結構體變量可以整體賦值;結構體定義時不一定要初始化;結構體可以嵌套定義。19.若有定義:structStudent{intid;charname[20];}stu;則訪問stu的id成員的正確方式是()A.Student.idB.stu.idC.stu->idD.&stu.id答案:B解析:當使用結構體變量訪問成員時,用“.”運算符,stu是結構體變量,所以用stu.id訪問id成員。20.以下關于文件操作的說法,錯誤的是()A.文件打開后必須關閉B.可以用fopen函數(shù)打開文件C.可以用fwrite函數(shù)向文件中寫入數(shù)據(jù)D.文件操作時不需要判斷文件是否打開成功答案:D解析:文件操作時必須判斷文件是否打開成功,否則后續(xù)操作可能會出錯;文件打開后要關閉;fopen用于打開文件,fwrite用于向文件寫入數(shù)據(jù)。21.若有定義:inta[3][4];則a[1][2]是數(shù)組的第()個元素A.6B.7C.8D.9答案:B解析:二維數(shù)組按行存儲,a[1][2]是第2行第3個元素,前面有1*4+2=6個元素,所以是第7個元素。22.下面關于預編譯指令的說法,正確的是()A.預編譯指令必須以“#”開頭B.預編譯指令可以出現(xiàn)在程序的任何位置C.預編譯指令是在程序運行時處理的D.預編譯指令只能定義常量答案:A解析:預編譯指令必須以“#”開頭,它在編譯前處理,通常放在程序開頭;可以定義常量、宏等;預編譯指令有一定的語法規(guī)則,不是可以出現(xiàn)在任何位置。23.若有定義:inta=10,b=20;則執(zhí)行語句a^=b;b^=a;a^=b;后,a和b的值分別是()A.20,10B.10,20C.10,10D.20,20答案:A解析:通過異或運算可以實現(xiàn)兩個變量值的交換,最終a的值為20,b的值為10。24.以下關于函數(shù)遞歸調(diào)用的說法,錯誤的是()A.遞歸函數(shù)必須有終止條件B.遞歸調(diào)用會增加系統(tǒng)開銷C.遞歸函數(shù)可以沒有返回值D.遞歸調(diào)用不能嵌套答案:D解析:遞歸函數(shù)必須有終止條件,否則會無限遞歸;遞歸調(diào)用會使用??臻g,增加系統(tǒng)開銷;遞歸函數(shù)可以沒有返回值;遞歸調(diào)用可以嵌套。25.若有定義:int*p,arr[5]={1,2,3,4,5};p=arr;則*(p+2)的值是()A.1B.2C.3D.4答案:C解析:p指向數(shù)組arr的首地址,p+2指向數(shù)組的第3個元素,*(p+2)就是第3個元素的值3。26.下面關于switch語句的說法,正確的是()A.switch后面的表達式只能是整型或字符型B.case后面的常量表達式可以重復C.switch語句中必須有default分支D.switch語句只能嵌套一層答案:A解析:switch后面的表達式只能是整型或字符型;case后面的常量表達式不能重復;default分支不是必須的;switch語句可以多層嵌套。27.若有定義:inta=5;則執(zhí)行語句a<<=2;后,a的值是()A.10B.20C.5D.2答案:B解析:“<<=”是左移賦值運算符,a<<=2相當于a=a<<2,5左移2位,相當于乘以2的2次方,結果為20。28.以下關于動態(tài)內(nèi)存分配的說法,正確的是()A.可以用malloc函數(shù)分配任意大小的內(nèi)存B.動態(tài)分配的內(nèi)存不需要釋放C.用malloc函數(shù)分配的內(nèi)存初始值為0D.可以用free函數(shù)釋放靜態(tài)分配的內(nèi)存答案:A解析:malloc函數(shù)可以根據(jù)需要分配任意大小的內(nèi)存;動態(tài)分配的內(nèi)存使用完后必須用free函數(shù)釋放;用malloc函數(shù)分配的內(nèi)存初始值是不確定的;free函數(shù)只能釋放動態(tài)分配的內(nèi)存。29.若有定義:char*str="world";則str存儲的是()A.字符'w'B.字符串"world"C.字符串"world"的首地址D.字符串"world"的長度答案:C解析:str是一個字符指針,它存儲的是字符串"world"的首地址。30.下面關于函數(shù)重載的說法,正確的是()A.C語言支持函數(shù)重載B.函數(shù)重載是指函數(shù)名相同但參數(shù)不同C.函數(shù)重載只和返回值類型有關D.函數(shù)重載的函數(shù)必須在不同的文件中定義答案:B解析:C語言不支持函數(shù)重載;函數(shù)重載是指函數(shù)名相同但參數(shù)不同,和返回值類型無關;函數(shù)重載的函數(shù)在同一文件中定義。31.若有定義:inta=3,b=4;則表達式a>b?a++:b++的值是()A.3B.4C.5D.6答案:B解析:a>b條件不成立,取冒號后的值,即b的值4,然后b自增。32.以下關于continue語句的說法,正確的是()A.continue語句只能用于for循環(huán)B.continue語句會終止整個循環(huán)C.continue語句會跳過本次循環(huán)剩余的語句D.continue語句可以出現(xiàn)在循環(huán)體外答案:C解析:continue語句可用于for、while、do-while循環(huán);它不會終止整個循環(huán),而是跳過本次循環(huán)剩余的語句;它只能出現(xiàn)在循環(huán)體內(nèi)。33.若有定義:intarr[3][3]={{1,2,3},{4,5,6},{7,8,9}};則arr[1][1]的值是()A.1B.5C.6D.8答案:B解析:arr[1][1]是二維數(shù)組第2行第2個元素,值為5。34.下面關于枚舉類型的說法,正確的是()A.枚舉類型的常量值必須從0開始B.枚舉類型的常量可以重復C.枚舉類型的常量可以是任意整數(shù)D.枚舉類型是一種用戶自定義的數(shù)據(jù)類型答案:D解析:枚舉類型的常量值默認從0開始,但可以指定;常量不能重復;常量是整數(shù),但不是任意整數(shù);枚舉類型是用戶自定義的數(shù)據(jù)類型。35.若有定義:enumColor{RED,GREEN,BLUE};enumColorc=GREEN;則c的值是()A.0B.1C.2D.3答案:B解析:枚舉常量RED默認值為0,GREEN為1,BLUE為2,所以c的值為1。36.以下關于指針數(shù)組的說法,正確的是()A.指針數(shù)組的元素只能是指針B.指針數(shù)組不能存儲字符串C.指針數(shù)組的大小必須在定義時確定D.指針數(shù)組的元素不能指向同一類型的變量答案:A解析:指針數(shù)組的元素是指針;可以用指針數(shù)組存儲字符串;指針數(shù)組大小可以在定義時確定,也可以通過初始化來隱式確定;指針數(shù)組的元素可以指向同一類型的變量。37.若有定義:int*p[3];則p是()A.一個指向整型變量的指針B.一個整型數(shù)組C.一個指針數(shù)組,每個元素是指向整型變量的指針D.一個指向指針的指針答案:C解析:int*p[3]定義了一個指針數(shù)組,數(shù)組有3個元素,每個元素是指向整型變量的指針。38.下面關于位運算的說法,錯誤的是()A.位運算只能用于整型數(shù)據(jù)B.按位與運算符“&”可以用于清0某些位C.按位或運算符“|”可以用于置1某些位D.位運算的優(yōu)先級比算術運算高答案:D解析:位運算只能用于整型數(shù)據(jù);按位與“&”可以清0某些位,按位或“|”可以置1某些位;位運算優(yōu)先級比算術運算低。39.若有定義:inta=0x5;則執(zhí)行語句a&=0x3;后,a的值是()A.0x1B.0x2C.0x3D.0x5答案:A解析:將十六進制數(shù)轉換為二進制進行按位與運算,0x5的二進制是0101,0x3的二進制是0011,按位與后結果為0001,即0x1。40.以下關于函數(shù)參數(shù)傳遞方式的說法,正確的是()A.C語言只有值傳遞一種參數(shù)傳遞方式B.地址傳遞可以改變實參的值C.值傳遞時實參和形參占用同一內(nèi)存單元D.地址傳遞時實參和形參是不同類型答案:B解析:C語言有值傳遞和地址傳遞;地址傳遞時形參是實參地址的副本,可通過地址改變實參的值;值傳遞時實參和形參占用不同內(nèi)存單元;地址傳遞時實參和形參類型要匹配。41.若有定義:chars1[10]="abc",s2[10]="def";則使用strcat(s1,s2);后,s1的值是()A."abc"B."def"C."abcdef"D."defabc"答案:C解析:strcat函數(shù)是將s2連接到s1后面,所以s1變?yōu)?abcdef"。42.下面關于typedef的說法,正確的是()A.typedef可以用來定義新的數(shù)據(jù)類型B.typedef只能為基本數(shù)據(jù)類型定義別名C.typedef定義的別名和原類型完全等價D.typedef語句必須放在文件開頭答案:C解析:typedef是為已有的數(shù)據(jù)類型定義別名,不是定義新的數(shù)據(jù)類型;可以為基本數(shù)據(jù)類型、結構體等定義別名;定義的別名和原類型完全等價;typedef語句不一定要放在文件開頭。43.若有定義:typedefintINTEGER;INTEGERa=10;則a的類型是()A.intB.INTEGERC.自定義類型D.不確定答案:A解析:typedef為int定義了別名INTEGER,所以a的類型本質還是int。44.以下關于多維數(shù)組的初始化,錯誤的是()A.inta[2][3]={{1,2},{3,4}};B.inta[2][3]={1,2,3,4};C.inta[][3]={{1,2},{3,4}};D.inta[2][]={{1,2},{3,4}};答案:D解析:多維數(shù)組初始化時,行可以省略,但列不能省略,D選項列省略了,所以錯誤。45.若有定義:inta[5]={1,2,3,4,5};int*p=a+2;則*p的值是()A.1B.2C.3D.4答案:C解析:p指向a[2]的地址,*p就是a[2]的值3。46.下面關于字符數(shù)組和字符串的區(qū)別,說法錯誤的是()A.字符數(shù)組不一定以'\0'結尾B.字符串一定以'\0'結尾C.字符數(shù)組可以存儲非字符串數(shù)據(jù)D.字符數(shù)組和字符串的操作完全相同答案:D解析:字符數(shù)組不一定以'\0'結尾,字符串一定以'\0'結尾,字符數(shù)組可存儲非字符串數(shù)據(jù);字符數(shù)組和字符串操作有不同,如字符串有專門函數(shù)處理。47.若有定義:charstr[]="abc\0def";則strlen(str)的值是()A.3B.7C.6D.0答案:A解析:strlen遇到'\0'就結束計算長度,所以結果是3。48.以下關于文件指針的說法,正確的是()A.文件指針可以指向任意類型的文件B.文件指針只能在文件打開后使用C.文件指針的值是文件的內(nèi)容D.文件指針可以進行算術運算答案:B解析:文件指針在文件打開后才有意義,指向特定的文件;它不是指向任意類型文件;其值是文件的操作位置信息,不是文件內(nèi)容;一般不進行算術運算。49.若有定義:structDate{intyear;intmonth;intday;}d={2024,10,1};則d.month的值是()A.2024B.10C.1D.不確定答案:B解析:通過結構體變量名和成員訪問運算符“.”可訪問成員,d.month的值是10。50.下面關于函數(shù)的返回值,說法錯誤的是()A.函數(shù)可以沒有返回值B.函數(shù)返回值的類型可以和定義的類型不同C.函數(shù)返回值可以是指針類型D.函數(shù)可以返回多個值答案:B解析:函數(shù)可以沒有返回值,用void類型;返回值類型必須和定義的類型一致;可以返回指針類型;C語言函數(shù)不能直接返回多個值。51.若有定義:inta=7,b=3;則表達式a/b的值是()A.2B.2.333...C.3D.0答案:A解析:兩個整型相除,結果為整型,7除以3商2,所以結果是2。52.以下關于邏輯運算符的優(yōu)先級,從高到低排列正確的是()A.!>&&>||B.&&>!>||C.||>&&>!D.&&>||>!答案:A解析:邏輯非“!”優(yōu)先級最高,其次是邏輯與“&&”,最后是邏輯或“||”。53.若有定義:intx=5;則執(zhí)行語句if(x>3)x++;elsex--;后,x的值是()A.4B.5C.6D.7答案:C解析:x>3條件成立,執(zhí)行x++,x的值變?yōu)?。54.下面關于數(shù)組作為函數(shù)參數(shù)的說法,正確的是()A.數(shù)組作為函數(shù)參數(shù)時,傳遞的是數(shù)組的副本B.數(shù)組作為函數(shù)參數(shù)時,函數(shù)內(nèi)不能修改數(shù)組元素的值C.數(shù)組作為函數(shù)參數(shù)時,必須指定數(shù)組的大小D.數(shù)組作為函數(shù)參數(shù)時,傳遞的是數(shù)組首元素的地址答案:D解析:數(shù)組作為函數(shù)參數(shù)傳遞的是首元素地址,不是副本;函數(shù)內(nèi)可通過地址修改數(shù)組元素值;不一定要指定數(shù)組大小。55.若有函數(shù)定義:voidswap(int*a,int*b){intt=*a;*a=*b;*b=t;}調(diào)用該函數(shù)交換兩個變量的值,正確的調(diào)用方式是()A.swap(a,b);B.swap(&a,&b);C.swap(*a,*b);D.swap(&(*a),&(*b));答案:B解析:函數(shù)參數(shù)是指針類型,需要傳遞變量的地址,所以用swap(&a,&b)。56.以下關于字符輸入輸出函數(shù)的說法,正確的是()A.getchar函數(shù)只能接收一個字符B.putchar函數(shù)可以輸出字符串C.scanf函數(shù)不能輸入字符D.printf函數(shù)不能輸出字符答案:A解析:getchar函數(shù)一次只能接收一個字符;putchar只能輸出一個字符;scanf可以輸入字符;printf可以輸出字符。57.若有定義:charch;ch=getchar();輸入'A'后,ch的值是()A.'A'B.65C.'a'D.不確定答案:A解析:getchar接收輸入的字符,輸入'A',ch的值就是'A'。58.下面關于宏定義的說法,錯誤的是()A.宏定義是在編譯時進行替換的B.宏定義可以帶參數(shù)C.宏定義的作用域是整個文件D.宏定義可以嵌套使用答案:C解析:宏定義在編譯時替換;可以帶參數(shù);能嵌套使用;宏定義作用域從定義處到文件結束,可通過#undef提前結束作用域。59.若有宏定義:#defineSQUARE(x)x*x則執(zhí)行語句inta=SQUARE(2+3);后,a的值是()A.25B.11C.10D.不確定答案:B解析:宏替換后為2+3*2+3,先乘后加,結果為11。60.以下關于動態(tài)數(shù)組的說法,正確的是()A.動態(tài)數(shù)組的大小在編譯時確定B.動態(tài)數(shù)組使用完后不需要釋放內(nèi)存C.可以用malloc函數(shù)創(chuàng)建動態(tài)數(shù)組D.動態(tài)數(shù)組只能是一維的答案:C解析:動態(tài)數(shù)組大小在運行時確定;使用完要釋放內(nèi)存;可用malloc函數(shù)創(chuàng)建;可以是多維的。61.若有定義:int*p=(int*)malloc(5*sizeof(int));則p指向的內(nèi)存空間可以存儲()個整型數(shù)據(jù)A.1B.5C.10D.不確定答案:B解析:malloc分配了5個整型大小的內(nèi)存空間,所以可存儲5個整型數(shù)據(jù)。62.下面關于結構體數(shù)組的說法,正確的是()A.結構體數(shù)組的元素只能是結構體B.結構體數(shù)組不能初始化C.結構體數(shù)組的大小必須在定義時確定D.結構體數(shù)組的元素不能通過下標訪問答案:A解析:結構體數(shù)組元素是結構體;可以初始化;大小可在定義時確定或通過初始化隱式確定;可通過下標訪問元素。63.若有定義:structPoint{intx;inty;}points[2]={{1,2},{3,4}};則points[1].x的值是()A.1B.2C.3D.4答案:C解析:points[1]是數(shù)組第二個元素,points[1].x的值是3。64.以下關于文件讀寫模式的說法,正確的是()A."r"模式只能讀取文本文件B."w"模式打開文件時,如果文件不存在會報錯C."a"模式打開文件時,文件指針指向文件開頭D."rb"模式用于以二進制形式讀取文件答案:D解析:“r”模式可讀取文本或二進制文件;“w”模式文件不存在會創(chuàng)建;“a”模式文件指針指向文件末尾;“rb”是以二進制形式讀取文件。65.若要以追加模式打開一個二進制文件"data.bin",正確的打開方式是()A.fopen("data.bin","r");B.fopen("data.bin","w");C.fopen("data.bin","a");D.fopen("data.bin","ab");答案:D解析:“ab”是以追加模式打開二進制文件。66.下面關于指針和數(shù)組的關系,說法錯誤的是()A.數(shù)組名可以看作是一個常量指針B.指針可以指向數(shù)組的元素C.可以用指針遍歷數(shù)組D.數(shù)組和指針是完全相同的概念答案:D解析:數(shù)組名可看作常量指針;指針能指向數(shù)組元素;可用指針遍歷數(shù)組;數(shù)組和指針有區(qū)別,數(shù)組有自己的存儲空間等。67.若有定義:intarr[5]={1,2,3,4,5};int*p=arr;則p[3]等價于()A.*(p+3)B.*p+3C.p+3D.&p[3]答案:A解析:p[3]等價于*(p+3)。68.以下關于條件運算符的說法,正確的是()A.條件運算符是三目運算符B.條件運算符的優(yōu)先級比算術運算符高C.條件運算符的結果類型只能是整型D.條件運算符不能嵌套使用答案:A解析:條件運算符是三目運算符;優(yōu)先級比算術運算符低;結果類型根據(jù)情況而定;可以嵌套使用。69.若有表達式(a>b)?a:(b>c)?b:c;其功能等價于()A.if(a>b)a;elseif(b>c)b;elsec;B.if(a>b)returna;elseif(b>c)returnb;elsereturnc;C.if(a>b)max=a;elseif(b>c)max=b;elsemax=c;D.以上都不對答案:C解析:該表達式功能是找出a、b、c中的最大值并賦值給一個變量,C選項符合。70.下面關于循環(huán)嵌套的說法,正確的是()A.循環(huán)嵌套只能是兩層B.內(nèi)層循環(huán)和外層循環(huán)的控制變量不能相同C.循環(huán)嵌套的執(zhí)行順序是內(nèi)層循環(huán)先執(zhí)行完再執(zhí)行外層循環(huán)D.循環(huán)嵌套可以實現(xiàn)復雜的算法答案:D解析:循環(huán)嵌套可以多層;內(nèi)層和外層控制變量可相同;執(zhí)行順序是外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)完整執(zhí)行;可實現(xiàn)復雜算法。71.若有定義:inti,j;for(i=0;i<3;i++){for(j=0;j<2;j++){printf("%d",i+j);}}輸出結果中最后一個數(shù)字是()A.2B.3C.4D.5答案:A解析:外層循環(huán)3次,內(nèi)層循環(huán)2次,最后一次i為2,j為0,i+j為2。72.以下關于函數(shù)的聲明和定義,說法正確的是()A.函數(shù)聲明和定義可以同時進行B.函數(shù)聲明必須在函數(shù)調(diào)用之前C.函數(shù)定義可以沒有函數(shù)體D.函數(shù)聲明和定義的參數(shù)類型可以不同答案:B解析:函數(shù)聲明和定義可分開;聲明必須在調(diào)用前;定義必須有函數(shù)體;聲明和定義參數(shù)類型要一致。73.若有函數(shù)聲明:intadd(inta,intb);則下面函數(shù)定義正確的是()A.intadd(intx,inty){returnx+y;}B.intadd(inta,intb);{returna+b;}C.add(inta,intb){returna+b;}D.intadd(inta,b){returna+b;}答案:A解析:函數(shù)定義參數(shù)類型和聲明要一致,參數(shù)名可不同,A選項正確。74.下面關于字符串處理函數(shù)的說法,錯誤的是()A.strcpy函數(shù)可以復制字符串B.strcmp函數(shù)可以比較字符串大小C.strlen函數(shù)可以計算字符串長度(包括'\0')D.strcat函數(shù)可以連接字符串答案:C解析:strlen計算字符串長度不包括'\0',其他選項說法正確。75.若有定義:chars1[10]="abc",s2[10]="abd";則strcmp(s1,s2)的值()A.大于0B.小于0C.等于0D.不確定答案:B解析:strcmp比較字符串,按字典序比較,s1小于s2,返回值小于0。76.以下關于結構體指針的說法,正確的是()A.結構體指針不能指向結構體變量B.可以用結構體指針訪問結構體成員C.結構體指針的類型和結構體類型無關D.結構體指針不能進行算術運算答案:B解析:結構體指針可以指向結構體變量;可用指針訪問成員,用“->”運算符;指針類型和結構體類型相關;可進行算術運算。77.若有定義:structStudent{intid;charname[20];}stu;structStudent*p=&stu;則訪問stu的id成員的正確方式是()A.p.idB.*p.idC.p->idD.&p.id答案:C解析:結構體指針用“->”運算符訪問成員,所以是p->id。78.下面關于預編譯指令#ifndef和#endif的作用,說法正確的是()A.防止頭文件重復包含B.定義常量C.進行條件編譯D.引入外部文件答案:A解析:#ifndef和#endif常一起使用構成頭文件保護,防止頭文件被重復包含。定義常量一般用#define;條件編譯常用#ifdef、#ifndef、#else、#endif組合實現(xiàn)更復雜的條件判斷;引入外部文件用#include。79.若有定義:inta=8;則執(zhí)行語句a|=2;后,a的值是()A.2B.8C.10D.16答案:C解析:“|=”是按位或賦值運算符,8的二進制是1000,2的二進制是0010,按位或結果為1010,即10。80.以下關于遞歸函數(shù)的終止條件,說法錯誤的是()A.終止條件是遞歸函數(shù)必須有的B.終止條件可以有多個C.終止條件決定遞歸的深度D.終止條件可以在遞歸函數(shù)中間定義答案:D解析:遞歸函數(shù)必須有終止條件,否則會無限遞歸;可以有多個終止條件;終止條件決定遞歸深度;終止條件通常在遞歸函數(shù)開始處定義,不能在中間隨意定義,以確保能正確結束遞歸。81.若有遞歸函數(shù)定義:intfact(intn){if(n==0||n==1)return1;elsereturnn*fact(n-1);}調(diào)用fact(3)的返回值是()A.3B.6C.9D.12答案:B解析:fact(3)=3*fact(2)=3*2*fact(1)=3*2*1=6。82.下面關于指針運算的說法,錯誤的是()A.指針可以加一個整數(shù)B.指針可以減一個整數(shù)C.兩個指針可以相加D.兩個指針可以相減答案:C解析:指針可以加或減一個整數(shù)來移動指針位置;兩個指針相減可以得到它們之間元素的個數(shù);但兩個指針相加沒有實際意義。83.若有定義:intarr[5]={1,2,3,4,5};int*p1=arr,*p2=arr+3;則p2-p1的值是()A.1B.2C.3D.4答案:C解析:p2-p1得到兩個指針之間元素的個數(shù),p2比p1往后3個元素,所以結果是3。84.以下關于switch語句中break的作用,說法正確的是()A.break語句可以省略B.break語句只能用于switch語句C.沒有break語句,switch語句無法執(zhí)行D.break語句會使程序跳出整個程序答案:A解析:break語句在switch中可省略,省略后會繼續(xù)執(zhí)行后續(xù)case語句;break還可用于循環(huán)語句;沒有break語句,switch語句也能執(zhí)行;break只是跳出switch或循環(huán),不是整個程序。85.若有switch語句:switch(x){case1:printf("one");case2:printf("two");break;case3:printf("three");}當x為1時,輸出結果是()A.oneB.onetwoC.onetwothreeD.不確定答案:B解析:x為1時,執(zhí)行case1后的語句,由于沒有break,繼續(xù)執(zhí)行case2后的語句,遇到break跳出,所以輸出onetwo。86.下面關于字符處理函數(shù)的說法,正確的是()A.isdigit函數(shù)可以判斷字符是否為數(shù)字B.isalpha函數(shù)可以判斷字符是否為大寫字母C.tolower函數(shù)可以將大寫字母轉換為小寫字母,對小寫字母無效D.toupper函數(shù)可以將小寫字母轉換為大寫字母,對大寫字母無效答案:A解析:isdigit函數(shù)用于判斷字符是否為數(shù)字;isalpha函數(shù)判斷字符是否為字母(包括大小寫);tolower函數(shù)對大寫字母轉換為小寫,對小寫字母不變;toupper函數(shù)對小寫字母轉換為大寫,對大寫字母不變。87.若有字符'A',使用tolower('A')后得到的字符是()A.'A'B.'a'C.'B'D.不確定答案:B解析:tolower函數(shù)將大寫字母'A'轉換為小寫字母'a'。88.以下關于動態(tài)內(nèi)存分配函數(shù)calloc的說法,正確的是()A.calloc分配的內(nèi)存空間不會初始化為0B.calloc函數(shù)的參數(shù)和malloc函數(shù)相同C.calloc分配的內(nèi)存空間比malloc更安全D.calloc只能分配一維數(shù)組的內(nèi)存答案:C解析:calloc分配的內(nèi)存空間會初始化為0;參數(shù)和malloc不同,calloc有兩個參數(shù);由于初始化為0,相對更安全;可以分配多維數(shù)組的內(nèi)存。89.若有定義:int*p=(int*)calloc(3,sizeof(int));則p指向的內(nèi)存空間初始值都為()A.隨機值B.0C.1D.不確定答案:B解析:calloc會將分配的內(nèi)存空間初始化為0。90.下面關于函數(shù)指針的說法,正確的是()A.函數(shù)指針不能作為函數(shù)參數(shù)B.函數(shù)指針只能指向一個函數(shù)C.函數(shù)指針的類型由函數(shù)的返回值和參數(shù)決定D.函數(shù)指針不能調(diào)用函數(shù)答案:C解析:函數(shù)指針可以作為函數(shù)參數(shù);可以指向不同的同類型函數(shù);其類型由函數(shù)的返回值和參數(shù)決定;可以通過函數(shù)指針調(diào)用函數(shù)。91.若有函數(shù)定義:intadd(inta,intb){returna+b;}定義一個指向該函數(shù)的指針,正確的是()A.int(*p)(int,int)=add;B.int*p(int,int)=add;C.intp(int,int)=add;D.(*intp)(int,int)=add;答案:A解析:定義函數(shù)指針的格式是返回值類型(*指針名)(參數(shù)類型列表),所以A正確。92.以下關于文件操作函數(shù)fread的說法,正確的是()A.fread只能讀取文本文件B.fread的返回值是實際讀取的元素個數(shù)C.fread的參數(shù)不需要指定讀取的元素大小D.fread讀取文件時文件指針不會移動答案:B解析:fread可讀取二進制文件;返回值是實際讀取的元素個數(shù);參數(shù)需要指定讀取的元素大?。蛔x取時文件指針會移動。93.若

溫馨提示

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

評論

0/150

提交評論