C语言上机实验 答案

更新时间:2024-04-26 23:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 上机操作初步(2学时)

一、实验方式:一人一机 二、实验目的:

1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容:

说明:前三题为必做题目,后两题为选做题目。

1、输出入下信息:(实验指导书P79)

*************************

Very Good

************************* 2、计算两个整数的和与积。(实验指导书P81)

3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书P3)

4、在屏幕上显示一个文字菜单模样的图案:

================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include void main( ) { printf(“********************\\n”); printf(“ Very Good\\n”);

printf(“********************\\n”);

}

2、#include void main( ) { int a,b,c,d;

printf(“Please enter a,b:”);

scanf(“%d,%d”,&a,&b);

c=a+b; d=a*b;

printf(“%d+%d=%d\\n”,a,b,c); printf(“%d*%d=%d\\n”,a,b,d);

}

3、#include #include void main( )

{ double x,s;

printf(“Please input value of x:”); scanf(“%lf”,&x);

s=cos(x);

printf(“cos(%lf)=%lf\\n”,x,s);

}

4、#include void main( )

{ printf(“==================================\\n”); printf(“ 1 输入数据 2 修改数据\\n”); printf(“ 3 查询数据 4 打印数据\\n”);

printf(“===================================\\n”);

} 5、#include void main( ) { int x,y,t;

printf(“Please enter x and y:”); scanf(“%d%d”,&x,&y); t=x; x=y; y=t;

printf(“After swap:x=%d,y=%d\\n”,x,y);

}

实验二 简单的C程序设计(4学时)

一、实验方式:一人一机 二、实验目的:

1、掌握C语言的数据类型。

2、学会使用C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容:

说明:前四题为必做题目,后两题为选做题目。

1、输入r1、r2,求出圆形垫片面积。(实验指导书P84)

2、输入华氏温度h,输出摄氏温度c。(实验指导书P85)

3、从键盘输入一个3位整数,将输出该数的逆序数。(实验指导书P89) 4、输入并运行以下程序,分析运行结果。 #include void main( ) { int i,j; i=8; j=10;

printf(“%d,%d\\n”,++i,++j); i=8; j=10;

printf(“%d,%d\\n”,i++,j++);

i=8; j=10;

printf(“%d,%d\\n”,++i,i); i=8; j=10;

printf(“%d,%d\\n”,i++,i); }

5、输入三角形三条边的边长,求三角形的面积。(书P55)

6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(书P55) 四、实验步骤与过程: 五、实验调试记录: 六、参考答案:

1、#include #define PI 3.14 void main( ) { float r1,r2; double s1,s2,s;

printf(“Please enter r1,r2:\\n”); scanf(“%f%f”,&r1,&r2);

s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1; printf(“s=%lf\\n”,s);

}

2、#include void main( ) { float h,c;

printf(“请输入华氏温度:”); scanf(“%f”,&h); c=5.0/9*(h-32);

printf(“\\n摄氏温度:%f\\n”,c);

}

3、#include

void main( ) { int a,b,c,x,y;

printf(“请输入一个3位的正整数:\\n”); scanf(“%d”,&x);

a=x/100; /*求x的百位数*/

b=(x-a*100)/10; /*求x的十位数*/ c=x-a*100-b*10; /*求x的个位数*/ y=c*100+b*10+a;

printf(“%d:%d\\n”,x,y); } 4、运行结果:9,11 8,10 9,8 8,8

5、#include #include void main( ) { int a,b,c; double area,s;

printf(“Please enter a,b,c:”); scanf(“%d,%d,%d”,&a,&b,&c); s=(double)(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%.2lf\\n”,area); }

6、#include void main( ) { char a,b,c; float x;

printf(“Please enter:\\n”);

a=getchar(); b=getchar(); c=getchar(); x=(a+b+c)/3.0;

printf(“(a+b+c)/3=%.2f\\n”,x); }

实验三 选择结构程序设计(2学时)

一、实验方式:一人一机

二、实验目的:

1、熟练掌握if语句和switch语句。

2、练习并掌握多分支选择结构的编程方法。 3、学习调试和修改程序的步骤。 三、实验内容:

