C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院_第1頁
C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院_第2頁
C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院_第3頁
C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院_第4頁
C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

付費下載

下載本文檔

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

文檔簡介

C語言程序設計(黑龍江工程學院)智慧樹知到課后章節答案2023年下黑龍江工程學院黑龍江工程學院

第一章測試

人類通過不同的語言進行交流,人與計算機的交流是通過()來實現的。

A:自然語言B:機械操作C:程序設計語言D:文字

答案:程序設計語言

高級語言處于程序設計語言發展的第()個階段。

A:四B:一C:三D:二

答案:三

C語言的創始人是()。

A:肯·湯普遜B:丹尼斯·里奇C:馮·諾依曼D:比爾·蓋茨

答案:丹尼斯·里奇

C語言源程序中main函數()。

A:可有可無B:可以有一個C:有且只能有一個D:可有多個

答案:有且只能有一個

C語言源程序文件擴展名為()。

A:cB:exeC:objD:cpp

答案:c

下列說法中不正確的是(

)。

A:C程序書寫時,區分大小寫字母B:C程序書寫時,一個語句可分成幾行書寫C:C程序書寫時每行必須有行號D:C程序書寫時,一行可以寫多個語句

答案:C程序書寫時每行必須有行號

C語言是結構化語言。

A:對B:錯

答案:對

C語言是面向對象語言。

A:錯B:對

答案:錯

C語言是面向過程語言。

A:錯B:對

答案:對

開發C語言程序包括編輯源程序、編譯、運行三個步驟。

A:錯B:對

答案:錯

第二章測試

表達式:(int)((double)9/2)-9%2的值是_____

A:0B:4C:5D:3

答案:3

以下選項中關于C語言常量的敘述錯誤的是_______

A:所謂常量,是指在程序運行過程中,其值不能被改變的量

B:經常被使用的變量可以定義成常量

C:常量可分為數值型常量和非數值型常量

D:常量分為整型常量、實型常量、字符常量和字符串常量

答案:經常被使用的變量可以定義成常量

以下選項中,能用作用戶標識符的是________

A:unsigned

B:8_8

C:void

D:_0_

答案:_0_

以下選項中能表示合法常量的是______

A:3lf

B:1.5E2.0

C:‘’

D:1,200

答案:‘’

按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是___________

A:下劃線

B:連接符

C:數字字符

D:大寫字母

答案:連接符

以下選項中正確的定義語句是__________

A:doublea=b=7;

B:doublea;b;

C:double,a,b;

D:doublea=7,b=7;

答案:doublea=7,b=7;

設有定義intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是______

A:++k

B:k+=1

C:k+1

D:k++

答案:k++

以下敘述中正確的是_____

A:同一英文字符的大寫和小寫形式代表的是同一字符常量

B:轉義字符用@符號開頭

C:字符變量在定義時不能賦初值

D:字符常量可以參與整數運算

答案:字符常量可以參與整數運算

C語言中依據程序編譯器的不同,int定義的字節數不同,不短于short,不長于long,一般為2或4個字節。

A:對B:錯

答案:對

C語言的整型常量有二進制、八進制、十進制和十六進制四種表示方式。

A:對B:錯

答案:錯

第三章測試

以下不屬于結構化程序設計中基本結構的是_________。

A:跳轉結構B:順序結構C:循環結構D:選擇結構

答案:跳轉結構

以下類型的C語句中,不屬于簡單語句的是_________。

A:空語句B:復合語句

C:條件語句D:表達式語句

答案:條件語句

若int類型數據占2個字節,則下列語句的輸出結果為________。

intk=-1;printf(“%d,%u,%o”,k,k,k);

A:-1,32767,-177777B:-1,-1,-1

C:-1,32768,177777D:-1,65535,177777

答案:-1,65535,177777

下列程序的輸出是_______。#include<stdio.h>main(){printf(“%d”,null);}

A:-1B:變量無定義C:0D:1

答案:變量無定義

