C语言程序设计教程第2版余琴课后答案_第1页
C语言程序设计教程第2版余琴课后答案_第2页
C语言程序设计教程第2版余琴课后答案_第3页
C语言程序设计教程第2版余琴课后答案_第4页
C语言程序设计教程第2版余琴课后答案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第一章一、选择题1.B2.C3.B4.A5.D6.C7.C8.B9.C10.A二、填空题1.物理地址2.文件包含;宏定义3.头文件;头文件4.注释;多行注释;单行注释;注释5.分号6.变量定义;执行语句7.编辑;编译;连接;运行8..c9.目标文件;.obj10.可执行文件;.exe三、简答题1.简述C语言的优点(1)语言简洁紧凑:C语言的语法结构简洁,只有32个关键字和9种控制语句,程序书写形式自由,能够高效地表达复杂的算法和程序逻辑。(2)运算符丰富:C语言拥有丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等,能方便地实现各种复杂的运算,满足不同编程需求。(3)数据类型丰富:提供了多种基本数据类型(如整型、浮点型、字符型等)和构造数据类型(如数组、结构体、联合体等),便于实现各类复杂的数据结构,增强了程序对数据的处理能力。(4)结构化程序设计:C语言是结构化语言,采用函数作为程序模块,便于按模块化方式组织程序,使程序结构清晰,易于理解、调试和维护。(5)可移植性好:C语言编写的程序几乎不用修改或只需少量修改就能在不同的操作系统和硬件平台上运行,提高了程序开发的效率和代码的复用性。(6)能进行底层开发:它可以直接访问内存地址,进行位操作,适合编写系统软件、驱动程序等底层代码,在系统编程领域具有很大优势。2.简述C语言与C++语言的关系与区别(1)关系C++语言是在C语言的基础上发展起来的,C语言是C++语言的子集。C++保留了C语言的大部分特性和语法,并且在C语言的基础上进行了功能扩展,许多C语言程序可以直接在C++环境中编译运行。(2)区别①面向对象特性:C语言是面向过程的编程语言,主要关注程序的算法和流程;C++语言支持面向对象编程,增加了类、对象、封装、继承、多态等面向对象的特性,使程序更适合大型软件的开发和维护。②语法差异:C++增加了一些新的语法元素,如引用、函数重载、模板等。引用提供了一种更方便的变量别名机制;函数重载允许在同一作用域内定义多个同名但参数列表不同的函数;模板则用于实现通用编程,提高代码的复用性。③异常处理:C++引入了异常处理机制(try-catch-throw),能更好地处理程序运行时出现的错误和异常情况,增强了程序的稳定性和可靠性;C语言通常使用返回值等方式来处理错误,处理方式相对简单。3.简述C语言源程序的结构特点(1)函数为基本单位:C语言源程序由一个或多个函数组成,其中有且仅有一个主函数(main函数)。函数是实现程序功能的基本模块,每个函数完成特定的任务,通过函数调用实现程序的整体功能。(2)预处理命令:源程序可以包含预处理命令,如#include用于包含头文件,使程序能够使用标准库函数或自定义函数;#define用于宏定义,进行符号常量定义或宏替换,增强程序的可读性和可维护性。(3)注释:使用/*…*/(多行注释)和//(单行注释)对程序进行注释,解释程序代码的功能和逻辑,提高程序的可读性,便于他人理解和维护代码。注释内容在编译时被忽略,不影响程序的运行。(4)变量和数据类型:程序中需要定义变量来存储数据,C语言提供了丰富的数据类型,变量定义通常在函数的开头部分,遵循先定义后使用的原则。(5)语句构成:由各种语句组成,如表达式语句、控制语句(if语句、for语句、while语句等)、函数调用语句等,这些语句按照一定的逻辑顺序组合,实现程序的具体功能。语句以分号结束。4.简述C语言的字符集有哪些(1)字母:包括大写英文字母A-Z和小写英文字母a-z,共52个。字母在C语言中用于定义标识符(如变量名、函数名等)、表示字符常量等。(2)数字:0-9这10个数字,用于表示数值常量,参与各种算术运算和数据处理。(3)特殊字符①标点符号:如逗号(,)用于分隔函数参数、变量声明等;分号(;)用于结束语句;冒号(:)用于switch语句中的case标签等。②运算符:包括算术运算符(+、-、*、/、%等)、关系运算符(>、<、==、!=等)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等,用于进行各种运算。③其他特殊字符:如空格、制表符(\t)、换行符(\n)等,用于分隔程序中的单词、语句,影响程序的排版和格式,但在字符串中具有特定含义。5.简述编写C语言程序时应遵循的规则(1)语法规则:严格遵循C语言的语法规范,如变量必须先定义后使用;语句要以分号结尾;函数定义要有正确的函数头和函数体;运算符的使用要符合其语法和优先级规定等。(2)命名规则:标识符(变量名、函数名、数组名等)的命名要遵循一定规则,只能由字母、数字和下划线组成,且不能以数字开头,不能使用C语言的关键字作为标识符。命名应具有描述性,便于理解其用途。(3)代码结构规则:采用结构化编程思想,合理划分函数,每个函数完成单一、明确的功能。程序要有清晰的结构,如主函数负责程序的整体流程控制,其他函数负责具体功能实现。(4)注释规则:适当地添加注释,对关键代码段、复杂算法、变量用途等进行解释说明,提高代码的可读性和可维护性。注释要简洁明了,避免冗余。(5)缩进和排版规则:使用一致的缩进风格(如4个空格或1个制表符)来表示代码的层次结构,使程序结构清晰易读。合理使用空格分隔运算符、函数参数等,增强代码的可读性。四、编程题#include<stdio.h>intmain(){printf("***********************************\n");printf("我是XXX\n");printf("***********************************\n");return0;}

