哈爾濱城市職業(yè)學(xué)院《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷_第1頁(yè)
哈爾濱城市職業(yè)學(xué)院《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷_第2頁(yè)
哈爾濱城市職業(yè)學(xué)院《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷_第3頁(yè)
哈爾濱城市職業(yè)學(xué)院《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷_第4頁(yè)
哈爾濱城市職業(yè)學(xué)院《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(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)介

自覺(jué)遵守考場(chǎng)紀(jì)律如考試作弊此答卷無(wú)效密自覺(jué)遵守考場(chǎng)紀(jì)律如考試作弊此答卷無(wú)效密封線第1頁(yè),共3頁(yè)哈爾濱城市職業(yè)學(xué)院

《單片機(jī)C語(yǔ)言程序設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷院(系)_______班級(jí)_______學(xué)號(hào)_______姓名_______題號(hào)一二三四總分得分一、單選題(本大題共35個(gè)小題,每小題1分,共35分.在每小題給出的四個(gè)選項(xiàng)中,只有一項(xiàng)是符合題目要求的.)1、若有定義:charstr[]="hello";則sizeof(str)的值是()A.5B.6C.10D.不確定2、若有定義:chars[10]="China";要將字符串"World"連接到字符串s后面,正確的語(yǔ)句是()A.strcat(s,"World");B.strcpy(s,"World");C.s=strcat(s,"World");D.s=strcpy(s,"World");3、在C語(yǔ)言中,位運(yùn)算可以對(duì)二進(jìn)制位進(jìn)行操作。假設(shè)定義了一個(gè)整數(shù)

intnum=5;

(二進(jìn)制表示為0101),以下關(guān)于位運(yùn)算的描述,哪一項(xiàng)是不正確的?()A.

num<<1

會(huì)將

num

的二進(jìn)制位向左移動(dòng)一位,結(jié)果為10(二進(jìn)制1010)B.

num&3

(二進(jìn)制0011)進(jìn)行按位與運(yùn)算,結(jié)果為1(二進(jìn)制0001)C.位運(yùn)算的速度比普通的算術(shù)運(yùn)算慢D.可以使用位運(yùn)算來(lái)設(shè)置或清除某些位4、C語(yǔ)言中的預(yù)處理器指令在代碼編譯前發(fā)揮著重要的作用。假設(shè)有如下預(yù)處理器指令

#definePI3.14

#ifdefDEBUG

,以下對(duì)于預(yù)處理器指令的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.

#define

指令用于定義常量或宏,在編譯前會(huì)進(jìn)行文本替換B.

ifdef

ifndef

指令用于根據(jù)是否定義了某個(gè)宏來(lái)決定是否包含特定的代碼段C.預(yù)處理器指令可以嵌套使用,增加代碼的靈活性和可配置性D.預(yù)處理器指令的作用范圍是從定義處到文件結(jié)束,不能在函數(shù)內(nèi)部生效5、在C語(yǔ)言中,關(guān)于預(yù)處理器指令,以下哪個(gè)指令用于包含頭文件?()A.

#define

B.

#include

C.

#if

D.

#else

6、C語(yǔ)言中的函數(shù)可以遞歸調(diào)用自身。假設(shè)有以下遞歸函數(shù)定義:

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

,調(diào)用

factorial(5)

,以下關(guān)于函數(shù)返回值的描述,正確的是:()A.5B.15C.120D.程序會(huì)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤,因?yàn)檫f歸次數(shù)過(guò)多7、在C語(yǔ)言中,關(guān)于函數(shù)指針的使用,假設(shè)有函數(shù)

intadd(inta,intb){returna+b;}

,定義一個(gè)函數(shù)指針

int(*funcPtr)(int,int)=add;

,通過(guò)這個(gè)函數(shù)指針調(diào)用函數(shù),以下哪種方式是正確的?()A.

funcPtr(2,3);

B.

(*funcPtr)(2,3);

