版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年c语言程序设计试题及答案一、单项选择题(本大题共10小题,每小题2分,共20分)1.在64位Linux系统中,以下关于数据类型大小的描述正确的是()。A.sizeof(char)=4,sizeof(long)=8B.sizeof(short)=2,sizeof(double)=4C.sizeof(int)=4,sizeof(longlong)=8D.sizeof(float)=8,sizeof(void)=82.若有定义“inta[]={10,20,30,40},p=a;”,则执行“p+=2;”后,表达式“p++”的结果是()。A.10B.20C.30D.403.以下关于数组作为函数参数的描述,错误的是()。A.数组名作为参数传递时,函数内部无法直接获取数组长度B.函数形参声明为“intarr[]”等价于“intarr”C.对形参数组的修改会直接影响实参数组D.调用函数时,数组名传递的是数组第一个元素的地址4.定义结构体“structTest{chara;intb;doublec;}t;”,在32位系统(对齐模数为4)中,sizeof(t)的值是()。A.13B.16C.12D.205.执行以下代码,输出结果是()。```cintfunc(intx){staticinty=0;y+=x;returny;}intmain(){printf("%d",func(2));printf("%d",func(3));return0;}```A.23B.25C.55D.226.若宏定义为“defineMAX(a,b)((a)>(b)?(a):(b))”,则执行“intx=5,y=3;printf("%d",MAX(x++,y++));”后,x和y的值分别为()。A.6,4B.6,3C.5,4D.5,37.以下循环结构中,循环体执行次数与其他选项不同的是()。A.for(inti=0,j=10;i<j;i++,j--){...}B.inti=0;while(i<10){i+=2;...}C.inti=0;do{i++;...}while(i<5);D.inti=1;for(;i<=5;i+=2){...}8.若有“intx=0x12345678;”,执行“x=(x&0xFFFF0000)|0x0000ABCD;”后,x的十六进制值为()。A.0x1234ABCDB.0x5678ABCDC.0x12345678D.0x000056789.以下关于文件操作的描述,正确的是()。A.fopen("test.txt","w+")会清空文件原有内容B.fread的返回值是实际读取的字节数C.用“r”模式打开文件时,若文件不存在会创建新文件D.fclose的返回值为0表示关闭失败10.以下动态内存管理代码中,存在错误的是()。A.intp=malloc(sizeof(int)5);if(p==NULL)exit(1);B.charstr=malloc(10);strcpy(str,"Hello");free(str);C.inta=malloc(4);a=10;intb=realloc(a,8);b=20;D.intp=malloc(sizeof(int));p=5;free(p);p=NULL;二、填空题(本大题共5小题,每空2分,共10分)1.若要将数组a的首地址赋给指针p,且p的类型为“int()[5]”,则定义语句为:__________。2.冒泡排序中,对n个元素的数组进行升序排序,内层循环的常见写法是:for(j=0;j<__________;j++){if(arr[j]>arr[j+1])swap(&arr[j],&arr[j+1]);}3.结构体“structNode{intdata;structNodenext;}”中,通过指针p访问data成员的语法是:__________。4.函数“voidreverse(chars)”用于将字符串s逆序,补全循环条件:inti=0,j=strlen(s)-1;while(__________){chart=s[i];s[i]=s[j];s[j]=t;i++;j--;}5.递归函数“intfib(intn)”用于计算斐波那契数列(fib(0)=0,fib(1)=1),其终止条件为:if(n==0)return0;elseif(__________)return1;三、程序分析题(本大题共4小题,每小题8分,共32分)1.分析以下代码的输出结果。```cintmain(){inta[3][2]={{1,2},{3,4},{5,6}};intp=a[0];p+=3;printf("%d%d",p,(p+1));return0;}```2.分析以下代码的输出结果。```cvoidfunc(intx,inty){intt=x;x=y;y=t;x=100;y=200;}intmain(){inta=10,b=20;func(&a,&b);printf("a=%d,b=%d",a,b);return0;}```3.分析以下代码的输出结果。```cdefineSQR(x)xxintmain(){inta=3,b=2,c;c=SQR(a+b)/SQR(a-b);printf("c=%d",c);return0;}```4.分析以下代码的输出结果(假设int占4字节)。```cintmain(){intarr[5]={1,2,3,4,5};intp=arr+5;printf("%d",p[-1]);return0;}```四、编程题(本大题共2小题,第1题20分,第2题18分,共38分)1.编写一个C程序,实现学提供绩管理功能。要求:(1)定义结构体“Student”,包含学号(长整型)、姓名(字符串,最多20字符)、数学、英语、计算机三门课成绩(整型);(2)输入n(n≤50)个学生的信息;(3)计算每个学生的平均分(浮点型);(4)按平均分从高到低排序,若平均分相同则按学号升序排序;(5)输出排序后的学生信息(包括平均分);(6)查找并输出学号为x的学生的信息(若不存在则提示“未找到”)。2.编写函数“intcount_substr(constcharstr,constcharsub)”,统计字符串str中子串sub出现的次数。要求:(1)子串匹配区分大小写;(2)子串不可重叠(例如“aaa”中查找“aa”,结果为1);(3)输入保证sub不为空且长度小于等于str。参考答案一、单项选择题1.C2.C3.D4.B5.B6.A7.B8.A9.A10.C二、填空题1.int(p)[5]=a;2.n-i-13.p->data4.i<j5.n==1三、程序分析题1.输出:45解析:二维数组a按行存储,a[0]是第一行首地址,p初始指向a[0][0]。p+=3后指向a[1][1](偏移3个int),p为4;p+1指向a[2][0],值为5。2.输出:a=200,b=100解析:func中交换x和y的指向后,x修改的是原y指向的变量(b),y修改的是原x指向的变量(a)。3.输出:c=11解析:宏展开为c=a+ba+b/a-ba-b,即3+23+2/3-23-2=3+6+2/(3-6-2)=11+2/(-5)=11(整数除法)。4.输出:5解析:p指向arr[5](数组最后一个元素的下一个位置),p[-1]等价于(p-1),即arr[4],值为5。四、编程题1.参考代码:```cinclude<stdio.h>include<string.h>structStudent{longlongid;charname[21];intmath,eng,comp;floatavg;};voidinput_stu(structStudentstu,intn){for(inti=0;i<n;i++){scanf("%lld%s%d%d%d",&stu[i].id,stu[i].name,&stu[i].math,&stu[i].eng,&stu[i].comp);stu[i].avg=(stu[i].math+stu[i].eng+stu[i].comp)/3.0f;}}voidsort_stu(structStudentstu,intn){for(inti=0;i<n-1;i++){for(intj=0;j<n-i-1;j++){if(stu[j].avg<stu[j+1].avg||(stu[j].avg==stu[j+1].avg&&stu[j].id>stu[j+1].id)){structStudenttemp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}}voidprint_stu(structStudentstu,intn){for(inti=0;i<n;i++){printf("%lld%s%d%d%d%.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].eng,stu[i].comp,stu[i].avg);}}voidsearch_stu(structStudentstu,intn,longlongx){for(inti=0;i<n;i++){if(stu[i].id==x){printf("%lld%s%d%d%d%.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].eng,stu[i].comp,stu[i].avg);return;}}printf("未找到\n");}intmain(){intn;longlongx;scanf("%d",&n);structStudentstu[50];input_stu(stu,n);sort_stu(stu,n);print_stu(stu,n);scanf("%lld",&x);search_stu(stu,n,x);return0;}```2.参考代码:```cinclude<string.h>intcount_substr(constcharstr,constcharsub){intcount=0;intlen_str=strlen(str);intlen_sub=strlen(sub);if(len_sub==0)return0;//题目保证sub不为空,此判断可省略for(inti=0;i<=len_strlen_sub;){intmatch=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跟班培训汇报交流
- 身体知识教学课件
- 跳绳小人知识点
- 跳伞培训课件
- 跆拳道理论知识
- 采购订单及合同签订流程模板工具
- 趣味生物知识讲座
- 创意文化产业成果保障承诺函3篇
- 趣味小知识科学
- 一次课堂讨论的话题作文7篇
- 2026年上海市奉贤区初三上学期一模化学试卷和答案及评分标准
- 2025 学年第一学期上海市杨浦区初三语文期末质量调研试卷附答案解析
- 2026年中国化工经济技术发展中心招聘备考题库及一套参考答案详解
- GB/Z 124.1-2025纳米技术石墨烯结构表征第1部分:石墨烯粉末及分散系
- 2025及未来5年中国鼠李糖市场调查、数据监测研究报告
- 企业信息系统操作权限管理规范
- 医患沟通培训课件
- 材料作文“各有千秋”(2024年重庆A卷中考满分作文10篇附审题指导)
- 生物测量仪的数据解读
- 村委鱼塘竞标方案(3篇)
- 企业公司“十五五”企业发展战略规划(完整模板)
评论
0/150
提交评论