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

下載本文檔

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

文檔簡介

全國計算機等級考試二級C語言(山東聯(lián)盟)知到智慧樹章節(jié)測試課后答案2024年秋煙臺大學(xué)緒論單元測試

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

A:

1000B:

10C:

1010D:

0010

答案:

1010

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

A:

8B:

10C:

1000D:

1

答案:

8

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

A:

地址B:

位C:

字節(jié)

答案:

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

A:

地址B:

字節(jié)C:

答案:

字節(jié)

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

A:

8B:

1C:

4D:

10

答案:

8

第一章單元測試

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

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

答案:定義函數(shù)以下敘述錯誤的是(

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

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

)

A:計算機不能直接執(zhí)行C語言程序B:C程序在運行過程中所有計算都以二進制方式進行C:所有C程序都需要編譯鏈接無誤后才能運行

D:C程序在運行過程中所有計算都以十進制方式進行

答案:C程序在運行過程中所有計算都以十進制方式進行流程圖是描述算法的很好的工具,一般的流程圖中由幾種基本圖形組成,其中條件判斷的圖形是(

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

答案:菱形以下敘述中正確的是()。

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

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

第二章單元測試

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

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

在main函數(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:.cpC:obj

D:.C

答案:.C以下關(guān)于注釋的敘述中錯誤的是()。

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

答案:注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套關(guān)于程序中的注釋,以下敘述正確的是()。

A:

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

*/之間

B:/*

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

C:注釋必須置于所說明的語句前或語句后

D:注釋內(nèi)容錯誤會導(dǎo)致編譯出錯

答案:/*

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

第三章單元測試

若有定義語句:char

c='A';

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

)

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

答案:1個字節(jié)以下選項中,合法的C語言實數(shù)是(

A:

.2e0

B:3.1e0.4C:7.12ED:E13

答案:

.2e0

以下選項中合法的標識符是(

A:1_

_B:1-1C:1_1D:_11

答案:_11以下選項中敘述正確的是(

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

答案:C語言的標識符可分為關(guān)鍵字、預(yù)定義標識符和用戶標識符三類C語言程序中,運算對象必須是整型數(shù)的運算符是(

A:

/

B:&&C:%D:*

答案:%若有定義語句:int

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

a-=

a*a;后,a的值是(

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

答案:-264有以下程序

#include

<stdio.h>

intmain()

{

int

x=010,

y=10;

printf("%d,%d",

++x,

y--);

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

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

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

答案:語句ch=(unsignedint)a+b;是對a與b之和進行強制類型轉(zhuǎn)換,結(jié)果賦值給變量ch以下選項中,合法的數(shù)值型常量是(

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

答案:3.1415

第四章單元測試

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

)

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

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

)。

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

c=d,

b=c,

a=b;C:a=b,

b=c,

c=d,

d=1;D:a=1,

b=a,

c=b,

d=c;

答案: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:出錯B:a+b=0C:a+b=10D:a+b=30

答案:a+b=0有以下程序

#include

<stdio.h>

main()

{

char

c1='A',

c2='Y';

printf(

"%d,

%d",

c1,c2

);

}

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

)

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

答案:65,89設(shè)有定義:

int

n

=

1234;

double

x

=

3.1411;

則語句

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

n,

x);

的輸出結(jié)果是(

)

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

答案:1234,3.141有如下程序

#include

<stdio.h>

main()

{

int

x

=

0x13;

printf("%d",

x+1);

}

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

)

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

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

c;int

d;

,程序運行時輸入:

1,2

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

)

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

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

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

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

&c,&d);

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

&c,&d);

以下能正確輸出字符a

的語句是()

A:printf("%s",

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

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

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

"a");

答案:printf("%s",

"a");

第五章單元測試

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

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

(0<x)

&&

(x<10)

答案:由&&構(gòu)成的邏輯表達式與由||構(gòu)成的邏輯表達式都有"短路"現(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,0,1,0B:1,1,1,0C:1,0,0,1

D:1,1,0,1

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

A:x=(a>=b)?

-10:10;B:x=-10;

if(a<b)

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

x=10;

if(b<a)

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

x=10;

else

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:輸出a、b、c中值相等的數(shù)值C:輸出a、b、c中的最小值D:輸出a、b、c中的最大值

答案:輸出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=0,b=1

B:Fa=1,b=2

C:Ta=1,b=2D:Fa=0,b=2

答案:Ta=1,b=2下列條件語句中,輸出結(jié)果與其他語句不同的是()

A:

if

(

a

)

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!=0

)

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=1B:a=1,b=0C:a=2,b=1D:a=2,b=2

答案:a=2,b=1若以下選項中的變量a,

b,

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

A:switch(

a+b

)

{

case1

:

case3

:

y=a+b;

break;

case0

:

case4

:

y=a-b;}

B:switch(

a*a+b*b

)

{

default

:

break;

case

3

:

y=a+b;

break;

case

2

:

y=a-b;

break;

}

C:switch

a*b

{

case

10

:

y=a+b;

default

:

y=a-b;

}

D:switch

(a+9)

{

case

a

:

y=a-b;

case

b

:

y=a+b;}

答案: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:隨機值C:15D:16

答案:隨機值有以下程序

#include

<stdio.h>

main(

)

{

int

a=-2,

b=2;

for(;

++a

&&

--b;)

printf("%d,%d,",

a,b);

}

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

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

答案:-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:1,3B:1,2C:0,2D:0,3

答案:1,2以下敘述正確的是(

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

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

#include

<stdio.h>

main()

{

char

c;

do

{

c=getchar();

putchar(c);

}while(c

!=

'#');

printf("");

}

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

,

則輸出結(jié)果是(

A:abcdefgB:abcdefg#C:abcdefg##D:##

答案:abcdefg#以下敘述中正確的是(

)

A:break語句只能用于switch語句體中B:break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)C:continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)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:1D:10

答案: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-B:1-2-3-C:3-4-D:0-1-2-3-

答案: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:11C:13D:10

答案: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

1B:3

5

7C:3

6

9D:7

5

3

答案:3

5

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

A:int

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

x[4][]=

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

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

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

答案:int

x[4][]=

{{1,2,3},{1,2,3},{1,2,3},{1,2,3}};以下敘述中正確的是()。

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

答案:C語言本身沒有提供對字符串進行整體操作的運算符以下敘述中正確的是()。

A:有定義語句:

char

str1[]

=

"str1";

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

'是必須的char

str1[]

=

{'s',

't',

'r',

'1',

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

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

'是必須的char

str1[]

=

{'s',

't',

'r',

'1',

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

A:語句

int

a[]

=

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

char

a[2]

=

{"A",

"B"};

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

char

a[3];

a

=

"AB";

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

a[8]

=

{0};

是合法的

答案:語句int

a[8]

=

{0};

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

A:語句

char

str[10]

=

"string!";

char

str[10]

=

{"string!"};

并不等價B:在語句char

str[]

=

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

"string!",系統(tǒng)已自動在最后加入了'\0'字符,表示串結(jié)尾D:對于一維字符數(shù)組,不能使用字符串常量來賦初值

答案:對于字符串常量

"string!",系統(tǒng)已自動在最后加入了'\0'字符,表示串結(jié)尾以下選項中,沒有編譯錯誤的是()。

A:char

str4[];

str4

=

"hello

world";B:char

name[10];

name

=

"china";C:char

str3[]

=

{'d',

'e',

'b',

'u',

'g',

''};D:char

str1[5]

=

"pass",

str2[6];

str2

=

str1;

答案: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:7B:14C:12D:5

答案: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:Figfloweris

red.C:Figflowerisred.D:Figflower

is

red.

答案:Figflowerisred.以下敘述中正確的是()。

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

int

a[4][3]

=

{1,2,4,5};

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

int

a[4][3]

=

{{1,2},

{4,5}};

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

int

a[][3]

=

{1,2,4,5};

是錯誤的初始化形式

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

第八章單元測試

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

)。

A:函數(shù)調(diào)用必須傳遞實參B:函數(shù)必須要有返回值

C:函數(shù)形參的類型與返回值的類型無關(guān)D:函數(shù)必須要有形參

答案:函數(shù)形參的類型與返回值的類型無關(guān)關(guān)于C語言函數(shù)聲明的位置,以下敘述正確的是(

)。

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

答案:在函數(shù)聲明之后對該函數(shù)進行調(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:31B:21C:20D:15

答案: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:1

2

5

6

B:5

6

3

4

C:3

4

5

6

D:5

6

1

2

答案:5

6

3

4

以下敘述中錯誤的是(

)。

A:在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用B:在函數(shù)外部定義的變量在所有函數(shù)中都有效C:在不同的函數(shù)中可以使用相同名字的變量D:函數(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:10,20,30

B:20,30,10

C:0,0,0

D:30,20,10

答案: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:0,0,0,0,0,B:1,1,1,1,1,C:1,2,3,4,5,D:1,3,6,10,15,

答案: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:6-5-4-3-2-1

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

答案: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:2

B:1.7

C:1

D:2.0

答案: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:4,7,10,13,

B:1,6,11,16,

C:16,11,6,1,

D:

13,10,7,4,

答案:16,11,6,1,

第九章單元測試

以下敘述中正確的是()

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

答案:在一個程序中,允許使用任意數(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:21,18

B:81,81C:21,21D:18,18

答案:21,18

有如下程序

#include

<stdio.h>

#define

D(x)

4*x+1

main()

{

int

i

=

2,

j

=

4;

printf("%d",

D(i+j));

}

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

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

答案:13有以下宏定義及調(diào)用

#define

HA

2

#define

HB(a)

(HA+1)*a

...

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

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

A:宏定義不允許嵌套B:x的值是6

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

答案:x的值是16

第十章單元測試

有如下程序段

int

*p,

a=1;

p=&a;

*p=10;

則變量a的值為________。

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

答案:10變量的指針,其含義是指該變量的_________

A:值

B:名

C:地址

D:一個標志

答案:地址

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

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

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

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

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

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

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

inta[5],*p=a;

A:*&a[5]

B:*(a+2)C:

a+2

D:*(p+5)

答案:*(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:8,8,

B:4,8,

C:8,2,

D:2,4,

答案:8,2,

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

A:

int(*p)[]

B:int*(p[])

C:

int(*p)[4]D:int*p[4]

答案:

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

A:*(a+i+j)

B:*(a+i)+jC:*(*(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:LANG

C:LANGUAGE

D:langUAGE

答案:LANG

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

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

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

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

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

答案: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,ChangRong,1098.0B:1002,ZhangDa,1202.0C:1002,ChangRong,1202.0D:1001,ZhangDa,1098.0

答案:1001,ZhangDa,1098.0設(shè)有定義:

struct

{char

mark[12];

int

num1;

double

num2;}

t1,t2;

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

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

答案:t2.mark=t1.mark;以下敘述中正確的是()

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

答案:結(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",

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

(*ptr).name);C:scanf("%s",

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

);

答案:scanf("%s",

rec->name);以下敘述中錯誤的是()

A:typedef的作用是用一個新的標識符來代表已存在的類型名B:typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤C:用typedef可以說明一種新的類型名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:20C:Wang:17

D:Li:19

答案: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:Zhao,m,290,Zhao,m,290B:Qian,f,350,Zhao,m,290C:Qian,f,350,Qian,f,350D:Zhao,m,290,Qian,f,350

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

第十二章單元測試

若有以下程序

#include

<stdio.h>

main()

{

int

c;

c=

10^5;

printf("%d",

c);

}

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

)。

A:15

B:105

C:10000

D:5

答案:15

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

)。

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

答案:位運算的對象只能是整型或字符型數(shù)據(jù)下面關(guān)于位運算符的敘述,正確的是(

)。

A:

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

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

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

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

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

有以下程序

#include

<stdio.h>

main()

{

int

a=3

,b=3;

printf("%d

",a&b);

}

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

)。

A:6

B:3

C:0

D:1

答案:3

有以下程序

#include

<stdio.h>

main()

{

int

c,d;

c

=

10

|

5;

d

=

10

+

5;

printf("%d,%d",

c,

d);

}

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

)。

A:15,15B:10,15

C:105,15D:5,15

答案:15,15

第十三章單元測試

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

)。

A:只有對文件進行輸入操作之后,才需要調(diào)用fclose(fp)函數(shù)關(guān)閉文件B:只有對文件進行輸出操作之后,才能調(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:在C語言中調(diào)用fopen函數(shù)就可把程序中要讀、寫的文件與磁盤上實際的數(shù)據(jù)文件聯(lián)系起來B:

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論