全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)_第1頁
全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)_第2頁
全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)_第3頁
全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)_第4頁
全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

全國計算機(jī)等級考試二級C語言(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下煙臺大學(xué)煙臺大學(xué)

緒論單元測試

十進(jìn)制的10對應(yīng)的二進(jìn)制表示是以下哪個選項?

A:

1010B:

1000C:

10D:

0010

答案:

1010

二進(jìn)制數(shù)1000對應(yīng)的十進(jìn)制數(shù)是多少?

A:

1000B:

10C:

8D:

1

答案:

8

計算機(jī)中數(shù)據(jù)存儲的最小單位是什么?

A:

地址B:

字節(jié)C:

答案:

計算機(jī)中數(shù)據(jù)存儲的基本單位是什么?

A:

地址B:

字節(jié)C:

答案:

字節(jié)

計算機(jī)的存儲空間中一個字節(jié)是由多少個連續(xù)的位組成?

A:

8B:

1C:

10D:

4

答案:

8

第一章測試

C語言主要是借助以下哪種手段來實現(xiàn)程序模塊化(

A:定義函數(shù)B:使用豐富的數(shù)據(jù)類型C:定義常量和外部變量D:使用三種基本結(jié)構(gòu)語句

答案:定義函數(shù)

以下敘述錯誤的是(

A:程序"模塊化"有利于任務(wù)的分解B:采用模塊化結(jié)構(gòu),可以提高程序編制的效率C:允許對函數(shù)單獨進(jìn)行編譯,是C語言實現(xiàn)"模塊化"的基礎(chǔ)D:在一個任務(wù)中,單獨編寫的每個模塊均可以獨立運行

答案:在一個任務(wù)中,單獨編寫的每個模塊均可以獨立運行

以下敘述中錯誤的是(

)

A:計算機(jī)不能直接執(zhí)行C語言程序B:所有C程序都需要編譯鏈接無誤后才能運行

C:C程序在運行過程中所有計算都以十進(jìn)制方式進(jìn)行D:C程序在運行過程中所有計算都以二進(jìn)制方式進(jìn)行

答案:C程序在運行過程中所有計算都以十進(jìn)制方式進(jìn)行

流程圖是描述算法的很好的工具,一般的流程圖中由幾種基本圖形組成,其中條件判斷的圖形是(

A:橢圓型B:菱形C:平行四邊形D:長方形

答案:菱形

以下敘述中正確的是()。

A:復(fù)雜算法不能使用N-S流程圖來描述B:計算機(jī)能夠直接處理不超過20行源碼的簡單C語言程序C:計算機(jī)能直接運行未經(jīng)編譯的C語言程序D:循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)是結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)

答案:循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)是結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)

第二章測試