第二章一、选择题1.C2.B3.B4.A5.A6.C7.C8.D9.C10.B11.B12.D13.D14.A二、填空题1.1.02.283.整型;浮点型;字符型4.逗号运算符5.常量;变量6.数据类型;变量名7.字符常量;1个字节;ASCII码值8.运算符;运算对象;常量;变量;函数调用9.单目运算符;前置运算;后置运算10.复合赋值运算符11.左结合性;右结合性;右结合性;左结合性12.24;22;60;0;0;013.715.716.3.5三、编程题1.#include<stdio.h>intmain(){floatlength=2,width=5,height=8;floatsurfaceArea=2*(length*width+length*height+width*height);floatvolume=length*width*height;printf("长方体的表面积为:%.2f\n",surfaceArea);printf("长方体的体积为:%.2f\n",volume);return0;}2.#include<stdio.h>#definePI3.14intmain(){floatradius,surfaceArea,volume;printf("请输入球体半径:");scanf("%f",&radius);surfaceArea=4*PI*radius*radius;volume=(4.0/3.0)*PI*radius*radius*radius;printf("球体的表面积为:%.2f\n",surfaceArea);printf("球体的体积为:%.2f\n",volume);return0;}3.#include<stdio.h>intmain(){charch='X';charprevCh=ch-1;charnextCh=ch+1;charprevLowerCh=tolower(prevCh);charnextLowerCh=tolower(nextCh);printf("字符%c前面的字符是%c,其小写形式是%c\n",ch,prevCh,prevLowerCh);printf("字符%c后面的字符是%c,其小写形式是%c\n",ch,nextCh,nextLowerCh);return0;}

第三章一、选择题1.B2.C3.C4.C5.A6.C7.C8.B9.D10.D二、填空题1.顺序结构;选择结构;循环结构2.变量名=表达式;3.printf();scanf();,107.7,558.2619.3,310.666.0000006.66666711.a=3b=4c=5x=1.200000,y=2.400000,z=-3.600000x+y=3.60y+z=-1.20z+x=-2.40u=51274n=128765c1='a'or97(ASCII)c2='b'or98(ASCII)12.6.013.m=++i;n=j--;14.&a,&b,&caverage=(a+b+c)/3;15.temp&a,&b,&ctemp=a;a=b;b=c;c=temp;三、编程题1.#include<stdio.h>intmain(){printf("*******************\n");printf("*CLANGUAGE*\n");printf("*******************\n");return0;}2.#include<stdio.h>intmain(){intnum1,num2,num3,num4,num5;floataverage;printf("请输入五个整数:");scanf("%d%d%d%d%d",&num1,&num2,&num3,&num4,&num5);average=(num1+num2+num3+num4+num5)/5.0;printf("它们的平均值是:%.2f\n",average);return0;}3.#include<stdio.h>intmain(){charc1,c2,c3;printf("请输入三个字符:");scanf("%c%c%c",&c1,&c2,&c3);printf("反向输出为:%c%c%c\n",c3,c2,c1);return0;}4.#include<stdio.h>intmain(){inta,b;floatx,y;charc1,c2;printf("请按格式输入数据:a=3b=7x=8.5y=71.82c1=Ac2=a\n");scanf("a=%db=%dx=%fy=%fc1=%cc2=%c",&a,&b,&x,&y,&c1,&c2);return0;}