以下關于結構化程序設計中的三種基本結構,敘述不正確的是________。

A:循環結構中,需先對循環條件進行判斷,條件成立才執行循環體。B:每種基本結構均有唯一的一個入口和唯一的一個出口。C:選擇結構也叫做分支結構,在該結構下只能選擇程序的一條分支來執行,同時該分支可以為空。D:順序結構是最簡單的一種基本結構。

答案:循環結構中,需先對循環條件進行判斷,條件成立才執行循環體。

在scanf函數中,附加格式字符h表示輸入短整型數據,不能與其共同使用的格式字符是_______。

A:fB:xC:oD:d

答案:f

printf(“%5.3s,%-5.3s,%2.3s”,“China”,“China”,“China”);以上語句的運行結果是_______。

A:□□ina,ina□□,ina

B:□□Chi,Chi□□,Chi

C:□□Chi,Chi□□,ChD:Chi□□,□□Chi,Chi

答案:□□Chi,Chi□□,Chi

floata=1234.56;printf(“%e,%9e,%9.1e”,a,a,a);以上語句的運行結果是_______。

A:1.234560e+003,1.234560e+003,□□1.2e+003

B:1.234560e+3,1.234560e+3,□□□1.2e+3

C:1.234560e+003,1.234560e+003,□1.2e+003D:1.23456e+003,1.23456e+003,□1.2e+003

答案:1.234560e+003,1.234560e+003,□1.2e+003

scanf(“%3d%*3d%3d”,&x,&y);當輸入數據3456789012時,x,y的取值分別為________。

A:x=456,y=012B:x=345,y=678C:x=345,y=901D:x=789,y=012

答案:x=345,y=901

以下字符輸入輸出函數中,用于輸入單個字符的函數是gets()。

A:錯B:對

答案:錯

第四章測試

已知語句“if(w)…;else…;”,與表達式w的等價表示是:()

A:w!=1B:w==0C:w!=0D:w==1

答案:w!=0

設x,y,z為int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是(

)。

A:x<=yB:x||y+z&&y-z

C:!((x<y)&&!z||1)D:

'x'&&'y'

答案:!((x<y)&&!z||1)

表示算術關系12<=x<=y的C語言表達式為()

A:(12<=x)|(x<=y)B:(12<=x)&&(x<=y)

C:(12<=x)||(x<=y)D:(12<=x)&(x<=y)

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

判斷char型變量ch是否為大寫字母的正確表達式是()

A:A’<=ch<=‘Z’B:

(ch>=‘A’)&&(ch<=‘Z’)

C:(‘A’<=ch)AND(‘Z’>=ch)D:(ch>=‘A’)&(ch<=‘Z’)

答案:

(ch>=‘A’)&&(ch<=‘Z’)

若希望當A的值為奇數時,表達式的值為“真”,A的值為偶數時,表達式的值為“假”。則以下不能滿足要求的表達式是()

A:

A%2==1

B:

!(A%2==0)

C:!(A%2)D:A%2

答案:!(A%2)

設有:inta=1,b=2,c=3,d=4,m=2,n=2;執行(m=a>b)&&(n=c>d)后n的值為()

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

答案:2

以下程序的運行結果是()main(){

intm=5;

if(m++>5)

printf(“%d\n”,m);

else;

printf(“%d\n”,m--);

}

A:7B:4C:6D:5

答案:6

若運行時給變量x輸入12,則以下程序的運行結果是()main(){

intx,y;

scanf(“%d”,&x);

y=x>12?x+10:x-12;

printf(“%d\n”,y);}

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

答案:0

main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執行后輸出結果是()

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

答案:2,2,2

邏輯運算符兩側運算對象的數據類型可以是任何類型的數據。

A:對B:錯

答案:對

第五章測試

以下程序的運行結果是()main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c);}

A:3B:0C:2D:13

答案:2

main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}運行改程序后a和b的值分別為()

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

答案:2,1

有以下程序#include<stdio.h>main(){inta=1,b=0;if(!a)b++;elseif(a==0)

