昆明理工大學(xué)《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷_第1頁
昆明理工大學(xué)《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷_第2頁
昆明理工大學(xué)《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷_第3頁
昆明理工大學(xué)《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷_第4頁
昆明理工大學(xué)《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)校________________班級____________姓名____________考場____________準考證號學(xué)校________________班級____________姓名____________考場____________準考證號…………密…………封…………線…………內(nèi)…………不…………要…………答…………題…………第2頁,共2頁昆明理工大學(xué)

《C語言程序設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷題號一二三四總分得分一、單選題(本大題共30個小題,每小題1分,共30分.在每小題給出的四個選項中,只有一項是符合題目要求的.)1、以下C語言代碼段中,

sizeof

操作符的返回值是多少?

charstr[]="Hello";

()A.5B.6C.10D.不確定2、若有定義:inta[5]={1,2,3,4,5};則對數(shù)組元素的錯誤引用是()A.a[5]B.a[0]C.a[3-1]D.a[4]3、在C語言中,關(guān)于字符數(shù)組和字符串的初始化,以下代碼:

charstr1[10]="Hello";charstr2[]="World";

,哪個數(shù)組的長度是不確定的?()A.

str1

B.

str2

C.兩者長度都不確定D.兩者長度都確定4、C語言中的邏輯運算符(

&&

、

||

、

!

)用于條件判斷。假設(shè)有

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

,表達式

(a>b)&&(b>c)

的值是多少?()A.0B.1C.不確定D.程序出錯5、在C語言中,若有定義

uniondata{inti;floatf;};

,以下正確的是()A.

uniondatad;d.i=10;d.f=3.14;

B.

uniondatad;d={10,3.14};

C.

uniondatad={10,3.14};

D.

uniondatad;d.i=10;printf("%f",d.f);

6、設(shè)有以下C語言代碼段:

voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}

,在主函數(shù)中有

intx=5,y=10;swap(&x,&y);

,調(diào)用

swap

函數(shù)后,

x

y

的值發(fā)生了怎樣的變化?()A.

x

變?yōu)?0,

y

變?yōu)?B.

x

變?yōu)?,

y

變?yōu)?0C.

x

y

的值不變D.程序會出錯7、C語言中的動態(tài)內(nèi)存分配函數(shù)

malloc

free

用于在運行時分配和釋放內(nèi)存。假設(shè)有以下代碼片段:

int*ptr=(int*)malloc(sizeof(int)*5);

,以下關(guān)于這段代碼的描述,正確的是:()A.如果內(nèi)存分配成功,

ptr

將指向一段連續(xù)的、可存儲5個整數(shù)的內(nèi)存空間B.分配的內(nèi)存會自動初始化為0C.即使內(nèi)存分配失敗,

ptr

也不會為

NULL

,需要通過其他方式判斷分配是否成功D.使用完分配的內(nèi)存后,不需要使用

free(ptr)

釋放,操作系統(tǒng)會自動回收8、C語言中的函數(shù)遞歸是一種強大的編程技術(shù)。假設(shè)要使用遞歸計算階乘,以下關(guān)于遞歸函數(shù)的描述,哪一項是不準確的?()A.遞歸函數(shù)在函數(shù)內(nèi)部調(diào)用自身來解決問題B.遞歸函數(shù)必須有一個終止條件,否則會導(dǎo)致無限遞歸C.遞歸函數(shù)的執(zhí)行效率通常比非遞歸函數(shù)高D.對于一些復(fù)雜問題,遞歸可以使代碼更簡潔和易于理解9、若有定義:floatx;inta,b;則以下正確的輸入語句是()A.scanf("%f%d",&x,&a,&b);B.scanf("%f%d",&x,&a);C.scanf("%f%d",x,a);D.scanf("%5.2f%d",&x,&a);10、在C語言中,對于

void

類型的指針,以下關(guān)于它的使用和限制的描述,哪一個是正確的?()A.可以指向任何類型的變量B.不能進行解引用操作C.可以進行算術(shù)運算D.以上都不對11、C語言中的函數(shù)調(diào)用和參數(shù)傳遞是程序設(shè)計中的關(guān)鍵環(huán)節(jié)。假設(shè)有一個函數(shù)

voidswap(int*a,int*b)

