湖州学院《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页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

湖州学院《C语言程序设计》2024-----2025学年期末试卷(A卷)专业

班级

姓名

学号

题号一二三四五六七八九十成绩复核签字得分登分签字说明:本试卷共100分;答题要求:按要求答题考生须知:1.姓名、学号、系、专业、年级、班级必须写在密封线内指定位置。2.答案必须用蓝、黑色钢笔或圆珠笔写在试卷上,字迹要清晰,卷面要整洁,写在草稿纸上的一律无效。一、选择题(共20题,每题1分,满分20分)从A、B、C、D四个选项中选出最符合题目要求的答案,填涂在答题卡对应位置。以下属于C语言合法标识符,且适合命名“存储地方企业产品编号的变量”的是()A.2025_prod_idB.prod_idC.prod-idD.double若要存储“企业员工月薪(如5800.5元)”和“车间产品数量(如120件)”,分别适合的C语言数据类型是()A.int、floatB.float、intC.char、doubleD.int、char执行语句“inttotal_prod=80,qualified_prod=68;”(产品总数、合格产品数),则表达式“qualified_prod100/total_prod”的值为()A.85B.85.0C.80D.68以下关于C语言局部变量的说法,正确的是()A.局部变量定义在函数体外部B.局部变量未初始化时默认值为0C.存储“临时统计的员工加班时长”适合定义为局部变量D.局部变量可被其他函数直接访问执行以下代码后,变量is_profitable(判断产品是否盈利,利润率≥15%为盈利,1为盈利)的值为()

int

is_profitable

=

0;

float

profit_rate

=

18.5;

//

产品利润率(%)

if

(profit_rate

>=

15)

is_profitable

=

1;

else

is_profitable

=

0;

A.1B.0C.18.5D.15以下循环语句中,可用于“统计25名员工中月薪超过6000元的人数”,且循环体执行次数为25次的是()A.for(inti=0;i<25;i++){}B.for(inti=1;i<=24;i++){}C.inti=0;while(i<24){i++;}D.inti=1;do{i++;}while(i<=25);定义“floatemp_salary[6]={5800.5,6200.0,5500.5};”(存储6名员工月薪),则数组元素emp_salary[5]的值为()A.5500.5B.0.0C.随机值D.编译错误以下关于C语言函数参数传递的说法,错误的是()A.值传递时,形参修改不影响实参B.地址传递时,形参修改可影响实参C.传递“产品库存数组”时,需传递数组首元素地址D.函数参数个数可与实参个数不一致(无默认参数时)若定义“intp,order_cnt=350;p=&order_cnt;”(客户订单总数),则以下表达式中表示“变量order_cnt的值”的是()A.pB.pC.&pD.&order_cnt以下能正确定义并初始化二维数组(存储“4个车间的5个月产品产量”,单位:件)的是()A.intworkshop_prod[3][5]={{120,115},{130,125},{110,105},{128,122}};B.intworkshop_prod[][5]={120,115,130,125,110};C.intworkshop_prod[4][]={120,115,130,125,110,105,128,122};D.intworkshop_prod[4][5]={{120},{130,125},{110,105,118},{128,122}};执行以下代码后,输出结果为()(比较两个车间的月平均产量)

#include

<stdio.h>

int

main()

{

int

workshop1[]

=

{120,

115,

130,

125,

110};

//

车间1月产量

int

workshop2[]

=

{125,

110,

128,

132,

105};

//

车间2月产量

int

sum1=0,

sum2=0;

for

(int

i=0;

i<5;

i++)

{

sum1+=workshop1[i];

sum2+=workshop2[i];

}

printf("%s",

(sum1/5

>

sum2/5)

?

"车间1平均产量更高"

:

"车间2平均产量更高");

return

0;

}

