2024全國計算機二級考試題庫單選題100道及答案_第1頁
2024全國計算機二級考試題庫單選題100道及答案_第2頁
2024全國計算機二級考試題庫單選題100道及答案_第3頁
2024全國計算機二級考試題庫單選題100道及答案_第4頁
2024全國計算機二級考試題庫單選題100道及答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2024全國計算機二級考試題庫單選題100道及答案

1.以下關于c語言變量定義的說法,正確的是()

A.變量定義可以放在函數體的任何位置

B.變量只能在函數開頭定義

C.變量定義后不能再賦值

D.變量定義時必須賦初值

答案:A

而析:在C語言中,變量定義可以放在函數體的任何位置,并非只能在開頭,定義后可再

賦值,也不一定要賦初值。

2.若有定義inta=5;,則執(zhí)行語句a+=a-=a*a;后,a的值是()

A.O

B.-40

C.40

D.25

答案:B

解析:根據運算符優(yōu)先級,先算a*a為25,然后a-=25,此時a為-20,最后a+=-20,

a為-40?

3.以下能正確定義一維數組的語句是()

A.inta[5]={0,1,2,3,4};

B.inta[]={};

C.inta[5]=(0,1,2,3,4);

D.inta(5)=[0,1,2,3,4};

答案:A

解析:選項B空初始化列表錯誤;選項C初始化應用花括號;選項D數組定義用方括號。

4.對于函數調用strcpy(strl,str2),以下說法錯誤的是()

A.該函數用于將str2的內容復制到strl中

B.strl的空間要足夠大以容納str2的內容

C.復制過程會包括字符串結束符'0'

D.該函數返回str2的首地址

答案:D

解析:strcpy函數返回strl的首地址,而不是str2的首地址。

5.以下關于C語言中循環(huán)語句的說法,錯誤的是()

A.for循環(huán)可以用于遍歷數組

B.while循環(huán)先判斷條件再執(zhí)行循環(huán)體

C.do-while循環(huán)至少執(zhí)行一次循環(huán)體

D.循環(huán)語句中不能使用break語句

答案:D

解析:循環(huán)語句中可以使用break語句來提前結束循環(huán)。

6.若有定義chars[]="hello";,則s數組的長度是()

A.5

B.6

C.4

D.不確定

答案:B

解析:字符串"hello”包含5個字符,但在C語言中字符串以結尾,所以數組長度為6。

7.以下能正確表示邏輯關系”大于等于10且小于20”的C語言表達式是()

A.10<=a<20

B.a>=10&&a<20

C.a>=10||a<20

D.!(a<10||a>=20)

答藁:B

解析:選項A這種寫法不能正確表達邏輯關系;選項C是或關系;選項D雖邏輯等價但不

如選項B直觀。

8.若有函數定義voidfun(int*p){*p=*p+l;},以下調用正確的是()

A.inta=5;fun(a);

B.inta=5;fun(&a);

C.int*p;fun(p);

D.inta=5;int*p=&a;fun(*p);

答案:B

解析:函數參數是指針,調用時要傳入變量的地址,選項B正確。

9.以下關于C語言中指針的說法,正確的是()

A.指針變量只能指向整數類型的變量

B.指針變量的值是它所指向變量的地址

C.指針變量不能進行算術運算

D.指針變量定義后不需要初始化

答案:B

解析:指針可指向各種類型變量;指針能進行算術運算;指針定義后最好初始化,否則可能

是野指針。

10.若有定義inta[3][4];,則對數組元素a[l]⑵的正確引用是()

A.*(a[l]+2)

B.*(a+1+2)

C.*(*(a+1)+2)

D.a[l*4+2]

答案:C

解析:二維數組可看作數組的數組,可通過*(*(a+1)+2)來引用。

11.以下關于C語言中宏定義的說法,錯誤的是()

A.宏定義是在編譯預處理階段進行替換的

B.宏定義可以帶參數

C.宏定義可以嵌套

D.宏定義的作用域是從定義處到文件結束,不能改變

答案:D

解析:可以用#undef來取消宏定義,改變其作用域。

12.若有定義inta=10,b=20;,則執(zhí)行語句2人=1?;1)人=W2人=1);后,2和6的值分別是()

A.10,20

B.20,10

C.10,10

D.20,20

答案:B

解析:通過異或運算可以實現兩個變量值的交換。