说明:前三题为必做题目,后两题为选做题目。

1、读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是立方体还是长方体。(实验指导书P104)

2、输入某一年月,输出该月的天数。(实验指导书P105) 3、有一函数: x (x<1) y= 2x-1 (1≤x<10)

3x-11 (x≥10) 编写程序,输入x值,输出y值。

4、从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。(书P94) 5、输入4个整数,要求按由小到大的顺序输出。 四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include void main( ) { int l,w,h;

printf(“请输入箱子的长、宽、高:\\n”);

scanf(“%d%d%d”,&l,&w,&h);

if(l==w&&w==h) /*如果长、宽、高相等,则为立方体*/ printf(“该箱子是立方体。”); else

printf(“该箱子是长方体。”); }

2、#include void main( )

{ int year,month,days;

printf(“Please enter year and month:\\n”); switch(month)

{ case 2: if(year%4==0&&year0!=0||year@0==0) days=29;

if(score==100)

temp=9; else

temp=score/10; switch(temp)

{ case 9: grade=‘A’;break; case 8: grade=‘B’;break;

case 7: grade=‘C’;break; case 6: grade=‘D’;break; default: grade=‘E’; }

printf(“Score is %d,the grade is %c.\\n”,score,grade);

}

2、#include void main( ) { int m,n,k; int sum=0;

printf(“各种驮法如下:\\n”); for(m=1;m<=100;m++)

for(n=1;n<=100-m;n++) { k=100-m-n;

if(k%2==0&&m*3+n*2+k/2==100)

{ printf(“大马=匹;中马=匹;小马=匹.\\n”,m,n,k); sum++;

} }

printf(“共有%d种驮法.\\n”,sum);

}

3、#include void main( ) { char c;

int letter=0,space=0,digit=0,other=0; printf(“请输入一行字符:\\n”); while((c=getchar( ))!=‘\\n’)

{ if(c>=‘a’&&c<=‘z’||c>=‘A’&&c<=‘Z’)

letter++;

else if(c==‘ ’) space++;

else if(c>=‘0’&&c<=‘9’)

digit++; else

other++;

}

printf(“字母数=%d,空格数=%d\\n”,letter,space); printf(“数字数=%d,其他字符数=%d\\n”,digit,other);

}

4、#include void main( ) { int i,j,k;

for(i=0;i<=3;i++)

{ for(j=0;j<=2-i;j++) printf(“ ”);

for(k=0;k<=2*i;k++) printf(“*”); printf(“\\n”); }

for(i=0;i<=2;i++)

{ for(j=0;j<=i;j++) printf(“ ”);

for(k=0;k<=4-2*i;k++) printf(“*”); printf(“\\n”); } }

实验六 函数程序设计(4学时)

一、实验方式:一人一机 二、实验目的:

1、掌握C语言中函数的三要素:函数定义、函数调用和函数说明。 2、掌握通过参数在函数间传递数据的方法。

3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。 三、实验内容:

说明:前四题为必做题目,后两题为选做题目。

1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。(实验指导书P130)

2、输入整数n,输出高度为n的等边三角形。当n=5时的等边三角形如下:(实验指导书P134) * *** ***** *******

*********

3、输入并运行以下程序,分析运行结果。 #include int a=5; int b=7;

void main( )

{ int a=4,b=5,c; c=plus(a,b);

printf(“a+b=%d\\n”,c); }

plus(int x,int y) { int z; z=x+y;

return (z); }

4、求500以内的所有亲密数对。若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。(实验指导书P136) 5、输入并运行以下程序,分析运行结果。 #include int d=1; fun(int p)

{ static int d=5;

d+=p;

printf(“%d ”,d); return (d); }

void main( ) { int a=3;

printf(“%d ”,fun(a+fun(d))); }

6、设计一个函数,输出整数n的所有素数因子。(书P157) 四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include #include

float area(float a,float b,float c) { float s,p,area; s=(a+b+c)/2;

p=s*(s-a)*(s-b)*(s-c); area=sqrt(p); return (area); }

void main( )

“%f%f%f”,&x,&y,&z);