A.车间1平均产量更高B.车间2平均产量更高C.120D.119以下关于结构体的说法,正确的是()A.结构体成员的数据类型必须相同B.存储“客户订单信息(订单号、客户名、产品数、金额)”适合用结构体C.结构体指针访问成员时使用“.”运算符D.结构体定义后必须立即声明变量若要以“只读”方式打开存储“员工考勤记录”的文本文件“emp_attendance.txt”,正确的fopen调用是()A.fopen("emp_attendance.txt","w");B.fopen("emp_attendance.txt","r");C.fopen("emp_attendance.txt","a");D.fopen("emp_attendance.txt","rb");以下函数定义中,能正确计算“10名员工的平均月薪”的是()A.floatavg_salary(floatsalary[],intn){floattotal=0;for(inti=0;i<n;i++)total+=salary[i];returntotal/n;}B.floatavg_salary(floatsalary[],intn){floattotal=0;while(i<n){total+=salary[i];i++;}returntotal/n;}C.floatavg_salary(floatsalary[],intn){if(n==0)return0;elsereturnsalary[n-1]+avg_salary(salary,n-1)/n;}D.floatavg_salary(floatsalary[],intn){staticfloattotal=0;total+=salary[n-1];returntotal/n;}执行以下代码后,变量high_sales(统计月销售额超过80000元的月份数)的值为()

int

high_sales

=

0;

float

sales[]

=

{78000.5,

82000.0,

79000.5,

85000.0,

77000.0,

81000.5};

for

(int

i=0;

i<6;

i++)

{

if

(sales[i]

>

80000)

high_sales++;

}

A.2B.3C.4D.5以下关于指针的说法,正确的是()A.指针变量存储的是变量的值B.空指针(NULL)可以直接访问C.指向“客户订单结构体”的指针需与结构体类型匹配D.指针加上一个整数表示移动指定个数的变量定义“charprod_name[]="machinerypart";”(产品名称:机械零件),则数组prod_name占用的字节数为()A.14B.15C.16D.不确定执行以下代码后,输出结果为()(计算产品运输损耗,损耗率3%,原数量500件)

#include

<stdio.h>

void

calc_loss(int

quantity)

{

quantity

=

0.03;

//

3%运输损耗

}

int

main()

{

int

original

=

500;

//

原数量(件)

calc_loss(&original);

printf("%d",

original);

return

0;

}

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

MAX_PROD

60可定义“最大产品种类数”常量B.#include命令仅能引入系统头文件C.预处理命令以“;”结尾D.#ifdef用于判断变量是否被赋值以下代码中,存在语法错误的是()A.floatsalary[5]={5800.5,6200.0,5500.5,5900.0,6100.5};printf("%.1f",salary[4]);B.intp=NULL;p=10;C.structOrder{charid[12];floatamount;};structOrdero={"O202501",8500.5};D.FILEfp=fopen("sales.txt","r");if(fp==NULL)printf("文件打开失败!");二、填空题(共5题,每题3分,满分15分)将答案填写在答题卡对应位置,答案需完整、准确,多余符号或格式错误不得分。C语言中,定义“存储8种产品库存数量的整型数组,初始值为120、115、130、125、110、105、128、122”(单位:件)的语句为:______。执行循环“inti=1,total_overtime=0;while(i<=14){total_overtime+=8;i++;}”后,total_overtime的值为______(计算14周的员工总加班时长,每周8小时)。函数调用时,实参和形参之间的默认参数传递方式是______传递;若要修改实参中的“产品库存数量”值,需采用______传递。打开名为“prod_stock.txt”的文本文件用于追加写入产品库存记录,应使用语句:FILEfp;fp=fopen("prod_stock.txt","______");定义一个指向结构体Employee(存储员工信息)的指针p:structEmployee______p;三、程序阅读题(共4题,每题5分,满分20分)阅读以下代码,分析程序运行后的输出结果,将完整输出内容填写在答题卡对应位置(多输出、少输出、格式错误均不得分)。分析以下代码的输出结果(计算6个月份的平均销售额):