13.以下關于C語言中文件操作的說法,正確的是()

A.打開文件時必須指定讀寫模式

B.文件關閉后可以繼續(xù)對其進行讀寫操作

C.fgetc函數只能從文本文件中讀取字符

D.fputs函數不能向二進制文件中寫入字符串

答藁:A

解析:打開文件必須指定讀寫模式;文件關閉后不能再操作;fgetc和fputs可用于二進制文

件。

14.若有定義struct{intx;inty;}s={1,2};,則以下對s成員的引用正確的是()

A.s.x=3;

B.s->x=3;

C.(*s).x=3;

D.s[x]=3;

答案:A

解析:s是結構體變量,用點運算符訪問成員,選項A正確。

15.以下關于C語言中函數的說法,錯誤的是()

A,函數可以沒有返回值

B.函數可以有多個參數

C.函數定義和函數聲明可以放在不同的文件中

D.函數調用時參數傳遞只能是值傳遞

答案:D

解析:C語言函數調用參數傳遞有值傳遞和地址傳遞。

16.若有定義inta=5,b=3;,則表達式a/b的值是()

A.1

B.1.666667

C.2

D.不確定

答案:A

解析:兩個整數相除結果為整數,舍去小數部分。

17.以下關于C語言中條件運算符的說法,正確的是()

A.條件運算符是三元運算符

B.條件運算符的優(yōu)先級高于賦值運算符

C.條件運算符可以嵌套使用

D.以上都對(此選項不選,按要求生成正確選項)

答案:A

解析:條件運算符是三元運算符,優(yōu)先級低于賦值運算符,雖可嵌套但本題選正確描述條件

運算符本質的選項A。

18.若有定義chare=A';,則執(zhí)行語句c=c+32;后,c的值是()

A.'a'

B.'A'

C.'32'

D.不確定

答案:A

解析:大寫字母和小寫字母ASCH碼相差32,'A,加32變?yōu)橐恕?/p>

19.以下關于C語言中數組名的說法,錯誤的是()

A.數組名代表數組首元素的地址

B.數組名是一個常量指針

C.數組名可以進行自增自減運算

D.數組名作為函數參數傳遞時會退化為指針

答案:C

解析:數組名是常量指針,不能進行自增自減運算。

