杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-2025學(xué)年期末試卷(A卷)_第1頁(yè)
杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-2025學(xué)年期末試卷(A卷)_第2頁(yè)
杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-2025學(xué)年期末試卷(A卷)_第3頁(yè)
杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-2025學(xué)年期末試卷(A卷)_第4頁(yè)
杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-2025學(xué)年期末試卷(A卷)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

杭州電子科技大學(xué)信息工程學(xué)院《C語(yǔ)言程序設(shè)計(jì)》2024-----2025學(xué)年期末試卷(A卷)專業(yè)

班級(jí)

姓名

學(xué)號(hào)

題號(hào)一二三四五六七八九十成績(jī)復(fù)核簽字得分登分簽字說(shuō)明:本試卷共100分;答題要求:按要求答題考生須知:1.姓名、學(xué)號(hào)、系、專業(yè)、年級(jí)、班級(jí)必須寫(xiě)在密封線內(nèi)指定位置。2.答案必須用藍(lán)、黑色鋼筆或圓珠筆寫(xiě)在試卷上,字跡要清晰,卷面要整潔,寫(xiě)在草稿紙上的一律無(wú)效。一、選擇題(共20題,每題1分,滿分20分)從A、B、C、D四個(gè)選項(xiàng)中選出最符合題目要求的答案,填涂在答題卡對(duì)應(yīng)位置。以下屬于C語(yǔ)言合法標(biāo)識(shí)符,且適合命名“存儲(chǔ)嵌入式設(shè)備ID的變量”的是()A.2025_device_idB.device_idC.device-idD.double若要存儲(chǔ)“傳感器采集溫度(如25.8℃)”和“設(shè)備運(yùn)行時(shí)長(zhǎng)(如72小時(shí))”,分別適合的C語(yǔ)言數(shù)據(jù)類型是()A.int、floatB.float、intC.char、doubleD.int、char執(zhí)行語(yǔ)句“intsensor_cnt=15,valid_data=12;”(傳感器總數(shù)、有效數(shù)據(jù)數(shù)),則表達(dá)式“valid_data100/sensor_cnt”的值為()A.80B.80.0C.15D.12以下關(guān)于C語(yǔ)言局部變量的說(shuō)法,正確的是()A.局部變量定義在函數(shù)體外部B.局部變量未初始化時(shí)默認(rèn)值為0C.存儲(chǔ)“臨時(shí)統(tǒng)計(jì)的設(shè)備故障次數(shù)”適合定義為局部變量D.局部變量可被其他函數(shù)直接訪問(wèn)執(zhí)行以下代碼后,變量is_normal(判斷設(shè)備電壓是否正常,正常范圍5.0-5.5V,1為正常)的值為()

int

is_normal

=

0;

float

voltage

=

5.2;

//

設(shè)備電壓

if

(voltage

>=

5.0

&&

voltage

<=

5.5)

is_normal

=

1;

else

is_normal

=

0;

A.1B.0C.5.2D.5.0以下循環(huán)語(yǔ)句中,可用于“統(tǒng)計(jì)20組傳感器數(shù)據(jù)中濕度大于60%的組數(shù)”,且循環(huán)體執(zhí)行次數(shù)為20次的是()A.for(inti=0;i<20;i++){}B.for(inti=1;i<=19;i++){}C.inti=0;while(i<19){i++;}D.inti=1;do{i++;}while(i<=20);定義“floatsensor_temp[6]={23.5,25.2,24.8};”(存儲(chǔ)6組傳感器溫度),則數(shù)組元素sensor_temp[5]的值為()A.24.8B.0.0C.隨機(jī)值D.編譯錯(cuò)誤以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞的說(shuō)法,錯(cuò)誤的是()A.值傳遞時(shí),形參修改不影響實(shí)參B.地址傳遞時(shí),形參修改可影響實(shí)參C.傳遞“設(shè)備狀態(tài)數(shù)組”時(shí),需傳遞數(shù)組首元素地址D.函數(shù)參數(shù)個(gè)數(shù)可與實(shí)參個(gè)數(shù)不一致(無(wú)默認(rèn)參數(shù)時(shí))若定義“intp,device_num=36;p=&device_num;”(設(shè)備總數(shù)),則以下表達(dá)式中表示“變量device_num的值”的是()A.pB.pC.&pD.&device_num以下能正確定義并初始化二維數(shù)組(存儲(chǔ)“4個(gè)嵌入式模塊的3路電流數(shù)據(jù)”,單位:mA)的是()A.intmodule_current[3][3]={{120,115},{130,125},{110,105},{128,122}};B.intmodule_current[][3]={120,115,130,125,110};C.intmodule_current[4][]={120,115,130,125,110,105,128,122};D.intmodule_current[4][3]={{120},{130,125},{110,105,118},{128,122}};執(zhí)行以下代碼后,輸出結(jié)果為()(比較兩個(gè)模塊的平均電流值)

