金华职业技术学院《C语言程序设计》2024-2025学年期末试卷(A卷)_第1页
金华职业技术学院《C语言程序设计》2024-2025学年期末试卷(A卷)_第2页
金华职业技术学院《C语言程序设计》2024-2025学年期末试卷(A卷)_第3页
金华职业技术学院《C语言程序设计》2024-2025学年期末试卷(A卷)_第4页
金华职业技术学院《C语言程序设计》2024-2025学年期末试卷(A卷)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金华职业技术学院《C语言程序设计》2024-----2025学年期末试卷(A卷)专业

班级

姓名

学号

题号一二三四五六七八九十成绩复核签字得分登分签字说明:本试卷共100分;答题要求:按要求答题考生须知:1.姓名、学号、系、专业、年级、班级必须写在密封线内指定位置。2.答案必须用蓝、黑色钢笔或圆珠笔写在试卷上,字迹要清晰,卷面要整洁,写在草稿纸上的一律无效。一、选择题(共20题,每题1分,满分20分)从A、B、C、D四个选项中选出最符合题目要求的答案,填涂在答题卡对应位置。以下属于C语言合法标识符,且适合命名“存储机床设备编号的变量”的是()A.2025_machine_idB.machine_idC.machine-idD.float若要存储“零件加工精度(如0.02mm)”和“生产线产品数量(如280件)”,分别适合的C语言数据类型是()A.int、floatB.float、intC.char、doubleD.int、char执行语句“inttotal_part=50,qualified_part=42;”(零件总数、合格零件数),则表达式“qualified_part100/total_part”的值为()A.84B.84.0C.50D.42以下关于C语言局部变量的说法,正确的是()A.局部变量定义在函数体外部B.局部变量未初始化时默认值为0C.存储“临时统计的设备运行时长”适合定义为局部变量D.局部变量可被其他函数直接访问执行以下代码后,变量is_normal(判断设备温度是否正常,正常范围25-35℃,1为正常)的值为()

int

is_normal

=

0;

float

temp

=

32.5;

//

设备温度(℃)

if

(temp

>=

25

&&

temp

<=

35)

is_normal

=

1;

else

is_normal

=

0;

A.1B.0C.32.5D.25以下循环语句中,可用于“统计30台设备中运行时长超过500小时的设备台数”,且循环体执行次数为30次的是()A.for(inti=0;i<30;i++){}B.for(inti=1;i<=29;i++){}C.inti=0;while(i<29){i++;}D.inti=1;do{i++;}while(i<=30);定义“floatdevice_runtime[6]={480.5,520.0,495.8};”(存储6台设备运行时长,单位:小时),则数组元素device_runtime[5]的值为()A.495.8B.0.0C.随机值D.编译错误以下关于C语言函数参数传递的说法,错误的是()A.值传递时,形参修改不影响实参B.地址传递时,形参修改可影响实参C.传递“零件尺寸数组”时,需传递数组首元素地址D.函数参数个数可与实参个数不一致(无默认参数时)若定义“intp,product_count=180;p=&product_count;”(生产线产品总数),则以下表达式中表示“变量product_count的值”的是()A.pB.pC.&pD.&product_count以下能正确定义并初始化二维数组(存储“4条生产线的5天产量”,单位:件)的是()A.intline_output[3][5]={{280,295},{310,305},{290,300},{315,320}};B.intline_output[][5]={280,295,310,305,290};C.intline_output[4][]={280,295,310,305,290,300,315,320};D.intline_output[4][5]={{280},{310,305},{290,300,310},{315,320,325}};执行以下代码后,输出结果为()(比较两条生产线的平均日产量)

#include

<stdio.h>

int

main()

{

int

line1[]

=

{280,

295,

310,

305,

290};

//

生产线1日产量(件)

int

line2[]

=

{295,

300,

315,

320,

305};

//

生产线2日产量(件)

int

sum1=0,

sum2=0;

for

(int

i=0;

i<5;

i++)

{

sum1+=line1[i];

sum2+=line2[i];

}

printf("%s",

(sum1/5

>

sum2/5)

?

"生产线1平均产量更高"

:

"生产线2平均产量更高");

return

0;

}