第四章一、选择题1.A2.D3.B4.C5.C6.C7.B8.A9.C二、填空题1.else子句与在它之前最接近的、尚未配对的if子句配对2.根据条件表达式的值来选择执行两个表达式中的一个。若条件表达式的值为真,则执行“?”后的表达式;若为假,则执行“:”后的表达式3.(1)a<b||a<c(2)a>c&&b>c(3)(a<c)||(b<c)(4)a%2==14.if(a<=b){x=1;printf("####x=%d\n",x);}else{y=2;printf("****y=%d\n",y);}5.GOOD!OK!NO!ERROR!6.a<c;t=b;7.ch>='A'&&ch<='Z';ch=ch-32;8.-1三、编程题1.#include<stdio.h>#include<math.h>intmain(){floata,b,c;printf("请输入三个数:");scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){printf("这三个数能构成三角形。");if(fabs(a*a+b*b-c*c)<1e-6||fabs(a*a+c*c-b*b)<1e-6||fabs(b*b+c*c-a*a)<1e-6){printf("且是直角三角形。\n");}else{printf("但不是直角三角形。\n");}}else{printf("这三个数不能构成三角形。\n");}return0;}2.#include<stdio.h>#definePI3.14159intmain(){floatr;intk;printf("请输入圆的半径r和整型数k:");scanf("%f%d",&r,&k);if(k==1){floatarea=PI*r*r;printf("圆的面积为:%.2f\n",area);}elseif(k==2){floatcircumference=2*PI*r;printf("圆的周长为:%.2f\n",circumference);}elseif(k==3){floatarea=PI*r*r;floatcircumference=2*PI*r;printf("圆的周长为:%.2f,圆的面积为:%.2f\n",circumference,area);}else{printf("无效的k值。\n");}return0;}3.#include<stdio.h>#include<math.h>intmain(){floatx,y;printf("请输入自变量x的值:");scanf("%f",&x);if(x<0){y=x+1;}elseif(x<5){y=sqrt(x);}elseif(x<10){y=x*x+1;}else{y=2*x-1;}printf("函数值y为:%.2f\n",y);return0;}4.#include<stdio.h>intmain(){floata,b,c,d,e,t;printf("请输入a、b、c、d、e五个数:");scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(a>e){t=a;a=e;e=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(b>e){t=b;b=e;e=t;}if(c>d){t=c;c=d;d=t;}if(c>e){t=c;c=e;e=t;}if(d>e){t=d;d=e;e=t;}printf("从小到大的顺序为:%.2f,%.2f,%.2f,%.2f,%.2f\n",a,b,c,d,e);return0;}5.#include<stdio.h>intmain(){floatnum1,num2,result;charop;printf("请输入运算数1、四则运算符和运算数2(例如:4+3):");scanf("%f%c%f",&num1,&op,&num2);switch(op){case'+':result=num1+num2;break;case'-':result=num1-num2;break;case'*':result=num1*num2;break;case'/':if(num2!=0){result=num1/num2;}else{printf("除数不能为0。\n");return1;}break;default:printf("无效的运算符。\n");return1;}printf("计算结果为:%.2f\n",result);return0;}