#include

<stdio.h>

int

main()

{

int

module1[]

=

{120,

115,

130};

//

模塊1三路電流

int

module2[]

=

{125,

110,

128};

//

模塊2三路電流

int

sum1=0,

sum2=0;

for

(int

i=0;

i<3;

i++)

{

sum1+=module1[i];

sum2+=module2[i];

}

printf("%s",

(sum1/3

>

sum2/3)

?

"模塊1平均電流更高"

:

"模塊2平均電流更高");

return

0;

}

A.模塊1平均電流更高B.模塊2平均電流更高C.121D.121以下關(guān)于結(jié)構(gòu)體的說(shuō)法,正確的是()A.結(jié)構(gòu)體成員的數(shù)據(jù)類型必須相同B.存儲(chǔ)“傳感器信息(ID、采集時(shí)間、溫度、濕度)”適合用結(jié)構(gòu)體C.結(jié)構(gòu)體指針訪問(wèn)成員時(shí)使用“.”運(yùn)算符D.結(jié)構(gòu)體定義后必須立即聲明變量若要以“只讀”方式打開(kāi)存儲(chǔ)“設(shè)備運(yùn)行日志”的文本文件“device_log.txt”,正確的fopen調(diào)用是()A.fopen("device_log.txt","w");B.fopen("device_log.txt","r");C.fopen("device_log.txt","a");D.fopen("device_log.txt","rb");以下函數(shù)定義中,能正確計(jì)算“8組傳感器數(shù)據(jù)的平均濕度”的是()A.floatavg_humidity(floathumidity[],intn){floattotal=0;for(inti=0;i<n;i++)total+=humidity[i];returntotal/n;}B.floatavg_humidity(floathumidity[],intn){floattotal=0;while(i<n){total+=humidity[i];i++;}returntotal/n;}C.floatavg_humidity(floathumidity[],intn){if(n==0)return0;elsereturnhumidity[n-1]+avg_humidity(humidity,n-1)/n;}D.floatavg_humidity(floathumidity[],intn){staticfloattotal=0;total+=humidity[n-1];returntotal/n;}執(zhí)行以下代碼后,變量high_temp(統(tǒng)計(jì)溫度高于30℃的傳感器數(shù)據(jù)組數(shù))的值為()

int

high_temp

=

0;

float

temp[]

=

{28.5,

31.2,

29.8,

32.5,

27.6,

30.5};

for

(int

i=0;

i<6;

i++)

{

if

(temp[i]

>

30)

high_temp++;

}

A.2B.3C.4D.5以下關(guān)于指針的說(shuō)法,正確的是()A.指針變量存儲(chǔ)的是變量的值B.空指針(NULL)可以直接訪問(wèn)C.指向“傳感器結(jié)構(gòu)體”的指針需與結(jié)構(gòu)體類型匹配D.指針加上一個(gè)整數(shù)表示移動(dòng)指定個(gè)數(shù)的變量定義“chardevice_cmd[]="sensor_read";”(設(shè)備指令:讀取傳感器),則數(shù)組device_cmd占用的字節(jié)數(shù)為()A.11B.12C.13D.不確定執(zhí)行以下代碼后,輸出結(jié)果為()(計(jì)算設(shè)備功耗,功耗=電壓×電流,電壓5.0V)