20.若有函數定義H由11(血2,血口{也11012+比},以下調用該函數的語句正確的是()

A.intc=fun(3,4);

B.fun(3,4);

C.intc;c=fun(3);

D.intc;c=fun();

答案:A

解析:函數調用要傳入正確數量和類型的參數,選項A正確。

21.以下關于C語言中位運算的說法,正確的是()

A.位運算只能對整數類型的數據進行操作

B.位運算的速度比算術運算慢

C.位運算不能用于判斷一個數的奇偶性

D.位運算只能進行按位與、按位或和按位異或

答案:A

而析:位運算針對整數類型;位運算速度快;可通過位運算判斷奇偶;還有按位取反、左移、

右移等位運算。

22.若有定義inta[10];,則以下對數組元素的引用錯誤的是()

A.a[0]

B.a[10]

C.a[5]

D.a[9]

答案:B

解析:數組下標從0開始,a[10]越界。

23.以下關于C語言中字符串處理函數的說法,錯誤的是()

A.strlen函數返回字符串的長度不包括,0'

B.strcat函數用于連接兩個字符串

C.strcmp函數比較字符串時是比較字符的ASCII碼值

D.strstr函數返回的是字符串的長度

答案:D

解析:strstr函數返回子串在主串中首次出現的地址,不是字符串長度。

24.若有定義int*p,a=10;,則以下語句正確的是()

A.p=a;

B.p=&a;

C.*p=a;

D.*p=&a;

答案:B

解析:指針p要存儲變量a的地址,選項B正確。

25.以下關于C語言中函數遞歸調用的說法,錯誤的是()

A.遞歸調用是函數自己調用自己

B.遞歸調用必須有終止條件

C.遞歸調用的效率一定比迭代高

D.遞歸調用可能會導致棧溢出

答案:C

解析:遞歸調用不一定比迭代效率高,可能會有更多的函數調用開銷。

26.若有定義floatf=3.14;,則以下語句正確的是()

A.inti=f;

B.inti=(int)f;

C.inti;i=f;

D.inti;i=&f;

答案:B

解析:將浮點數轉換為整數需要強制類型轉換,選項B正確。

27.以下關于C語言中結構體的說法,正確的是()

A.結構體成員可以是不同類型的數據

B.結構體變量不能作為函數參數傳遞

C.結構體類型定義后不能再定義新的結構體變量

D.結構體成員只能是基本數據類型

答案:A

解析:結構體成員可以是不同類型;結構體變量可作為函數參數;可定義多個同類型結構體

變量;成員也可以是其他結構體等。

28.若有定義inta⑵[3]={{1,2,3},{4,5,6}};,則的值是()

A.1

B.4

C.5

D.6

答案:B

解析:二維數組中是第二行第一列元素,值為4。

29.以下關于C語言中預處理指令的說法,錯誤的是()

A.預處理指令以#開頭

B.預處理指令在編譯前進行處理

C.預處理指令可以出現在程序的任何位置

D.預處理指令可以進行算術運算

答案:D

解析:預處理指令主要用于文件包含、宏定義等,不能進行算術運算。

30.若有定義charsl口廿'abc",s2[]=”deF;,則執(zhí)行語句strcat(sl,s2);后,si的內容是()

A."abcdef,

B.nabc"

C.ndefn

D.不確定

答案:A

解析:strcat函數將s2連接到si后面。

31.以下關于C語言中函數參數傳遞的說法,正確的是()

A.值傳遞是將實參的值復制給形參

B.地址傳遞會改變實參的值

C.函數參數傳遞可以是引用傳遞

D.以上都對(此選項不選,按要求生成正確選項)

答案:A

而析:值傳遞是復制值;地址傳遞可通過指針間接改變實參值,但C語言無引用傳遞。選

描述值傳遞本質的選項A。

32.若有定義inta=1,b=2,c;,則執(zhí)行語句c=a<b?a:b;后,c的值是()

A.1

B.2

C.O

D.不確定

答案:A

解析:條件表達式中a<b為真,取a的值,所以c為:I。

33.以下關于C語言中文件打開模式的說法,錯誤的是()

A."r”模式用于只讀打開文件

B."w"模式會清空文件原有內容

C."a”模式只能在文件末尾追加內容

D."rb”模式用于以文本方式打開二進制文件

答案:D

解析:“rb”模式是以二進制方式打開文件用于只讀。

34.若有定義structStudent(charname[20];intage;}stu;,則以下對stu成員賦值正確的是(

A.="Tom";

B.strcpy(,"Tom");

C.stu.age="20";

D.stu->age=20;

答案:B

解析:字符數組不能直接用賦值號賦值,用strcpy函數;age是整數類型,不能賦字符串;

stu是變量用點運算符。

35.以下關于C語言中循環(huán)嵌套的說法,正確的是()

A.循環(huán)嵌套可以是不同類型的循環(huán)嵌套

B.循環(huán)嵌套的層數沒有限制

C.內層循環(huán)執(zhí)行完一次,外層循環(huán)才執(zhí)行一次

D.循環(huán)嵌套會降低程序的執(zhí)行效率

答案:A

薛析:可以不同類型循環(huán)嵌套;嵌套層數有限制;內層循環(huán)全部執(zhí)行完外層循環(huán)才執(zhí)行下一

次;合理嵌套不一定降低效率。

36.若有定義inta=10;,則執(zhí)行語句a*=2+3;后,a的值是()

A.20

B.30

C.50

D.100

答案:C

解析:先算2+3為5,然后a*=5,a變?yōu)?0。

37.以下關于C語言中指針和數組的關系,錯誤的是()

A.可以用指針來訪問數組元素

B.數組名可以隱式轉換為指針

C.指針和數組是完全相同的概念

D.指針可以進行算術運算來遍歷數組

答案:C

解析:指針和數組有聯系但不是完全相同概念。

38.若有定義chare;,則以下輸入語句正確的是()

A.scanf("%c",c);

B.scanf("%c",&c);

C.gets(c);

D.fgets(c,1,stdin);

答案:B

解析:scanf輸入字符要傳入變量地址;gets和fgets用于字符串輸入。

39.以下關于C語言中函數返回值的說法,錯誤的是()

A,函數可以沒有返回值

B.函數返回值的類型可以是任何數據類型

C.函數返回值可以是數組

D.函數返回值可以是指針

答案:C

解析:函數不能直接返回數組,但可以返回指向數組的指針。

40.若有定義inta[5]={1,2,3,4,5};,則*(a+2)的值是()

A.1

B.2

C.3

D.4

答案:C

解析:a+2指向數組第三個元素,*(a+2)就是第三個元素的值3。

41.以下關于C語言中邏輯運算符的說法,正確的是()

A.邏輯與運算符&&的優(yōu)先級高于邏輯或運算符||

B.邏輯運算符的操作數只能是整數類型

C.邏輯運算符的結果只能是0或1

D.邏輯運算符可以進行短路求值

答案:A

解析:&&優(yōu)先級高于II;操作數可以是各種表達式;結果為真或假,用1和0表示;雖可短

路求值,但本題選正確描述優(yōu)先級的選項A。

42.若有定義floatfl=3.14,f2=2.71;,則表達式(int)(fl+£2)的值是()

A.5

B.5.85

C.6

D.不確定

答案:A

蔡析:先計算fl+f2為5.85,再將結果強制轉換為整數,舍去小數部分,結果為5。

43.以下關于C語言中函數聲明的說法,錯誤的是()

A.函數聲明可以放在文件開頭

B.函數聲明可以省略參數名

C.函數聲明和函數定義的返回值類型必須一致

D.函數聲明后就可以調用該函數,不需要再定義

答案:D

解析:函數聲明只是告知編譯器函數的存在和參數、返回值情況,調用前必須有函數定義。

44.若有定義inta[3][2]={{1,2},{3,4},{5,6}};,則*(a[l]+1)的值是()

A.2

B.3

C.4

D.5

答案:C

解析:a[l]指向第二行首地址,a[l]+1指向第二行第二個元素,*(a[l]+l)就是該元素的值

4o

45.以下關于C語言中枚舉類型的說法,正確的是()

A.枚舉類型的成員默認從0開始依次遞增

B.枚舉類型的成員可以是任意數據類型

C.枚舉類型的變量不能進行賦值操作

D.枚舉類型的成員可以重名

答案:A

解析:枚舉成員默認從0開始遞增;成員只能是整數類型;變量可賦值;成員不能重名。

46.若有定義chars[]="HelloWorld";,則strlen(s)的值是()

A.10

B.11

C.12

D.不確定

答案:B

解析:strlen函數返回字符串長度不包括、(T,"HelloWorld”長度為11。

47.以下關于C語言中條件語句的說法,錯誤的是()

A.if語句可以嵌套使用

B.switch語句的表達式只能是整數類型

C.else語句必須和if語句配對使用

D.switch語句的case后面可以是變量

答案:D

解析:switch語句的case后面必須是常量表達式,不能是變量。

48.若有定義int*p,a[5]={l,2,3,4,5};,則以下使p指向數組a首元素的語句正確的是()

A.p=a;

B.p=&a;

C.p=*a;

D.p=a[0];

答案:A

解析:數組名代表首元素地址,p=a可使p指向數組a首元素。

49.以下關于C語言中宏函數和普通函數的區(qū)別,錯誤的是()

A.宏函數在編譯時展開,普通函數在運行時調用

B.宏函數沒有函數調用開銷,普通函數有

C.宏函數的參數沒有類型檢查,普通函數有

D.宏函數和普通函數的定義格式相同

答案:D

解析:宏函數用#define定義,普通函數有特定的定義格式,二者不同。

50.若有定義inta=5,b=3;,則表達式a%b的值是()

A.1

B.1.666667

C.2

D.不確定

答案:C

解析:%是取余運算符,5%3結果為2。

51.以下關于C語言中動態(tài)內存分配的說法,正確的是()

A.malloc函數用于分配內存,使用后不需要釋放

B.free函數用于釋放動態(tài)分配的內存

C.calloc函數分配的內存不需要初始化

D.realloc函數不能改變已分配內存的大小

答案:B

解析:malloc分配的內存使用后要用free釋放;calloc會初始化內存;realloc可改變已分配

內存大小。

52.若有定義struct{intx;inty;}*p,s={1,2};,則以下使p指向s的語句正確的是()

A.p=s;

B.p=&s;

C.*p=s;

D.*p=&s;

答案:B

解析:指針p要存儲結構體變量s的地址,p=&s正確。

53.以下關于C語言中文件讀寫操作的說法,錯誤的是()

A.fread函數用于從文件中讀取數據塊

B.fwrite函數用于向文件中寫入數據塊

C.fscanf函數只能從文本文件中讀取數據

D.fprintf函數可以向二進制文件中寫入數據

答嘉D

解析:fprintf主要用于向文本文件寫入格式化數據,不適合二進制文件。

54.若有定義inta[4]={l,2,3,4};,則以下對數組元素的引用錯誤的是()

A.a[0]

B.a[3]

C.a[4]

D.*(a+2)

答案:C

解析:數組下標從0到3,a[4]越界。

55.以下關于C語言中函數遞歸的終止條件,說法正確的是()

A.終止條件必須是一個常量

B.終止條件可以沒有

C.終止條件是遞歸調用結束的關鍵

D.終止條件只能是函數返回值為0

答案:C

解析:終止條件不是必須為常量,必須有終止條件,不一定是返回值為0,它是遞歸結束關

鍵。

56.若有定義inta=10;,則執(zhí)行語句a>>=2;后,a的值是()

A.2

B.3

C.4

D.5

答案:C

解析:右移運算符>>,a>>=2相當于a除以2的2次方,10右移2位為4。

57.以下關于C語言中字符串和字符數組的關系,錯誤的是()

A.字符串可以用字符數組來存儲

B.字符數組一定是字符串

C.字符串以、(T結尾,字符數組不一定

D.可以用字符串初始化字符數組

答案:B

解析:字符數組不一定以'(T結尾,不一定是字符串。

58.若有定義inta,b;,則以下輸入語句正確的是()

A.scanf(n%d%d",a,b);

B.scanf(H%d%d",&a,&b);

c.gets(a,b);

D.fgets(a,b,stdin);

答案:B

解析:scanf輸入整數要傳入變量地址;gets和fgets用于字符串輸入。

59.以下關于C語言中函數參數的默認值,說法正確的是()

A.C語言支持函數參數有默認值

B.函數參數默認值可以在函數聲明中指定

C.函數參數默認值可以在函數定義中指定

D.C語言不支持函數參數有默認值

答案:D

解析:C語言不支持函數參數有默認值。

60.若有定義inta⑵[3]={{1,2,3},{4,5,6}};,則*(*(a+1)+2)的值是()

A.3

B.4

C.5

D.6

答案:D

解析:*(a+l)指向第二行,*(a+1)+2指向第二行第三個元素,*(*(a+1)+2)就是該元素

的值6。

61.以下關于C語言中邏輯非運算符!的說法,正確的是()

A.邏輯非運算符是一元運算符

B.邏輯非運算符的操作數只能是整數類型

C.邏輯非運算符的結果只能是0或1

D.以上都對(此選項不選,按要求生成正確選項)

答案:A

解析:邏輯非是一元運算符;操作數可以是各種表達式;雖結果為?;?,但本題選正確描

述運算符性質的選項A。

62.若有定義floatf=5.6;,則(int)f+1的值是()

A.5

B.6

C.6.6

D.不確定

答案:B

解析:先將f強制轉換為整數5,再加1結果為6。

63.以下關于C語言中函數重載的說法,錯誤的是()

A.C語言支持函數重載

B.函數重載是指多個函數名相同但參數不同

C.函數重載可以提高代碼的復用性

D.C語言中函數名必須唯一

答案:A

解析:C語言不支持函數重載,函數名必須唯一。

64.若有定義charsl[10]="abc",s2[]="def";,則執(zhí)行語句strcpy(sl+3,s2);后,si的內容是

()

A."abcdef

B."abc"

C."def"

D.不確定

答案:A

解析:strcpy將s2復制到si+3位置,結果為"abcdef"。

65.以下關于C語言中循環(huán)控制語句break和continue的說法,正確的是()

A.break語句用于跳出整個循環(huán),continue語句用于跳過本次循環(huán)剩余部分

B.break語句只能用于循環(huán)語句中,continue語句可以用于任何語句

C.break語句和continue語句都可以用于多層循環(huán)

D.break語句和continue語句的作用相同

答案:A

解析:break跳出循環(huán),continue跳過本次循環(huán)剩余部分;二者都用于循環(huán)語句;在多層循

環(huán)有不同作用。

66.若有定義inta=3,b=4;,則表達式a>b?a:b的值是()

A.3

B.4

C.0

D.不確定

答案:B

解析:條件表達式中a>b為假,取b的值,所以結果為4。

67.以下關于C語言中文件定位函數的說法,錯誤的是()

A.fseek函數用于移動文件指針位置

B.ftell函數用于返回文件指針當前位置

C.rewind函數用于將文件指針移動到文件開頭

D.文件定位函數只能用于二進制文件

答案:D

解析:文件定位函數可用于文本文件和二進制文件。

68.若有定義struct{intnum;charname[20];}stu;,則以下對stu成員賦值正確的是()

A.stu.num=1001;strcpy(,"Tom");

B.stu.num="1001";="Tom";

C.stu->num=1001;stu->name="Tom";

D.stu.num=1001;="Tom";

答案:A

解析:num是整數類型賦整數;name是字符數組用strcpy賦值;stu是變量用點運算符。

69.以下關于C語言中指針數組的說法,正確的是()

A.指針數組的元素是指針

B.指針數組只能存儲整數指針

C.指針數組不能進行初始化

D.指針數組的大小不能改變

答案:A

解析:指針數組元素是指針;可存儲各種類型指針;能初始化;大小定義后一般不變但和本

題主旨無關。

70.若有定義inta[5]={l,3,5,7,9};,則*(a+4)的值是()

A.1

B.3

C.7

D.9

答案:D

解析:a+4指向數組第五個元素,*(a+4)就是該元素的值9。

71.以下關于C語言中逗號運算符的說法,正確的是()

A.逗號運算符的優(yōu)先級是所有運算符中最低的

B.逗號運算符的結果是最后一個表達式的值

C.逗號運算符可以連接多個表達式

D,以上都對(此選項不選,按要求生成正確選項)

答案:A

解析:逗號運算符優(yōu)先級最低;雖結果是最后表達式值、可連接多表達式,但本題選正確描

述優(yōu)先級的選項A。

72.若有定義inta=2,b=3;,貝愀行語句a*=b+1;后,a的值是()

A.6

B.8

C.12

D.18

答案:B

解析:先算b+1為4,然后a*=4,a變?yōu)?。

73.以下關于C語言中結構體數組的說法,錯誤的是()

A.結構體數組的元素是結構體變量

B.結構體數組可以進行初始化

C.結構體數組的元素可以通過下標訪問

D.結構體數組不能作為函數參數傳遞

答案:D

解析:結構體數組可以作為函數參數傳遞。

74.若有定義chars[]="CProgramming";,則s[5]的值是()

A.'P,

B.'r'

C.'o'

D.'g'

答案:A

而析:數組下標從0開始,s[5]是第六個字符P。

75.以下關于C語言中函數嵌套調用的說法,正確的是()

A.函數嵌套調用是指一個函數調用另一個函數

B.函數嵌套調用的層數沒有限制

C.函數嵌套調用會導致程序出錯

D.函數嵌套調用和遞歸調用是一樣的

答案:A

解析:函數嵌套是一個函數調用另一個;嵌套層數有限制;合理嵌套不會出錯;和遞歸不同。

76.若有定義inta=10;,則執(zhí)行語句a&=3;后,a的值是()

A.0

B.1

C.2

D.3

答案:B

解析:按位與運算,10C二進制1010)和3(二進制0011)按位與結果為1(二進制0001)o

77.以下關于C語言中字符串處理函數stmcpy的說法,錯誤的是()

A.strncpy函數用于復制指定長度的字符串

B.strncpy函數不會自動添加字符串結束符'\0'

C.strncpy函數可以用于復制部分字符串

D.strncpy函數的第二個參數必須是字符串常量

答案:D

解析:strncpy第二個參數可以是字符串變量。

78.若有定義int*p,a=5;,則以下語句正確的是()

A.p=&a;*p=10;

B.p=a;*p=10;

C.*p=&a;*p=10;

D.p=&a;p=10;

答案:A

解析:p先存儲a的地址,再通過*p修改a的值。

79.以下關于C語言中全局變量和局部變量的說法,錯誤的是()

A.全局變量在整個程序中都有效

B.局部變量在其定義的函數或代碼塊內有效

C.全局變量和局部變量可以同名

D.全局變量的存儲位置在棧上

答案:D

解析:全局變量存儲在靜態(tài)存儲區(qū),不是棧上。

80.若有定義inta[3][3]={{l,2,3},{4,5,6},{7,8,9}};,則的值是()

A.7

B.8

C.9

D.6

答案:B

解析:a⑵山是第三行第二列元素,值為8。

81.以下關于C語言中條件運算符嵌套的說法,正確的是()

A.條件運算符可以嵌套使用

B.條件運算符嵌套會降低程序的可讀性

C.條件運算符嵌套的層數沒有限制

D.以上都對(此選項不選,按要求生成正確選項)

答案:A

解析:條件運算符可嵌套;雖會影響可讀性、理論上層數無嚴格限制,但本題選正確描述可

嵌套性質的選項Ao

82.若有定義floatfl=2.5,f2=1.5;,則(int)(fl-⑵的值是()

A.0

B.1

C.1.0

D.不確定

答案:B

解析:先算fl-f2為1.0,再強制轉換為整數為1。

83.以下關于C語言中函數參數的傳遞方向,說法正確的是()

A.值傳遞是單向傳遞,地址傳遞是雙向傳遞

B.值傳遞和地址傳遞都是單向傳遞

C.值傳遞和地址傳遞都是雙向傳遞

D.值傳遞是雙向傳遞,地址傳遞是單向傳遞

答案:A

解析:值傳遞只把值傳給形參,地址傳遞可通過指針改變實參,是雙向的。

84.若有定義charsl[20]="Hello",s2[]="World";,則執(zhí)行語句strcat(sl,s2);后,si的內容是

()

A."HelioWorld"

B."Hello"

C."World"

D.不確定

答案:A

解析:strcat函數的作用是將s2連接到si的末尾,所以si最終內容為"HelloWorld"。

85.以下關于C語言中switch語句的說法,錯誤的是()

A.switch語句中的case后面可以是常量表達式

B.switch語句中的default可以省略

C.switch語句中的break語句可以省略

D.switch語句的表達式只能是字符類型

答案:D

解析:switch語句的表達式可以是整數類型(包括字符類型,因為字符本質上是整數編碼),

并非只能是字符類型。

86.若有定義inta[4]={l,2,3,4},*p=a;,則*(p+3)的值是()

A.1

B.2

C.3

D.4

答案:D

解析:指針p指向數組a的首元素,p+3指向數組的第四個元素,*(p+3)就是該元素的值

4。

87.以下關于C語言中宏定義的替換規(guī)則,說法正確的是()

A.宏定義在編譯時進行簡單的文本替換

B,宏定義的替換過程會進行語法檢查

C.宏定義的參數可以有默認值

D.宏定義只能定義常量

答案:A

解析:宏定義在編譯預處理階段進行簡單的文本替換,不進行語法檢查,也沒有參數默認值

的概念,還可以定義帶參數的宏。

88.若有定義inta=7,b=2;,則表達式a/b*b的值是()

A.6

B.7

C.4

D.不確定

答案:A

解析:先進行a/b運算,7/2結果為3(整數除法舍去小數),再乘以b(2),結果為6。

89.以下關于C語言中文件操作模式“w+”的說法,正確的是()

A.以讀寫方式打開文件,若文件不存在則創(chuàng)建,若存在則清空內容

B.以只讀方式打開文件,若文件不存在則報錯

C.以追加方式打開文件,若文件不存在則創(chuàng)建

D.以二進制讀寫方式打開文件,若文件不存在則創(chuàng)建

答案:A

蔡析:“w+”模式是以讀寫方式打開文件,若文件不存在則創(chuàng)建,若存在則清空原有內容。

90.若有定義structDate{intyear;intmonth;血day;}d;,則以下對d成員賦值正確的是()

A.d.year=2024;d.month=10;d.day=1;

B.d->year=2024;d->month=10;d->day=1;

C.d.year="2024";d.month="10";d.day="I";

D.d={2024,10,1};

答案:A

解析:d是結構體變量,用點運算符訪問成員并賦值;成員是整數類型,不能賦字符串;結

構體變量不能整體這樣賦值。

91.以下關于C語言中二維數組在內存中的存儲方式,說法正確的是()

A.二維數組按行優(yōu)先存儲

B.二維數組按列優(yōu)先存儲

C.二維數組的存儲方式取決于編譯器

D.二維數組的每一行在內存

溫馨提示

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

評論

0/150

提交評論