第五章一、单选题1.D2.B3.D4.C5.C6.C7.B8.A9.C10.C二、填空题1.while;do-while;for2.先判断条件,后执行循环体;先执行循环体,后判断条件3.跳出当前循环;跳过本次循环剩余部分,进入下一次循环4.11;-1;105.06.循环;switch7.一个循环体内又包含另一个完整的循环结构8.189.3,310.311.**********12.5413.x>=0;x<amin14.m%n==0;s==m三、编程题1.#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf("%d*%d=%d",i,j,i*j);}printf("\n");}return0;}2.#include<stdio.h>intmain(){inti,j;longlongsum=0,factorial;for(i=1;i<=10;i++){factorial=1;for(j=1;j<=i;j++){factorial*=j;}sum+=factorial;}printf("1!+2!+3!+…+10!的值为:%lld\n",sum);return0;}3.#include<stdio.h>intmain(){intsum=0,i,sign=1;for(i=1;i<=101;i+=2){sum+=sign*i;sign=-sign;}printf("1-3+5-7+…-99+101的值为:%d\n",sum);return0;}4.#include<stdio.h>intmain(){intm,n,s;for(m=2;m<1000;m++){s=0;for(n=1;n<=m/2;n++){if(m%n==0){s+=n;}}if(s==m){printf("%d是完全数\n",m);}}return0;}5.#include<stdio.h>intmain(){inti,j;for(i=1;i<=5;i++){for(j=1;j<=5-i;j++){printf("");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}for(i=4;i>=1;i--){for(j=1;j<=5-i;j++){printf("");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}return0;}

第六章一、选择题1.B2.D3.D4.A5.A6.A7.B8.A9.D10.C11.C12.C13.D14.D15.C16.D17.D18.B19.C20.C二、填空题1.数据类型;相同2.标识符3.整型常量;符号常量;变量4.可以省略5.0(对于数值型数组)或'\0'(对于字符型数组)6.引用;数组7.按行优先顺序存储,即先存储第一行元素,再存储第二行元素,依次类推8.行数;列数9.m-1;n-110.字符数组11.4512.713.15926103711481214.*********15.abcde16.(1)&a[i];(2)i%4==0&&i!=0;(3)printf("\n");;(4)a[i]17.(1)m=100;(2)(m/10)%10;(3)a[i]=m18.(1)i<10;(2)&a[i];(3)t=a[i];(4)a[i]19.(1)c=0;(2)max=a[0][0];(3)for(j=0;j<4;j++);(4)r=i20.(1)for(j=0;j<4;j++);(2)a[i][j]+b[i][j];(3)for(i=0;i<3;i++);(4)printf("\n")三、编程题1.#include<stdio.h>intmain(){intarr[]={3,7,8,9,10,4,5};intsum=0;for(inti=0;i<sizeof(arr)/sizeof(arr[0]);i++){if(arr[i]%2==0){sum+=arr[i];}}printf("该数组中所有偶数元素的和为:%d\n",sum);return0;}2.#include<stdio.h>intmain(){intarr[10],max,min,maxIndex,minIndex;printf("请输入10个整数:\n");for(inti=0;i<10;i++){scanf("%d",&arr[i]);}max=min=arr[0];maxIndex=minIndex=0;for(inti=1;i<10;i++){if(arr[i]>max){max=arr[i];maxIndex=i;}if(arr[i]<min){min=arr[i];minIndex=i;}}printf("最大值为:%d,下标为:%d\n",max,maxIndex);printf("最小值为:%d,下标为:%d\n",min,minIndex);return0;}3.#include<stdio.h>intmain(){intarr[11]={1,3,5,7,9,11,13,15,17,19};intnum,i,j;printf("请输入要插入的数:");scanf("%d",&num);for(i=0;i<10;i++){if(arr[i]>num){break;}}for(j=9;j>=i;j--){arr[j+1]=arr[j];}arr[i]=num;printf("插入后的数组为:\n");for(i=0;i<11;i++){printf("%d",arr[i]);}printf("\n");return0;}4.#include<stdio.h>intmain(){intarr[3][3],i,j,sum=0;printf("请输入3×3的二维数组:\n");for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&arr[i][j]);}}printf("行列交换后的数组为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++){printf("%d",arr[j][i]);}printf("\n");}for(i=0;i<3;i++){sum+=arr[i][i];sum+=arr[i][2-i];}if(sum>arr[1][1]){sum-=arr[1][1];}printf("两条对角线元素之和为:%d\n",sum);return0;}5.#include<stdio.h>#include<ctype.h>intmain(){charstr[100];intletter=0,digit=0,space=0,other=0;printf("请输入一行字符串:\n");fgets(str,100,stdin);for(inti=0;str[i]!='\0';i++){if(isalpha(str[i])){letter++;}elseif(isdigit(str[i])){digit++;}elseif(isspace(str[i])){space++;}else{other++;}}printf("英文字符个数:%d\n",letter);printf("数字个数:%d\n",digit);printf("空格个数:%d\n",space);printf("其他字符个数:%d\n",other);return0;}