A.生产线1平均产量更高B.生产线2平均产量更高C.296D.307以下关于结构体的说法,正确的是()A.结构体成员的数据类型必须相同B.存储“设备信息(编号、类型、温度、运行时长)”适合用结构体C.结构体指针访问成员时使用“.”运算符D.结构体定义后必须立即声明变量若要以“只读”方式打开存储“零件检测数据”的文本文件“part_test.txt”,正确的fopen调用是()A.fopen("part_test.txt","w");B.fopen("part_test.txt","r");C.fopen("part_test.txt","a");D.fopen("part_test.txt","rb");以下函数定义中,能正确计算“10台设备的平均运行时长”的是()A.floatavg_runtime(floatruntime[],intn){floattotal=0;for(inti=0;i<n;i++)total+=runtime[i];returntotal/n;}B.floatavg_runtime(floatruntime[],intn){floattotal=0;while(i<n){total+=runtime[i];i++;}returntotal/n;}C.floatavg_runtime(floatruntime[],intn){if(n==0)return0;elsereturnruntime[n-1]+avg_runtime(runtime,n-1)/n;}D.floatavg_runtime(floatruntime[],intn){staticfloattotal=0;total+=runtime[n-1];returntotal/n;}执行以下代码后,变量high_precision(统计加工精度≤0.05mm的零件个数)的值为()

int

high_precision

=

0;

float

part_precision[]

=

{0.03,

0.06,

0.04,

0.05,

0.07,

0.02};

for

(int

i=0;

i<6;

i++)

{

if

(part_precision[i]

<=

0.05)

high_precision++;

}

A.2B.3C.4D.5以下关于指针的说法,正确的是()A.指针变量存储的是变量的值B.空指针(NULL)可以直接访问C.指向“设备结构体”的指针需与结构体类型匹配D.指针加上一个整数表示移动指定个数的变量定义“chardevice_type[]="cnc_machine";”(设备类型:数控机床),则数组device_type占用的字节数为()A.10B.11C.12D.不确定执行以下代码后,输出结果为()(计算零件加工损耗,损耗率3%,原数量500件)

#include

<stdio.h>

int

calc_loss(int

quantity)

{

return

quantity

0.03;

//

3%加工损耗

}

int

main()

{

int

original

=

500;

//

原数量(件)

int

loss

=

calc_loss(original);

printf("%d",

loss);

return

0;

}

A.500B.15C.0.03D.不确定以下关于C语言预处理命令的说法,正确的是()A.#define

MAX_DEVICE

40可定义“车间最大设备台数”常量B.#include命令仅能引入系统头文件C.预处理命令以“;”结尾D.#ifdef用于判断变量是否被赋值以下代码中,存在语法错误的是()A.floatpart_precision[5]={0.03,0.06,0.04,0.05,0.02};printf("%.2f",part_precision[4]);B.intp=NULL;p=10;C.structDevice{charid[12];floattemp;};structDeviced={"D202501",32.5};D.FILEfp=fopen("device_data.txt","r");if(fp==NULL)printf("文件打开失败!");二、填空题(共5题,每题3分,满分15分)将答案填写在答题卡对应位置,答案需完整、准确,多余符号或格式错误不得分。C语言中,定义“存储8台设备运行时长的浮点型数组,初始值为480.5、520.0、495.8、510.2、475.6、530.1、490.3、505.7”(单位:小时)的语句为:______。执行循环“inti=1,total_hour=0;while(i<=22){total_hour+=8;i++;}”后,total_hour的值为______(计算22个工作日的设备总运行时长,每天8小时)。函数调用时,实参和形参之间的默认参数传递方式是______传递;若要修改实参中的“零件加工精度”值,需采用______传递。打开名为“line_output.txt”的文本文件用于追加写入生产线产量记录,应使用语句:FILEfp;fp=fopen("line_output.txt","______");定义一个指向结构体Machine(存储机床设备信息)的指针p:structMachine______p;三、程序阅读题(共4题,每题5分,满分20分)阅读以下代码,分析程序运行后的输出结果,将完整输出内容填写在答题卡对应位置(多输出、少输出、格式错误均不得分)。分析以下代码的输出结果(计算6台设备的平均运行时长):

