2025年大学c语言实践考试题及答案_第1页
2025年大学c语言实践考试题及答案_第2页
2025年大学c语言实践考试题及答案_第3页
2025年大学c语言实践考试题及答案_第4页
2025年大学c语言实践考试题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

2025年大学c语言实践考试题及答案一、基础操作题(本题共30分)请编写一个C程序,实现以下功能:1.从当前目录下的"input.txt"文件中读取10个整数(假设文件中仅包含10个用空格分隔的整数,无其他内容);2.将这10个整数按从小到大排序;3.将排序后的结果写入当前目录下的"output.txt"文件,每个整数占一行;4.要求使用动态内存分配存储读取的整数,若内存分配失败或文件打开失败,需输出错误信息并终止程序。二、程序设计题(本题共40分)学生课程设计成绩管理系统需要实现以下功能模块。请编写C程序完成该模块:定义结构体类型Student,包含以下字段:学号(长整型,num)姓名(字符串,name[20])成绩(浮点型,score)功能要求:1.输入5名学生的信息(学号、姓名、成绩),存储于结构体数组中;2.计算并输出这5名学生的平均成绩(保留2位小数);3.按成绩从高到低对学生信息进行排序,输出排序后的学生信息(包括学号、姓名、成绩);4.查找成绩等于平均成绩的学生(若存在多个,需全部输出),若不存在则输出"无符合条件的学生"。三、综合应用题(本题共30分)图书管理系统需要实现对图书信息的基本操作。请编写C程序,使用链表结构完成以下功能:定义结构体类型Book,包含以下字段:ISBN(字符串,isbn[14],假设为13位数字+1位校验码)书名(字符串,title[50])作者(字符串,author[30])价格(浮点型,price)功能要求:1.初始化一个空链表;2.实现添加图书节点的函数:从键盘输入一本图书的信息(ISBN不可重复),若ISBN已存在则提示"该ISBN已存在",否则创建新节点并插入链表尾部;3.实现删除图书节点的函数:输入待删除图书的ISBN,若链表中不存在该ISBN则提示"未找到该图书",否则删除对应节点;4.实现修改图书价格的函数:输入待修改图书的ISBN和新价格,若不存在则提示"未找到该图书",否则更新价格;5.实现遍历链表并输出所有图书信息的函数(格式:ISBN书名作者价格(保留2位小数))。【基础操作题答案】```cinclude<stdio.h>include<stdlib.h>voidsort(intarr,intn){for(inti=0;i<n1;i++){for(intj=0;j<ni1;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){FILEfin,fout;intnums=(int)malloc(10sizeof(int));if(nums==NULL){fprintf(stderr,"内存分配失败!\n");return1;}fin=fopen("input.txt","r");if(fin==NULL){fprintf(stderr,"输入文件打开失败!\n");free(nums);return1;}for(inti=0;i<10;i++){if(fscanf(fin,"%d",&nums[i])!=1){fprintf(stderr,"文件读取错误!\n");fclose(fin);free(nums);return1;}}fclose(fin);sort(nums,10);fout=fopen("output.txt","w");if(fout==NULL){fprintf(stderr,"输出文件打开失败!\n");free(nums);return1;}for(inti=0;i<10;i++){fprintf(fout,"%d\n",nums[i]);}fclose(fout);free(nums);return0;}```【程序设计题答案】```cinclude<stdio.h>include<string.h>typedefstruct{longnum;charname[20];floatscore;}Student;voidinputStudents(Studentstu,intn){for(inti=0;i<n;i++){printf("请输入第%d名学生信息(学号姓名成绩):",i+1);scanf("%ld%s%f",&stu[i].num,stu[i].name,&stu[i].score);}}floatcalculateAverage(Studentstu,intn){floatsum=0;for(inti=0;i<n;i++){sum+=stu[i].score;}returnsum/n;}voidsortByScore(Studentstu,intn){for(inti=0;i<n1;i++){for(intj=0;j<ni1;j++){if(stu[j].score<stu[j+1].score){Studenttemp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}}voidfindByAverage(Studentstu,intn,floatavg){intcount=0;for(inti=0;i<n;i++){if(stu[i].score==avg){printf("学号:%ld姓名:%s成绩:%.2f\n",stu[i].num,stu[i].name,stu[i].score);count++;}}if(count==0){printf("无符合条件的学生\n");}}intmain(){Studentstudents[5];inputStudents(students,5);floataverage=calculateAverage(students,5);printf("平均成绩:%.2f\n",average);sortByScore(students,5);printf("排序后的学生信息:\n");for(inti=0;i<5;i++){printf("学号:%ld姓名:%s成绩:%.2f\n",students[i].num,students[i].name,students[i].score);}printf("成绩等于平均成绩的学生:\n");findByAverage(students,5,average);return0;}```【综合应用题答案】```cinclude<stdio.h>include<stdlib.h>include<string.h>typedefstructBookNode{charisbn[14];chartitle[50];charauthor[30];floatprice;structBookNodenext;}BookNode;BookNodeinitList(){returnNULL;}intisISBNExist(BookNodehead,chartargetISBN){BookNodep=head;while(p!=NULL){if(strcmp(p->isbn,targetISBN)==0){return1;}p=p->next;}return0;}BookNodeaddBook(BookNodehead){BookNodenewNode=(BookNode)malloc(sizeof(BookNode));if(newNode==NULL){printf("内存分配失败!\n");returnhead;}printf("请输入ISBN:");scanf("%s",newNode->isbn);if(isISBNExist(head,newNode->isbn)){printf("该ISBN已存在\n");free(newNode);returnhead;}printf("请输入书名:");scanf("%s",newNode->title);printf("请输入作者:");scanf("%s",newNode->author);printf("请输入价格:");scanf("%f",&newNode->price);newNode->next=NULL;if(head==NULL){returnnewNode;}else{BookNodep=head;while(p->next!=NULL){p=p->next;}p->next=newNode;returnhead;}}BookNodedeleteBook(BookNodehead,chartargetISBN){BookNodeprev=NULL,curr=head;while(curr!=NULL){if(strcmp(curr->isbn,targetISBN)==0){if(prev==NULL){head=curr->next;}else{prev->next=curr->next;}free(curr);printf("删除成功\n");returnhead;}prev=curr;curr=curr->next;}printf("未找到该图书\n");returnhead;}voidupdatePrice(BookNodehead,chartargetISBN){BookNodep=head;while(p!=NULL){if(strcmp(p->isbn,targetISBN)==0){floatnewPrice;printf("请输入新价格:");scanf("%f",&newPrice);p->price=newPrice;printf("价格更新成功\n");return;}p=p->next;}printf("未找到该图书\n");}voidprintList(BookNodehead){BookNodep=head;if(p==NULL){printf("链表为空\n");return;}printf("图书信息列表:\n");while(p!=NULL){printf("%s%s%s%.2f\n",p->isbn,p->title,p->author,p->price);p=p->next;}}intmain(){BookNodehead=initList();intchoice;chartargetISBN[14];do{printf("\n1.添加图书2.删除图书3.修改价格4.查看所有图书0.退出\n");printf("请选择操作:");scanf("%d",&choice);switch(choice){case1:head=addBook(head);break;case2:

温馨提示

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

评论

0/150

提交评论