第七章一、选择题1.B2.A3.B4.D5.A6.D7.A8.C9.A10.C二、填空题1.递归调用;没有2.文件;函数3.main函数4.库函数;用户自定义函数;有参函数;无参函数5.形式参数;实际参数6.局部变量;全局变量7.函数首部;函数体8.7899.(1)i<10;(2)array[i];(3)average(score)10.1511.9三、编程题1.floatadd(floata,floatb){returna+b;}2.#include<stdio.h>floataverage(floatscores[],intn){inti;floatsum=0,avg;for(i=0;i<n;i++){sum+=scores[i];}avg=sum/n;printf("高于平均分的成绩:");for(i=0;i<n;i++){if(scores[i]>avg){printf("%f",scores[i]);}}printf("\n");returnavg;}intmain(){floatscores[10];inti;printf("请输入10个学生的英语成绩:");for(i=0;i<10;i++){scanf("%f",&scores[i]);}floatavg=average(scores,10);printf("平均分:%f\n",avg);return0;}3.intcount(intx){intsum=0;while(x!=0){sum+=x%10;x/=10;}returnsum;}4.doublemypow(doublex,inty){doubleresult=1;inti;for(i=0;i<y;i++){result*=x;}returnresult;}5.intsum(intn){if(n==1){return1;}else{returnn+sum(n-1);}}

第八章一、单选题1.B2.C3.C4.C5.C6.D7.B8.D9.D10.B11.D12.D13.C14.C15.C二、填空题1.10;122.int*f();表示f是一个返回值为指针(指向整型)的函数;int(*f)();表示f是一个指向函数(该函数返回整型值)的指针3.04.int*z5.*(p+5)6.&a[i];a+i;*(a+i)7.&a[i][j];a[i]+j;指向一维数组(含有j所在行剩余元素)的指针8.49.指针数组10.指针数组(有4个指向整型的指针元素);指向含有4个整型元素数组的指针11.i=10,j=212.1013.5,214.i=1515.ch=f16.num=*b;num=*c17.'\0';s18.s+n-1;p1<p2;p2--19.'\0';n++三、编程题1.#include<stdio.h>intmain(){charstr[100];char*p;intlen=0;printf("请输入一个字符串:");scanf("%s",str);p=str;while(*p!='\0'){len++;p++;}printf("字符串的长度为:%d\n",len);return0;}2.#include<stdio.h>intmain(){char*months[]={"January","February","March","April","May","June","July","August","September","October","November","December"};intnum;printf("请输入1-12的整数:");scanf("%d",&num);if(num>=1&&num<=12){printf("%s\n",months[num-1]);}else{printf("输入错误,请输入1-12的整数。\n");}return0;}3.#include<stdio.h>intmain(){charstr[]="computer";char*p;p=str;while(*p!='\0'){printf("%c",*p);p+=2;}printf("\n");return0;}4.#include<stdio.h>voidcopyString(char*src,intm,char*dest){inti=m-1;while(src[i]!='\0'){*dest=src[i];dest++;i++;}*dest='\0';}intmain(){charstr[100],newStr[100];intm;printf("请输入字符串:");scanf("%s",str);printf("请输入m的值:");scanf("%d",&m);copyString(str,m,newStr);printf("复制后的字符串:%s\n",newStr);return0;}