#include

<stdio.h>

int

main()

{

float

monthly_sales[]

=

{78000.5,

82000.0,

79000.5,

85000.0,

77000.0,

81000.5};

//

6个月销售额(元)

float

total

=

0.0,

avg;

for

(int

i=0;

i<6;

i++)

{

total

+=

monthly_sales[i];

}

avg

=

total

/

6;

printf("6个月平均销售额:%.1f元",

avg);

return

0;

}

输出结果:______分析以下代码的输出结果(统计员工考勤中迟到次数超过2次的人数):

#include

<stdio.h>

int

main()

{

int

count

=

0;

int

late_times[]

=

{1,

3,

2,

4,

0,

2,

3,

1};

//

8名员工月度迟到次数

int

i

=

0;

do

{

if(late_times[i]

>

2)

{

count++;

}

i++;

}

while(i

<

8);

printf("迟到超过2次的员工人数:%d",

count);

return

0;

}

输出结果:______分析以下代码的输出结果(递归计算n的阶乘,n=4,用于统计4种产品的包装组合方式数):

#include

<stdio.h>

int

factorial(int

n)

{

if

(n

==

1)

return

1;

else

return

n

factorial(n-1);

}

int

main()

{

int

res

=

factorial(4);

printf("4种产品的包装组合方式数:%d",

res);

return

0;

}

输出结果:______分析以下代码的输出结果(结构体存储客户订单信息并修改订单状态):

#include

<stdio.h>

struct

CustomerOrder

{

char

order_id[12];

//

订单号

char

cust_name[20];

//

客户名

int

prod_count;

//

产品数量(件)

int

is_shipped;

//

发货状态(1=已发货,0=待发货)

};

int

main()

{

struct

CustomerOrder

o

=

{"O202501",

"Zhang

San",

25,

0};

d_count

+=

5;

//

追加5件产品

o.is_shipped

=

1;

//

标记为已发货

printf("订单号:%s,客户:%s,产品数量:%d件,发货状态:%s",

o.order_id,

o.cust_name,

d_count,

(o.is_shipped==1)?"已发货":"待发货");

return

0;

}

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

<stdio.h>

int

main()

{

int

prod_stock[8]

=

{120,

115,

130,

125,

110,

105,

128,

122};

//

8种产品库存

int

i,

j,

temp;

for(i=0;

i<7;

i++)

{

for(j=0;

j<_______;

j++)

{

//

内层循环控制未排序元素

if(prod_stock[j]

>

prod_stock[j+1])

{

//

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

temp

=

prod_stock[j];

prod_stock[j]

=

prod_stock[j+1];

prod_stock[j+1]

=

temp;

}

}

}

//

输出排序结果

printf("升序排序后的产品库存:");

for(i=0;

i<8;

i++)

{

printf("%d

",

prod_stock[i]);

}

return

0;

}以下程序用于统计文本文件“monthly_sales.txt”中销售额超过80000元的月份个数(文件中每行存储1个月销售额,如“78000.5” “82000.0”),请补全代码。#include

<stdio.h>

#include

<stdlib.h>

int

count_high_sales()

{

FILE

fp;

int

count

=

0;

float

sales;

//

以只读方式打开文件

fp

=

fopen("monthly_sales.txt",

"_______");

if(fp

==

NULL)

{

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

exit(1);

//

退出程序

}

//

循环读取每月销售额并统计

while(_______

==

1)

{

//

判断是否成功读取数据

if

(sales

>

80000)

count++;

}

fclose(fp);

//

关闭文件

return

count;

}

int

main()

{

int

total

=

count_high_sales();

printf("销售额超过80000元的月份个数:%d",

total);

return

0;

}五、编程题(共3题,第1题8分,第2题10分,第3题12分,满分30分)将代码写在答题卡对应位置,需满

温馨提示

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

评论

0/150

提交评论