對于一個正常運行的C程序,以下敘述中正確的是(

A:程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束B:程序的執(zhí)行總是從main函數(shù)開始C:程序的執(zhí)行總是從程序的第一個函數(shù)開始,

在main函數(shù)結(jié)束D:程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

答案:程序的執(zhí)行總是從main函數(shù)開始

以下敘述中正確的是(

A:main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等B:可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C:C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行D:C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行

答案:C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行

C語言源程序名的后綴是(

)

A:exe

B:.CC:.cpD:obj

答案:.C

以下關(guān)于注釋的敘述中錯誤的是()。

A:注釋的邊界符號“/”和“*”之間不允許加入空格B:C語言允許注釋出現(xiàn)在程序中任意合適的地方C:注釋的內(nèi)容僅用于閱讀,對程序的運行不起作用D:注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套

答案:注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套

關(guān)于程序中的注釋,以下敘述正確的是()。

A:/*

*/多行注釋中間不可以嵌套另一個注釋

B:

注釋的內(nèi)容必須放在一對/*

*/之間

C:注釋內(nèi)容錯誤會導(dǎo)致編譯出錯D:注釋必須置于所說明的語句前或語句后

答案:/*

*/多行注釋中間不可以嵌套另一個注釋

第三章測試

若有定義語句:char

c='A';

則變量c在內(nèi)存中占(

)

A:1個字節(jié)B:2個字節(jié)C:3個字節(jié)D:4個字節(jié)

答案:1個字節(jié)

以下選項中,合法的C語言實數(shù)是(

A:E13B:3.1e0.4C:

.2e0

D:7.12E

答案:

.2e0

以下選項中合法的標(biāo)識符是(

A:1-1B:1_1C:1_

_D:_11

答案:_11

以下選項中敘述正確的是(

A:C語言的標(biāo)識符可分為函數(shù)名、變量和預(yù)定義標(biāo)識符三類B:C語言的標(biāo)識符可分為運算符、用戶標(biāo)識符和關(guān)鍵字三類C:C語言的標(biāo)識符可分為語句、變量和關(guān)鍵字三類D:C語言的標(biāo)識符可分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符三類

答案:C語言的標(biāo)識符可分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符三類

C語言程序中,運算對象必須是整型數(shù)的運算符是(

A:%B:&&C:

/

D:*

答案:%

若有定義語句:int

a=12;,則執(zhí)行語句:a+=

a-=

a*a;后,a的值是(

A:552B:-264C:264D:144

答案:-264

有以下程序

#include

<stdio.h>

intmain()

{

int

x=010,

y=10;

printf("%d,%d",

++x,

y--);

return0;}程序運行后的輸出結(jié)果是(

A:11,10B:9,10C:10,9D:010,9

答案:9,10

有以下程序

#include

<stdio.h>

main()

{

int

a;

a

=

(int)(-1.53*3);

printf("%d",

a);

}

程序的運行結(jié)果是(

)

A:結(jié)果不確定B:-5C:-3D:-4

答案:-4

若有定義:int

a=3;double

b=0.1263;

char

ch='a';,則以下選項中,敘述有錯的是(

)。

A:逗號表達(dá)式的計算結(jié)果是最后一個逗號之后的表達(dá)式的運算結(jié)果B:語句ch=(unsignedint)a+b;是對a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量chC:運算符%只能對整數(shù)類型的變量進(jìn)行運算D:復(fù)合運算:a*=b+ch是將變量b、ch之和與a相乘,結(jié)果再給a賦值

答案:語句ch=(unsignedint)a+b;是對a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch

以下選項中,合法的數(shù)值型常量是(

A:0xDHB:3.1415C:092D:"A"

答案:3.1415

第四章測試

若變量已正確定義并賦值,以下不能構(gòu)成C語句的選項是(

)

A:A?a:b;B:a=a+bC:A=a+b;D:B++;

答案:a=a+b

若想給已定義為int型的變量a,b,c,d賦值為1,以下選項中錯誤的語句是(

)。

A:a=1,

b=a,

c=b,

d=c;B:a=b=c=d=1;C:a=b,

b=c,

c=d,

d=1;D:d=1,

c=d,

b=c,

a=b;

答案:a=b,

b=c,

c=d,

d=1;

有以下程序

#include

<stdio.h>

main()

{

int

a=0,b=0;

/*

給a賦值

a=10;

b=20;

給b賦值

*/

printf("a+b=%d",a+b);

/*

輸出計算結(jié)果

*/

}

程序運行后的輸出結(jié)果是(

)

A:a+b=0B:a+b=30C:出錯D:a+b=10

答案:a+b=0

有以下程序

#include

<stdio.h>

main()

{

char

c1='A',

c2='Y';

printf(

"%d,

%d",

c1,c2

);

}

程序的輸出結(jié)果是(

)

A:輸出格式不合法,輸出出錯信息B:65,89C:65,90D:A,Y

答案:65,89

設(shè)有定義:

int

n

=

1234;

double

x

=

3.1411;

則語句

printf("%3d,%1.3f",

n,

x);

的輸出結(jié)果是(

)

A:1234,3.142B:123,3.141C:1234,3.141D:123,3.142

答案:1234,3.141

有如下程序

#include

<stdio.h>

main()

{

int

x

=

0x13;

printf("%d",

x+1);

}

程序運行后的輸出結(jié)果是(

)

A:20B:14C:13D:12

答案:20

若有定義

int

a;

float

b;

double

c;

程序運行時輸入:

3

4

5<回車>

能把值3輸入給變量a、4輸入給變量b、5輸入給變量c的語句是(

)

A:scanf("%lf%lf%lf",

&a,&b,&c);B:scanf("%d%f%lf",

&a,&b,&c);C:scanf("%d%lf%lf",

&a,&b,&c);D:scanf("%d%f%f",

&a,&b,&c);

答案:scanf("%d%f%lf",

&a,&b,&c);

以下敘述中正確的是(

)

A:使用printf函數(shù)無法輸出百分號%B:在使用scanf函數(shù)輸入整數(shù)或?qū)崝?shù)時,輸入數(shù)據(jù)之間只能用空格來分隔C:在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,不會輸出到屏幕上D:在printf函數(shù)中,各個輸出項只能是變量

答案:在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,不會輸出到屏幕上

若有定義:char

c;int

d;

,程序運行時輸入:

1,2

<回車>,能把值1輸入給變量c、值2輸入給變量d的輸入語句是(

)

A:scanf("%d,%f",

&c,&d);B:scanf("%c%d",

&c,&d);C:scanf("%c,%d",

&c,&d);D:scanf("%d%d",

&c,&d);

答案:scanf("%c,%d",

&c,&d);

以下能正確輸出字符a

的語句是()

A:printf("%c",

"a");B:printf("%d",

'a');C:printf("%s",

'a');D:printf("%s",

"a");

答案:printf("%s",

"a");

第五章測試

表示關(guān)系式x≤y≤z的C語言表達(dá)式的是(

A:(x<=y<=z)B:(x<=y)&&(y<=z)C:(x<=y)||(y<=z)D:(x<=y)!(y<=z)

答案:(x<=y)&&(y<=z)

已知a=5,b=6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c<d)后n的值為(

A:2B:-1C:1D:0

答案:2

以下敘述中正確的是(

A:由&&構(gòu)成的邏輯表達(dá)式與由||構(gòu)成的邏輯表達(dá)式都有"短路"現(xiàn)象B:邏輯"非"(即運算符!)的運算級別是最低的C:邏輯"或"(即運算符||)的運算級別比算術(shù)運算要高D:C語言的關(guān)系表達(dá)式:0<x<10完全等價于:

(0<x)

&&

(x<10)

答案:由&&構(gòu)成的邏輯表達(dá)式與由||構(gòu)成的邏輯表達(dá)式都有"短路"現(xiàn)象

有以下程序

#include

<stdio.h>

main()

{

int

a=0,b=0,c=0,d=0;

(++a

||

++b)

?

++c

:

++d;

printf("%d,%d,%d,%d",

a,b,c,d);

}

程序的運行結(jié)果是(

A:1,1,0,1

B:1,0,0,1

C:1,0,1,0D:1,1,1,0

答案:1,0,1,0

以下程序段中,不能實現(xiàn)條件"如果a<b則x=10,否則x=-10"的是()

A:x=(a>=b)?

-10:10;B:if(a<b)

x=10;

else

x=-10;C:x=-10;

if(a<b)

x=10;D:if(a<b)

x=10;

if(b<a)

x=-10;

答案:if(a<b)

x=10;

if(b<a)

x=-10;

有以下程序段

scanf("%d%d%d",&a,&b,&c);

if(a>b)

a=b;

if(a>c)

a=c;

printf("%d",a);

該程序段的功能是()

A:輸出a、b、c中的最小值B:輸出a的原始值C:輸出a、b、c中的最大值D:輸出a、b、c中值相等的數(shù)值

答案:輸出a、b、c中的最小值

有如下程序

#include

<stdio.h>

main()

{

int

a

=

0,

b

=

1;

if

(++a

==

b++)

printf("T");

else

printf("F");

printf("a=%d,b=%d",

a,

b);

printf("");

}

程序運行后的輸出結(jié)果是(

A:Ta=1,b=2B:Fa=0,b=2C:Fa=1,b=2

D:Ta=0,b=1

答案:Ta=1,b=2

下列條件語句中,輸出結(jié)果與其他語句不同的是()

A:

if

(

a!=0

)

printf("%d",

x);

else

printf("%d",

y);B:if

(

a==0

)

printf("%d",

y);

else

printf("%d",

x);C:if

(

a==0

)

printf("%d",

x);

else

printf("%d",

y);D:

if

(

a

)

printf("%d",

x);

else

printf("%d",

y);

答案:if

(

a==0

)

printf("%d",

x);

else

printf("%d",

y);

有以下程序

#include

<stdio.h>

main()

{

int

x=1,

y=0,a=0,b=0;

switch(

x

)

{

case

1:

switch

(

y

)

{

case

0:

a++;

break;

case

1:

b++;

break;

}

case

2:

a++;

b++;

break;

}

printf("a=%d,b=%d",a,b

);

}

程序運行后的輸出結(jié)果是()

A:a=1,b=0B:a=2,b=1C:a=2,b=2D:a=1,b=1

答案:a=2,b=1

若以下選項中的變量a,

b,

y均已正確定義并賦值,則語法正確的switch語句是()

A:switch

(a+9)

{

case

a

:

y=a-b;

case

b

:

y=a+b;}

B:switch

a*b

{

case

10

:

y=a+b;

default

:

y=a-b;

}

C:switch(

a+b

)

{

case1

:

case3

:

y=a+b;

break;

case0

:

case4

:

y=a-b;}

D:switch(

a*a+b*b

)

{

default

:

break;

case

3

:

y=a+b;

break;

case

2

:

y=a-b;

break;

}

答案:switch(

a*a+b*b

)

{

default

:

break;

case

3

:

y=a+b;

break;

case

2

:

y=a-b;

break;

}

第六章測試

有以下程序

#include

<stdio.h>

main()

{

int

i,

sum;

for(

i=1;

i<6;

i++

)

sum+=i;

printf("%d",

sum);

}

程序運行后的輸出結(jié)果是(

A:0B:15C:16D:隨機(jī)值

答案:隨機(jī)值

有以下程序

#include

<stdio.h>

main(

)

{

int

a=-2,

b=2;

for(;

++a

&&

--b;)

printf("%d,%d,",

a,b);

}

程序執(zhí)行后的輸出結(jié)果是()。

A:-1,1,B:-1,1,0,0,C:0,1,D:-1,1,0,1,

答案:-1,1,

要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是(

)

A:while(ch=getchar()=='N')

printf("%c

",ch);B:while((ch=getchar())!='N')

printf("%c

",ch);C:while((ch=getchar())=='N')

printf("%c

",ch);D:while(ch=getchar()

='N')

printf("%c

",ch);

答案:while((ch=getchar())!='N')

printf("%c

",ch);

有以下程序

#include

<stdio.h>

main()

{

int

a

=

-2,

b

=

0;

while

(a++

&&

++b)

;

printf("%d,%d",

a,

b

);

}

程序運行后輸出結(jié)果是()

A:0,2B:1,3C:1,2D:0,3

答案:1,2

以下敘述正確的是(

A:do-while語句構(gòu)成的循環(huán),必須用break語句退出循環(huán)B:while-do語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非0時結(jié)束循環(huán)C:do-while語句和while-do構(gòu)成的循環(huán)功能相同D:do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為0時結(jié)束循環(huán)

答案:do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為0時結(jié)束循環(huán)

有以下程序

#include

<stdio.h>

main()

{

char

c;

do

{

c=getchar();

putchar(c);

}while(c

!=

'#');

printf("");

}

執(zhí)行時如輸入:abcdefg##<回車>

,

則輸出結(jié)果是(

A:##B:abcdefgC:abcdefg##D:abcdefg#

答案:abcdefg#

以下敘述中正確的是(

)

A:break語句只能用于switch語句體中B:continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C:break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D:在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

答案:break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

有以下程序

#include

<stdio.h>

main()

{

int

a=1,

b=0;

for(;a<5;

a++)

{

if

(a%2==0)

break;

b

+=

a;

}

printf("%d

",

b);

}

程序的運行結(jié)果是(

A:4B:0

C:10

D:1

答案:1

有如下程序

#include

<stdio.h>

main(

)

{

int

i,

data;

scanf("%d",

&data);

for

(i=0;

i<5;

i++)

{

if

(i

<

data)

continue;

printf("%d-",

i);

}

}

程序運行時,從鍵盤輸入:3<回車>后,程序輸出結(jié)果為(

A:0-1-2-3-B:3-4-C:1-2-3-D:0-1-2-

答案:3-4-

若有以下程序

#include

<stdio.h>

main()

{

int

s=0,

n;

for

(n=0;

n<4;

n++)

{

switch(n)

{

default:

s+=4;

case

1:

s+=1;

break;

case

2:

s+=2;

break;

case

3:

s+=3;

}

}

printf("%d",

s);

}

則程序的輸出結(jié)果是(

A:15B:13C:10D:11

答案:11

第七章測試

有以下程序

#include

<stdio.h>

main()

{

int

i,

t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++)

printf("%d

",t[2-i][i]);

}

程序執(zhí)行后的輸出結(jié)果是()。

A:7

5

3B:3

6

9C:7

5

1D:3

5

7

答案:3

5

7

以下錯誤的定義語句是()。

A:int

x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B:int

x[][3]={{0},{1},{1,2,3}};C:int

x[4][]=

{{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D:int

x[][3]={1,2,3,4};

答案:int

x[4][]=

{{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

以下敘述中正確的是()。

A:當(dāng)拼接兩個字符串時,結(jié)果字符串占用的內(nèi)存空間是兩個原串占用空間的和B:兩個字符串可以用關(guān)系運算符進(jìn)行大小比較C:C語言本身沒有提供對字符串進(jìn)行整體操作的運算符D:函數(shù)調(diào)用strlen(s);會返回字符串s實際占用內(nèi)存的大?。ㄒ宰止?jié)為單位)

答案:C語言本身沒有提供對字符串進(jìn)行整體操作的運算符

以下敘述中正確的是()。

A:字符串常量"str1"的類型是:字符串?dāng)?shù)據(jù)類型B:字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是字符C:有定義語句:

char

str1[]

=

"str1";

,數(shù)組str1將包含4個元素D:下面的語句用賦初值方式來定義字符串,其中'

'是必須的char

str1[]

=

{'s',

't',

'r',

'1',

};

答案:下面的語句用賦初值方式來定義字符串,其中'

'是必須的char

str1[]

=

{'s',

't',

'r',

'1',

};

以下敘述中正確的是()。

A:語句

char

a[2]

=

{"A",

"B"};

是合法的,定義了一個包含兩個字符的數(shù)組B:語句int

a[8]

=

{0};

是合法的C:語句

int

a[]

=

{0};是不合法的,遺漏了數(shù)組的大小D:語句

char

a[3];

a

=

"AB";

是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符

答案:語句int

a[8]

=

{0};

是合法的

以下敘述中正確的是()。

A:對于字符串常量

"string!",系統(tǒng)已自動在最后加入了''字符,表示串結(jié)尾B:在語句char

str[]

=

"string!";中,數(shù)組str的大小等于字符串的長度C:語句

char

str[10]

=

"string!";

char

str[10]

=

{"string!"};

并不等價D:對于一維字符數(shù)組,不能使用字符串常量來賦初值

答案:對于字符串常量

"string!",系統(tǒng)已自動在最后加入了'\0'字符,表示串結(jié)尾

以下選項中,沒有編譯錯誤的是()。

A:char

str4[];

str4

=

"hello

world";B:char

str1[5]

=

"pass",

str2[6];

str2

=

str1;C:char

str3[]

=

{'d',

'e',

'b',

'u',

'g',

''};D:char

name[10];

name

=

"china";

答案:char

str3[]

=

{'d',

'e',

'b',

'u',

'g',

''};

有以下程序

#include

<stdio.h>

#include

<string.h>

main()

{

char

s[]="Beijing";

printf("%d",

strlen(strcpy(

s,"China")

));

}

程序運行后的輸出結(jié)果是()。

A:12B:14C:5D:7

答案:5

有以下程序

#include

<stdio.h>

main()

{

char

b[4][10];

int

i;

for

(i=0;

i<4;

i++)

scanf("%s",

b[i]);

printf("%s%s%s%s",

b[0],b[1],b[2],b[3]);

}

執(zhí)行時若輸入:

Fig

flower

is

red.

<回車>

則輸出結(jié)果是()。

A:Fig

flower

is

red.B:Figflowerisred.C:Figflower

is

red.D:Figfloweris

red.

答案:Figflowerisred.

以下敘述中正確的是()。

A:語句

int

a[4][3]

=

{{1,2},

{4,5}};

是錯誤的初始化形式B:語句

int

a[4][3]

=

{1,2,4,5};

是錯誤的初始化形式C:在邏輯上,可以把二維數(shù)組看成是一個具有行和列的表格或矩陣D:語句

int

a[][3]

=

{1,2,4,5};

是錯誤的初始化形式

答案:在邏輯上,可以把二維數(shù)組看成是一個具有行和列的表格或矩陣

第八章測試

以下關(guān)于函數(shù)的敘述中正確的是(

)。

A:函數(shù)調(diào)用必須傳遞實參B:函數(shù)形參的類型與返回值的類型無關(guān)C:函數(shù)必須要有返回值

D:函數(shù)必須要有形參

答案:函數(shù)形參的類型與返回值的類型無關(guān)

關(guān)于C語言函數(shù)聲明的位置,以下敘述正確的是(

)。

A:函數(shù)聲明只能出現(xiàn)在源程序的開頭位置,否則編譯時會出現(xiàn)錯誤信息B:函數(shù)聲明只是為了美觀和編譯時檢查參數(shù)類型是否一致,可以寫也可以不寫C:函數(shù)聲明可以出現(xiàn)在源程序的任意位置,在程序的所有位置對該函數(shù)的調(diào)用,編譯時都不會出現(xiàn)錯誤信息D:在函數(shù)聲明之后對該函數(shù)進(jìn)行調(diào)用,編譯時不會出現(xiàn)錯誤信息

答案:在函數(shù)聲明之后對該函數(shù)進(jìn)行調(diào)用,編譯時不會出現(xiàn)錯誤信息

有以下程序

#include

<stdio.h>

int

fun(

int

a,

intB)

{

return

a+b;

}

main()

{

int

x=6,

y=7,

z=8,

r

;

r

=

fun

(

fun(x,y),

z--

);

printf

("

%d"

,

r

);

}

程序運行后的輸出結(jié)果是(

)。

A:20B:15C:31D:21

答案:21

有以下程序

#include

<stdio.h>

int

a=1,

b=2;

void

fun1(

int

a,

int

b

)

{

printf(

"%d

%d

"

,a,

b

);

}

void

fun2()

{

a=3;

b=4;

}

main()

{

fun1(5,6);

fun2(

);

printf(

"%d

%d",a,

b

);

}

程序運行后的輸出結(jié)果是(

)。

A:5

6

3

4

B:1

2

5

6

C:3

4

5

6

D:5

6

1

2

答案:5

6

3

4

以下敘述中錯誤的是(

)。

A:函數(shù)中的形參屬于局部變量B:在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用C:在不同的函數(shù)中可以使用相同名字的變量D:在函數(shù)外部定義的變量在所有函數(shù)中都有效

答案:在函數(shù)外部定義的變量在所有函數(shù)中都有效

有以下程序

#include

<stdio.h>

void

fun(

int

a,

int

b,

int

c

)

{

a=b;

b=c;

c=a;

}

main()

{

int

a=10

,

b=20,

c=30;

fun(

a,

b,

c

);

printf("%d,%d,%d",c,b,a);

}

程序運行后的輸出結(jié)果是(

)。

A:30,20,10

B:0,0,0

C:20,30,10

D:10,20,30

答案:30,20,10

有如下程序

#include

<stdio.h>

int

sum(int

data)

{

static

int

init

=

0;

return

init

+=

data;

}

main()

{

int

i;

for

(i=1;

i<=5;

i++)

printf("%d,",

sum(i));

printf("");

}

程序運行后的輸出結(jié)果是()。

A:1,3,6,10,15,B:0,0,0,0,0,C:1,1,1,1,1,D:1,2,3,4,5,

答案:1,3,6,10,15,

若有以下程序

#include

<stdio.h>

void

f(int

x)

{

if

(x

>=

10)

{

printf("%d-",

x%10);

f(x/10);

}

else

printf("%d",

x);

}

main()

{

int

z

=

123456;

f(z);

}

則程序的輸出結(jié)果是(

)。

A:6-5-4-3-2-1

B:1-2-3-4-5-6

C:1-2-3-4-5-6-

D:6-5-4-3-2-1-

答案:6-5-4-3-2-1

有如下程序

#include

<stdio.h>

int

sub(double

a,

double

b)

{

return

(int)(a

-

b);

}

main()

{

printf("%d",

sub(3.8,

2.1));

}

程序運行后的輸出結(jié)果是(

)。

A:1

B:2.0

C:1.7

D:2

答案:1

有以下程序

#include

<stdio.h>

#define

N

4

void

fun(int

a[][N])

{

int

b[N][N],i,j;

for(i=0;

i<N;

i++)

for(j=0;

j<N;

j++)

b[i][j]

=

a[N-1-j][i];

for(i=0;

i<N;

i++)

for(j=0;

j<N;

j++)

a[i][j]

=

b[i][j];

}

main()

{

int

x[N][N]={

{1,

2,

3,

4},{5,

6,

7,

8},

{9,10,11,12},{13,14,15,16}

},i;

fun(x);

fun(x);

for

(i=0;i<N;

i++)

printf("%d,",

x[i][i]);

printf("");

}

程序的運行結(jié)果是(

)。

A:

13,10,7,4,

B:1,6,11,16,

C:4,7,10,13,

D:16,11,6,1,

答案:16,11,6,1,

第九章測試

以下敘述中正確的是()

A:雖然包含文件被修改了,包含該文件的源程序也可以不重新進(jìn)行編譯和連接B:#include命令行不能出現(xiàn)在程序文件的中間C:在包含文件中,不得再包含其他文件D:在一個程序中,允許使用任意數(shù)量的#include命令行

答案:在一個程序中,允許使用任意數(shù)量的#include命令行

以下敘述正確的是()。

A:一個源文件中可以包含多個文件,每個文件的包含單獨寫一個#include行B:一個#include行可以包含多個文件,文件名用逗號分開C:#include<stdio.h>是C程序的一條語句D:一個#include行可以包含多個文件,且最后一個文件起作用

答案:一個源文件中可以包含多個文件,每個文件的包含單獨寫一個#include行

有以下程序

#include

<stdio.h>

#define

S(x)

x*x

main()

{

int

k=5,

j=2;

printf("%d,%d",

S(k+j+2),S(j+k+2));

}

程序的運行結(jié)果是()

A:18,18B:21,18

C:81,81D:21,21

答案:21,18

有如下程序

#include

<stdio.h>

#define

D(x)

4*x+1

main()

{

int

i

=

2,

j

=

4;

printf("%d",

D(i+j));

}

程序運行后的輸出結(jié)果是()

A:9B:25C:13D:12

答案:13

有以下宏定義及調(diào)用

#define

HA

2

#define

HB(a)

(HA+1)*a

...

x=HA*(HA+HB(2));

則以下判斷正確的是()。

A:x的值是16B:宏定義不允許嵌套C:宏調(diào)用不允許嵌套D:x的值是6

答案:x的值是16

第十章測試

有如下程序段

int

*p,

a=1;

p=&a;

*p=10;

則變量a的值為________。

A:不能確定B:10C:11D:1

答案:10

變量的指針,其含義是指該變量的_________

A:值

B:名

C:一個標(biāo)志

D:地址

答案:地址

關(guān)于數(shù)組和指針,以下說法錯誤的是_______.

A:可以讓一個指針指向一個同類型的數(shù)組

B:既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中

C:數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置

D:指針可以指向同類型的數(shù)組中的任意一個元素

答案:既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中

若有以下定義,則對a數(shù)組元素的正確引用是_________.

inta[5],*p=a;

A:

a+2

B:*&a[5]

C:*(p+5)

D:*(a+2)

答案:*(a+2)

有如下程序

#include

<stdio.h>

intmain()

{

int

i,

*ptr;

int

array[3]

=

{8,2,4};

for

(ptr=array,

i=0;

i<2;

i++)

printf("%d,",

*ptr++);

printf("");return0;

}

程序運行后的輸出結(jié)果是_______.

A:2,4,

B:8,2,

C:4,8,

D:8,8,

答案:8,2,

指向一個包含4個整型元素的一維數(shù)組的行指針變量的定義形式為_______.

A:int*(p[])

B:int*p[4]

C:

int(*p)[4]D:

int(*p)[]

答案:

int(*p)[4]

若有定義:inta[2][3];則對a數(shù)組的第i行第j列元素值的正確引用是______.

A:(a+i)[j]

B:*(*(a+i)+j)C:*(a+i+j)

D:*(a+i)+j

答案:*(*(a+i)+j)

下面程序段的運行結(jié)果是_______.chara[]="language",*p;p=a;

while(*p!='u'){printf("%c",*p-32);p++;}

A:language

B:langUAGE

C:LANG

D:LANGUAGE

答案:LANG

設(shè)有定義:char*cc[2]={"1234","5678"};則正確的敘述是_______.

A:cc數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址

B:cc數(shù)組的兩個元素中各自存放了字符串"1234"和"5678"的首地址

C:cc是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組

D:cc元素的值分別為"1234"和"5678"

答案:cc數(shù)組的兩個元素中各自存放了字符串"1234"和"5678"的首地址

已有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,正確的賦值方法是_______.

A:p=max;

B:p=max(a,b);

C:*p=max;

D:*p=max(a,b);

答案:p=max;

第十一章測試

有以下程序

#include

<stdio.h>

#include

<string.h>

struct

A

{

int

a;

char

b[10];

double

c;};

void

f(struct

A

t);

main()

{

struct

A

a={1001,"ZhangDa",1098.0};

f(a);

printf("%d,%s,%6.1f",

a.a,a.b,a.c);

}

void

f(struct

A

t)

{

t.a=1002;

strcpy(t.b,"ChangRong");

t.c=1202.0;}

程序運行后的輸出結(jié)果是()

A:1001,ZhangDa,1098.0B:1001,ChangRong,1098.0C:1002,ZhangDa,1202.0D:1002,ChangRong,1202.0

答案:1001,ZhangDa,1098.0

設(shè)有定義:

struct

{char

mark[12];

int

num1;

double

num2;}

t1,t2;

若變量均已正確賦初值,則以下語句中錯誤的是()

A:t1=t2;B:t2.num1=t1.num1;C:t2.mark=t1.mark;D:t2.num2=t1.num2;

答案:t2.mark=t1.mark;

以下敘述中正確的是()

A:結(jié)構(gòu)體數(shù)組名不能作為實參傳給函數(shù)B:結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員C:即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值D:結(jié)構(gòu)體變量的地址不能作為實參傳給函數(shù)

答案:結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員

設(shè)有以下程序段

struct

person

{

float

weight;

char

sex;

char

name[10];

}

rec,

*ptr;

ptr

=

&rec;

從鍵盤讀入字符串給結(jié)構(gòu)體變量rec的name成員,錯誤的輸入語句是()

A:scanf("%s",

);B:scanf("%s",

ptr->name);C:scanf("%s",

rec->name);D:scanf("%s",

(*ptr).name);

答案:scanf("%s",

rec->name);

以下敘述中錯誤的是()

A:typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤B:用typedef可以說明一種新的類型名C:typedef的作用是用一個新的標(biāo)識符來代表已存在的類型名D:可以用typedef說明的新類型名來定義變量

答案:typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤

有如下程序

#include

<stdio.h>

struct

person

{

char

name[10];

int

age;

}

main()

{

struct

person

room[4]

=

{{"Zhang",

19},

{"Li",

20},

{"Wang",

17},

{"Zhao",

18}};

printf("%s:%d",

(room+2)->name,

room->age);

}

程序運行后的輸出結(jié)果是()

A:Wang:19B:Li:19C:Li:20D:Wang:17

答案:Wang:19

有以下程序

#include

<stdio.h>

typedef

struct

stu

{

char

name[10];

char

gender;

int

score;

}

STU;

void

f(STU

*a,

STU

*b)

{

*b

=

*a;

printf("%s,%c,%d,",

b->name,

b->gender,

b->score);

}

main()

{

STU

a={"Zhao",

'm',

290},

b={"Qian",

'f',

350};

f(&a,&b);

printf("%s,%c,%d",

,

b.gender,

b.score);

}

程序的運行結(jié)果是()

A:Qian,f,350,Qian,f,350B:Zhao,m,290,Zhao,m,290C:Zhao,m,290,Qian,f,350D:Qian,f,350,Zhao,m,290

答案:Zhao,m,290,Zhao,m,290

第十二章測試

若有以下程序

#include

<stdio.h>

main()

{

int

c;

c=

10^5;

printf("%d",

c);

}

則程序的輸出結(jié)果是(

)。

A:105

B:10000

C:5

D:15

答案:15

下面選項中關(guān)于位運算的敘述正確的是(

)。

A:右移運算時,高位總是補(bǔ)0B:左移運算的結(jié)果總是原操作數(shù)據(jù)2倍C:位運算的對象只能是整型或字符型數(shù)據(jù)D:位運算符都需要兩個操作數(shù)

答案:位運算的對象只能是整型或字符型數(shù)據(jù)

下面關(guān)于位運算符的敘述,正確的是(

)。

A:&表示"按位與"的運算

B:

||表示"按位或"的運算

C:#表示"按位異或"的運算

D:~表示"按位異或"的運算

答案:&表示"按位與"的運算

有以下程序

#include

<stdio.h>

main()

{

int

a=3

,b=3;

printf("%d

",a&b);

}

程序運行后的輸出結(jié)果是(

)。

A:1

B:3

C:6

D:0

答案:3

有以下程序

#include

<stdio.h>

main()

{

int

c,d;

c

=

10

|

5;

d

=

10

+

5;

printf("%d,%d",

c,

d);

}

程序的運行結(jié)果是(

)。

A:5,15

B:10,15

C:15,15D:105,15

答案:15,15

第十三章測試

以下關(guān)于fclose(fp)函數(shù)的敘述正確的是(

)。

A:只有對文件進(jìn)行輸出操作之后,才能調(diào)用fclose(fp)函數(shù)關(guān)閉文件B:只有對文件進(jìn)行輸入操作之后,才需要調(diào)用fclose(fp)函數(shù)關(guān)閉文件C:當(dāng)程序中對文件的所有寫操作完成之后,不一定要調(diào)用fclose(fp)函數(shù)關(guān)閉文件D:當(dāng)程序中對文件的所有寫操作完成之后,必須調(diào)用fclose(fp)函數(shù)關(guān)閉文件

答案:當(dāng)程序中對文件的所有寫操作完成之后,必須調(diào)用fclose(fp)函數(shù)關(guān)閉文件

以下敘述正確的是(

)。

A:fopen函數(shù)的返回值必須賦給一個任意類型的指針變量B:在C語言中調(diào)用fopen函數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論