第九章一、选择题1.D2.D3.C4.B5.C6.D7.D8.B9.B10.D二、编程题1.#include<stdio.h>//定义结构体表示学生成绩structStudent{floatscores[5];};intmain(){structStudentstu;floatsum=0;inti;//输入五门课成绩printf("请输入五门课的成绩:\n");for(i=0;i<5;i++){scanf("%f",&stu.scores[i]);sum+=stu.scores[i];}//计算并输出平均分floataverage=sum/5;printf("该同学五门课的平均分为:%.2f\n",average);return0;}2.#include<stdio.h>#include<string.h>//定义工资登记表结构体structSalaryTable{charname[20];floatsalary;};intmain(){//初始化工资登记表structSalaryTabletable[]={{"张三",5000.0},{"李四",5500.0},{"王五",6000.0}};charsearchName[20];inti,found=0;//输入要查询的姓名printf("请输入要查询的姓名:");scanf("%s",searchName);//查询工资情况for(i=0;i<sizeof(table)/sizeof(table[0]);i++){if(strcmp(table[i].name,searchName)==0){printf("%s的工资是:%.2f\n",table[i].name,table[i].salary);found=1;break;}}if(!found){printf("未找到名为%s的员工工资信息。\n",searchName);}return0;}3.#include<stdio.h>//定义学生成绩结构体structStudentScores{floatmathMid;floatmathFinal;floatchineseMid;floatchineseFinal;floatenglishMid;floatenglishFinal;};intmain(){structStudentScoresstudents[3];inti;//输入三个学生的成绩for(i=0;i<3;i++){printf("请输入第%d个学生的成绩:\n",i+1);printf("数学期中成绩:");scanf("%f",&students[i].mathMid);printf("数学期末成绩:");scanf("%f",&students[i].mathFinal);printf("语文期中成绩:");scanf("%f",&students[i].chineseMid);printf("语文期末成绩:");scanf("%f",&students[i].chineseFinal);printf("英语期中成绩:");scanf("%f",&students[i].englishMid);printf("英语期末成绩:");scanf("%f",&students[i].englishFinal);}//计算并输出每个学生的平均成绩for(i=0;i<3;i++){floataverage=(students[i].mathMid+students[i].mathFinal+students[i].chineseMid+students[i].chineseFinal+students[i].englishMid+students[i].englishFinal)/6;printf("第%d个学生的平均成绩为:%.2f\n",i+1,average);}return0;}

第十章一、选择题1.D2.B3.A4.B5.B6.D7.D8.D9.B10.D二、编程题1.#include<stdio.h>#include<stdlib.h>#include<string.h>//定义学生结构体typedefstruct{intid;charname[20];floatscore;}Student;//比较函数,用于qsort排序intcompare(constvoid*a,constvoid*b){Student*s1=(Student*)a;Student*s2=(Student*)b;returns1->score-s2->score;}intmain(){Studentstudents[100];intn=0;FILE*fp;//格式化输入多个学生记录printf("请输入学生数量:");scanf("%d",&n);for(inti=0;i<n;i++){printf("请输入第%d个学生的学号、姓名和成绩:",i+1);scanf("%d%s%f",&students[i].id,students[i].name,&students[i].score);}//利用fwrite将学生信息按二进制方式写到文件中fp=fopen("students.dat","wb");if(fp==NULL){perror("无法打开文件");return1;}fwrite(students,sizeof(Student),n,fp);fclose(fp);//利用fread从文件中读出成绩并求平均值floatsum=0;fp=fopen("students.dat","rb");if(fp==NULL){perror("无法打开文件");return1;}for(inti=0;i<n;i++){Studenttemp;fread(&temp,sizeof(Student),1,fp);sum+=temp.score;}fclose(fp);floataverage=sum/n;printf("学生成绩平均值为:%.2f\n",average);//对文件中按成绩排序,将成绩单写入文本文件中fp=fopen("students.dat","rb");if(fp==NULL){perror("无法打开文件");return1;}fread(students,sizeof(Student),n,fp);fclose(fp);qsort(students,n,sizeof(Student),compare);fp=fopen("sorted_students.txt","w");if(fp==NULL){perror("无法打开文件");return1;}for(inti=0;i<n;i++){fprintf(fp,"学号:%d,姓名:%s,成绩:%.2f\n",students[i].id,students[i].name,students[i].score);}fclose(fp);return0;}2.#include<stdio.h>#include<stdli

温馨提示

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

评论

0/150

提交评论