if(a)b+=2;elseb+=3;printf(“%d\n”,b);}程序運行后的輸出結果是()

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

答案:0

若整數x分別等于95、87、100、43、66、79,則以下程序段運行后屏幕顯示是什么??????switch(x/10)????

?{?case?6:???????

case?7:?????????printf("Pass\n");??break;???????

case?8:?????????printf("Good\n");??break;???????

case?9:???????

case?10:????????printf("VeryGood\n");??break;???????

default:????????printf("Fail\n");

?????}?1.x等于?95時,程序段運行后屏幕上顯示()????????????????2.?x等于?87時,程序段運行后屏幕上顯示()??????3.x等于100時,程序段運行后屏幕上顯示()?????????????????4.x等于?43時,程序段運行后屏幕上顯示()????5.x等于?66時,程序段運行后屏幕上顯示???()6.x等于?79時,程序段運行后屏幕上顯示()A.Pass

B.Good

C.VeryGood

D.Fail

A:CBCDAAB:BCDCDAC:DCCDACD:ABCDAA

答案:CBCDAA

分析以下程序,?下列說法正確的是()main()???{?int?x=5,a=0,b=0;?

if(x=a+b)

?printf("*?*?*?*");?

else???

printf("#?#?#?#");???

}?

A:通過編譯,但不能連接B:輸出*?*?*?*C:有語法錯,不能通過編譯D:輸出#?#?#?#

答案:輸出#?#?#?#

有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結果是()

A:0.000000

B:0.250000C:0.500000D:1.000000

答案:0.500000

以下不正確的if語句形式是()

A:if(x>y&&x!=y);B:if(x==y)x+=y;C:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D:if(x<y){x++;y++;}

答案:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);

inta=3,b=2,c=1;if(a>b>c)a=b;elsea=c;則a的值是()

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

答案:1

有以下程序main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執行后輸出結果是()

A:2B:3

C:4D:編譯時出錯

答案:3

C語言的if語句嵌套時,if與else的配對關系是:每個else總是與它上面的if配對。

A:對B:錯

答案:錯

第六章測試

以下敘述中正確的是________。

A:continue語句的作用是:在執行完本次循環體中剩余語句后,終止循環

B:只能在循環體內和switch語句體內使用break語句

C:在while語句和do-while語句中無法使用continue語句

D:當break出現在循環體中的switch語句體內時,其作用是跳出該switch語句體,并終止循環

答案:只能在循環體內和switch語句體內使用break語句

以下不構成無限循環的語句或者語句組是_________。

A:n=0;while(1){n++;}

B:n=0;

do{++n;}while(n<=0);

C:n=10;while(n);{n--;}

D:for(n=0,i=1;;i++)n+=i;

答案:n=0;

do{++n;}while(n<=0);

下列語句中,有語法錯誤,不能編譯的是_____。

A:do2;while(a==b);

B:while(x=y)5;

C:dox++while(x==10);

D:while(0);

答案:dox++while(x==10);

以下程序段中,while循環執行的次數是________。intk=0;while(k=1){

k++;}

A:一次也不執行

B:有語法錯誤,不能執行

C:無限次

D:執行一次

答案:無限次

以下程序段執行后,輸出結果是inti,sum=0;for(i=1;i<6;i++){

sum+=i;}printf("%d",sum);

A:15B:不確定C:14D:0

答案:15

循環語句“for(x=0,y=0;(y!=123))||(x<4);x++);”的循環次數為________。

A:3次B:無限次C:4次D:不確定

答案:無限次

下述程序代碼段輸出的結果是________。for(k=1;k<10;k++);printf("k=%d,k=%o,k=%x",k,k,k);

A:k=10,k=12,k=13

B:k=11,k=013,k=0xb

C:k=11,k=13,k=b

D:k=11,k=12,k=11

答案:k=11,k=13,k=b

以下程序段中,while循環的循環次數是________。inti=0;while(i<10){

if(i<1)

{

continue;

}

if(i==5)

{

break;

}

i++;}

