吉林師范大學(xué)博達(dá)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷_第1頁(yè)
吉林師范大學(xué)博達(dá)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷_第2頁(yè)
吉林師范大學(xué)博達(dá)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷_第3頁(yè)
吉林師范大學(xué)博達(dá)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷_第4頁(yè)
吉林師范大學(xué)博達(dá)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

裝訂線裝訂線PAGE2第1頁(yè),共3頁(yè)吉林師范大學(xué)博達(dá)學(xué)院

《C語(yǔ)言程序設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷院(系)_______班級(jí)_______學(xué)號(hào)_______姓名_______題號(hào)一二三四總分得分一、單選題(本大題共35個(gè)小題,每小題1分,共35分.在每小題給出的四個(gè)選項(xiàng)中,只有一項(xiàng)是符合題目要求的.)1、以下C語(yǔ)言代碼段中,

sizeof

操作符的返回值是多少?

charstr[]="Hello";

()A.5B.6C.10D.不確定2、C語(yǔ)言中,對(duì)于以下代碼:

voidfunc(char*str){str[0]='A';}

,如果在主函數(shù)中調(diào)用

func

函數(shù)并傳遞一個(gè)字符串常量,會(huì)發(fā)生什么?()A.成功修改字符串常量的第一個(gè)字符B.程序會(huì)出錯(cuò)C.不確定,取決于編譯器D.沒(méi)有任何變化3、C語(yǔ)言中的字符串比較函數(shù)

strcmp

用于比較兩個(gè)字符串。假設(shè)我們有兩個(gè)字符串

charstr1[]="Hello";

charstr2[]="HelloWorld";

,當(dāng)使用

strcmp(str1,str2)

進(jìn)行比較時(shí),結(jié)果是什么?()A.0(表示相等)B.負(fù)數(shù)(表示

str1

小于

str2

)C.正數(shù)(表示

str1

大于

str2

)D.不確定4、若有定義:inta[5]={0,1,2,3,4},p=a+2;則

p的值是()A.0B.1C.2D.35、若有定義:floatx=1.5;inty;,則以下表達(dá)式的值為1的是()A.(int)xB.(int)(x+y)C.(int)x+yD.x+(int)y6、設(shè)有以下定義:intx=10,y=3,z;則語(yǔ)句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()A.1B.0C.4D.37、若有定義:chars[10]="program";則以下不能將字符串"language"賦給數(shù)組s的語(yǔ)句是()A.strcpy(s,"language");B.strncpy(s,"language",8);C.s="language";D.memcpy(s,"language",8);8、在C語(yǔ)言的指針函數(shù)中,以下關(guān)于返回指針的函數(shù)的描述,不正確的是()A.返回指針的函數(shù)可以返回靜態(tài)分配的內(nèi)存地址,也可以返回動(dòng)態(tài)分配的內(nèi)存地址B.如果返回的是動(dòng)態(tài)分配的內(nèi)存地址,調(diào)用者需要使用free函數(shù)釋放C.返回的指針不能指向函數(shù)內(nèi)部的局部變量,因?yàn)楹瘮?shù)結(jié)束后局部變量的存儲(chǔ)空間會(huì)被釋放D.返回指針的函數(shù)一定比返回值的函數(shù)效率高9、若有定義:inta[5]={1,2,3,4,5};則對(duì)數(shù)組元素的錯(cuò)誤引用是()A.a[5]B.a[0]C.a[3-1]D.a[4]10、C語(yǔ)言中的聯(lián)合(

union

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

unionData{intnum;floatfnum;};

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

unionData

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

int

float

類(lèi)型的值B.在同一時(shí)間只能存儲(chǔ)

int

float

類(lèi)型的值C.可以存儲(chǔ)多個(gè)不同類(lèi)型的值D.以上都不對(duì)11、C語(yǔ)言中,對(duì)于以下代碼:

intarr[5]={0};

,數(shù)組

arr

中的元素值都是什么?()A.都是0B.都是未定義的值C.第一個(gè)元素是0,其他元素未定義D.以上都不對(duì)12、假設(shè)在C語(yǔ)言中有以下結(jié)構(gòu)體定義

structstudent{intid;charname[20];floatscore;};

,以下關(guān)于結(jié)構(gòu)體的描述,正確的是:()A.可以直接將一個(gè)結(jié)構(gòu)體變量賦值給另一個(gè)結(jié)構(gòu)體變量B.結(jié)構(gòu)體成員的訪問(wèn)可以使用

struct.student.id

的形式C.結(jié)構(gòu)體數(shù)組中的元素不能通過(guò)指針進(jìn)行訪問(wèn)D.結(jié)構(gòu)體變量所占的內(nèi)存空間是其各成員所占空間之和13、設(shè)有以下C語(yǔ)言函數(shù):

intfun(intn){if(n<=0)return0;elsereturnn+fun(n-1);}

,調(diào)用

fun(5)

的返回值是多少?()A.5B.10C.15D.不確定14、在C語(yǔ)言中,關(guān)于

switch

語(yǔ)句,以下代碼:

intnum=2;switch(num){case1:printf("One");break;case2:printf("Two");break;default:printf("Default");}

,輸出結(jié)果是什么?()A.OneB.TwoC.DefaultD.程序會(huì)出錯(cuò)15、C語(yǔ)言中的字符數(shù)組和字符串常量有一定的區(qū)別。假設(shè)我們有

charstr1[]="Hello";

char*str2="World";

,以下關(guān)于它們的存儲(chǔ)方式和修改權(quán)限的描述,哪一個(gè)是正確的?()A.

str1

存儲(chǔ)在棧上,可以修改其內(nèi)容;

str2

存儲(chǔ)在常量區(qū),不能修改其內(nèi)容B.

str1

存儲(chǔ)在常量區(qū),不能修改其內(nèi)容;

str2

存儲(chǔ)在棧上,可以修改其內(nèi)容C.兩者都存儲(chǔ)在棧上,可以修改其內(nèi)容D.兩者都存儲(chǔ)在常量區(qū),不能修改其內(nèi)容16、設(shè)有以下語(yǔ)句:charstr1[]="string",str2[8],*str3,*str4="string";則()是對(duì)庫(kù)函數(shù)strcpy的不正確調(diào)用。A.strcpy(str2,"hello");B.strcpy(str3,"hello");C.strcpy(str1,"hello");D.strcpy(str4,"hello");17、在C語(yǔ)言中,關(guān)于動(dòng)態(tài)內(nèi)存分配的錯(cuò)誤處理,假設(shè)使用

malloc

分配內(nèi)存,以下關(guān)于錯(cuò)誤處理的描述,哪一項(xiàng)是不正確的?()A.分配內(nèi)存失敗時(shí),

malloc

返回

NULL

,可以通過(guò)判斷是否為

NULL

來(lái)進(jìn)行錯(cuò)誤處理B.忽略對(duì)

malloc

返回值的檢查,可能導(dǎo)致程序崩潰C.即使內(nèi)存分配成功,也可能因?yàn)楹罄m(xù)的操作導(dǎo)致內(nèi)存訪問(wèn)錯(cuò)誤D.一旦內(nèi)存分配成功,就無(wú)需再擔(dān)心內(nèi)存相關(guān)的錯(cuò)誤18、若有以下C語(yǔ)言代碼:charstr1[]="Hello";char*str2="World";以下說(shuō)法正確的是:()A.str1和str2存儲(chǔ)方式相同B.str1可以修改其內(nèi)容,str2不行C.str2可以修改其內(nèi)容,str1不行D.str1和str2都可以修改其內(nèi)容19、C語(yǔ)言中,若有以下代碼段