#include

<stdio.h>

void

calc_power(float

current,

float

power)

{

power

=

5.0

current;

//

功耗=電壓×電流

}

int

main()

{

float

curr

=

0.8;

//

電流(A)

float

power;

calc_power(curr,

&power);

printf("%.1f",

power);

return

0;

}

A.0.8B.4.0C.5.0D.不確定以下關(guān)于C語(yǔ)言預(yù)處理命令的說(shuō)法,正確的是()A.#define

MAX_DEVICE

50可定義“最大設(shè)備數(shù)量”常量B.#include命令僅能引入系統(tǒng)頭文件C.預(yù)處理命令以“;”結(jié)尾D.#ifdef用于判斷變量是否被賦值以下代碼中,存在語(yǔ)法錯(cuò)誤的是()A.floattemp[5]={28.5,31.2,29.8,32.5,27.6};printf("%.1f",temp[4]);B.intp=NULL;p=10;C.structSensor{charid[10];floattemp;floathumidity;};structSensors={"S202501",25.8,58.2};D.FILEfp=fopen("sensor.txt","r");if(fp==NULL)printf("文件打開(kāi)失敗!");二、填空題(共5題,每題3分,滿分15分)將答案填寫(xiě)在答題卡對(duì)應(yīng)位置,答案需完整、準(zhǔn)確,多余符號(hào)或格式錯(cuò)誤不得分。C語(yǔ)言中,定義“存儲(chǔ)8個(gè)嵌入式設(shè)備編號(hào)的整型數(shù)組,初始值為101、102、103、104、105、106、107、108”的語(yǔ)句為:______。執(zhí)行循環(huán)“inti=1,total_data=0;while(i<=14){total_data+=20;i++;}”后,total_data的值為_(kāi)_____(計(jì)算14天的傳感器總采集數(shù)據(jù)量,每天20組)。函數(shù)調(diào)用時(shí),實(shí)參和形參之間的默認(rèn)參數(shù)傳遞方式是______傳遞;若要修改實(shí)參中的“傳感器溫度”值,需采用______傳遞。打開(kāi)名為“sensor_record.txt”的文本文件用于追加寫(xiě)入傳感器采集記錄,應(yīng)使用語(yǔ)句:FILEfp;fp=fopen("sensor_record.txt","______");定義一個(gè)指向結(jié)構(gòu)體Sensor(存儲(chǔ)傳感器信息)的指針p:structSensor______p;三、程序閱讀題(共4題,每題5分,滿分20分)閱讀以下代碼,分析程序運(yùn)行后的輸出結(jié)果,將完整輸出內(nèi)容填寫(xiě)在答題卡對(duì)應(yīng)位置(多輸出、少輸出、格式錯(cuò)誤均不得分)。分析以下代碼的輸出結(jié)果(計(jì)算5組傳感器濕度的平均值):

#include

<stdio.h>

int

main()

{

float

humidity[]

=

{58.2,

62.5,

59.8,

61.3,

57.6};

//

5組濕度數(shù)據(jù)(%)

float

total

=

0.0,

avg;

for

(int

i=0;

i<5;

i++)

{

total

+=

humidity[i];

}

avg

=

total

/

5;

printf("傳感器平均濕度:%.1f%%",

avg);

return

0;

}

輸出結(jié)果:______分析以下代碼的輸出結(jié)果(統(tǒng)計(jì)設(shè)備電流超過(guò)120mA的模塊個(gè)數(shù)):

#include

<stdio.h>

int

main()

{

int

count

=

0;

int

module_current[]

=

{120,

115,

130,

125,

110,

105,

128,

122};

//

8個(gè)模塊電流

int

i

=

0;

do

{

if(module_current[i]

>

120)

{

count++;

}

i++;

}

while(i

<

8);

printf("電流超過(guò)120mA的模塊個(gè)數(shù):%d",

count);

return

0;

}