A:1B:10C:死循環D:6

答案:死循環

對于“for(表達式1;表達式2;表達式3)循環體”,當表達式2的值為真時,會重復執行表達式1,循環體和表達式3。

A:對B:錯

答案:錯

在循環語句“do

語句while(條件);”中,當條件為0時結束循環。

A:對B:錯

答案:對

第七章測試

程序功能:輸入n的值(n<10),計算1!+2!+3!+......+n!,并輸出計算結果。程序中空白處應該填________。#include<stdio.h>intmain(){

inti,n;

longsum=0,fac=1;

//fac存儲每個加項(階乘)的值

printf("請輸入n的值:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

___________

//后一加項與前一加項的關系

sum=sum+fac;

}

printf("和為%ld",sum);

return0;}

A:fac=fac*i;B:fac++;C:sum=sum*i;D:fac=fac+sum;

答案:fac=fac*i;

若有整型變量i,j,則以下程序段中內循環體“printf("ok");”的循環次數為________。for(i=5;i;i--){

for(j=0;j<4;j++)

{

printf("ok");

}}

A:20B:24C:30D:25

答案:20

以下程序段的輸出結果是________。inti=0,a=0;

while(i<20){

for(;;)

{

if(i%10==0)

{

break;

}

else

{

i--;

}

}

i+=11;

a+=i;}printf("%d",a);

A:11B:33C:32D:21

答案:32

假定a和b為int型變量,則執行以下語句后b的值為________。a=1;b=10;do{

b-=a;

a++;}while(b--<0);

A:9B:-2C:-1D:8

答案:8

設x和y均為int型變量,則執行下面的循環后y的值為for(y=1,x=1;y<=50;y++){

if(x>=10)

{

break;

}

if(x%2==1)

{

x+=5;

continue;

}

x-=3;}

A:2B:6C:4D:8

答案:6

設i,j,k均為整型變量,則執行如下語句后,k的值為________。for(i=0,j=10;i<=j;i++,j--){

k=i+j;}

A:11B:9C:8D:10

答案:10

以下程序段的輸出結果是________。inta=0,i;

for(i=1;i<5;i++){

switch(i)

{

case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}}printf("%d",a);

A:10B:20C:31D:13

答案:31

以下程序段運行時,如果從鍵盤輸入1298再回車,則輸出結果為intn1,n2;

scanf("%d",&n2);while(n2!=0){

n1=n2%10;

n2=n2/10;

printf("%d",n1);}

A:8921B:1298C:9D:1

答案:8921

以下程序段的輸出結果是________。inti=10,j=0;do{

j=j+i;

i--;}while(i>2);printf("%d",j);

A:52B:48C:54D:25

答案:52

for(;;)和while(1)構成的都是無限循環。

A:對B:錯

答案:對

第八章測試

如有定義語句inta[]={1,8,2,8,3,8,4,8,5,8};,則數組a的大小是________。

A:10B:不定C:11D:8

答案:10

有如下說明:

inta[10]={0,1,2,3,4,5,6,7,8,9};則數值不為9的表達式是________。

A:a[8]

B:a[10-1]C:a[9]-0D:a[9]-a[0]

答案:a[8]

下列程序執行后的輸出結果是__________。

main()

{inta,b[5];

a=0;b[0]=3;

printf("%d,%d",b[0],b[1]);

}

A:3,不定值B:0,3C:3

0D:3,0

答案:3,不定值

以下程序輸出的結果是________。#include

<stdio.h>main(){inta[]={1,2,3,4,5},i,j,s=0;

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

s=s*10+a[i];

printf("s=%d",s);

}

A:s=5,4,3,2,1B:s=54321C:s=12345

D:s=1,2,3,4,5

答案:s=12345

執行下面的程序段后,變量k中的值為__________。intk=3,s[2];

s[0]=k;k=s[1]*10;

A:10B:不定值C:30D:33

答案:不定值