C.以上兩種都對(duì)D.以上兩種都不對(duì)8、C語(yǔ)言中的結(jié)構(gòu)體為我們提供了一種將不同類(lèi)型數(shù)據(jù)組合在一起的方式。假設(shè)有如下結(jié)構(gòu)體定義:

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

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

structStudents1,s2;s1=s2;

B.要訪問(wèn)結(jié)構(gòu)體成員

score

,可以使用

s1.score

的方式,其中

s1

是結(jié)構(gòu)體變量名C.結(jié)構(gòu)體變量在內(nèi)存中是連續(xù)存儲(chǔ)其成員的,并且成員的存儲(chǔ)順序與定義順序相反D.結(jié)構(gòu)體的大小就是其所有成員大小的總和,不包含任何額外的內(nèi)存開(kāi)銷(xiāo)9、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ě)方式不匹配10、在C語(yǔ)言的函數(shù)指針使用中,假設(shè)我們定義了一個(gè)函數(shù)指針

int(*func_ptr)(int,int);

,并且有兩個(gè)函數(shù)

intadd(inta,intb){returna+b;}

intsubtract(inta,intb){returna-b;}

,如何通過(guò)函數(shù)指針調(diào)用這兩個(gè)函數(shù)?()A.直接使用函數(shù)名調(diào)用B.將函數(shù)名賦值給函數(shù)指針,然后通過(guò)函數(shù)指針調(diào)用C.無(wú)法通過(guò)函數(shù)指針調(diào)用D.以上都不對(duì)11、在C語(yǔ)言的內(nèi)存管理中,

malloc

free

函數(shù)用于動(dòng)態(tài)分配和釋放內(nèi)存。假設(shè)需要為一個(gè)整數(shù)數(shù)組動(dòng)態(tài)分配內(nèi)存,以下關(guān)于內(nèi)存管理的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.使用

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

可以分配5個(gè)整數(shù)大小的內(nèi)存空間B.分配的內(nèi)存使用完后,必須使用

free(arr);

釋放,否則會(huì)導(dǎo)致內(nèi)存泄漏C.多次使用

malloc

分配的內(nèi)存空間是連續(xù)的D.

malloc

函數(shù)可能會(huì)分配失敗,此時(shí)返回

NULL

12、C語(yǔ)言中的位運(yùn)算可以對(duì)二進(jìn)制位進(jìn)行操作,實(shí)現(xiàn)一些特殊的功能。假設(shè)有兩個(gè)整數(shù)

inta=5;intb=3;

,以下對(duì)于位運(yùn)算的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.

a&b

執(zhí)行按位與操作,結(jié)果是1B.

a|b

執(zhí)行按位或操作,結(jié)果是7C.

a^b

執(zhí)行按位異或操作,結(jié)果是6D.

~a

執(zhí)行按位取反操作,結(jié)果是-6,并且取反后的數(shù)在所有位上的值都與原數(shù)相反13、在C語(yǔ)言的循環(huán)結(jié)構(gòu)中,對(duì)于

for

、

while

do-while

循環(huán),以下描述正確的是:()A.

for

循環(huán)的循環(huán)條件在每次循環(huán)開(kāi)始時(shí)都要判斷B.

while

循環(huán)至少會(huì)執(zhí)行一次循環(huán)體C.

do-while

循環(huán)的循環(huán)條件在循環(huán)體執(zhí)行后判斷,所以循環(huán)體至少執(zhí)行一次D.這三種循環(huán)結(jié)構(gòu)不能相互轉(zhuǎn)換14、在C語(yǔ)言中,若有以下函數(shù)定義:intfun(inta,intb){returna+b;}調(diào)用該函數(shù)時(shí),以下哪種方式是正確的?()A.intresult=fun(5);B.intresult=fun(5,6);C.intresult=fun(5,6,7);D.intresult=fun();15、在C語(yǔ)言中,以下關(guān)于字符指針和字符數(shù)組的區(qū)別,假設(shè)有以下定義:

char*str1="Hello";charstr2[]="World";