用于交換兩個整數(shù)變量的值。以下對于函數(shù)調(diào)用和參數(shù)傳遞的理解,哪一項是不正確的?()A.調(diào)用函數(shù)時,實參的值會被復(fù)制給形參,在函數(shù)內(nèi)部對形參的修改不會影響實參B.當(dāng)傳遞指針作為參數(shù)時,函數(shù)內(nèi)部可以通過解引用指針來修改指針?biāo)赶虻淖兞康闹礐.函數(shù)調(diào)用時,參數(shù)的傳遞順序是從右向左進行的D.函數(shù)可以返回多個值,只需要通過指針參數(shù)來實現(xiàn)12、設(shè)有以下C語言代碼:

inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};int(*p)[3]=a;

,那么

*(p[1]+1)

的值是多少?()A.4B.5C.6D.713、在C語言中,關(guān)于動態(tài)內(nèi)存分配,使用

malloc

函數(shù)分配內(nèi)存后,如果不再使用,應(yīng)該使用哪個函數(shù)釋放內(nèi)存?()A.

free

B.

delete

C.

release

D.不需要釋放14、在C語言中,對于位運算,設(shè)有

inta=5;intb=3;

,那么

a&b

的值是多少?()A.1B.2C.3D.715、C語言中的

typedef

關(guān)鍵字常用于為數(shù)據(jù)類型定義新的名稱。假設(shè)我們有

typedefintINTEGER;

,以下關(guān)于

INTEGER

的使用,哪一個是正確的?()A.

INTEGERa=5;

等價于

inta=5;

B.

INTEGER

不能用于聲明數(shù)組C.

INTEGER

不能作為函數(shù)的返回類型D.以上都不對16、C語言中,關(guān)于字符串的操作,若有

charstr1[]="Hello";charstr2[]="World";

,以下描述正確的是:()A.可以使用

str1=str2;

來將

str2

的內(nèi)容復(fù)制到

str1

B.

strlen(str1)

返回的是字符串

str1

所占的內(nèi)存空間大小C.可以使用

strcpy(str1,str2);

str2

復(fù)制到

str1

,但要確保

str1

有足夠的空間D.字符串比較可以直接使用關(guān)系運算符(如

==

)17、在C語言中,關(guān)于結(jié)構(gòu)體指針的使用,假設(shè)定義了結(jié)構(gòu)體

structBook{chartitle[50];intprice;};

structBook*ptr;

,以下關(guān)于結(jié)構(gòu)體指針的描述,哪一項是不準確的?()A.可以通過

ptr->title

訪問結(jié)構(gòu)體成員B.結(jié)構(gòu)體指針可以指向結(jié)構(gòu)體數(shù)組的元素C.使用結(jié)構(gòu)體指針可以更高效地操作結(jié)構(gòu)體數(shù)據(jù)D.結(jié)構(gòu)體指針本身的大小與結(jié)構(gòu)體的大小相同18、在C語言的預(yù)處理器指令中,

#define

用于定義常量和宏。假設(shè)定義了

#definePI3.14

#defineSQUARE(x)(x*x)

,以下關(guān)于預(yù)處理器指令的描述,哪一項是不正確的?()A.在程序中使用

PI

就相當(dāng)于使用3.14B.宏

SQUARE(x)

在展開時會進行參數(shù)的替換和表達式的計算C.預(yù)處理器指令在編譯前進行處理,會改變源代碼的結(jié)構(gòu)D.宏定義中的參數(shù)不需要指定數(shù)據(jù)類型19、C語言中的位運算在特定場景下很有用。假設(shè)有兩個整數(shù)

inta=5;intb=3;

,執(zhí)行

a&=b;

操作后,

a

的值是多少?()A.1B.3C.5D.020、若有定義:charstr[]="hello";則sizeof(str)的值是()A.5B.6C.10D.不確定21、以下C語言代碼段的輸出結(jié)果是什么?intarr[]={1,2,3,4,5};for(inti=0;i<5;i++)printf("%d",arr[i]);()A.12345B.54321C.01234D.程序報錯22、C語言中,對于函數(shù)聲明

voidfun(inta[],intn)

,以下關(guān)于函數(shù)參數(shù)的描述,正確的是:()A.在函數(shù)內(nèi)部修改數(shù)組元素的值,不會影響主調(diào)函數(shù)中的數(shù)組B.形參

n

用于指定數(shù)組

a

的長度,其值在函數(shù)內(nèi)不可改變C.數(shù)組

a