假定一個int型變量占用四個字節,若有定義:intx[10]={0,2,4};則數組x在內存中所占字節數是

A:6B:40C:10D:3

答案:40

inta[3]定義了一個整型數組,它的3個元素是a[1],a[2]和a[3]。

A:錯B:對

答案:錯

可以在定義數組時只給一部分數組元素賦值。

A:對B:錯

答案:對

對數組元素賦予的初值可以依次放在一對圓括號內。

A:錯B:對

答案:錯

inta[3]定義了一個整型數組,它的3個元素是a[0],a[1]和a[2]。

A:錯B:對

答案:對

第九章測試

在定義intn[5][6];后,若認為n[0][0]為第1個元素,則第10個元素是________。

A:n[2][5]B:n[2][4]C:n[1][4]D:n[1][3]

答案:n[1][3]

下列二維數組初始化語句中,正確的是__________。

A:inta[][3]={8,0,7,0,3,l,2,5};B:floata[2][3]={{l,2},{3,4},{5,6}};C:inta[][]={{9,3,1},{8,4,2},{3,5,7}};D:floata[3][]={{1,2,3},{4,5,6},{7,8,9}};

答案:inta[][3]={8,0,7,0,3,l,2,5};

若定義chara[]="Hello!";則strlen(a)、sizeof(a)的值分別為

A:76B:77C:67D:78

答案:67

以下程序的輸出結果是(

)。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf("%d%d%d%d",a[0][3],a[1][2],a[2][1],a[3][0]);}

A:輸出值不定B:1470C:5430D:0650

答案:0650

若有定義:inta[2][4];,則引用數組元素正確的是

A:a[0][4]B:a[2][2]C:a[2][2+1]D:

a[0][3]

答案:

a[0][3]

若定義一個名為s且初值為"123"的字符數組,則下列定義錯誤的是________。

A:chars[4]={'1','2','3'};B:chars[]={‘123’};

C:chars[]={’1','2','3',''};

D:chars[]={"123"};

答案:chars[]={‘123’};

設有定義:chars[12]="string";則printf("%d",strlen(s));的輸出結果是________。

A:11B:7C:12D:6

答案:6

語句printf("%d",strlen("abs\101"));的輸出結果是________。

A:4B:10C:8D:7

答案:4

在用字符數組來處理字符串時,應始終保證數組的長度大于字符串的實際長度。

A:錯B:對

答案:對

使用字符串連接函數strcat(字符數組1,字符數組2)時,字符數組1要定義足夠的長度,才能裝入全部被連接的字符串,而使用strcpy(字符數組1,字符數組2)函數時,無需考慮字符數組1的長度問題。

A:對B:錯

答案:對

第十章測試

在C語言中,若定義函數時對函數類型未加顯式說明,則函數的隱含類型為_______。

A:double

B:char

C:void

D:int

答案:int

在C語言的函數調用中,如果普通變量作為函數的參數,則調用函數時_______。

A:由用戶確定是否共用一個存儲單元

B:由計算機系統確定是否共用一個存儲單元

C:實參和形參共用一個存儲單元

D:實參和形參分別占用一個獨立的存儲單元

答案:實參和形參分別占用一個獨立的存儲單元

在C語言的函數調用中,如果普通變量作為函數的實參,則它與對應形參之間的傳遞方式是_______。

A:由實參傳遞給形參,再由形參傳遞給實參

B:由用戶指定傳遞方式

C:地址傳遞

D:單向值傳遞

答案:單向值傳遞

下面對函數的敘述,正確的是_______。

A:函數中沒有return語句,說明函數不帶值

B:函數不能嵌套定義

C:函數中無論是否有return語句,都能返回正確值

D:函數中的返回值,是通過return語句獲得的

答案:函數中的返回值,是通過return語句獲得的

在C語言中規定,函數返回值的類型由_______。

A:調用該函數時系統臨時決定

B:return語句中的表達式類型決定

C:定義該函數時所指定的函數類型決定

D:調用該函數的主調函數決定

答案:定義該函數時所指定的函數類型決定

函數調用在程序中出現的位置一般有3種方式,下面敘述中錯誤的是_______。

A:函數調用可以出現在表達式中

B:函數調用可以作為獨立的語句存在

C:函數調用可以作為一個函數的實參

D:函數調用可以作為一個函數的形參

答案:函數調用可以作為一個函數的形參

下面程序的輸出結果是_______。#include<stdio.h>doublefunc(intx,inty,intz);intmain(void){

doublex;

inta=3,b=4,c=5;

x=func(a,b,c);

printf("%f",x);

return0;}doublefunc(intx,inty,intz){

doublet;

t=x%y*z;

returnt;}