“area=%f\\n”,ts);

} else

printf(“data error!\\n”);

2、#include void trangle(int n) { int i,j;

for(i=0;i

{ for(j=0;j<=n-i;j++) putchar(‘ ’); /* for(j=0;j<=2*i;j++) putchar(‘*’); /* putchar(‘\\n’);

} }

void main( ) { int n;

printf(“Please enter n:”); scanf(“%d”,&n); printf(“\\n”); trangle(n); } 3、a+b=9

4、#include int facsum(int m) { int sum=1,f=2; while(f<=m/2)

{ if(m%f==0) sum=sum+f;

打印每一行的空格*/ 打印每一行的*号*/ { float x,y,z,ts;

scanf( if(x>0&&y>0&&z>0&&x+y>z&&y+z>x&&x+z>y) { ts=area(x,y,z);

printf( }

f++;

}

return sum;

}

void main( ) { int m=3,n,k; while(m<=500) { n=facsum(m); k=facsum(n); if(m==k&&m<=n)

printf(“%d,%d\\n”,m,n); m++;

} }

5、6 15 15

6、#include int prime(int n) { int i,flag=1;

for(i=2;i<=n/2;i++) if(n%i==0) { flag=0;

retun flag;

}

return flag; }

void factor(int n) { int i; i=2;

while(i<=n)

{ if((n%i==0)&&prime(i)) { printf(“%d ”,i); n=n/i; continue;

}

i++;

} }

void main( ) { int num;

printf(“Enter num:”);

scanf(“%d”,&num);

printf(“prime factor is:\\n”); factor(num);

}

实验七 数组程序设计(4学时)

一、实验方式:一人一机 二、实验目的:

1、掌握数组的定义、赋值和输入输出的方法。 2、学习用数组实现相关的算法(特别是排序算法)。 3、掌握C语言中字符数组和字符串处理函数的使用。 三、实验内容:

说明:前四题为必做题目,后两题为选做题目。

1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( )

{ int i,n,a[10],avg;

for(i=0;i

scanf(“%d”,a[i]); for(i=0;i

{ if(i%3==0) printf(“\\n”); printf(“%d ”,a[i]);

}

for(i=0;i

printf(“\\navg=%f\\n”,avg); }

2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。(实验指导书P147)

3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。(实验指导书P153)

4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。

5、给定某年某月某日,将其转换成这一年的第几天并输出。(实验指导书P152)

6、编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。(书P191)

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include void main( )

{ int i,n=10,a[10];

float avg=0;

for(i=0;i

scanf(“%d”,&a[i]); for(i=0;i

{ if(i%3==0) printf(“\\n”); printf(“%d ”,a[i]);

}

for(i=0;i

printf(“\\navg=%f\\n”,avg); }

2、#include

void sort1(int s[ ],int n) { int i,j; int t;

for(i=0;i=i+1;j--) if(s[j]

{ t=s[j];s[j]=s[j-1];s[j-1]=t; } }

void main( ) { int i,a[10];

printf(“Please input 10 numbers:\\n”);

for(i=0;i<10;i++)

scanf(“%d”,&a[i]); sort1(a,10);

printf(“The sorted 10 numbers:\\n”); for(i=0;i<10;i++)

printf(“%d ”,a[i]);

}

3、#include #include

#define N 40 void main( )

{ char str[N],ch=‘Y’; int i;

int len;

printf(“Input a string:\\n”); scanf(“%s”,str);

len=strlen(str); for(i=0;i

if(str[i]!=str[len-1-i]) { ch=‘N’; break;

}

if(ch==‘Y’)

printf(“%s是一个回文数\\n”,str); else

printf(“%s不是一个回文数\\n”,str); }

4、#include void main( )

{ int a[3][3],sum; int i,j; sum=0;

for(i=0;i<3;i++) for(j=0;j<3;j++)

scanf(“%d”,&a[i][j]);

for(i=0;i<3;i++) sum=sum+a[i][i];

printf(“sum=%d\\n”,sum);

}

5、#include

int day_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int day_year(int year,int month,int day) { int i,j,s=0;

if(year%4==0&&year0!=0||year@0==0) i=1; else i=0; for(j=1;j

}

void main( ) { int y,m,d;

printf(“Input year,month and day:\\n”); scanf(“%d%d%d”,&y,&m,&d);

printf(“是这年的第%d天\\n”,day_year(y,m,d));

} 6、#include #define N 10 void main( ) { int a[N]; int num,i; char ch=‘n’;

printf(“请输入一个数组:\\n”); for(i=0;i

scanf(“%d”,&a[i]); printf(“输出数组:\\n”); for(i=0;i

printf(“%d ”,a[i]); printf(“\\n”);

printf(“请输入一个数:\\n”); scanf(“%d”,&num); printf(“开始查找\\n”); for(i=0;i

printf(“%d在数组的第%d位\\n”,num,i+1);

}

if(ch==‘n’)

printf(“no found\\n”);

}

实验八 指针程序设计(2学时)

一、实验方式:一人一机

二、实验目的:

1、通过实验进一步掌握指针的概念,会定义和使用指针变量。 2、能正确使用指向数组和字符串的指针变量。 3、熟悉指针作为函数参数的编程特点。 三、实验内容:

说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。 1、指针基础及指针运算。(实验指导书P168)

2、输入3个整数,按从小到大的次序输出。 (书P234)

3、数据交换。实验要求:1)定义两个函数,分别为void swap1(int a,int b)和void swap2(int *a,int *b),用于交换a,b的值。2)从主函数中分别输入两个整型变量a、b。3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。(实验指导书P169)

4、编写一个程序计算字符串长度的函数,模拟C的函数库内的计算字符串长度的函数strlen( )。

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include #include #define N 5 void main( )

{ int *p,*q,a[N]; int i,tmp; p=a;

q=(int *)malloc(N*sizeof(int));

printf(“Please input the first group:”);

for(i=0;i

scanf(“%d”,p+i); /*使用指针p输入a的N个元素*/ printf(“Please input the second group:”); for(i=0;i

scanf(“%d”,&q[i]); /*使用数组输入指针q地址上的N个整数*/ for(i=0;i*(q+i))

{ tmp=*(p+i); *(p+i)=*(q+i); *(q+i)=tmp; }交换 printf(“Result:\\n”);

for(i=0;i

printf(“%d ”,*(a+i)); /*按指针输出第一组数*/ printf(“\\n”); for(i=0;i

printf(“%d ”,q[i]); /*按数组输出第二组数*/

printf(“The memory address of p,a,q are:%x,%x,%x\\n”,p,a,q); free(q); }

2、#include

void swap(int *p1,int *p2) { int p;

p=*p1; *p1=*p2; *p2=p; }

void main( )

{ int n1,n2,n3; int *p1,*p2,*p3;

printf(“Please input three integer datas:”); scanf(“%d%d%d”,&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1

printf(“%d %d %d\\n”,n1,n2,n3); }

3、#include

void swap1(int x,int y); void swap2(int *x,int *y); void main( ) { int a,b;

printf(“Please input a=:”); scanf(“%d”,&a);

printf(“Please input b=:”); scanf(“%d”,&b); swap1(a,b);

printf(“\\nAfter call swap1:a=%d b=%d\\n”,a,b); swap2(&a,&b);

printf(“\\nAfter call swap2:a=%d b=%d\\n”,a,b); }

void swap1(int x,int y) { int temp;

temp=x; x=y; y=temp; }

void swap2(int *x,int *y) { int temp;

temp=*x; *x=*y; *y=temp; }

4、#include

int strlength(char *s); void main( )

{ int n1,n2;

char *list1=“See no evil,hear no evil.”; char *list2=“blind and deaf?”; n1=strlength(list1); n2=strlength(list2); puts(list1);

printf(“The length of list1=%d\\n”,n1); puts(list2);

printf(“The length of list2=%d\\n”,n2); } int strlength(char *s) { int n=0;

while(*s!=‘\\0’) { n++;

s++; }

return n; }

实验九 综合实验2:函数、数组、指针的综合应用(2学时)

一、实验方式:一人一机 二、实验目的:

1、进一步掌握通过指针引用数组元素的方法。

2、综合运用函数、数组、指针的知识,实现复杂程序的编程。 3、掌握调试复杂程序的技巧。 三、实验内容:

说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。

1、数组元素奇偶排列。实验要求:1)定义一个整型一维数组,任意输入数组的元素,其中包含奇数和偶数。2)定义一个函数,实现将数组元素奇数排列在左,偶数排列在右的排列。3)在上述定义的函数中,不允许再增加新的数组。4)从主函数中分别调用上述函数,打印输出结果。(实验指导书P172)

2、编写函数lower( )模拟标准函数strlwr( ),调用形式为lower(char *st),其作用是将字符串st中的大写字母转换成小写。(书P192) 3、编写函数,比较两个字符串是否相等。(书P234)

4、编写函数reverse( )模拟标准函数strrev( ),调用形式为reverse(char *st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。(书P192)

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include #define N 10

void arrsort(int a[ ],int n); void main() { int a[N],i;

for(i=0;i

scanf(“%d”,&a[i]); arrsort(a,N); for(i=0;i

printf(“%d ”,a[i]); }

void arrsort(int a[ ],int n) { int *p,*q,temp; p=a;

q=a+n-1; while(p

{ while(*p%2) p++; while(!(*q%2)) q--; if(p

{ temp=*p; *p=*q; *q=temp; } p++,q--;

} }

2、#include

#define N 20

void lower(char *st) { int i=0;

while(st[i]!=‘\\0’)

{ if(st[i]>=‘A’&&st[i]<=‘Z’) st[i]+=32; i++;

} }

void main( ) { char s[N];

printf(“Input a string:\\n”); scanf(“%s”,s); lower(s);

printf(“Output:%s\\n”,s); }

3、#include #include

int compare(char *p,char *q) { int i,l=strlen(p);

if(strlen(p)!=strlen(q)) return 0; for(i=0;i

if(p[i]!=q[i]) return 0; return 1; }

void main( )

{ char str1[80],str2[80];

printf(“Input first string:”);

scanf(“%s”,str1);

printf(“Input second string:”); scanf(“%s”,str2); if(compare(str1,str2))

printf(“Two strings equation!\\n”); else

printf(“Two strings no equation!\\n”); }

4、#include

#include

void reverse(char *st) { int i=0,n; char t;

n=strlen(st); for(;i

{ t=st[i]; st[i]=st[n-i-1]; st[n-i-1]=t; } }

void main( ) { char s[80];

printf(“Input a string:\\n”); scanf(“%s”,s); reverse(s);

printf(“Output:%s\\n”,s); }

实验十 综合实验3:结构体、文件程序设计(6学时)

一、实验方式:一人一机 二、实验目的:

1、掌握结构体类型变量的定义和使用。

2、掌握结构体类型数组的概念和使用。

3、学会使用文件打开、关闭、读、写等文件操作的函数。 三、实验内容:

说明:前三题为必做题目,后一题为选做题目。

1、在选举中进行投票,包含候选人姓名、得票数,假设有多位候选人,用结构体数组统计各候选人的得票数。(实验指导书P180) 2、编写一个学生信息排序程序。要求:

1) 程序运行时可输入n个学生的信息和成绩(n预先定义)。

2) 学生信息包括:学号、姓名;学生成绩包括:高等数学、物理、计算机。

3) 给出一个排序选择列表,能够按照上述所列信息(学号、姓名、高等数学、物理、计算机)中的至少一个字段进行排序,并显示其结果。 4) 使用函数方法定义各个模块。

3、将磁盘上一个文本文件的内容复制到另一个文件中。(实验指导书P199)

4、从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,输出到一个磁盘文件“test.dat”中保存,然后读出并输出在屏幕上。(实验指导书P204)

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include #include struct person

{ char name[20]; int count;

}a[6]={“zhang”,0,“li”,0,“wang”,0,“zhao”,0,“liu”,0,“zhu”,0}; void main( )

{ int i,j;

char abc[20];

for(i=1;i<=10;i++)

{ printf(“输入候选人名字:”); scanf(“%s”,abc); for(j=0;j<6;j++)

if(strcmp(abc,a[j].name)==0) a[j].count++;

}

for(j=0;j<6;j++)

printf(“%s:%d\\n”,a[j].name,a[j].count); }

2、#include

#include #define N 3 struct student { int stunum;

char stuname[10]; int math; int physics;

int computer; int sum; };

void printspace( ) { int i;

for(i=0;i<40;i++) printf(\ printf(\}

void printinformation(struct student stu[ ]) { int i;

printf(\ printspace( ); for(i=0;i

{ printf(\

stu[i].math,stu[i].physics,stu[i].computer,stu[i].sum,i+1);

printf(\ }

printspace( );

}

void readinformation(struct student stu[ ]) { int i;

printf(\ for(i=0;i

{ printf(\ scanf(\

printf(\ scanf(\

printf(\ scanf(\

printf(\ scanf(\

printf(\ scanf(\

stu[i].sum=stu[i].math+stu[i].physics+stu[i].computer; } }

void sortbystunum(struct student stu[ ]) { int i,j;

struct student t; for(i=0;i

if(stu[j].stunum

{ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sortbystuname(struct student stu[ ]) { int i,j;

struct student t; for(i=0;i

if(strcmp(stu[j].stuname,stu[j+1].stuname)<0) { t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sortbymath(struct student stu[ ])

{ int i,j;

struct student t; for(i=0;i

if(stu[j].math

{ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sortbyphysics(struct student stu[ ]) { int i,j; struct student t; for(i=0;i

if(stu[j].physics

{ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sortbycomputer(struct student stu[ ]) { int i,j; struct student t; for(i=0;i

if(stu[j].computer

{ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sortbysum(struct student stu[ ])

{ int i,j;

struct student t;

for(i=0;i

for(j=0;j

if(stu[j].sum

{ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } }

void sort(struct student stu[ ],int p) { switch(p)

{ case 1: sortbystunum(stu); break; case 2: sortbystuname(stu); break; case 3: sortbymath(stu); break; case 4: sortbyphysics(stu); break; case 5: sortbycomputer(stu); break; case 6: sortbysum(stu); break; default: printf(\ } }

void sortselect(int *select)

{ printf(\ printspace( );

printf(\

printf(\ printf(\ printf(\ printspace( );

printf(“\\nYour choice:”); scanf(\}

void main( )

{ int selectnum;

struct student stu1[N]; readinformation(stu1); sortselect(&selectnum); while(selectnum!=0)

{ sort(stu1,selectnum); printinformation(stu1); sortselect(&selectnum); }

}

3、#include void main( )

{ FILE *fp_in,*fp_out;

char infile[20],outfile[20];

printf(“Enter the infile name:”); scanf(“%s”,infile);

printf(“Enter the outfile name:”); scanf(“%s”,outfile);

if((fp_in=fopen(infile,“r”)==NULL)

{ printf(“Can’t open file:%s”,infile); exit(1); } if((fp_out=fopen(outfile,“w”)==NULL)

{ printf(“Can’t open file:%s”,outfile); exit(1); } while(!feof(fp_in))

fputc(fgetc(fp_in),fp_out); fclose(fp_in); fclose(fp_out);

}

4、#include

void main( ) { FILE *fp;

char str[100]; int i;

if((fp=fopen(“test”,“w”))==NULL) { printf(“Cannot open the file.\\n”);

exit(0); }

printf(“Input a string:”);

gets(str); /*读入一行字符串*/

for(i=0;str[i]&&i<100;i++) /*处理该行中的每一个字符*/ { if(str[i]>=‘a’&&str[i]<=‘z’) /*若是小写字母*/

str[i]-=32; /*将小写字母转换为大写字母*/

fputc(str[i],fp); /*将转换后的字符写入文件*/ }

fclose(fp); /*关闭文件*/

fp=fopen(“test”,“r”); /*以读方式打开文本文件*/ fgets(str,100,fp); /*从文件中读入一行字符串*/ printf(“%s\\n”,str); fclose(fp);

}

本文来源:https://www.bwwdw.com/article/caup.html

Top