C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年_第1頁
C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年_第2頁
C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年_第3頁
C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年_第4頁
C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計(延邊職業(yè)技術學院)智慧樹知到期末考試答案2024年C語言程序設計(延邊職業(yè)技術學院)已知:int

i,

x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是(

)for(

i=0;

i<3;

i++)printf(“%d”,

x[i][2-i]

);

A:369B:357C:159D:147答案:357若二維數(shù)組a有m列,則在a[i][j]之前的元素個數(shù)為:(

A:i*m+j+1B:i*m+j-1C:i*m+jD:j*m+i答案:i*m+j以下不能對二維數(shù)組進行正確初始化的語句是(

A:int

a[

][3

]={1,2,3,4,5,6};B:int

a[2][3]={0};C:int

a[

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

a[2][3

]={{1,2},{3,4},{5,6}};答案:intC語言程序中,結構體類型變量在程序執(zhí)行期間(

)。

A:部分成員駐留在內存中B:所有成員一直駐留在內存中C:沒有成員駐留在內存中D:只有一個成員駐留在內存中答案:所有成員一直駐留在內存中執(zhí)行語句for(i=1;i++<4;);后變量i的值是:

__。(

A:4B:不定C:3D:5答案:5下面程序的輸出結果是main(){int

s,k;

for(s=1,k=2;k<5;k++)

s+=k;

printf(“%d\n“,s);

}

A:15B:9C:1D:10答案:10已知:int

a[3][4]={0};則下面說法正確的是(

A:數(shù)組a中每個元素均可得到初值0B:只有元素a[0][0]可得到初值C:此定義語句是錯誤的D:數(shù)組a中每個元素都可得到初值,但其值不一定為0答案:數(shù)組a中每個元素都可得到初值,但其值不一定為0下列關系表達式中,結果為“假”的是(

A:(3!=4)>2B:(3+4)>6C:(3<4)==1D:3<=4||3答案:(3!=4)2已知:char

a[20],b[20];則以下正確的輸入語句是(

A:gets(a,b);B:scanf(“%s%s”,&a,&b);C:scanf(“%s%s”,a,b);

D:gets(“a”);gets(“b”);答案:scanf(”%s%s”,a,b);下面對C語言字符數(shù)組描述錯誤的是(

A:可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值B:字符數(shù)組可以存放字符串C:字符數(shù)組中的字符串可以進行整體輸入輸出D:字符數(shù)組元素的下標從0開始答案:可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值以下符合C語言語法的賦值表達式是(

A:d=9+e,f=d+9B:d=9+e=d+7C:d=9+e+f=d+9D:d+1=9+e,e+1,d+9答案:d=9+e成員運算符“.”比指針運算符“*”優(yōu)先級高。(

A:正確B:錯誤答案:正確定義a、b為雙精度型變量的語句為:“doublea,b;”。

A:對B:錯答案:對如果程序定義了一個符號常量

#define

PI

3.14159

程序在運算過程中為PI分配float類型的空間。(

A:正確B:錯誤答案:錯誤結構體變量必須先定義后才可以使用。(

A:正確B:錯誤答案:正確整型常數(shù)可用以下三種形式表示:十進制、二進制、八進制。

A:正確B:錯誤答案:錯誤實參向形參進行數(shù)值傳遞時,數(shù)值傳遞的方向是單向的,即形參變量值的改變不影響實參變量的值。(

A:正確B:錯誤答案:正確在C語言中,%是只能用于整數(shù)運算的運算符。(

A:對B:錯答案:對內部靜態(tài)變量的作用域和壽命與自動變量的相同。(

A:錯B:對答案:錯在C語言中,字符串常量存放在字符數(shù)組中要有一個結束符,該結束符是0。

A:正確B:錯誤答案:錯誤以下敘述正確的是(

A:do-while語句構成的循環(huán)不能用其他語句構成的循環(huán)來代替;B:do-while語句構成的循環(huán)只能用break語句退出;C:用do-while語句構成的循環(huán),在while后的表達式為零時結束循環(huán)。D:用do-while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán);答案:AI參考:正確選項是:D:用do-while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán);\n\ndo-while循環(huán)的執(zhí)行規(guī)則是在循環(huán)體中先執(zhí)行一次循環(huán)體,然后再判斷是否繼續(xù)循環(huán)。當while后面的表達式為非零時,會繼續(xù)循環(huán);只有當表達式為零時,才會退出循環(huán)。因此,D選項是正確的。A、B、C選項都存在錯誤,因為do-while循環(huán)可以被其他類型的循環(huán)所替代,也可以使用break語句退出,或者在while后的表達式為零時結束循環(huán)。'下面程序段的循環(huán)次數(shù)是:

int

k=0;while(k<10)

{if(k<1)

continue;

if(k==5)

break;

k++;}

A:死循環(huán),不能確定循環(huán)次數(shù)B:6C:5D:4答案:AI參考:正確答案是D,程序的循環(huán)次數(shù)是4。解析如下:程序首先將k賦值為0,然后進入循環(huán)。在循環(huán)中,如果k小于10,則執(zhí)行循環(huán)體中的代碼。在循環(huán)體中,如果k小于1,則使用continue語句跳過本次循環(huán),繼續(xù)下一次循環(huán)。如果k等于5,則使用break語句跳出循環(huán)。因此,在所有條件都不滿足的情況下,k會自增1,繼續(xù)下一次循環(huán)。因此,整個循環(huán)的次數(shù)是4。所以答案是D。'如下程序,

main()

{

int

y=3,x=3,z=1;

printf(“%d

%d\n”,(++x,y++),z+2);

}

運行該程序的輸出結果是(

A:4

2B:3

3C:3

4D:4

3答案:AI參考:運行該程序的輸出結果是“C:3

4”。\n\n程序中,變量x、y和z分別被賦值為3、3和1。在第一個printf語句中,(++x,y++)的運算順序是從右向左,先執(zhí)行y++,再執(zhí)行++x,所以x的值變?yōu)?,y的值不變?yōu)?。因此,(++x,y++)的結果為“4

3”。\n\n在第二個printf語句中,z+2的值為3+2=5。\n\n所以程序的輸出結果是“3

4”。'以下正確的語句是(

A:int

a[3][

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

a[1][4]={1,2,3,4,5};C:int

a[2][3

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

a[

][3

]={0};答案:AI參考:正確選項是B:inta[1][4]={1,2,3,4,5};。\n\n在A選項中,初始化時第一維的大小未給出,無法初始化。在C選項中,第二維的大小為3,但是初始化時卻有兩個元素,也存在問題。在D選項中,數(shù)組聲明但未賦值,也不符合要求。只有B選項完全符合題目要求,首先聲明了一個一維數(shù)組a,然后逐個初始化其元素。'C語言最基本的數(shù)據(jù)類型是()

A:整型、實型、字符型B:整型、邏輯型、字符型C:整型、實型、邏輯型D:實型、邏輯型、字符型答案:AI參考:正確選項是C語言最基本的數(shù)據(jù)類型是:整型、實型、邏輯型。\n\n解釋:C語言中有四種基本數(shù)據(jù)類型,分別是整型(int)、實型(float)、字符型(char)和邏輯型(bool)。其中,整型和實型是最常用的兩種數(shù)據(jù)類型,它們分別對應著整數(shù)和浮點數(shù)。邏輯型數(shù)據(jù)在C語言中并不常用,但在某些特殊情況下可能會用到。字符型數(shù)據(jù)用于存儲單個字符,也是C語言中最常用的數(shù)據(jù)類型之一。因此,選項C是正確的答案。'以下使i的運算結果為4的表達式是(

A:int

i=0,j=0;

(i=3,(i++)+i);B:int

i=1,j=1;

i+=j+=2;C:int

i=0,j=1;

i++=j++*2;D:int

i=1,j=0;

j=i=((i=3)*2);答案:AI參考:正確答案是【D】:inti=1,j=0;j=i=((i=3)*2)。\n\n解釋:選項A中,(i=3,(i++)+i)表達式的執(zhí)行順序是先執(zhí)行括號內的i++,再執(zhí)行賦值操作,因此i的值是3而不是4;選項B中,i+=j+=2沒有括號,優(yōu)先級不明確,所以表達式的執(zhí)行結果取決于具體的編譯器;選項C中,由于表達式中有多個變量同時進行運算,會造成歧義,正確的寫法應該是i+=j+=j*2;選項D中,先對i進行自增賦值操作i=3,然后再對i進行乘2操作,得到的結果是6,再賦值給j,所以j的值為6,最終表達式的結果為4。因此選項D是正確的。'分析以下程序,下列說法正確的是:______________

int

x=1,s=0;

while

(0!=0)

s+=++x;

printf(“%d”,s);

A:運行程序輸出:0B:程序段中的控制表達式非法C:運行程序輸出:1D:程序段執(zhí)行無限次答案:AI參考:正確選項是C:運行程序輸出:1。\n\n程序中的while循環(huán)條件為0!=0,這是一個非法的控制表達式,因為!=是邏輯運算符,不能與數(shù)字0進行比較。因此,程序段執(zhí)行無限次的說法也是錯誤的。\n\n程序中使用了++x,這是一個自增操作符,會先取出x的值,然后再將x的值加1。因此,在循環(huán)中,x的值會先被加1,然后再與0進行比較。由于初始值x=1,所以循環(huán)條件為true,程序會一直執(zhí)行循環(huán)體中的語句,s+=++x會將s的值加上x的當前值(即s的值加上1),因此程序輸出的結果是s的當前值,即s+=++x后s的值為2,最后使用printf函數(shù)輸出s的值。因此程序輸出的是“1”。\n\n注意:這個程序的執(zhí)行過程可能會導致程序異常終止或者出錯,因為其使用了不合法的控制表達式。在實際編程中,應該避免使用不合法的控制表達式。'分析以下程序運行結果:___________________

main()

{

int

i,j,m=0;

for(i=1;i<=15;i+=4)

for(j=3;j<=19;j+=4)

m++;

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

}

A:12B:20C:15D:25答案:AI參考:程序運行結果為:D:25。\n\n程序中使用了兩個嵌套的for循環(huán),外層循環(huán)變量i從1到15,內層循環(huán)變量j從3到19。在每次內層循環(huán)結束后,m自增1,并使用printf函數(shù)輸出m的值。由于兩個循環(huán)都是步長為4的等差數(shù)列,因此當i從1增加到15時,j從3增加到19,此時m的值會增加到25。因此,程序的運行結果是輸出25。\n\n因此,正確選項為D:25。'以下程序段:___________________

int

x=-1;

do{x=x*x;}

while(!x);

A:循環(huán)執(zhí)行一次B:是死循環(huán)C:循環(huán)執(zhí)行二次D:有語法錯誤答案:AI參考:正確選項是B:是死循環(huán)。\n\n程序段中的代碼是一個do-while循環(huán),循環(huán)體內的語句是x=x*x,而初始值x=-1。由于x的初始值為負數(shù),因此每次循環(huán)執(zhí)行x=x*x后,x的值都會增加,但是當x的值大于0時,!x的結果為false,循環(huán)終止,因此這個循環(huán)是一個死循環(huán)。所以選項B是正確的。選項A、C、D都是錯誤的,因為循環(huán)會一直執(zhí)行下去,沒有終止條件。'以下描述正確的是_______________。(

A:只能在循環(huán)體內和switch語句體內使用break語句B:在循環(huán)體內使用break語句或continue語句的作用相同C:當從多層循環(huán)嵌套中退出時,只能使用goto語句D:continue語句的作用是結束整個循環(huán)的執(zhí)行答案:AI參考:正確選項是【A:只能在循環(huán)體內和switch語句體內使用break語句】。\n\n解釋:\n\nA選項描述正確,因為break語句只能在循環(huán)體內和switch語句體內使用,不能在其他地方使用。B選項描述錯誤,因為break語句可以結束整個循環(huán),而continue語句只結束本次循環(huán),不影響下一次循環(huán)。C選項描述錯誤,因為多層循環(huán)嵌套中可以使用break語句退出。D選項描述錯誤,因為continue語句的作用是結束本次循環(huán),而不是結束整個循環(huán)的執(zhí)行。'對for(表達式1;;表達式3)可理解為(

A:for(表達式1;1

;表達式3)B:for(表達式1;表達式1

;表達式3)C:for(表達式1;0

;表達式3)D:for(表達式1;表達式2

;表達式3)答案:AI參考:正確選項是C:for(表達式1;0;表達式3)。\n\nfor循環(huán)的語法通常為:for(初始化表達式;循環(huán)條件表達式;執(zhí)行操作表達式)。這里的for(表達式1;0;表達式3)表示循環(huán)次數(shù)為0次,即不執(zhí)行循環(huán)體中的操作。這是for循環(huán)的一種常見用法,用于控制循環(huán)的次數(shù),而非常規(guī)意義上的迭代操作。因此,選項C符合這個描述。\n\n選項A和D的表述不夠準確,因為“表達式1”在此語境下并非需要執(zhí)行的操作,而是循環(huán)的初始條件。選項B的表述則有些混亂,因為它試圖將“表達式1”作為循環(huán)的主體,這在語法上是不正確的。'已知:char

str[

]=”ab\n\012\\\””;則執(zhí)行語句:

Printf(“%d”,

strlen(str));

的結果是(

A:3B:12C:6D:4答案:"AI參考:根據(jù)您提供的代碼,這是一個關于C語言中的字符數(shù)組的問題。執(zhí)行`printf(%d,strlen(str));`語句時,實際上會打印字符串str的長度。根據(jù)字符串中的字符和`12\`等轉義字符的特性,實際上只包含了字符串中`a`,`b`,``,``,``,`12`,和一個結尾符(代表字符串結束)的長度,即6個字符。所以正確答案是C:6。"下面程序運行后的結果是(

)。

#include<stdio.h>

int

main()

{

FILE

*fp;

int

i,m=9,n=9;

fp=fopen('d:\test.txt','w');

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

fprintf(fp,'%d',i);

fclose(fp);

fp=fopen('d:\test.txt','r');

fscanf(fp,'%d%d',&m,&n);

fclose(fp);

printf('m=%d,n=%d',m,n);

return

0;

}

A:m=9,n=9B:m=1,n=2C:m=1234,n=9D:m=1,n=234答案:AI參考:正確選項是【A:m=9,n=9】。\n\n程序首先使用fopen函數(shù)以寫入模式("w")打開一個名為"d:\test.txt"的文件,并在該文件中寫入數(shù)字1到4。然后,使用fclose函數(shù)關閉文件。接著,程序再次以讀取模式("r")打開同一個文件,并使用fscanf函數(shù)從文件中讀取兩個整數(shù)m和n。由于在寫入文件時使用的是"%d",所以在讀取文件時也使用"%d"格式化字符串,因此讀取的數(shù)字為文件中的實際數(shù)字,即m=9,n=9。所以程序輸出結果為"m=9,n=9"。選項B、C、D都不符合程序的運行結果。'分析如下程序運行結果:________________

main()

{int

a=2,b=-1,c=2;

if(a<b)

if(b<0)

c=0;

else

c++;

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

}

A:1B:2C:0D:3答案:AI參考:答案:D\n\n程序運行結果為3。\n\n首先,程序中定義了三個整數(shù)變量a、b和c,其中a的值為2,b的值為-1,c的值為2。\n\n接下來,程序進入第一個if語句,判斷a是否小于b。由于a的值為2,而b的值為-1,因此a小于b,所以進入第一個if語句的判斷條件部分。\n\n在第一個if語句中,又判斷b是否小于0。由于b的值為-1,因此b小于0,所以執(zhí)行第一個if語句中的c=0;語句,此時c的值為0。\n\n然后程序跳出第一個if語句,進入第二個if語句的判斷條件部分,但由于前面的if語句已經執(zhí)行過c=0;語句,所以此時c的值為0。\n\n由于沒有滿足第二個if語句的條件(即b不小于0),所以執(zhí)行else語句中的c++;語句,將c的值加1。此時c的值為1。\n\n最后,程序使用printf函數(shù)輸出變量c的值,即3。\n\n因此,程序運行結果為3。'如下程序的輸出結果是:_____

main()

{int

x=1,a=0,b=0;

switch(x)

{case

0:

b++;

case

1:a++;

case

2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}

A:a=1,b=0B:a=1,b=1C:a=2,b=2D:a=2,b=1答案:AI參考:輸出結果為:a=1,b=1。\n\n程序中,變量a和b的值在switch語句中沒有被改變,因此初始值仍然是0。在switch語句中,當x等于0時,b++,此時b的值變?yōu)?。當x等于1時,case語句沒有執(zhí)行任何操作,因此a的值保持不變。當x等于2時,a++和b++同時執(zhí)行,此時a的值變?yōu)?,b的值變?yōu)?。最后,printf函數(shù)輸出a和b的值,即a=1,b=1。因此,正確選項為B:a=1,b=1。'已知:char

str1[20]=”abcde”,str2[20]=”xyz”;則執(zhí)行語句:

printf(“%d”,strlen(

strcpy(str1,str2)));

輸出結果是(

A:5B:9C:8D:3答案:"AI參考:輸出結果為:B:9。首先,strlen()函數(shù)用于計算字符串的長度,返回的是字符串中字符的個數(shù)。這里使用strcpy()函數(shù)將str2復制到str1中,strlen()函數(shù)也會計算出str2中字符的個數(shù)。而str2中有兩個字符z和y,因此strlen(str2)的輸出結果為9。因此,最終printf語句中的輸出結果為9。注意:strcpy()函數(shù)在C語言中是安全的,因為它在內

溫馨提示

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

評論

0/150

提交評論