A:3

B:3.000000

C:15.000000

D:15

答案:15.000000

在C語言中,函數調用語句function((a,b,c),(d,e));中參數的個數是_______。

A:1B:4C:5D:2

答案:2

在C語言中,程序的基本單位是文件。

A:對B:錯

答案:錯

在C語言中,程序進行編譯的單位是文件。

A:錯B:對

答案:對

第十一章測試

下面敘述中不正確的是_______。

A:在一個函數中定義的變量只在本函數范圍內有效

B:在不同的函數中可以使用相同名字的變量,它們在內存中占用不同的單元

C:在一個函數內的復合語句中定義的變量只在本函數范圍內有效

D:函數中的形參是函數自己的局部變量

答案:在一個函數內的復合語句中定義的變量只在本函數范圍內有效

下面敘述中不正確的是_______。

A:函數可以沒有形參,可是函數名后的一對括號卻不能省略

B:在沒有聲明函數返回值類型時,函數返回值的類型默認為int

C:函數的類型可以是整型、實型、字符型,但不可以是指針型

D:在C語言中,不能在一個函數的內部再定義函數

答案:函數的類型可以是整型、實型、字符型,但不可以是指針型

下面程序的輸出結果是_______。#include<stdio.h>intfunction(inta,intb);intmain(void){

intx=5,y=3,s;

s=function(x,y);

printf("%d",s);

return0;}

intfunction(inta,intb){returna*a-b*b;}

A:16B:2C:8D:32

答案:16

下面程序的輸出結果是_______。#include<stdio.h>longfunc(intn);intmain(void){

printf("%ld",func(5));

return0;}

longfunc(intn){

if(n>2){returnfunc(n-1)+func(n-2);}

else{return1;}}

A:8B:5C:7D:6

答案:5

下面程序的輸出結果是_______。#include<stdio.h>intfunc(void);

intmain(void){

inti,s;

for(i=0;i<4;i++)s=func();

printf("%d",s);

return0;}

intfunc(void){

staticintx=6;

x++;

returnx;}

A:10B:9C:8D:7

答案:10

下面程序中應該補充(填寫在橫線位置)的代碼是_______。#include<stdio.h>intmax(intx,inty);

//函數功能:求兩數中的較大數

intmain(void){

inta,b,c;

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

c=__________________;

printf("maxis%d",c);

return0;}

intmax(intx,inty){

intz;

if(x>y)

z=x;

else

z=y;

returnz;}

A:max(&a,&b);

B:max(x,y)

C:max(a,b)

D:intmax(inta,intb)

答案:max(a,b)

下面程序中應該補充(填寫在橫線位置)的代碼中,有錯的是#include<stdio.h>______________________________

intmain(void){

inta,b,c;

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

printf("minis%d",c);

return0;}

//函數功能:求兩數中的較大數intmin(intx,inty){

intz;

z=x<y?x:y;

returnz;}

A:intmin(intx,inty)

B:intmin(int,int);

C:intmin(intx,inty);

D:min(intx,inty);

答案:intmin(intx,inty)

下面程序的輸出結果是_______。#include<stdio.h>voidincrement(void);

intmain(void){

increment();

increment();

increment();

return0;}

voidincrement(void){

intx=0;

x+=1;

printf("%d",x);}

A:1

1

1B:1C:1

2

3D:3

3

3

