版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年中职19级c语言期末考试试题及答案一、单项选择题(本大题共15小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是符合题目要求的)1.以下关于C语言数据类型的描述,正确的是()A.char类型变量只能存储一个英文字符,不能存储汉字B.int类型在32位系统中占4字节,在64位系统中占8字节C.float类型变量的精度高于double类型D.所有未初始化的全局变量默认初始化为02.若有定义“inta=5,b=3;”,则表达式“(a++--b)2”的结果是()A.4B.6C.8D.103.执行以下程序段后,变量x的值为()intx=0;for(inti=1;i<=5;i++){if(i%2==0)continue;x+=i;}A.5B.6C.9D.154.若定义“intarr[][3]={1,2,3,4,5,6,7};”,则数组arr的行数是()A.2B.3C.4D.无法确定5.以下关于函数调用的描述,错误的是()A.函数可以嵌套调用,但不能嵌套定义B.实参和形参的类型必须一致,否则会编译错误C.无返回值的函数应声明为void类型D.函数调用时,实参为数组名时传递的是数组首地址6.若有定义“intp,a=10;”,则正确的赋值语句是()A.p=a;B.p=a;C.p=&a;D.p=&a;7.若有条件“当x大于等于60且小于80时执行操作”,正确的C语言表达式是()A.60≤x<80B.x>=60||x<80C.x>=60&&x<80D.(x>=60)&(x<80)8.定义字符数组“charstr[]="hello\0world";”,则strlen(str)的结果是()A.5B.6C.10D.119.以下switch语句执行后,输出结果是()intn=2;switch(n){case1:printf("A");case2:printf("B");case3:printf("C");break;case4:printf("D");}A.BB.BCC.BCDD.ABC10.定义结构体“structStu{intnum;charname[10];floatscore;};”,则以下正确的变量定义是()A.structStus={1001,"LiMing",90.5};B.Stus={1001,"LiMing",90.5};C.structstus={1001,"LiMing",90.5};D.structStus={.num=1001;.name="LiMing";.score=90.5};11.若有二维数组“inta[3][4]={{1,2},{3,4,5},{6}};”,则a[1][2]的值是()A.0B.4C.5D.612.以下关于预编译指令的描述,正确的是()A.define宏定义可以包含复杂的表达式,但不能换行B.include<file.h>优先在用户当前目录查找头文件C.条件编译指令ifdef只能判断宏是否被定义D.宏定义中的参数不需要指定数据类型13.若要动态分配10个int类型的内存空间,正确的语句是()A.intp=(int)malloc(10sizeof(int));B.intp=(int)malloc(10sizeof(int));C.intp=malloc(10sizeof(int));D.intp=(int)malloc(10int);14.若以只读方式打开二进制文件“data.dat”,正确的fopen参数是()A."r"B."rb"C."r+"D."wb"15.若有“inta=5,b=3;”,则“a^b”的结果是()(提示:^为按位异或)A.2B.4C.6D.8二、填空题(本大题共10小题,每空2分,共20分)1.执行“intx=3,y;y=++x+x++;”后,y的值为______。2.以下程序的输出结果是______。include<stdio.h>intmain(){inti=1,sum=0;while(i<=5){if(i%3==0)break;sum+=i;i++;}printf("%d",sum);return0;}3.函数swap的功能是交换两个整数的值,若调用“swap(&a,&b)”后a和b的值被交换,则swap函数的形参定义应为______。4.二维数组inta[3][4]中,a[2][1]的地址可以表示为______(用a的指针形式表示)。5.若有定义“intp,a=10,b=20;p=&a;p=p+5;p=&b;”,则此时a的值为______。6.定义结构体“structData{charc;intnum;doubled;};”,在32位系统中该结构体的大小是______字节(考虑内存对齐)。7.执行“charstr[]="test\012\\";”后,strlen(str)的结果是______。8.以下程序的输出图案有______行。include<stdio.h>intmain(){for(inti=1;i<=5;i++){for(intj=1;j<=i;j++)printf("");printf("\n");}return0;}9.计算n!的递归函数如下,调用fact(5)时,函数递归调用的次数是______次(包括首次调用)。intfact(intn){if(n==0||n==1)return1;elsereturnnfact(n-1);}10.不使用临时变量交换a和b的值,可通过位运算实现:a=______;b=______;a=______;三、程序改错题(本大题共1题,10分。指出程序中的5处错误并修正)以下程序的功能是:从键盘输入5个学生的成绩(整型),计算平均分并输出低于平均分的成绩。include<stdio.h>defineN5intmain(){intscores[N],i;floatavg=0;printf("请输入5个成绩:");for(i=0;i<N;i++);{scanf("%d",scores[i]);}for(i=0;i<N;i++){avg=avg+scores[i];}avg=avg/N;printf("平均分:%d\n",avg);printf("低于平均分的成绩:");for(i=0;i<N;i++){if(scores[i]<avg)printf("%d",scores[i]);}return0;}四、编程题(本大题共3小题,第1、2题各15分,第3题20分,共50分)1.编写程序:从键盘输入一个字符串(长度不超过50),统计其中大写字母、小写字母、数字字符和其他字符的个数。要求:使用循环遍历字符串,不能使用字符串库函数。2.定义结构体类型“Student”,包含学号(int)、姓名(char[20])、数学成绩(float)、英语成绩(float)。编写程序:输入3名学生的信息,计算每名学生的平均分(保留1位小数),并按平均分从高到低输出所有学生信息(包括平均分)。3.编写函数fun,功能是:将一个正整数的各位数字按逆序组成一个新数并返回。例如,输入1234,返回4321;输入500,返回5(即忽略前导零)。要求:主函数中输入一个正整数,调用fun函数后输出结果。答案-一、单项选择题1.A2.C3.C4.B5.B6.C7.C8.A9.B10.A11.C12.D13.B14.B15.C二、填空题1.8(解析:++x后x=4,x++时先取4参与运算,x变为5,4+4=8)2.3(解析:i=1时sum=1,i=2时sum=3,i=3时触发break,循环结束)3.voidswap(intx,inty)(或包含函数体的正确定义)4.&a[2][1]或a[2]+1或(a+2)+15.15(解析:p=p+5即a=10+5=15)6.16(解析:char占1字节,填充3字节;int占4字节;double占8字节,总1+3+4+8=16)7.6(解析:\012是八进制转义字符,占1字节;\\是反斜杠转义,占1字节,字符串为't','e','s','t','\n','\\',共6个字符)8.5(解析:外层循环i从1到5,执行5次,输出5行)9.5(解析:fact(5)→fact(4)→fact(3)→fact(2)→fact(1),共5次调用)10.a^=b;b^=a;a^=b三、程序改错题错误1:for(i=0;i<N;i++);修正:删除分号(循环体多余空语句)错误2:scanf("%d",scores[i]);修正:scanf("%d",&scores[i]);(缺少取地址符)错误3:avg=avg+scores[i];修正:avg+=scores[i];(逻辑正确但可优化,非必须修改点,主要错误是类型)错误4:printf("平均分:%d\n",avg);修正:printf("平均分:%.2f\n",avg);(格式符错误,avg是float)错误5:intscores[N],i;修正:无需修改(但隐含错误:avg初始化为0正确,循环计算总分后除以N得到平均分,类型为float正确)(注:实际主要错误为上述5处,其他如avg的初始化正确,循环变量正确)四、编程题1.参考代码:include<stdio.h>intmain(){charstr[51];intupper=0,lower=0,digit=0,other=0,i=0;printf("请输入字符串:");gets(str);//或使用fgets(str,51,stdin)while(str[i]!='\0'){if(str[i]>='A'&&str[i]<='Z')upper++;elseif(str[i]>='a'&&str[i]<='z')lower++;elseif(str[i]>='0'&&str[i]<='9')digit++;elseother++;i++;}printf("大写字母:%d\n小写字母:%d\n数字:%d\n其他:%d\n",upper,lower,digit,other);return0;}2.参考代码:include<stdio.h>structStudent{intnum;charname[20];floatmath;floatenglish;floatavg;};intmain(){structStudentstu[3];inti,j;structStudenttemp;//输入数据for(i=0;i<3;i++){printf("输入第%d名学生信息(学号姓名数学英语):",i+1);scanf("%d%s%f%f",&stu[i].num,stu[i].name,&stu[i].math,&stu[i].english);stu[i].avg=(stu[i].math+stu[i].english)/2;}//按平均分降序排序(冒泡排序)for(i=0;i<2;i++){for(j=0;j<2-i;j++){if(stu[j].avg<stu[j+1].avg){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暖通安全运行技术要点
- 2026年哲学专业知识考试题伦理学形而上学等
- 2026年消防员职业能力测验模拟题
- 2026年金融投资知识测试题风险评估与收益平衡
- 2026年食品营养与健康法规知识测试题库及解析
- 2026年苯乙烯基吡啶产品推广合同三篇
- 2026年一级建造师考试建筑力学与结构试题集
- 湘东浮法玻璃厂工作时间制度
- 2026年企业内部控制知识及测试题目解析
- 2026年数字化营销策略与分析师测试题集及答案解析
- 2025年贵州事业编a类考试真题及答案
- 2026绍兴理工学院招聘32人备考题库及答案详解(考点梳理)
- 2026上海市事业单位招聘笔试备考试题及答案解析
- GB/T 21558-2025建筑绝热用硬质聚氨酯泡沫塑料
- “十五五规划纲要”解读:应急管理能力提升
- 2025年领导干部任前廉政知识测试题库(附答案)
- 贷款担保人免责协议书
- 研发岗位廉洁从业教育
- Unit 2 单元测试提升卷(解析版)
- 生物●广东卷丨2024年广东省普通高中学业水平选择性考试生物试卷及答案
- 建筑工程意向合同协议书
评论
0/150
提交评论