uniondata{inti;floatf;};uniondatad;

,以下描述正確的是:()A.聯(lián)合體

data

的大小是其成員大小的總和B.可以同時(shí)給聯(lián)合體的多個(gè)成員賦值C.在同一時(shí)刻,聯(lián)合體中只有一個(gè)成員的值是有效的D.聯(lián)合體成員的訪問(wèn)方式與結(jié)構(gòu)體相同20、若有定義:inta[10];,則以下對(duì)數(shù)組元素的正確引用是()A.a[10]B.a(5)C.a[3+5]D.a[10-10]21、在C語(yǔ)言中,若有定義

structstudent{intnum;charname[20];};

,以下能正確定義結(jié)構(gòu)體變量的是()A.

structstudents={101,"Tom"};

B.

structs={101,"Tom"};

C.

students={101,"Tom"};

D.

structstudent={101,"Tom"};

22、設(shè)有定義:floata=3.14;intb;,則以下能實(shí)現(xiàn)將a的值強(qiáng)制轉(zhuǎn)換為整型并賦給b的語(yǔ)句是()A.b=(int)a;B.b=int(a);C.b=(int)(a);D.b=a;23、若有定義:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};則a[1][2]的值是()A.6B.7C.8D.024、在C語(yǔ)言中,關(guān)于函數(shù)的參數(shù)傳遞,假設(shè)有函數(shù)

voidmodify(int*p){*p=100;}

,在主函數(shù)中有

intnum=5;modify(&num);

,那么

num

的值會(huì)變成多少?()A.5B.100C.不確定D.程序出錯(cuò)25、對(duì)于以下C語(yǔ)言代碼段:

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

,調(diào)用

swap(&x,&y)

可以實(shí)現(xiàn)交換兩個(gè)變量

x

y

的值嗎?()A.可以B.不可以C.不一定D.以上都不對(duì)26、C語(yǔ)言中的文件操作可以實(shí)現(xiàn)數(shù)據(jù)的持久存儲(chǔ)和讀取。假設(shè)有一個(gè)文本文件

data.txt

,以下對(duì)于文件操作的描述,哪一項(xiàng)是不正確的?()A.可以使用

fopen

函數(shù)以不同的模式(如"r"表示讀,"w"表示寫(xiě))打開(kāi)文件B.使用

fscanf

函數(shù)從文件中讀取數(shù)據(jù)時(shí),需要指定數(shù)據(jù)的格式C.文件讀寫(xiě)完成后,不需要使用

fclose