答案:1

1

1

在函數調用中,若funA調用了函數funB,函數funB又調用了函數funA,則這是一個不合法的調用。

A:錯B:對

答案:錯

在一個源程序文件中定義的全局變量的作用域為從定義該變量的位置開始至本文件結束。

A:錯B:對

答案:對

第十二章測試

若有定義inta[]={2,4,6,8,10},p=a;a的值是數組首地址,則*(p+1)的值是4。

A:錯B:對

答案:對

關于C語言指針的運算:指針只有加減操作,沒有乘除操作。指針可以加常數、減常數;相同類型的指針可以相加、相減。

A:錯B:對

答案:錯

已有定義intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執行的賦值語句是

A:ptr1=ptr2B:k=*ptr1*(*ptr2)C:k=*ptr1+*ptr2D:ptr2=k

答案:ptr2=k

若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是

A:&*a,&a,*pointB:&a,&*point,pointC:*&point,*point,&aD:a,point,*&a

答案:&a,&*point,point

若有說明;int*p,m=5,n;以下正確的程序段的是

A:p=&n;*p=m;B:scanf("%d",&n);*p=n;C:p=&n;scanf("%d",&p);D:p=&n;scanf("%d",*p);

答案:p=&n;*p=m;

若已定義chars[10];則在下面表達式中不表示s[1]的地址是

A:s++

B:&s[0]+1

C:&s[1]D:s+1

答案:s++

若有定義:inta[5],*p=a;則對a數組元素的正確引用是

A:*(a+2)B:*&a[5]C:*(p+5)D:a+2

答案:*(a+2)

有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值

A:6B:5

C:9D:8

答案:9

若有以下定義,int

a[10],*p=a;則p+5表示

A:元素a[6]的值B:元素a[5]的地址C:元素a[5]的值D:元素a[6]的地址

答案:元素a[5]的地址

設已有定義:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列語句中正確的是

A:for(p=a,a=a+10;p<a;p++);B:for(p=a;a<p+10;++a);C:for(p=a;a<(p+10);a++);D:for(p=a;p<(a+10);p++);

答案:for(p=a;p<(a+10);p++);

第十三章測試

指針數組的每個元素都是一個指針變量。

A:錯B:對

答案:對

可以用一個指針變量指向一個函數,然后通過該指針變量調用此函數。

A:錯B:對

答案:對

下面程序段的運行結果是

chara[]=”language”,*p;

p=a;

while(*p!=’u’){printf(“%c”,*p-32);p++;}

A:LANGUAGE

B:languageC:langUAGED:LANG

答案:LANG

設p1和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正確執行的賦值語句是

A:c=*p1+*p2;B:p1=p2C:p2=cD:c=*p1*(*p2);

答案:p2=c

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

A:*p=max(a,b);B:p=max(a,b);C:*p=max;

D:p=max;

答案:p=max;

若有函數max(a,b),并且已使函數指針變量p指向函數max,當調用該函數時,正確的調用方法是

A:(*p)(a,b);

B:*pmax(a,b);C:*p(a,b);D:(*p)max(a,b);

答案:(*p)(a,b);

下面選項屬于函數指針的是

A:(int*)p(int,int)

B:兩者都不是C:int*p(int,int)D:兩者都是

答案:兩者都不是

若有以下函數首部

int

fun(double

x[10],int

*n),則下面針對此函數的函數聲明語句中正確的是

A:int

fun(double

,int);B:int

fun(doublex,int*n);

C:int

fun(double*,

int*);D:int

fun(double*x,intn);

答案:int

fun(double*,

int*);

已定義以下函數

fun(int

*p)

{

return

*p;

}

該函數的返回值是

A:形參p所指存儲單元中的值B:形參p中存放的值C:形參p的地址值D:不確定的值

答案:形參p所指存儲單元中的值

以下正確的程序段是

A:charstr[20];

scanf("%s",&str[2]);B:charstr[20],*p=str;scanf("%s",p[2]);C:charstr[20];scanf("%s",&str);

