C語言基礎(chǔ)知識單選題100道及答案_第1頁
C語言基礎(chǔ)知識單選題100道及答案_第2頁
C語言基礎(chǔ)知識單選題100道及答案_第3頁
C語言基礎(chǔ)知識單選題100道及答案_第4頁
C語言基礎(chǔ)知識單選題100道及答案_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言基礎(chǔ)知識單選題100道及答案1.以下哪個是C語言中合法的標(biāo)識符?A.2abcB._abcC.intD.abc@答案:B解析:標(biāo)識符只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,int是關(guān)鍵字不能作為標(biāo)識符,@不是合法字符,所以選B。2.在C語言中,若要定義一個整型變量a并初始化為5,正確的語句是?A.inta;a=5;B.inta=5;C.a=5;D.int5=a;答案:B解析:定義并初始化整型變量可以直接在定義時賦值,A是先定義后賦值,C沒有定義類型,D語法錯誤,所以選B。3.以下哪個運算符優(yōu)先級最高?A.+B.*C.=D.&&答案:B解析:在C語言中,算術(shù)運算符*的優(yōu)先級高于+,賦值運算符=和邏輯與運算符&&,所以選B。4.若有定義inta=3,b=4;則表達式a+b>7?1:0的值是?A.1B.0C.7D.無法確定答案:B解析:先計算a+b為7,7不大于7,所以條件表達式的值為0,選B。5.以下哪種循環(huán)結(jié)構(gòu)一定會至少執(zhí)行一次循環(huán)體?A.for循環(huán)B.while循環(huán)C.do-while循環(huán)D.以上都不對答案:C解析:do-while循環(huán)是先執(zhí)行循環(huán)體再判斷條件,所以一定會至少執(zhí)行一次,選C。6.若有數(shù)組定義inta[5]={1,2,3};則a[3]的值是?A.1B.2C.3D.0答案:D解析:數(shù)組初始化時未賦值的元素會自動初始化為0,所以a[3]的值是0,選D。7.以下哪個函數(shù)可以用來輸入一個字符?A.printf()B.scanf()C.getchar()D.putchar()答案:C解析:getchar()用于從標(biāo)準(zhǔn)輸入讀取一個字符,printf是輸出函數(shù),scanf可用于輸入多種類型數(shù)據(jù)但不專門輸入字符,putchar是輸出字符函數(shù),選C。8.若有函數(shù)定義voidfunc(intx){x=x+1;},調(diào)用該函數(shù)后實參的值會改變嗎?A.會B.不會C.可能會D.取決于傳入的實參答案:B解析:C語言中函數(shù)參數(shù)傳遞是值傳遞,形參的改變不會影響實參,所以選B。9.以下關(guān)于指針的說法正確的是?A.指針就是變量B.指針存儲的是變量的值C.指針存儲的是變量的地址D.指針不能進行運算答案:C解析:指針是一種特殊的變量,它存儲的是變量的地址,指針可以進行一些運算,所以選C。10.若有定義int*p,a=5;p=&a;則*p的值是?A.p的地址B.a的地址C.5D.不確定答案:C解析:p指向a的地址,*p表示取p所指向地址的值,即a的值5,選C。11.在C語言中,若要定義一個字符數(shù)組str并初始化為"hello",正確的是?A.charstr[]={'h','e','l','l','o'};B.charstr[]="hello";C.charstr[5]="hello";D.charstr;str="hello";答案:B解析:A沒有字符串結(jié)束符,C數(shù)組長度不夠,D不能直接將字符串賦值給字符變量,B正確,選B。12.以下哪個函數(shù)可以用來比較兩個字符串是否相等?A.strcpy()B.strcat()C.strcmp()D.strlen()答案:C解析:strcmp()用于比較兩個字符串,strcpy是復(fù)制字符串,strcat是連接字符串,strlen是求字符串長度,選C。13.若有定義structStudent{intage;charname[20];};則定義該結(jié)構(gòu)體變量s的正確方式是?A.structs;B.structStudents;C.Students;D.structs.Student;答案:B解析:定義結(jié)構(gòu)體變量需要使用結(jié)構(gòu)體類型名,即structStudents;選B。14.以下關(guān)于文件操作的說法錯誤的是?A.fopen()用于打開文件B.fclose()用于關(guān)閉文件C.fread()用于從文件讀取數(shù)據(jù)D.文件操作不需要檢查文件是否打開成功答案:D解析:在進行文件操作時,必須檢查fopen()的返回值來確定文件是否打開成功,所以D錯誤,選D。15.若有定義enumColor{RED,GREEN,BLUE};則RED的值是?A.0B.1C.2D.不確定答案:A解析:枚舉類型中,第一個枚舉常量的值默認(rèn)為0,后續(xù)依次遞增,所以RED的值是0,選A。16.以下哪個是C語言中的位運算符?A.+B.&&C.|D.=答案:C解析:|是按位或運算符,+是算術(shù)運算符,&&是邏輯與運算符,=是賦值運算符,選C。17.若有定義inta=10;則表達式a>>2的值是?A.2B.3C.4D.5答案:A解析:右移運算符>>將二進制位向右移動,a=10(二進制1010)右移2位后為2(二進制0010),選A。18.在C語言中,以下哪個是正確的函數(shù)聲明形式?A.intfunc();B.func(intx);C.voidfunc;D.intfuncx;答案:A解析:函數(shù)聲明需要指定返回類型、函數(shù)名和參數(shù)類型,B缺少返回類型,C缺少括號,D語法錯誤,選A。19.若有定義inta[3][4];則數(shù)組元素a[1][2]是第幾行第幾列的元素?A.第1行第2列B.第2行第3列C.第2行第2列D.第1行第3列答案:C解析:數(shù)組下標(biāo)從0開始,a[1][2]是第2行第3列,但通常說第2行第2列(按人類習(xí)慣計數(shù)),選C。20.以下關(guān)于宏定義的說法正確的是?A.宏定義是在運行時進行替換的B.宏定義只能定義常量C.宏定義可以帶參數(shù)D.宏定義必須以分號結(jié)尾答案:C解析:宏定義是在編譯預(yù)處理時進行替換,宏定義可以定義常量也可以帶參數(shù),宏定義結(jié)尾不需要分號,選C。21.若有定義inta=5,b=3;則表達式a%b的值是?A.1B.2C.3D.5答案:B解析:%是取余運算符,5%3結(jié)果為2,選B。22.以下哪個是C語言中的邏輯非運算符?A.&&B.||C.!D.~答案:C解析:!是邏輯非運算符,&&是邏輯與,||是邏輯或,~是按位取反,選C。23.若有循環(huán)for(inti=0;i<5;i++){if(i==3)break;},循環(huán)結(jié)束后i的值是?A.2B.3C.4D.5答案:B解析:當(dāng)i等于3時執(zhí)行break語句跳出循環(huán),此時i的值為3,選B。24.以下關(guān)于函數(shù)遞歸調(diào)用的說法錯誤的是?A.遞歸調(diào)用會不斷開辟新的??臻gB.遞歸調(diào)用必須有終止條件C.遞歸調(diào)用效率一定比迭代高D.遞歸調(diào)用可以簡化某些問題的解決答案:C解析:遞歸調(diào)用由于不斷開辟棧空間,效率不一定比迭代高,且必須有終止條件,所以C錯誤,選C。25.若有定義charstr[]="abc";則strlen(str)的值是?A.3B.4C.不確定D.0答案:A解析:strlen()函數(shù)計算字符串長度不包括字符串結(jié)束符'\0',所以長度為3,選A。26.以下哪個函數(shù)可以用來在文件中定位?A.fread()B.fwrite()C.fseek()D.ftell()答案:C解析:fseek()用于在文件中定位,fread是讀取文件,fwrite是寫入文件,ftell是返回文件指針當(dāng)前位置,選C。27.若有定義struct{intx;inty;}point;則訪問point的成員x的正確方式是?A.point.xB.point->xC.*point.xD.point[x]答案:A解析:對于結(jié)構(gòu)體變量,使用.運算符訪問成員,選A。28.以下關(guān)于指針數(shù)組的說法正確的是?A.指針數(shù)組的元素都是指針B.指針數(shù)組不能存儲字符串C.指針數(shù)組和數(shù)組指針是一樣的D.指針數(shù)組只能存儲整數(shù)指針答案:A解析:指針數(shù)組的元素都是指針,可以存儲字符串指針等,指針數(shù)組和數(shù)組指針不同,選A。29.若有定義inta[10];則數(shù)組名a代表的是?A.數(shù)組的第一個元素B.數(shù)組的首地址C.數(shù)組的長度D.數(shù)組的全部元素答案:B解析:數(shù)組名在大多數(shù)情況下代表數(shù)組的首地址,選B。30.以下哪個是C語言中的條件運算符?A.?:B.&&C.||D.!答案:A解析:?:是條件運算符,&&是邏輯與,||是邏輯或,!是邏輯非,選A。31.若有定義inta=7,b=3;則表達式a/b的值是?A.2B.2.333333C.3D.不確定答案:A解析:兩個整數(shù)相除結(jié)果為整數(shù),7/3結(jié)果為2,選A。32.以下關(guān)于do-while循環(huán)和while循環(huán)的區(qū)別說法正確的是?A.do-while循環(huán)先判斷條件再執(zhí)行循環(huán)體B.while循環(huán)至少執(zhí)行一次循環(huán)體C.do-while循環(huán)至少執(zhí)行一次循環(huán)體D.兩者沒有區(qū)別答案:C解析:do-while循環(huán)先執(zhí)行循環(huán)體再判斷條件,所以至少執(zhí)行一次,while循環(huán)先判斷條件,可能一次都不執(zhí)行,選C。33.若有函數(shù)定義intfunc(intx,inty){returnx+y;},調(diào)用func(3,4)的返回值是?A.3B.4C.7D.不確定答案:C解析:函數(shù)返回x+y的值,3+4為7,選C。34.以下關(guān)于字符串和字符數(shù)組的說法錯誤的是?A.字符串一定以'\0'結(jié)尾B.字符數(shù)組可以不存儲字符串C.字符串可以用字符數(shù)組存儲D.字符數(shù)組和字符串完全一樣答案:D解析:字符串是以'\0'結(jié)尾的字符序列,字符數(shù)組可以不存儲字符串,字符數(shù)組和字符串有區(qū)別,選D。35.若有定義int*p,a[5];p=a;則p[2]等價于?A.*(p+2)B.p+2C.*p+2D.&p[2]答案:A解析:指針和數(shù)組有對應(yīng)關(guān)系,p[2]等價于*(p+2),選A。36.以下哪個是C語言中的按位異或運算符?A.&B.|C.^D.~答案:C解析:^是按位異或運算符,&是按位與,|是按位或,~是按位取反,選C。37.若有定義inta=8;則表達式a&3的值是?A.0B.1C.2D.3答案:A解析:8的二進制是1000,3的二進制是0011,按位與結(jié)果為0,選A。38.在C語言中,以下哪個是正確的結(jié)構(gòu)體嵌套定義?A.structA{structB{intx;}b;};B.structA{structB;intx;};C.structA{structB;}b;D.structA{structB{intx;}};答案:A解析:結(jié)構(gòu)體可以嵌套定義,A正確地定義了嵌套結(jié)構(gòu)體,B沒有完整定義structB,C語法錯誤,D缺少成員變量名,選A。39.若有定義FILE*fp;fp=fopen("test.txt","r");若文件打開失敗,fp的值是?A.0B.NULLC.1D.不確定答案:B解析:fopen打開文件失敗返回NULL,選B。40.以下關(guān)于枚舉類型的說法錯誤的是?A.枚舉類型的常量默認(rèn)從0開始遞增B.枚舉類型可以自定義常量的值C.枚舉類型的常量可以進行算術(shù)運算D.枚舉類型的常量是全局變量答案:D解析:枚舉類型的常量不是全局變量,它有自己的作用域,A、B、C說法正確,選D。41.若有定義inta=12;則表達式a|5的值是?A.5B.12C.13D.15答案:D解析:12的二進制是1100,5的二進制是0101,按位或結(jié)果為1111即15,選D。42.以下關(guān)于continue語句的說法正確的是?A.continue語句會跳出整個循環(huán)B.continue語句會結(jié)束本次循環(huán),開始下一次循環(huán)C.continue語句只能用在for循環(huán)中D.continue語句和break語句作用相同答案:B解析:continue語句結(jié)束本次循環(huán),開始下一次循環(huán),它可以用在各種循環(huán)中,和break語句作用不同,選B。43.若有函數(shù)定義voidswap(int*x,int*y){inttemp=*x;*x=*y;*y=temp;},調(diào)用該函數(shù)可以實現(xiàn)什么功能?A.交換兩個整數(shù)的值B.交換兩個指針的值C.交換兩個指針?biāo)赶虻刂返闹礑.以上都不對答案:C解析:函數(shù)通過指針操作交換兩個指針?biāo)赶虻刂返闹?,選C。44.以下關(guān)于字符數(shù)組和字符串的初始化說法錯誤的是?A.charstr[]={'a','b','c'};是合法的字符數(shù)組初始化B.charstr[]="abc";是合法的字符串初始化C.charstr[3]="abc";是合法的字符串初始化D.charstr[4]="abc";是合法的字符串初始化答案:C解析:"abc"長度為3加上字符串結(jié)束符共4個字符,charstr[3]長度不夠,選C。45.若有定義inta[3][2]={{1,2},{3,4},{5,6}};則a[2][1]的值是?A.5B.6C.3D.4答案:B解析:a[2][1]表示第3行第2列元素,值為6,選B。46.以下哪個是C語言中的宏定義指令?A.#includeB.#defineC.#ifdefD.#endif答案:B解析:#define用于宏定義,#include是包含頭文件,#ifdef和#endif用于條件編譯,選B。47.若有定義inta=10,b=20;則表達式(a<b)?a:b的值是?A.10B.20C.30D.不確定答案:A解析:因為a<b成立,所以條件表達式的值為a的值10,選A。48.以下關(guān)于文件操作模式的說法正確的是?A."r"模式只能讀取已存在的文件B."w"模式可以讀取和寫入文件C."a"模式會覆蓋文件原有內(nèi)容D."r+"模式只能寫入文件答案:A解析:"r"模式用于讀取已存在的文件,"w"模式用于寫入文件會覆蓋原有的文件內(nèi)容,"a"模式是追加寫入不會覆蓋原有內(nèi)容,"r+"模式可以讀寫文件,所以選A。49.若有定義structDate{intyear;intmonth;intday;};structDatetoday;以下給today成員賦值正確的是?A.today.year=2024;today.month=10;today.day=1;B.structDate.year=2024;structDate.month=10;structDate.day=1;C.today={2024,10,1};D.today->year=2024;today->month=10;today->day=1;答案:A解析:對于結(jié)構(gòu)體變量,使用.運算符為成員賦值,B語法錯誤,C初始化語法錯誤,D是指針訪問成員的方式,today不是指針,選A。50.以下關(guān)于指針和數(shù)組的關(guān)系說法錯誤的是?A.數(shù)組名可以看作是一個常量指針B.指針可以進行數(shù)組下標(biāo)的操作C.指針和數(shù)組在所有情況下都可以互換使用D.可以通過指針遍歷數(shù)組元素答案:C解析:指針和數(shù)組雖然有緊密聯(lián)系,但并非在所有情況下都可以互換使用,A、B、D說法正確,選C。51.若有定義inta=6;則表達式a<<1的值是?A.3B.6C.12D.24答案:C解析:左移運算符<<將二進制位向左移動,a=6(二進制0110)左移1位后為12(二進制1100),選C。52.以下哪種情況適合使用do-while循環(huán)?A.已知循環(huán)次數(shù)B.循環(huán)條件一開始就不滿足C.循環(huán)體至少要執(zhí)行一次D.循環(huán)體不需要執(zhí)行答案:C解析:do-while循環(huán)的特點是先執(zhí)行循環(huán)體再判斷條件,適合循環(huán)體至少要執(zhí)行一次的情況,選C。53.若有函數(shù)定義intmax(intx,inty){return(x>y)?x:y;},調(diào)用max(7,9)的結(jié)果是?A.7B.9C.16D.2答案:B解析:函數(shù)返回x和y中的較大值,7和9中9較大,選B。54.以下關(guān)于字符串處理函數(shù)strcpy的說法正確的是?A.strcpy函數(shù)返回目標(biāo)字符串的首地址B.strcpy函數(shù)可以復(fù)制任意長度的字符串C.strcpy函數(shù)不會覆蓋目標(biāo)字符串原有內(nèi)容D.strcpy函數(shù)的第一個參數(shù)是源字符串答案:A解析:strcpy函數(shù)將源字符串復(fù)制到目標(biāo)字符串,返回目標(biāo)字符串的首地址,它不會檢查目標(biāo)字符串的長度可能導(dǎo)致溢出,會覆蓋目標(biāo)字符串原有內(nèi)容,第一個參數(shù)是目標(biāo)字符串,選A。55.若有定義int*p,a=15;p=&a;則對指針p進行自增操作p++后,p指向的地址會怎樣變化?A.增加1個字節(jié)B.增加2個字節(jié)C.增加4個字節(jié)(假設(shè)int占4字節(jié))D.不變答案:C解析:指針自增操作會根據(jù)指針?biāo)赶虻臄?shù)據(jù)類型的大小移動地址,int類型通常占4字節(jié),所以增加4個字節(jié),選C。56.以下哪個是C語言中的邏輯或運算符?A.&&B.||C.!D.&答案:B解析:||是邏輯或運算符,&&是邏輯與,!是邏輯非,&是按位與,選B。57.若有循環(huán)for(inti=5;i>0;i--){if(i%2==0)continue;printf("%d",i);},輸出結(jié)果是?A.531B.42C.54321D.135答案:A解析:當(dāng)i為偶數(shù)時執(zhí)行continue跳過本次循環(huán),所以輸出奇數(shù)5、3、1,選A。58.以下關(guān)于函數(shù)參數(shù)傳遞的說法錯誤的是?A.值傳遞會復(fù)制實參的值給形參B.指針傳遞可以改變實參的值C.數(shù)組作為參數(shù)傳遞時是值傳遞D.引用傳遞在C語言中不存在答案:C解析:數(shù)組作為參數(shù)傳遞時實際上傳遞的是數(shù)組的首地址,是地址傳遞不是值傳遞,A、B、D說法正確,選C。59.若有定義charstr1[]="hello",str2[10];strcpy(str2,str1);則str2的內(nèi)容是?A."hello"B."h"C.不確定D.""答案:A解析:strcpy函數(shù)將str1的內(nèi)容復(fù)制到str2,所以str2內(nèi)容為"hello",選A。60.以下關(guān)于結(jié)構(gòu)體和共用體的區(qū)別說法正確的是?A.結(jié)構(gòu)體的成員共享同一塊內(nèi)存空間B.共用體的成員共享同一塊內(nèi)存空間C.結(jié)構(gòu)體和共用體沒有區(qū)別D.共用體中所有成員同時有效答案:B解析:共用體的成員共享同一塊內(nèi)存空間,同一時間只有一個成員有效,結(jié)構(gòu)體成員有各自獨立的內(nèi)存空間,選B。61.若有定義inta=9;則表達式a&7的值是?A.1B.7C.9D.0答案:B解析:9的二進制是1001,7的二進制是0111,按位與結(jié)果為0001即7,選B。62.以下關(guān)于while循環(huán)和for循環(huán)的說法正確的是?A.while循環(huán)不能實現(xiàn)for循環(huán)的功能B.for循環(huán)一定比while循環(huán)效率高C.兩者都可以實現(xiàn)相同的循環(huán)功能D.for循環(huán)只能用于固定次數(shù)的循環(huán)答案:C解析:while循環(huán)和for循環(huán)都可以實現(xiàn)各種循環(huán)功能,效率高低取決于具體情況,for循環(huán)也可用于不固定次數(shù)的循環(huán),選C。63.若有函數(shù)定義voidprintArray(intarr[],intn){for(inti=0;i<n;i++){printf("%d",arr[i]);}},調(diào)用該函數(shù)可以實現(xiàn)什么功能?A.打印數(shù)組的首元素B.打印數(shù)組的所有元素C.打印數(shù)組的長度D.以上都不對答案:B解析:函數(shù)通過循環(huán)遍歷數(shù)組并打印所有元素,選B。64.以下關(guān)于字符串長度和字符數(shù)組長度的說法錯誤的是?A.字符串長度不包括字符串結(jié)束符B.字符數(shù)組長度可以大于字符串長度C.字符數(shù)組長度必須等于字符串長度D.可以通過strlen函數(shù)獲取字符串長度答案:C解析:字符數(shù)組長度可以大于字符串長度,不一定要等于,A、B、D說法正確,選C。65.若有定義inta[4]={1,3,5,7};int*p=a;則*(p+2)的值是?A.1B.3C.5D.7答案:C解析:p指向數(shù)組a的首地址,p+2指向數(shù)組的第3個元素,*(p+2)為5,選C。66.以下哪個是C語言中的按位取反運算符?A.&B.|C.^D.~答案:D解析:~是按位取反運算符,&是按位與,|是按位或,^是按位異或,選D。67.若有定義inta=11;則表達式~a的值是?A.-12B.12C.-11D.11答案:A解析:11的二進制是00001011,按位取反后為11110100,這是補碼形式,轉(zhuǎn)換為原碼為-12,選A。68.在C語言中,以下哪個是正確的函數(shù)調(diào)用形式?A.func;B.func(1,2);C.func=1;D.func[1,2];答案:B解析:函數(shù)調(diào)用需要函數(shù)名和括號及參數(shù),A沒有括號和參數(shù),C賦值語法錯誤,D使用方括號錯誤,選B。69.若有定義FILE*fp;fp=fopen("data.txt","w");若要向文件寫入一個整數(shù)n,正確的是?A.fwrite(&n,sizeof(int),1,fp);B.fread(&n,sizeof(int),1,fp);C.fseek(&n,sizeof(int),1,fp);D.ftell(&n,sizeof(int),1,fp);答案:A解析:fwrite用于向文件寫入數(shù)據(jù),fread用于讀取文件,fseek用于定位文件指針,ftell用于獲取文件指針位置,選A。70.以下關(guān)于枚舉類型和常量的說法正確的是?A.枚舉類型的常量不能用于算術(shù)運算B.枚舉類型的常量和#define定義的常量一樣C.枚舉類型的常量有自己的作用域D.枚舉類型的常量只能是整數(shù)答案:C解析:枚舉類型的常量有自己的作用域,它可以用于算術(shù)運算,和#define定義的常量有區(qū)別,其常量默認(rèn)是整數(shù)但也可自定義為其他值,選C。71.若有定義inta=13,b=5;則表達式a^b的值是?A.8B.18C.12D.10答案:A解析:13的二進制是1101,5的二進制是0101,按位異或結(jié)果為1000即8,選A。72.以下關(guān)于break語句和goto語句的說法錯誤的是?A.break語句可以跳出循環(huán)B.goto語句可以無條件轉(zhuǎn)移程序執(zhí)行流程C.break語句只能用在循環(huán)和switch語句中D.goto語句沒有任何缺點答案:D解析:goto語句會使程序結(jié)構(gòu)混亂,降低代碼可讀性和可維護性,有明顯缺點,A、B、C說法正確,選D。73.若有函數(shù)定義intsum(intarr[],intn){ints=0;for(inti=0;i<n;i++){s+=arr[i];}returns;},調(diào)用sum函數(shù)可以計算什么?A.數(shù)組的平均值B.數(shù)組的最大值C.數(shù)組的元素個數(shù)D.數(shù)組的元素總和答案:D解析:函數(shù)通過循環(huán)累加數(shù)組元素的值并返回,可計算數(shù)組元素總和,選D。74.以下關(guān)于字符串比較和字符比較的說法正確的是?A.字符串比較和字符比較是一樣的B.字符串比較需要使用strcmp函數(shù)C.字符比較也需要使用strcmp函數(shù)D.字符串比較可以直接用==運算符答案:B解析:字符串比較需要使用strcmp函數(shù),字符比較可以直接用==運算符,兩者不同,選B。75.若有定義int*p,a[5]={2,4,6,8,10};p=a+3;則*p的值是?A.2B.4C.6D.8答案:D解析:p指向數(shù)組a的第4個元素,*p為8,選D。76.以下哪個是C語言中的賦值運算符?A.+B.=C.==D.!=答案:B解析:=是賦值運算符,+是算術(shù)運算符,==是等于比較運算符,!=是不等于比較運算符,選B。77.若有循環(huán)while(1){if(條件)break;},該循環(huán)會怎樣?A.一次都不執(zhí)行B.執(zhí)行一次C.無限循環(huán),直到條件滿足跳出D.語法錯誤答案:C解析:while(1)構(gòu)成無限循環(huán),當(dāng)條件滿足時執(zhí)行break跳出循環(huán),選C。78.以下關(guān)于函數(shù)的返回值說法錯誤的是?A.函數(shù)可以沒有返回值B.函數(shù)的返回值類型必須和定義時一致C.函數(shù)可以返回數(shù)組D.函數(shù)可以返回指針答案:C解析:函數(shù)不能直接返回數(shù)組,但可以返回指向數(shù)組的指針,A、B、D說法正確,選C。79.若有定義charstr[]="world";則str[0]的值是?A.'w'B.'o'C.'r'D.'l'答案:A解析:數(shù)組下標(biāo)從0開始,str[0]是字符串的第一個字符'w',選A。80.以下關(guān)于文件操作中fclose函數(shù)的說法正確的是?A.fclose函數(shù)用于打開文件B.fclose函數(shù)關(guān)閉文件后可以繼續(xù)操作文件C.fclose函數(shù)關(guān)閉文件會釋放相關(guān)資源D.fclose函數(shù)關(guān)閉文件失敗不會有任何影響答案:C解析:fclose函數(shù)用于關(guān)閉文件并釋放相關(guān)資源,關(guān)閉后不能繼續(xù)操作文件,關(guān)閉失敗可能導(dǎo)致數(shù)據(jù)丟失等問題,選C。81.若有定義structPoint{floatx;floaty;};structPointp1={1.0,2.0},p2;p2=p1;則p2的成員x的值是?A.0.0B.1.0C.2.0D.不確定答案:B解析:結(jié)構(gòu)體變量可以直接賦值,p2賦值為p1后,p2的成員x值為1.0,選B。82.以下關(guān)于指針和地址的說法錯誤的是?A.指針存儲的是地址B.地址可以直接賦值給指針C.指針和地址是完全相同的概念D.可以通過指針訪問地址中的數(shù)據(jù)答案:C解析:指針是存儲地址的變量,和地址概念不同,A、B、D說法正確,選C。83.若有定義inta=14;則表達式a>>2的值是?A.2B.3C.4D.5答案:B解析:14的二進制是1110,右移2位后為0011即3,選B。84.以下關(guān)于for循環(huán)的三個表達式說法正確的是?A.三個表達式都必須存在B.第一個表達式只能用于變量初始化C.第二個表達式必須是布爾表達式D.第三個表達式只能是自增或自減操作答案:C解析:for循環(huán)的第二個表達式必須是布爾表達式用于判斷循環(huán)條件,三個表達式都可以省略,第一個表達式可用于其他操作,第三個表達式也可以是其他操作,選C。85.若有函數(shù)定義intfactorial(intn){if(n==0||n==1)return1;elsereturnn*factorial(n-1);},該函數(shù)實現(xiàn)了什么功能?A.計算n的平方B.計算n的階乘C.計算n的立方D.計算n的倒數(shù)答案:B解析:函數(shù)通過遞歸的方式計算n的階乘,選B。86.以下關(guān)于字符串連接函數(shù)strcat的說法正確的是?A.strcat函數(shù)返回源字符串的首地址B.strcat函數(shù)會覆蓋目標(biāo)字符串原有內(nèi)容C.strcat函數(shù)會將源字符串連接到目標(biāo)字符串后面D.strcat函數(shù)可以連接任意長度的字符串答案:C解析:strcat函數(shù)將源字符串連接到目標(biāo)字符串后面,返回目標(biāo)字符串的首地址,不會覆蓋目標(biāo)字符串原有內(nèi)容,連接時要注意目標(biāo)字符串的空間大小,選C。87.若有定義int*p,a=20;p=&a;*p=*p+5;則a的值是?A.20B.25C.5D.不確定答案:B解析:通過指針修改所指向變量的值,a的值變?yōu)?5,選B。88.以下哪個是C語言中的邏輯與運算符?A.&&B.||C.!D.^答案:A解析:&&是邏輯與運算符,||是邏輯或,!是邏輯非,^是按位異或,選A。89.若有循環(huán)for(inti=0;i<10;i++){if(i%3==0)continue;printf("%d",i);},輸出結(jié)果中不會包含以下哪個數(shù)?A.0B.1C.2D.3答案:D解析:當(dāng)i能被3整除時執(zhí)行continue跳過本次循環(huán),所以輸出結(jié)果中不會包含3,選D。90.以下關(guān)于函數(shù)的參數(shù)默認(rèn)值說法正確的是?A.C語言支持函數(shù)參數(shù)默認(rèn)值B.C語言不支持函數(shù)參數(shù)默認(rèn)值C.函數(shù)參數(shù)默認(rèn)值可以在任何位置設(shè)置D.函數(shù)參數(shù)默認(rèn)值只能是常量答案:B解析:C語言不支持函數(shù)參數(shù)默認(rèn)值,這與C++等語言不同,所以選B。91.若有定義charstr[]="programming";則strlen(str)-sizeof(str)的值是?A.-1B.0C.1D.無法確定答案:A解析:strlen計算字符串長度不包含結(jié)束符,這里為11;sizeof計算數(shù)組大小包含結(jié)束符,這里為12,所以結(jié)果是11-12=-1,選A。92.若有定義inta[2][3]={{1,2,3},{4,5,

溫馨提示

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

最新文檔

評論

0/150

提交評論