版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年新版函授c语言考试题及答案一、单项选择题(每小题2分,共20分)1.以下选项中,符合C语言标识符命名规则的是()A._var2B.2var_C.intD.var$12.若定义inta=5,b=3;则表达式(a++--b)2的结果是()A.4B.6C.8D.103.若有定义charstr[]="hello\0world";则strlen(str)的返回值是()A.5B.6C.10D.114.以下关于函数参数传递的描述,正确的是()A.数组名作为参数传递时,函数内部修改数组元素会影响原数组B.基本数据类型作为参数传递时,函数内部修改参数值会改变主调函数的变量值C.指针作为参数传递时,函数内部不能修改指针指向的内容D.结构体变量作为参数传递时,采用的是引用传递方式5.若有定义structNode{inta;charb;doublec;}node;则sizeof(node)的结果是()(假设int占4字节,char占1,double占8,对齐系数为8)A.13B.16C.24D.326.执行以下程序段后,输出结果是()intx=0;for(;x<3;x++){if(x%2)continue;printf("%d",x);}A.012B.02C.0D.127.若有定义intp,a[5]={1,3,5,7,9};p=a;则(p+2)+2的值是()A.5B.7C.9D.118.以下关于预处理指令的描述,错误的是()A.define宏定义可以带参数B.include指令可以包含用户自定义头文件C.条件编译指令ifdef用于判断变量是否存在D.宏定义在编译前被替换9.若要动态分配一个包含10个int类型元素的内存空间,正确的语句是()A.intp=(int)malloc(10);B.intp=malloc(10sizeof(int));C.intp=(int)malloc(10sizeof(int));D.intp=(int)malloc(10sizeof(int));10.若以只读方式打开一个二进制文件,正确的fopen参数是()A."r"B."rb"C."w"D."wb"二、填空题(每空2分,共10分)1.若定义floatx=3.1415;则表达式(int)x+2的结果是__________。2.若有定义charch='A';则执行ch=ch+32后,ch的值是__________(用字符表示)。3.函数的返回值类型由__________决定。4.若有定义inta[3][4]={{1,2},{3,4,5},{6}};则a[1][2]的值是__________。5.位运算中,表达式0x12^0x21的结果是__________(用十六进制表示)。三、程序分析题(每小题8分,共32分)1.分析以下程序的运行结果。include<stdio.h>voidswap(intx,inty){inttemp=x;x=y;y=temp;}intmain(){inta=10,b=20;swap(a,b);printf("a=%d,b=%d",a,b);return0;}2.分析以下程序的运行结果。include<stdio.h>intmain(){intarr[]={1,2,3,4,5};intp=arr;(p+2)+=2;printf("%d,%d",p,(p+4));return0;}3.分析以下程序的运行结果。include<stdio.h>intfun(intn){if(n==1)return1;elsereturnn+fun(n-1);}intmain(){intres=fun(4);printf("%d",res);return0;}4.分析以下程序的运行结果。include<stdio.h>structStudent{charname[10];intage;}stu={"LiMing",20};intmain(){structStudentp=&stu;printf("%s,%d",p->name,(p).age+2);return0;}四、编程题(共38分)1.(12分)编写一个函数,统计字符串中指定字符的出现次数(区分大小写)。函数原型为:intcountChar(charstr,charch)。例如,输入字符串"HelloWorld",字符'l',返回2。2.(13分)使用结构体数组管理学生信息,每个学生包含学号(长整型)、数学成绩(float)、英语成绩(float)。要求:(1)从键盘输入3名学生的信息;(2)计算每名学生的平均分(保留2位小数);(3)输出所有学生的学号、数学成绩、英语成绩及平均分。3.(13分)编写程序,动态分配一个长度由用户输入的整型数组,使用冒泡排序法对其进行升序排序,并输出排序后的数组。要求处理内存分配失败的情况。答案一、单项选择题1.A(标识符只能由字母、数字、下划线组成,且不能以数字开头,不能是关键字)2.C(a++先取值5,--b先减1得2,5-2=3,32=6?不,原式是(a++--b)2,a++是5,--b是2,5-2=3,32=6?但原题a=5,b=3,--b后b=2,a++是5(之后a=6),所以5-2=3,32=6?但选项中无6?哦可能我算错了。原式:a++是5(a变为6),--b是2(b变为2),所以5-2=3,32=6,但选项B是6?可能题目选项正确。修正:原题选项B是6,正确。3.A(strlen遇到'\0'停止,"hello"长度为5)4.A(数组名传递是地址传递,修改元素影响原数组;基本类型是值传递;指针可修改指向内容;结构体变量是值传递)5.B(结构体对齐:int占4,char占1(填充3到8),double占8,总大小4+8+8=20?不,对齐系数为8,int后char占1,填充3到8(4+1+3=8),然后double占8,总大小8+8=16?正确。6.B(x=0时,0%2=0,不执行continue,输出0;x=1时,1%2=1,执行continue,跳过输出;x=2时,2%2=0,输出2;循环结束,结果02)7.B(p=a,p+2指向a[2]=5,5+2=7)8.C(ifdef判断宏是否定义,非变量)9.C(malloc需强制转换类型,大小为10sizeof(int))10.B(二进制只读模式是"rb")二、填空题1.5((int)x=3,3+2=5)2.'a'('A'的ASCII码是65,+32得97,对应'a')3.函数定义时的返回值类型4.5(二维数组初始化,a[1]是{3,4,5},a[1][2]=5)5.0x33(0x12是00010010,0x21是00100001,异或得00110011即0x33)三、程序分析题1.运行结果:a=10,b=20解析:swap函数采用值传递,交换的是形参x和y的值,主函数中a和b的值未改变。2.运行结果:1,5解析:p指向数组首元素,(p+2)即arr[2],初始为3,加2后变为5;p是arr[0]=1,(p+4)是arr[4]=5。3.运行结果:10解析:fun函数递归计算1+2+3+4=10(n=4时,4+fun(3);fun(3)=3+fun(2);fun(2)=2+fun(1);fun(1)=1,总和4+3+2+1=10)。4.运行结果:LiMing,22解析:p是指向stu的指针,p->name输出"LiMing";(p).age即stu.age=20,加2后为22。四、编程题1.参考代码:intcountChar(charstr,charch){intcount=0;while(str!='\0'){//遍历字符串直到结束if(str==ch){//匹配目标字符count++;}str++;//指针后移}returncount;}2.参考代码:include<stdio.h>structStudent{longid;floatmath;floatenglish;floatavg;//平均分};intmain(){structStudentstu[3];inti;//输入信息for(i=0;i<3;i++){printf("请输入第%d名学生的学号、数学成绩、英语成绩:",i+1);scanf("%ld%f%f",&stu[i].id,&stu[i].math,&stu[i].english);stu[i].avg=(stu[i].math+stu[i].english)/2;//计算平均分}//输出信息printf("学号\t数学\t英语\t平均分\n");for(i=0;i<3;i++){printf("%ld\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].math,stu[i].english,stu[i].avg);}return0;}3.参考代码:include<stdio.h>include<stdlib.h>//包含malloc、free函数voidbubbleSort(intarr,intn){inti,j,temp;for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){//升序排序temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){intn,arr;printf("请输入数组长度:");scanf("%d",&n);//动态分配内存arr=(int)malloc(nsizeof(int));if(arr==NULL){//处理分配失败printf("内存分配失败!");return1;}//输入数组元素p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学中药学(中药制剂工艺)试题及答案
- 2025年中职(蜂产品加工与营销)蜂蜜加工技术阶段测试试题及答案
- 2025年大学汽车服务工程(汽车售后服务管理)试题及答案
- 2025年大学环境科学(环境营养研究)试题及答案
- 巴西介绍英语
- 中国银行新员工培训课件
- 养老院老人紧急救援人员培训制度
- 养老院老人活动参与制度
- 养老院老人医疗护理服务制度
- 养老院消防安全管理制度
- 2025版实验动物中心动物实验动物饲养合同
- GB/T 30104.104-2025数字可寻址照明接口第104部分:一般要求无线和其他有线系统组件
- 2.3河流与湖泊我国第一大河长江课件-八年级地理上学期人教版
- 人工耳蜗术后护理指南
- 2025综合安防系统建设与运维手册
- GB/T 45698-2025物业服务客户满意度测评
- GB/T 16603-2025锦纶牵伸丝
- 燃气使用分摊协议书
- 《比较教材研究》课件
- 新北师大版小学五年级数学上册知识点
- 胎盘异常超声诊断课件
评论
0/150
提交评论