D:char*p;scanf("%s",p);

答案:charstr[20];

scanf("%s",&str[2]);

第十四章測試

預處理命令的前面必須加一個“#”號。

A:對B:錯

答案:對

宏定義不是C語句,不必在行末尾加分號。

A:對B:錯

答案:對

以下程序的輸出結果為

。??#define?PT?5.5??#define?S(x)?PT*x*x??main(){int?a=1,b=2;????printf(“%4.1f”,S(a+b));??}?

A:9.5B:12.0C:33.5

D:12.5

答案:9.5

以下程序的運行結果是。

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

printf(“%d”,k);

}

A:150B:10C:100D:15

答案:15

若有以下宏定義如下:

#defineN2

#defineY(n)((N+1)*n)

則執行語句z=2*(N+Y(5));后的結果是。

A:z=70B:語句有錯誤C:z無定值D:z=34

答案:z=34

C語言的編譯系統對宏命令的處理是。

A:在程序運行時進行的B:在程序連接時進行的C:在對源程序中其它成份正式編譯之前進行的D:和C程序中的其它語句同時進行編譯的

答案:在對源程序中其它成份正式編譯之前進行的

以下有關宏替換的敘述不正確的是。

A:宏名無類型B:宏名必須用大寫字母表示C:宏替換不占用運行時間D:宏替換只是字符替換

答案:宏名必須用大寫字母表示

在宏定義#definePI3.14159中,用宏名PI代替一個。

A:常量B:單精度數C:字符串

D:雙精度數

答案:字符串

請讀程序:#defineADD(x)x+xmain(){

intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf(“sum=%d”,sum);

}上面程序的運行結果是。

A:sum=12B:sum=9C:sum=18D:sum=10

答案:sum=10

以下敘述中不正確的是。

A:預處理命令行都必須以#號開始B:C程序在執行過程中對預處理命令行進行處理C:在程序中凡是以#號開始的語句行都是預處理命令行D:以下是正確的宏定義#defineIBM_PC

答案:C程序在執行過程中對預處理命令行進行處理

第十五章測試

下面結構體的定義語句中,錯誤的是()。

A:structord{intx;inty;intz;};structorda;

B:structord{intx;inty;intz;}structorda;

C:struct{intx;inty;intz;}a;

D:structord{intx;inty;intz;}a;

答案:structord{intx;inty;intz;}structorda;

有以下的結構體變量定義語句:structstudent{

intnum;

charname[9];}stu;則下列敘述中錯誤的是()。

A:struct是C的關鍵字

B:結構體名為student

C:結構體類型名為stu

D:num是結構體成員名

答案:結構體類型名為stu

設有定義:struct{charmark[12];

intnum1;

doublenum2;}t1,t2;若變量均已正確賦初值,則以下語句中錯誤的是()。

A:t2.num2=t1.num2;

B:t1=t2;

C:t2.num1=t1.num1;

D:t2.mark=t1.mark;

答案:t1=t2;

若有如下說明語句,則下面敘述中不正確的是()。structstudent{

longnum;

charname[20];

charsex;

intage;}stu;

A:structstudent是結構體類型

B:stu是結構體類型名

C:num,name,sex,age都是結構體成員名

D:struct是結構體類型關鍵字

答案:stu是結構體類型名

若有如下說明語句,則定義了()。unionstudent{

longnum;

charname[20];

charsex;

intage;};

A:結構體變量

B:共用體變量

C:共用體類型

D:結構體類型

答案:共用體類型

當定義一個結構體變量時,系統分配給它的內存空間字節數是()。

A:結構體中最后一個成員所需內存字節數

B:各成員所需內存字節數的總和

C:結構體中第一個成員所需內存字節數

D:成員中占內存字節數最大的

答案:各成員所需內存字節數的總和

以下程序在VC6.0下運行后的輸出結果為()。#include<stdio.h>structdt{

chara[4];

intb;

doublec;}d

溫馨提示

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

評論

0/150

提交評論