#include

<stdio.h>

int

main()

{

float

device_runtime[]

=

{480.5,

520.0,

495.8,

510.2,

475.6,

530.1};

//

6台设备运行时长(小时)

float

total

=

0.0,

avg;

for

(int

i=0;

i<6;

i++)

{

total

+=

device_runtime[i];

}

avg

=

total

/

6;

printf("6台设备平均运行时长:%.1f小时",

avg);

return

0;

}

输出结果:______分析以下代码的输出结果(统计合格零件数,尺寸50.0-50.5mm为合格):

#include

<stdio.h>

int

main()

{

int

count

=

0;

float

part_size[]

=

{50.2,

50.6,

50.3,

49.9,

50.1,

50.5,

50.7,

50.4};

//

8个零件尺寸(mm)

int

i

=

0;

do

{

if(part_size[i]

>=

50.0

&&

part_size[i]

<=

50.5)

{

count++;

}

i++;

}

while(i

<

8);

printf("合格零件数:%d",

count);

return

0;

}

输出结果:______分析以下代码的输出结果(递归计算n的阶乘,n=5,用于统计5种零件的装配顺序排列数):

#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种零件的装配顺序排列数:%d",

res);

return

0;

}

输出结果:______分析以下代码的输出结果(结构体存储设备信息并修改运行状态):

#include

<stdio.h>

struct

Device

{

char

device_id[12];

//

设备编号

char

device_type[15];//

设备类型

float

temp;

//

设备温度(℃)

int

is_running;

//

运行状态(1=运行,0=停机)

};

int

main()

{

struct

Device

d

=

{"D202501",

"cnc_machine",

32.5,

1};

d.temp

+=

1.5;

//

温度升高1.5℃

d.is_running

=

0;

//

标记为停机

printf("设备编号:%s,类型:%s,温度:%.1f℃,状态:%s",

d.device_id,

d.device_type,

d.temp,

(d.is_running==1)?"运行":"停机");

return

0;

}

输出结果:______四、程序填空题(共2题,每空3分,满分15分)请在程序的横线处填入适当的内容,使程序完整并能正确运行。以下程序用于对8个零件的加工精度进行升序排序(冒泡排序法),请补全代码。#include

<stdio.h>

int

main()

{

float

part_precision[8]

=

{0.03,

0.06,

0.04,

0.05,

0.07,

0.02,

0.08,

0.01};

//

8个零件精度

int

i,

j;

float

temp;

for(i=0;

i<7;

i++)

{

for(j=0;

j<_______;

j++)

{

//

内层循环控制未排序元素

if(part_precision[j]

>

part_precision[j+1])

{

//

升序排序,前元素大于后元素则交换

temp

=

part_precision[j];

part_precision[j]

=

part_precision[j+1];

part_precision[j+1]

=

temp;

}

}

}

//

输出排序结果

printf("升序排序后的零件精度:");

for(i=0;

i<8;

i++)

{

printf("%.2f

",

part_precision[i]);

}

return

0;

}以下程序用于统计文本文件“device_runtime.txt”中运行时长超过500小时的设备台数(文件中每行存储1台设备的运行时长,如“480.5” “520.0”),请补全代码。#include

<stdio.h>

#include

<stdlib.h>

int

count_long_runtime()

{

FILE

fp;

int

count

=

0;

float

runtime;

//

以只读方式打开文件

fp

=

fopen("device_runtime.txt",

"_______");

if(fp

==

NULL)

{

printf("文件打开失败!");

exit(1);

//

退出程序

}

//

循环读取每个设备运行时长并统计

while(_______

==

1)

{

//

判断是否成功读取数据

if

(runtime

>

500)

count++;

}

fclose(fp);

//

关闭文件

return

count;

}

int

main()

{

int

total

=

count_long_runtime();

printf("运行时长超过500小时的设备台数:%d",

total);

return

0;

}五、编程题(共3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论