函數(shù)關(guān)閉文件,系統(tǒng)會(huì)自動(dòng)處理D.對(duì)文件進(jìn)行寫(xiě)入操作時(shí),如果文件不存在,

fopen

函數(shù)會(huì)自動(dòng)創(chuàng)建新文件27、C語(yǔ)言中的文件讀寫(xiě)操作可以通過(guò)

fscanf

fprintf

函數(shù)實(shí)現(xiàn)。假設(shè)有以下代碼:

FILE*fp;fp=fopen("data.txt","w");fprintf(fp,"%d%f",5,3.14);fclose(fp);

,再次以讀模式打開(kāi)文件并讀取數(shù)據(jù),以下操作正確的是:()A.使用

fscanf(fp,"%d%f",&num,&fnum);

可以正確讀取寫(xiě)入的數(shù)據(jù)B.直接使用

fscanf(fp,"%d%f",num,fnum);

讀取數(shù)據(jù),無(wú)需使用取地址符C.讀取數(shù)據(jù)時(shí),文件指針會(huì)自動(dòng)移動(dòng)到文件開(kāi)頭D.無(wú)法讀取之前寫(xiě)入的數(shù)據(jù),因?yàn)樽x寫(xiě)方式不匹配28、假設(shè)我們有一個(gè)C語(yǔ)言程序,需要在不同的操作系統(tǒng)上運(yùn)行。在進(jìn)行代碼編寫(xiě)時(shí),需要考慮哪些與操作系統(tǒng)相關(guān)的差異?()A.文件路徑的表示方式B.線程和進(jìn)程的管理方式C.內(nèi)存分配和釋放的方式D.以上都是29、在C語(yǔ)言中,關(guān)于位運(yùn)算,設(shè)有

inta=5;intb=3;

,那么

a&b

的值是多少?()A.1B.2C.3D.730、對(duì)于C語(yǔ)言中的結(jié)構(gòu)體,假設(shè)有如下定義

structstudent{intid;charname[20];floatscore;};

,創(chuàng)建一個(gè)該結(jié)構(gòu)體類(lèi)型的變量

structstudents;

,以下哪種方式可以正確地為結(jié)構(gòu)體成員賦值?()A.

s.id=1;strcpy(,"Alice");s.score=90.5;

B.

s={1,"Alice",90.5};

C.

s->id=1;s->name="Alice";s->score=90.5;

D.

structstudents={1,"Alice",90.5};

31、在C語(yǔ)言的內(nèi)存管理中,

malloc

free

函數(shù)用于動(dòng)態(tài)分配和釋放內(nèi)存。假設(shè)有以下代碼:

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

,使用完這塊內(nèi)存后,應(yīng)該如何正確釋放?()A.

deleteptr;

B.

free(ptr);

C.

ptr=NULL;

D.不需要釋放,程序結(jié)束時(shí)自動(dòng)釋放32、在C語(yǔ)言中,設(shè)有函數(shù)

voidfun(int*p)

,在函數(shù)體內(nèi)通過(guò)

*p

對(duì)指針?biāo)赶虻淖兞窟M(jìn)行操作。若在主函數(shù)中有

inta=10;fun(&a);

,那么在函數(shù)

fun

中改變

*p

的值,主函數(shù)中的

a

的值會(huì)發(fā)生變化嗎?()A.會(huì)B.不會(huì)C.不一定D.以上都不對(duì)33、在C語(yǔ)言的宏定義中,如果宏的參數(shù)在宏體中出現(xiàn)多次,可能會(huì)導(dǎo)致意外的結(jié)果。假設(shè)我們有宏

#defineSQUARE(x)x*x

,當(dāng)我們使用

SQUARE(2+3)

時(shí),結(jié)果會(huì)是什么?()A.25B.11C.15D.不確定34、C語(yǔ)言中,關(guān)于遞歸函數(shù),假設(shè)有以下定義:

intfactorial(intn){if(n==0||n==1)return1;elsereturnn*factorial(n-1);}

,那么

factorial(5)

的值是多少?()A.5B.15C.120D.程序會(huì)出錯(cuò)35、若有定義:structstudent{intnum;charname[20];}s;則以下對(duì)成員num的引用正確的是()A.s.numB.student.numC.s->numD.(*s).num二、判斷題(本大題共10小題,每小題2分,共20分.有多個(gè)選項(xiàng)是符合題目要求的.)1、C語(yǔ)言中,對(duì)于

float

類(lèi)型的變量,其精度一定比

double

類(lèi)型的變量低。()2、在C語(yǔ)言中,使用

const

修飾的變量,其值在程序運(yùn)行過(guò)程中不能被修改,即使通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換也不行。()3、在C語(yǔ)言中,定義一個(gè)指針變量

int*ptr

后,如果沒(méi)有為其進(jìn)行初始化或者賦值,就對(duì)其進(jìn)行解引用操作,如

*ptr=5;

,會(huì)導(dǎo)致未定義的行為,可能引起程序崩潰。()4、在C語(yǔ)言中,使用freopen函數(shù)可以將一個(gè)文件重新指定為標(biāo)準(zhǔn)輸入或標(biāo)準(zhǔn)輸出。()5

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論