,正確的是:()A.

str1

str2

都可以通過(guò)指針修改其內(nèi)容B.

str1

的內(nèi)容可以修改,

str2

的內(nèi)容不能修改C.

str1

str2

的內(nèi)存分配方式相同D.

str1

str2

的長(zhǎng)度計(jì)算方式相同16、在C語(yǔ)言中,關(guān)于結(jié)構(gòu)體的使用,假設(shè)有一個(gè)結(jié)構(gòu)體定義

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

,然后創(chuàng)建了一個(gè)結(jié)構(gòu)體變量

structStudentstu;

,要給

stu

id

成員賦值為10,以下哪種方式是正確的?()A.

stu.id=10;

B.

stu->id=10;

C.

*stu.id=10;

D.以上都不對(duì)17、在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ì)18、若有定義:intx=3,y=2;則表達(dá)式x=(y++)+x的值是()A.5B.6C.7D.819、若有定義

inta[5]={1,2,3,4,5};

,則

a[1]

的值是()A.0B.1C.2D.320、C語(yǔ)言中的動(dòng)態(tài)內(nèi)存分配函數(shù)

malloc

free

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

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

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

ptr

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

ptr

也不會(huì)為

NULL

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

free(ptr)

釋放,操作系統(tǒng)會(huì)自動(dòng)回收21、C語(yǔ)言中的文件讀寫(xiě)模式有多種,如只讀、只寫(xiě)、讀寫(xiě)等。假設(shè)要以讀寫(xiě)方式打開(kāi)一個(gè)文件,以下關(guān)于文件模式的描述,哪一項(xiàng)是錯(cuò)誤的?()A.使用

fopen("file.txt","r+")

可以以讀寫(xiě)方式打開(kāi)一個(gè)文本文件B.在讀寫(xiě)模式下,可以同時(shí)進(jìn)行讀取和寫(xiě)入操作C.讀寫(xiě)模式下,文件指針的初始位置在文件開(kāi)頭D.以讀寫(xiě)模式打開(kāi)一個(gè)不存在的文件會(huì)導(dǎo)致錯(cuò)誤22、若有定義:floatx=3.5;intz=8;,則表達(dá)式x+z%3的值為()A.4.5B.5.5C.6.5D.7.523、C語(yǔ)言中的字符串處理需要特別注意。假設(shè)有兩個(gè)字符串

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

,要將它們連接起來(lái),以下哪個(gè)函數(shù)可以實(shí)現(xiàn)?()A.

strcat(str1,str2);

B.

strcpy(str1,str2);

C.

strcmp(str1,str2);

D.以上都不對(duì)24、在C語(yǔ)言中,若有定義

charstr[20]="Hello";

,以下能正確將字符串

str

輸出的是()A.

printf("%s",&str);

B.

printf("%s",str);

C.

printf("%c",&str);

D.

printf("%c",str);

25、若有定義:charstr1[]="hello",str2[]="world";則執(zhí)行strcat(str1,str2);后,str1的內(nèi)容是()A."hello"B."world"C."helloworld"D."worldhello"26、在C語(yǔ)言的文件讀寫(xiě)操作中,如果以追加模式

“a”

打開(kāi)一個(gè)文件并進(jìn)行寫(xiě)入操作,會(huì)發(fā)生什么?()A.新的數(shù)據(jù)會(huì)覆蓋文件原有內(nèi)容B.新的數(shù)據(jù)會(huì)添加到文件末尾C.會(huì)創(chuàng)建一個(gè)新的文件并寫(xiě)入數(shù)據(jù)D.以上都不對(duì)27、在C語(yǔ)言中,關(guān)于字符數(shù)組和字符串的處理是常見(jiàn)的操作。假設(shè)有一個(gè)字符數(shù)組

charstr[100]

,以下對(duì)于字符數(shù)組和字符串的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.可以使用

strcpy