輸出結(jié)果:______分析以下代碼的輸出結(jié)果(遞歸計(jì)算信號(hào)采樣點(diǎn)的階乘,n=5,用于FFT預(yù)處理):

#include

<stdio.h>

int

factorial(int

n)

{

if

(n

==

1)

return

1;

else

return

n

factorial(n-1);

}

int

main()

{

int

res

=

factorial(5);

printf("5個(gè)采樣點(diǎn)的階乘(FFT預(yù)處理):%d",

res);

return

0;

}

輸出結(jié)果:______分析以下代碼的輸出結(jié)果(結(jié)構(gòu)體存儲(chǔ)設(shè)備信息并修改運(yùn)行狀態(tài)):

#include

<stdio.h>

struct

Device

{

char

id[10];

//

設(shè)備ID

int

run_hour;

//

運(yùn)行時(shí)長(zhǎng)(小時(shí))

int

is_running;

//

運(yùn)行狀態(tài)(1=運(yùn)行,0=停止)

};

int

main()

{

struct

Device

d

=

{"D202501",

72,

1};

d.run_hour

+=

8;

//

追加8小時(shí)運(yùn)行時(shí)長(zhǎng)

d.is_running

=

0;

//

設(shè)備停止運(yùn)行

printf("設(shè)備ID:%s,運(yùn)行時(shí)長(zhǎng):%d小時(shí),運(yùn)行狀態(tài):%s",

d.id,

d.run_hour,

(d.is_running==1)?"運(yùn)行":"停止");

return

0;

}

輸出結(jié)果:______四、程序填空題(共2題,每空3分,滿分15分)請(qǐng)?jiān)诔绦虻臋M線處填入適當(dāng)?shù)膬?nèi)容,使程序完整并能正確運(yùn)行。以下程序用于對(duì)6組傳感器溫度數(shù)據(jù)進(jìn)行降序排序(冒泡排序法),請(qǐng)補(bǔ)全代碼。#include

<stdio.h>

int

main()

{

float

temp[6]

=

{28.5,

31.2,

29.8,

32.5,

27.6,

30.5};

//

6組溫度數(shù)據(jù)

int

i,

j;

float

temp_val;

for(i=0;

i<5;

i++)

{

for(j=0;

j<_______;

j++)

{

//

內(nèi)層循環(huán)控制未排序元素

if(temp[j]

<

temp[j+1])

{

//

降序排序,前元素小于后元素則交換

temp_val

=

temp[j];

temp[j]

=

temp[j+1];

temp[j+1]

=

temp_val;

}

}

}

//

輸出排序結(jié)果

printf("降序排序后的溫度數(shù)據(jù):");

for(i=0;

i<6;

i++)

{

printf("%.1f

",

temp[i]);

}

return

0;

}以下程序用于統(tǒng)計(jì)文本文件“device_log.txt”中設(shè)備故障次數(shù)(文件中每行存儲(chǔ)1條設(shè)備狀態(tài),最后一列1=故障,0=正常),請(qǐng)補(bǔ)全代碼。#include

<stdio.h>

#include

<stdlib.h>

int

count_fault()

{

FILE

fp;

int

count

=

0;

char

id[10];

int

run_hour,

is_fault;

//

以只讀方式打開(kāi)文件

fp

=

fopen("device_log.txt",

"_______");

if(fp

==

NULL)

{

printf("文件打開(kāi)失??!");

exit(1);

//

退出程序

}

//

循環(huán)讀取設(shè)備狀態(tài),統(tǒng)計(jì)故障次數(shù)

while(_______

==

3)

{

//

判斷是否成功讀取3個(gè)數(shù)據(jù)(設(shè)備ID、運(yùn)行時(shí)長(zhǎng)、故障狀態(tài))

if

(is_fault

==

1)

count++;

}

fclose(fp);

//

關(guān)閉文件

return

count;

}

int

main()

{

int

total

=

count_fault();

printf("設(shè)備故障總次數(shù):%d",

total);

return

0;

}五、編程題(共3題,第1題8分,第2題10分,第3題12分

溫馨提示

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