計算機二級c語言歷年單選題100道及答案_第1頁
計算機二級c語言歷年單選題100道及答案_第2頁
計算機二級c語言歷年單選題100道及答案_第3頁
計算機二級c語言歷年單選題100道及答案_第4頁
計算機二級c語言歷年單選題100道及答案_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機二級c語言歷年單選題100道及答案1.以下關于C語言變量定義的說法,正確的是()A.變量可以不定義直接使用B.變量定義時必須賦初值C.同一作用域內(nèi)變量名可以重復D.變量定義后才能使用答案:D解析:在C語言中,變量必須先定義后使用,同一作用域內(nèi)變量名不能重復,變量定義時不一定要賦初值。2.若有定義inta=3;,則執(zhí)行語句a+=a-=a*a;后,a的值是()A.9B.-12C.0D.3答案:B解析:根據(jù)運算符優(yōu)先級,先算a*a得9,再算a-=9,即a=3-9=-6,最后算a+=-6,即a=-6+(-6)=-12。3.以下能正確表示邏輯關系“a大于等于10且小于20”的C語言表達式是()A.10<=a<20B.a>=10&&a<20C.a>=10||a<20D.10<a<=20答案:B解析:在C語言中,“且”關系用&&表示,所以a大于等于10且小于20應表示為a>=10&&a<20。4.有以下程序段:```cinta=1,b=2,c=3;if(a>b)c=a;elsec=b;```執(zhí)行后,c的值是()A.1B.2C.3D.不確定答案:B解析:因為a=1,b=2,a>b條件不成立,所以執(zhí)行else后的語句,c=b,即c的值為2。5.以下關于for循環(huán)的說法,錯誤的是()A.for循環(huán)可以嵌套使用B.for循環(huán)的循環(huán)體可以為空C.for循環(huán)的三個表達式都可以省略D.for循環(huán)只能用于已知循環(huán)次數(shù)的情況答案:D解析:for循環(huán)不僅能用于已知循環(huán)次數(shù)的情況,也可用于未知循環(huán)次數(shù),通過某些條件來控制循環(huán)結束,它可以嵌套,循環(huán)體可空,三個表達式都能省略。6.若有定義inta[5]={1,2,3,4,5};,則a[3]的值是()A.1B.2C.3D.4答案:D解析:數(shù)組下標從0開始,a[3]表示數(shù)組a的第4個元素,值為4。7.以下關于函數(shù)的說法,正確的是()A.函數(shù)必須有返回值B.函數(shù)名可以和變量名相同C.函數(shù)定義后必須立即調(diào)用D.函數(shù)只能調(diào)用一次答案:B解析:函數(shù)可以沒有返回值(用void類型),函數(shù)定義后不一定要立即調(diào)用,也可多次調(diào)用,函數(shù)名可以和變量名相同。8.若有定義chars[]="hello";,則s數(shù)組的長度是()A.5B.6C.不確定D.4答案:B解析:字符串"hello"在存儲時會自動在末尾加'\0'作為字符串結束標志,所以數(shù)組長度為6。9.以下關于指針的說法,錯誤的是()A.指針可以指向變量B.指針可以進行算術運算C.指針變量可以不初始化D.指針和數(shù)組是完全相同的概念答案:D解析:指針和數(shù)組有密切聯(lián)系但不是完全相同的概念,指針可以指向變量,可進行算術運算,指針變量可以不初始化。10.有以下程序:```c#include<stdio.h>intmain(){intx=5;printf("%d\n",(x++)*2);return0;}```程序運行后的輸出結果是()A.10B.12C.11D.不確定答案:A解析:x++是先使用x的值再自增,所以先計算5*2得10,之后x變?yōu)?。11.若有定義inta=1,b=2;,則表達式a>b?a:b的值是()A.1B.2C.不確定D.0答案:B解析:因為a=1,b=2,a>b條件不成立,所以表達式的值為冒號后面的值,即b的值2。12.以下關于while循環(huán)的說法,正確的是()A.while循環(huán)的循環(huán)體至少執(zhí)行一次B.while循環(huán)的條件表達式可以是任意表達式C.while循環(huán)不能嵌套其他循環(huán)D.while循環(huán)只能用于無限循環(huán)答案:B解析:while循環(huán)是先判斷條件再執(zhí)行循環(huán)體,循環(huán)體可能一次都不執(zhí)行,它可以嵌套其他循環(huán),也可用于有限循環(huán),條件表達式可以是任意表達式。13.若有定義inta[3][4];,則對數(shù)組元素a[1][2]的正確引用是()A.*(*(a+1)+2)B.*(a+1+2)C.(*(a+1))[2]D.以上都不對答案:A解析:二維數(shù)組可以通過指針的方式引用元素,a+1指向第二行,*(a+1)指向第二行首元素,*(a+1)+2指向第二行第3個元素,*(*(a+1)+2)就是該元素。14.以下關于函數(shù)參數(shù)傳遞的說法,正確的是()A.函數(shù)參數(shù)傳遞只有值傳遞一種方式B.地址傳遞可以改變實參的值C.值傳遞時,形參的改變會影響實參D.函數(shù)參數(shù)傳遞只能是變量答案:B解析:函數(shù)參數(shù)傳遞有值傳遞和地址傳遞,值傳遞形參改變不影響實參,地址傳遞可通過指針改變實參的值,參數(shù)也可以是常量等。15.若有定義charc='A';,則執(zhí)行語句c=c+32;后,c的值是()A.'A'B.'a'C.'B'D.'b'答案:B解析:在ASCII碼中,大寫字母和小寫字母相差32,'A'+32得到'a'。16.以下關于do-while循環(huán)的說法,錯誤的是()A.do-while循環(huán)的循環(huán)體至少執(zhí)行一次B.do-while循環(huán)的條件表達式在循環(huán)體之后判斷C.do-while循環(huán)可以嵌套使用D.do-while循環(huán)只能用于無限循環(huán)答案:D解析:do-while循環(huán)先執(zhí)行循環(huán)體再判斷條件,循環(huán)體至少執(zhí)行一次,可嵌套使用,也可用于有限循環(huán)。17.若有定義inta[]={1,3,5,7,9};,則數(shù)組元素的個數(shù)是()A.4B.5C.6D.不確定答案:B解析:根據(jù)初始化列表可知數(shù)組有5個元素。18.以下關于宏定義的說法,正確的是()A.宏定義必須在程序開頭B.宏定義只能定義常量C.宏定義在編譯時進行替換D.宏定義的作用域是整個程序答案:C解析:宏定義可以在程序任意位置,可定義常量、表達式等,在編譯時進行簡單的文本替換,作用域從定義處到文件結束或被#undef取消。19.有以下程序:```c#include<stdio.h>voidfunc(int*p){*p=*p+1;}intmain(){inta=5;func(&a);printf("%d\n",a);return0;}```程序運行后的輸出結果是()A.5B.6C.不確定D.0答案:B解析:函數(shù)func通過指針修改了實參a的值,a從5變?yōu)?。20.若有定義inta=10;,則表達式a/=2+3;后,a的值是()A.2B.5C.10D.不確定答案:A解析:先算2+3得5,再算a/=5,即a=a/5=10/5=2。21.以下關于if-else語句嵌套的說法,正確的是()A.if-else語句只能嵌套一層B.嵌套的if-else語句必須有else部分C.嵌套的if-else語句可以根據(jù)需要嵌套多層D.嵌套的if-else語句不能正確處理復雜邏輯答案:C解析:if-else語句可以根據(jù)需要嵌套多層,else部分不是必須的,能處理復雜邏輯。22.若有定義inta[10];,則數(shù)組元素下標的范圍是()A.0-9B.1-10C.0-10D.1-9答案:A解析:數(shù)組下標從0開始,長度為10的數(shù)組下標范圍是0到9。23.以下關于函數(shù)返回值的說法,錯誤的是()A.函數(shù)返回值的類型可以和函數(shù)定義的類型不同B.函數(shù)可以沒有返回值C.函數(shù)返回值可以是指針類型D.函數(shù)返回值可以是數(shù)組名答案:A解析:函數(shù)返回值的類型必須和函數(shù)定義的類型相同,函數(shù)可以沒有返回值(void類型),返回值可以是指針類型,但不能直接返回數(shù)組名。24.若有定義charstr1[]="abc",str2[]="abc";,則以下比較字符串是否相等的正確方法是()A.if(str1==str2)B.if(*str1==*str2)C.if(strcmp(str1,str2)==0)D.if(strcpy(str1,str2))答案:C解析:比較字符串是否相等要用strcmp函數(shù),==比較的是數(shù)組首地址,*str1和*str2比較的是第一個字符,strcpy是字符串復制函數(shù)。25.有以下程序:```c#include<stdio.h>intmain(){inti;for(i=0;i<5;i++){if(i==3)continue;printf("%d",i);}return0;}```程序運行后的輸出結果是()A.01234B.0124C.012D.3答案:B解析:當i==3時,執(zhí)行continue語句,跳過本次循環(huán)的剩余部分,直接進入下一次循環(huán),所以輸出0124。26.以下關于結構體的說法,正確的是()A.結構體成員只能是基本數(shù)據(jù)類型B.結構體變量定義后不能再賦值C.結構體可以嵌套定義D.結構體不能作為函數(shù)參數(shù)答案:C解析:結構體成員可以是基本數(shù)據(jù)類型、數(shù)組、結構體等,結構體變量定義后可以賦值,結構體可以嵌套定義,也可作為函數(shù)參數(shù)。27.若有定義inta=5,b=3;,則表達式a%b的值是()A.1B.2C.3D.0答案:B解析:%是取余運算符,5%3得2。28.以下關于switch語句的說法,錯誤的是()A.switch語句的表達式只能是整型或字符型B.case后面的常量表達式可以相同C.switch語句可以沒有default部分D.break語句可以用于跳出switch語句答案:B解析:case后面的常量表達式不能相同,switch表達式一般為整型或字符型,可沒有default部分,break可跳出switch語句。29.若有定義inta[2][3]={{1,2,3},{4,5,6}};,則a[1][0]的值是()A.1B.4C.5D.6答案:B解析:二維數(shù)組a中,a[1][0]表示第二行第一個元素,值為4。30.以下關于文件操作的說法,正確的是()A.文件只能以文本模式打開B.文件打開后不需要關閉C.fopen函數(shù)返回值是文件指針D.不能對文件進行讀寫操作答案:C解析:文件可以以文本模式或二進制模式打開,打開后需要用fclose關閉,fopen返回文件指針,可對文件進行讀寫操作。31.有以下程序:```c#include<stdio.h>intmain(){intx=10;while(x>0){if(x%2==0)printf("%d",x);x--;}return0;}```程序運行后的輸出結果是()A.108642B.246810C.10987654321D.12345678910答案:A解析:循環(huán)從x=10開始,當x為偶數(shù)時輸出x,然后x減1,直到x不大于0,所以輸出108642。32.若有定義structStudent{charname[20];intage;}stu;,則對結構體成員age的正確引用是()A.stu.ageB.Student.ageC.*stu.ageD.stu->age答案:A解析:對于結構體變量,用.運算符引用成員,所以是stu.age。33.以下關于自增運算符++的說法,正確的是()A.++只能用于變量B.++可以用于常量C.++a和a++的效果完全相同D.++不能用于指針變量答案:A解析:自增運算符++只能用于變量,不能用于常量,++a是先自增再使用,a++是先使用再自增,++可以用于指針變量。34.若有定義inta=2,b=3,c;,則執(zhí)行語句c=a>b?a:b;后,c的值是()A.2B.3C.0D.不確定答案:B解析:因為a=2,b=3,a>b條件不成立,所以c的值為冒號后面的b的值3。35.以下關于for循環(huán)嵌套的說法,正確的是()A.for循環(huán)只能嵌套一層B.嵌套的for循環(huán)的循環(huán)控制變量必須相同C.for循環(huán)可以嵌套多層D.嵌套的for循環(huán)不能正確處理復雜邏輯答案:C解析:for循環(huán)可以根據(jù)需要嵌套多層,循環(huán)控制變量可以不同,能處理復雜邏輯。36.若有定義inta[5]={0};,則數(shù)組元素a[2]的值是()A.0B.1C.2D.不確定答案:A解析:數(shù)組初始化時只給一個元素賦值0,其余元素也會初始化為0,所以a[2]的值為0。37.以下關于函數(shù)遞歸調(diào)用的說法,錯誤的是()A.遞歸調(diào)用必須有結束條件B.遞歸調(diào)用會增加程序的運行時間C.遞歸調(diào)用可以無限進行下去D.遞歸調(diào)用可以解決一些復雜問題答案:C解析:遞歸調(diào)用必須有結束條件,否則會導致棧溢出,遞歸會增加運行時間,但可解決一些復雜問題。38.若有定義chars[]="123";,則strlen(s)的值是()A.3B.4C.不確定D.0答案:A解析:strlen函數(shù)返回字符串的長度,不包括'\0',所以"123"的長度為3。39.有以下程序:```c#include<stdio.h>voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){intx=5,y=10;swap(&x,&y);printf("%d%d\n",x,y);return0;}程序運行后的輸出結果是()A.510B.105C.不確定D.00答案:B解析:函數(shù)swap通過指針交換了實參x和y的值,所以輸出105。40.若有定義inta=8,b=4;,則表達式a/b的值是()A.2B.2.0C.8D.4答案:A解析:兩個整型相除結果為整型,8/4得2。41.以下關于條件運算符?:的說法,正確的是()A.條件運算符只能用于簡單的條件判斷B.條件運算符的優(yōu)先級高于算術運算符C.條件運算符可以嵌套使用D.條件運算符的結果類型必須是整型答案:C解析:條件運算符可以嵌套使用以處理更復雜的條件判斷,其優(yōu)先級低于算術運算符,結果類型根據(jù)具體情況而定,不只是整型。42.若有定義inta[3][2]={{1,2},{3,4},{5,6}};,則a[2][1]的值是()A.5B.6C.4D.3答案:B解析:二維數(shù)組a中,a[2][1]表示第三行第二個元素,值為6。43.以下關于函數(shù)原型聲明的說法,錯誤的是()A.函數(shù)原型聲明可以省略參數(shù)名B.函數(shù)原型聲明必須在函數(shù)調(diào)用之前C.函數(shù)原型聲明的返回值類型可以和函數(shù)定義不同D.函數(shù)原型聲明可以讓編譯器檢查函數(shù)調(diào)用的正確性答案:C解析:函數(shù)原型聲明的返回值類型必須和函數(shù)定義相同,可以省略參數(shù)名,要在函數(shù)調(diào)用之前聲明,能讓編譯器檢查調(diào)用正確性。44.若有定義charc='9';,則表達式c-'0'的值是()A.9B.'9'C.不確定D.0答案:A解析:在ASCII碼中,字符'0'-'9'是連續(xù)的,字符減去'0'可得到對應的數(shù)字,所以'9'-'0'得9。45.有以下程序:```c#include<stdio.h>intmain(){inti;for(i=1;i<=5;i++){if(i==4)break;printf("%d",i);}return0;}```程序運行后的輸出結果是()A.12345B.123C.45D.1234答案:B解析:當i==4時,執(zhí)行break語句,跳出循環(huán),所以輸出123。46.以下關于共用體的說法,正確的是()A.共用體成員同時占用內(nèi)存B.共用體的大小是所有成員大小之和C.共用體可以嵌套定義D.共用體不能作為函數(shù)參數(shù)答案:C解析:共用體成員共享同一塊內(nèi)存,大小是最大成員的大小,可以嵌套定義,也可作為函數(shù)參數(shù)。47.若有定義inta=7,b=2;,則表達式a/b+a%b的值是()A.3B.4C.5D.6答案:C解析:先算a/b得3,a%b得1,3+1得4。48.以下關于goto語句的說法,錯誤的是()A.goto語句可以隨意跳轉B.goto語句會破壞程序的結構化C.goto語句可以用于跳出多層循環(huán)D.goto語句的使用應盡量避免答案:A解析:goto語句不能隨意跳轉,它會破壞程序的結構化,可用于跳出多層循環(huán),使用應盡量避免。49.若有定義inta[4]={1,3,5,7};,則*(a+2)的值是()A.1B.3C.5D.7答案:C解析:a是數(shù)組首地址,a+2指向數(shù)組的第三個元素,*(a+2)就是該元素的值5。50.以下關于位運算的說法,正確的是()A.位運算只能用于整型數(shù)據(jù)B.位運算的優(yōu)先級高于算術運算C.位運算不能用于負數(shù)D.位運算沒有實際用途答案:A解析:位運算主要用于整型數(shù)據(jù),優(yōu)先級低于算術運算,可以用于負數(shù),有很多實際用途。51.有以下程序:```c#include<stdio.h>intmain(){intx=0;do{printf("%d",x);x++;}while(x<3);return0;}```程序運行后的輸出結果是()A.012B.0123C.123D.0答案:A解析:do-while循環(huán)先執(zhí)行循環(huán)體,再判斷條件,所以輸出012。52.若有定義struct{intnum;charname[10];}s={1001,"Tom"};,則對結構體成員name的正確輸出方式是()A.printf("%d",);B.printf("%s",);C.printf("%c",);D.printf("%f",);答案:B解析:name是字符數(shù)組,用%s格式輸出字符串。53.以下關于邏輯運算符&&和||的說法,正確的是()A.&&和||的優(yōu)先級相同B.&&和||都具有短路特性C.&&和||只能用于整型數(shù)據(jù)D.&&和||不能同時出現(xiàn)在一個表達式中答案:B解析:&&和||都具有短路特性,&&優(yōu)先級高于||,可用于多種類型數(shù)據(jù),能同時出現(xiàn)在一個表達式中。54.若有定義inta[2][2]={{1,2},{3,4}};,則*(a[1])的值是()A.1B.2C.3D.4答案:C解析:a[1]指向第二行首元素,*(a[1])就是第二行第一個元素的值3。55.以下關于函數(shù)重載的說法,錯誤的是()A.C語言支持函數(shù)重載B.函數(shù)重載要求函數(shù)名相同但參數(shù)不同C.函數(shù)重載可以提高代碼的復用性D.函數(shù)重載可以根據(jù)不同的參數(shù)調(diào)用不同的函數(shù)答案:A解析:C語言不支持函數(shù)重載,C++支持,函數(shù)重載要求函數(shù)名相同參數(shù)不同,可提高代碼復用性。56.若有定義chars1[]="abc",s2[]="def";,則執(zhí)行strcat(s1,s2);后,s1的值是()A."abc"B."def"C."abcdef"D."defabc"答案:C解析:strcat函數(shù)用于將s2連接到s1后面,所以s1變?yōu)?abcdef"。57.有以下程序:```c#include<stdio.h>intmain(){inti,sum=0;for(i=1;i<=10;i++){if(i%2==1)continue;sum+=i;}printf("%d\n",sum);return0;}```程序運行后的輸出結果是()A.25B.30C.35D.40答案:B解析:當i為奇數(shù)時執(zhí)行continue跳過,累加偶數(shù),2+4+6+8+10=30。58.以下關于枚舉類型的說法,正確的是()A.枚舉類型的元素必須是整數(shù)B.枚舉類型的元素默認從1開始編號C.枚舉類型可以定義變量D.枚舉類型不能作為函數(shù)參數(shù)答案:C解析:枚舉類型的元素默認從0開始編號,可定義變量,也可作為函數(shù)參數(shù),元素可看作整數(shù)。59.若有定義inta=4,b=5;,則表達式!(a<b)的值是()A.0B.1C.4D.5答案:A解析:a<b為真,值為1,!1得0。60.以下關于數(shù)組作為函數(shù)參數(shù)的說法,正確的是()A.數(shù)組作為函數(shù)參數(shù)時會復制整個數(shù)組B.數(shù)組作為函數(shù)參數(shù)時傳遞的是數(shù)組首地址C.數(shù)組作為函數(shù)參數(shù)時函數(shù)不能修改數(shù)組元素的值D.數(shù)組作為函數(shù)參數(shù)時只能是一維數(shù)組答案:B解析:數(shù)組作為函數(shù)參數(shù)傳遞的是首地址,函數(shù)可修改數(shù)組元素值,多維數(shù)組也可作為參數(shù)。61.有以下程序:```c#include<stdio.h>intmain(){intx=10;if(x>5){if(x>8)printf("A");elseprintf("B");}else{printf("C");}return0;}```程序運行后的輸出結果是()A.AB.BC.CD.無輸出答案:A解析:x=10,滿足x>5,也滿足x>8,所以輸出A。62.若有定義structDate{intyear;intmonth;intday;}d={2023,10,1};,則d.year的值是()A.2023B.10C.1D.不確定答案:A解析:通過結構體變量名和.運算符引用成員,d.year的值為2023。63.以下關于運算符優(yōu)先級的說法,正確的是()A.算術運算符優(yōu)先級高于邏輯運算符B.賦值運算符優(yōu)先級最高C.括號不影響運算符優(yōu)先級D.所有運算符優(yōu)先級都相同答案:A解析:算術運算符優(yōu)先級高于邏輯運算符,賦值運算符優(yōu)先級較低,括號可改變運算順序。64.若有定義inta[3]={1,2,3};,則a[1]++的值是()A.1B.2C.3D.4答案:B解析:a[1]++是先使用a[1]的值再自增,a[1]初始值為2,所以a[1]++的值為2。65.以下關于文件讀寫模式的說法,錯誤的是()A."r"模式用于只讀打開文件B."w"模式用于只寫打開文件,會清空原文件內(nèi)容C."a"模式用于追加寫入文件,不會清空原文件內(nèi)容D.不能同時以讀寫模式打開文件答案:D解析:可以用"r+"、"w+"、"a+"等模式同時以讀寫模式打開文件。66.有以下程序:```c#include<stdio.h>voidfunc(intn){if(n>0){func(n-1);printf("%d",n);}}intmain(){func(3);return0;}```程序運行后的輸出結果是()A.123B.321C.0123D.3210答案:A解析:遞歸調(diào)用,先遞歸到n=0,然后回溯輸出,輸出123。67.若有定義charc='B';,則表達式c+1的值對應的字符是()A.'A'B.'B'C.'C'D.'D'答案:C解析:在ASCII碼中,字符'B'加1得到'C'。68.以下關于循環(huán)控制語句的說法,正確的是()A.break語句只能用于循環(huán)語句B.continue語句只能用于循環(huán)語句C.goto語句只能用于循環(huán)語句D.循環(huán)控制語句只能控制一層循環(huán)答案:B解析:continue語句只能用于循環(huán)語句,break還可用于switch語句,goto可在程序中任意跳轉,循環(huán)控制語句可控制多層循環(huán)。69.若有定義inta[4][4];,則對數(shù)組元素a[2][3]的引用還可以表示為()A.*(a[2]+3)B.*(a+2+3)C.(*(a+2))[3]D.A和C都正確答案:D解析:A選項a[2]指向第三行首元素,a[2]+3指向第三行第4個元素,*(a[2]+3)就是該元素;C選項*(a+2)指向第三行,(*(a+2))[3]也是該元素。70.以下關于預編譯指令的說法,正確的是()A.預編譯指令在運行時處理B.#define指令只能定義常量C.#include指令用于包含頭文件D.預編譯指令不能嵌套使用答案:C解析:預編譯指令在編譯前處理,#define可定義常量、表達式等,可嵌套使用,#include用于包含頭文件。71.有以下程序:```c#include<stdio.h>intmain(){intx=5,y=3;if(x>y){inttemp=x;x=y;y=temp;}printf("%d%d\n",x,y);return0;}```程序運行后的輸出結果是()A.53B.35C.不確定D.00答案:A解析:x>y條件成立,但交換代碼執(zhí)行后,輸出的x和y順序不變,因為交換是在if語句塊的局部變量中進行的,所以輸出53。72.若有定義struct{intnum;floatscore;}student={1001,85.5};,則student.score的值是()A.1001B.85.5C.不確定D.0答案:B解析:通過結構體變量名和.運算符引用成員,student.score的值為85.5。73.以下關于逗號運算符的說法,正確的是()A.逗號運算符的優(yōu)先級最高B.逗號運算符的結果是最后一個表達式的值C.逗號運算符只能用于表達式之間D.逗號運算符不能嵌套使用答案:B解析:逗號運算符優(yōu)先級最低,結果是最后一個表達式的值,可用于各種情況,可嵌套使用。74.若有定義inta[5]={2,4,6,8,10};,則*(a+4)的值是()A.2B.4C.8D.10答案:D解析:a是數(shù)組首地址,a+4指向數(shù)組的第五個元素,*(a+4)就是該元素的值10。75.以下關于函數(shù)返回指針的說法,錯誤的是()A.函數(shù)可以返回指向局部變量的指針B.函數(shù)返回的指針類型要和函數(shù)定義的返回類型一致C.函數(shù)返回指針可以提高程序效率D.函數(shù)返回指針可以訪問動態(tài)分配的內(nèi)存答案:A解析:函數(shù)不能返回指向局部變量的指針,因為局部變量在函數(shù)結束后會銷毀,返回的指針類型要和定義一致,可提高效率,可訪問動態(tài)分配內(nèi)存。76.若有定義chars[]="helloworld";,則s[6]的值是()A.'h'B.''C.'w'D.'o'答案:B解析:數(shù)組下標從0開始,s[6]是字符串中第7個字符,為空格。77.有以下程序:```c#include<stdio.h>intmain(){inti;for(i=0;i<5;i++){if(i==2){i++;continue;}printf("%d",i);}return0;}程序運行后的輸出結果是()A.0134B.01234C.0124D.013答案:A解析:當i等于2時,執(zhí)行i++使i變?yōu)?,然后執(zhí)行continue跳過本次循環(huán)剩余部分進入下一次循環(huán),所以輸出0134。78.若有定義unionData{intnum;charch;}u;,則u占用的內(nèi)存大小是()A.1字節(jié)B.2字節(jié)C.4字節(jié)D.5字節(jié)答案:C解析:共用體成員共享同一塊內(nèi)存,內(nèi)存大小為最大成員的大小,int通常占4字節(jié),所以u占用4字節(jié)。79.以下關于關系運算符的說法,正確的是()A.關系運算符的結果是布爾類型B.關系運算符的優(yōu)先級高于算術運算符C.關系運算符可以用于比較字符串的內(nèi)容D.關系運算符的結果是整數(shù)0或1答案:D解析:關系運算符的結果是整數(shù)0(假)或1(真),優(yōu)先級低于算術運算符,不能直接比較字符串內(nèi)容。80.若有定義inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};,則*(*(a+1)+2)的值是()A.4B.5C.6D.7答案:C解析:a+1指向第二行,*(a+1)指向第二行首元素,*(a+1)+2指向第二行第三個元素,*(*(a+1)+2)就是該元素的值6。81.以下關于函數(shù)的存儲類別說法,正確的是()A.函數(shù)只能是extern存儲類別B.static存儲類別的函數(shù)只能在本文件中調(diào)用C.函數(shù)默認的存儲類別是staticD.存儲類別不影響函數(shù)的調(diào)用方式答案:B解析:函數(shù)默認存儲類別是extern,static存儲類別的函數(shù)具有內(nèi)部鏈接屬性,只能在本文件中調(diào)用,存儲類別會影響函數(shù)的作用域和鏈接性。82.若有定義charstr[]="CProgramming";,則strlen(str)-sizeof(str)的值是()A.-1B.0C.1D.不確定答案:A解析:strlen返回字符串長度不包含'\0',這里為12;sizeof返回數(shù)組所占字節(jié)數(shù),包含'\0',為13,所以結果為12-13=-1。83.有以下程序:```c#include<stdio.h>intmain(){intx=10;while(x>0){if(x%3==0){x-=3;continue;}printf("%d",x);x--;}return0;}```程序運行后的輸出結果是()A.10987654321B.10875421C.10741D.963答案:B解析:當x是3的倍數(shù)時,x減3并跳過本次循環(huán)剩余部分;否則輸出x并減1,所以輸出10875421。84.若有定義structNode{intdata;structNode*next;}*p;,則要給p所指節(jié)點的data成員賦值為10,正確的語句是()A.p.data=10;B.*p.data=10;C.p->data=10;D.(*p).data=10;答案:C解析:p是指針,用->運算符訪問成員,也可用(*p).data,但C選項更簡潔。85.以下關于位左移運算符<<的說法,正確的是()A.位左移運算符只能用于無符號數(shù)B.位左移一位相當于乘以2C.位左移運算符的優(yōu)先級低于算術運算符D.位左移運算符不會改變操作數(shù)的值答案:B解析:位左移運算符可用于有符號和無符號數(shù),左移一位相當于乘以2,優(yōu)先級高于算術運算符,會改變操作數(shù)的值。86.若有定義inta[4]={0,1,2,3};,則a[3]--的值是()A.0B.1C.2D.3答案:D解析:a[3]--是先使用a[3]的值再自減,a[3]初始值為3,所以a[3]--的值為3。87.以下關于字符串處理函數(shù)的說法,錯誤的是()A.strcpy函數(shù)用于復制字符串B.strcmp函數(shù)用于比較字符串大小C.strlen函數(shù)返回字符串的長度包括'\0'D.strcat函數(shù)用于連接字符串答案:C解析:strlen函數(shù)返回字符串長度不包括'\0'。88.有以下程序:```c#include<stdio.h>voidfunc(int*a,intn){inti;for(i=0;i<n;i++){a[i]*=2;}}intmain(){intarr[3]={1,2,3};func(arr,3);printf("%d%d%d\n",arr[0],arr[1],arr[2]);return0;}```程序運行后的輸出結果是()A.123B.246C.369D.不確定答案:B解析:函數(shù)func通過指針修改了數(shù)組元素的值,每個元素乘以2,所以輸出246。89.若有定義inta=7,b=4;,則表達式(a+b)/2的值是()A.5B.5.5C.6D.不確定答案:A解析:先算a+b得11,11/2為整型運算,結果為5。90.以下關于條件判斷語句嵌套的說法,正確的是()A.嵌套的條件判斷語句必須有else部分B.嵌套的層次不能超過3層C.嵌套的條件判斷語句可以更精確地處理復雜邏輯D.嵌套的條件判斷語句會降低程序效率,應避免使用答案:C解析:嵌套的條件判斷語句不一定有else部分,嵌套層次無嚴格限制,可更精確處理復雜邏輯,合理使用不會過度降低效率。91.若有定義inta[2][3]={1,2,3,4,5,6};,則a[1][1]的值是

溫馨提示

  • 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

提交評論