函數(shù)將一個(gè)字符串復(fù)制到字符數(shù)組中,但要確保數(shù)組有足夠的空間B.字符串是以'\0'作為結(jié)束標(biāo)志的,在處理字符串時(shí)需要注意這個(gè)特殊字符C.可以通過(guò)比較字符數(shù)組的地址來(lái)判斷兩個(gè)字符串是否相等D.字符數(shù)組可以存儲(chǔ)任意字符,包括不可打印字符28、在C語(yǔ)言中,對(duì)于

void

類(lèi)型的指針,以下關(guān)于它的使用和限制的描述,哪一個(gè)是正確的?()A.可以指向任何類(lèi)型的變量B.不能進(jìn)行解引用操作C.可以進(jìn)行算術(shù)運(yùn)算D.以上都不對(duì)29、在C語(yǔ)言中,關(guān)于函數(shù)的默認(rèn)返回值類(lèi)型,如果沒(méi)有明確指定,默認(rèn)是什么類(lèi)型?()A.

void

B.

int

C.

float

D.沒(méi)有默認(rèn)類(lèi)型,必須指定30、關(guān)于C語(yǔ)言中的預(yù)處理器指令,如

#define

,假設(shè)有

#definePI3.14

,然后在代碼中使用

floatarea=PI*r*r;

,這里的

PI

會(huì)被如何處理?()A.在編譯時(shí)被替換為3.14B.在運(yùn)行時(shí)被替換為3.14C.保持不變,作為一個(gè)變量D.導(dǎo)致編譯錯(cuò)誤31、在C語(yǔ)言中,關(guān)于動(dòng)態(tài)內(nèi)存分配,使用

malloc

函數(shù)分配了一塊內(nèi)存,使用完畢后,應(yīng)該使用以下哪個(gè)函數(shù)釋放?()A.

free

B.

delete

C.

release

D.不需要釋放32、在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ù)效率高33、在C語(yǔ)言中,關(guān)于結(jié)構(gòu)體的嵌套使用,假設(shè)定義了結(jié)構(gòu)體

structPoint{intx;inty;};

structRectangle{structPointtopLeft;structPointbottomRight;};

以下關(guān)于結(jié)構(gòu)體嵌套的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.可以通過(guò)嵌套結(jié)構(gòu)體來(lái)構(gòu)建更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)B.訪問(wèn)嵌套結(jié)構(gòu)體的成員需要使用多個(gè)成員訪問(wèn)運(yùn)算符C.嵌套結(jié)構(gòu)體的內(nèi)存布局是連續(xù)的D.對(duì)嵌套結(jié)構(gòu)體的成員進(jìn)行賦值和操作與普通結(jié)構(gòu)體成員相同34、若有以下函數(shù)調(diào)用語(yǔ)句:func((a1,a2),(a3,a4,a5));在此函數(shù)調(diào)用語(yǔ)句中,含有的實(shí)參個(gè)數(shù)是()A.2B.3C.4D.535、在C語(yǔ)言中,對(duì)于指針的操作,若有

int*p,a=10;p=&a;

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

*p

的值和

a

的值始終相等B.對(duì)

p

進(jìn)行自增操作(

p++

),其指向的值會(huì)增加C.可以通過(guò)

*p=20;

來(lái)修改指針

p

所指向的內(nèi)存地址D.指針

p

所占的內(nèi)存空間大小與

int

型變量相同二、判斷題(本大題共10小題,每小題2分,共20分.有多個(gè)選項(xiàng)是符合題目要求的.)1、在C語(yǔ)言中,

#ifndef

#endif

配合使用可以防止頭文件被重復(fù)包含。()2、C語(yǔ)言中的條件編譯指令可以根據(jù)操作系統(tǒng)、編譯器版本等條件來(lái)決定編譯不同的代碼段。()3、C語(yǔ)言中的字符串是以字符'\0'結(jié)尾的字符數(shù)組。()4、C語(yǔ)言中的

ftell

函數(shù)用于獲取文件指針當(dāng)前的位置。()5、C

溫馨提示

  • 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)論