實際上是以指針的形式傳遞給函數(shù)的D.函數(shù)無法返回數(shù)組23、C語言中的選擇結(jié)構(gòu)(如

if-else

)使用廣泛。假設(shè)有

inta=10,b=20;

,執(zhí)行

if(a>b)printf("A");elseprintf("B");

,會輸出什么?()A.AB.BC.先輸出A,再輸出BD.程序出錯24、在C語言的存儲類別中,以下關(guān)于register變量的描述,不正確的是()A.register變量通常用于存儲頻繁使用的變量,以提高訪問速度B.register變量的數(shù)量是有限制的,具體數(shù)量由編譯器決定C.可以對register變量取地址D.register變量不一定真的被存儲在寄存器中,取決于編譯器的優(yōu)化25、假設(shè)有以下C語言代碼段:

int*p1,*p2;p1=(int*)malloc(sizeof(int));p2=p1;free(p2);

,此時

p1

指向的內(nèi)存是否已被釋放?()A.是B.否C.不確定D.以上都不對26、C語言中的聯(lián)合(

union

)是一種特殊的數(shù)據(jù)類型。假設(shè)我們有

unionData{intnum;floatfnum;};

,并且創(chuàng)建了一個

unionData

類型的變量,以下關(guān)于這個聯(lián)合變量的使用,哪一個是正確的?()A.可以同時存儲

int

float

類型的值B.在同一時間只能存儲

int

float

類型的值C.可以存儲多個不同類型的值D.以上都不對27、在C語言中,若有函數(shù)聲明

voidf(int*p)

,調(diào)用該函數(shù)時,以下傳遞參數(shù)的方式正確的是:()A.

f(5)

B.

f(&5)

C.

f(int*q)

D.

f(&a)

(其中

inta;

)28、在C語言中,位操作符常用于對二進制位進行操作。假設(shè)有以下代碼:

unsignedintnum=5;num=num<<2;

,以下關(guān)于位操作后的結(jié)果,正確的是:()A.

num

的值變?yōu)?0B.

num

的值變?yōu)?0C.

num

的值變?yōu)?5D.程序會產(chǎn)生運行時錯誤,因為位操作不正確29、在C語言的內(nèi)存管理中,以下關(guān)于動態(tài)內(nèi)存分配的描述,不正確的是()A.使用malloc函數(shù)分配的內(nèi)存空間,如果不再使用,需要使用free函數(shù)釋放,否則會造成內(nèi)存泄漏B.calloc函數(shù)與malloc函數(shù)的功能相同,只是在分配內(nèi)存時會將內(nèi)存初始化為0C.realloc函數(shù)可以用于調(diào)整已分配內(nèi)存的大小,但可能會導(dǎo)致數(shù)據(jù)丟失D.動態(tài)分配的內(nèi)存位于代碼段,其生命周期與程序的運行周期相同30、在C語言的函數(shù)遞歸調(diào)用中,假設(shè)我們定義了一個遞歸函數(shù)來計算階乘。當(dāng)輸入的數(shù)值較大時,可能會出現(xiàn)什么問題?()A.函數(shù)執(zhí)行速度非常快B.可能會導(dǎo)致棧溢出C.結(jié)果總是準確無誤D.沒有任何問題二、判斷題(本大題共10小題,每小題2分,共20分.有多個選項是符合題目要求的.)1、在C語言中,使用宏定義可以實現(xiàn)代碼的復(fù)用,減少代碼的重復(fù)編寫。()2、在C語言中,使用fscanf函數(shù)從文件中讀取數(shù)據(jù)和使用scanf函數(shù)從標(biāo)準輸入讀取數(shù)據(jù)的方式是完全相同的。()3、C語言中,共用體變量在同一時刻只能存儲一個成員的值。()4、在C語言中,

const

修飾的變量不能通過指針來修改其值。()5、在C語言中,數(shù)組作為函數(shù)參數(shù)傳遞時,實際上傳遞的是數(shù)組的副本,函數(shù)內(nèi)部對數(shù)組的修改不會影響到原數(shù)組。()6、C語言中的函數(shù)參數(shù)可以是值傳遞或地址傳遞,值傳遞時函數(shù)內(nèi)部對參數(shù)的修改不會影響到函數(shù)外部的實參,而地址傳遞時則可以通過指針修改實參的值。()7、C語言

溫馨提示

  • 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

提交評論