程序设计基础C语言实验指导
㈠ 急需!!!<c语言程序设计习题解析与实验指导>函数编程练习 实验5 题2 答案
1、
#include "stdio.h"
void print(int array[],int length){
int i;
clrscr();
for(i=0;i<length;i++)printf("%d ",array[i]);
}
main(){
int array[5]={6,8,4,9,5};
print(array,5);
getchar();
}
2、
#include "stdio.h"
double average(int array[],int length){
int i;
double total=0,average=0;
for(i=0;i<length;i++)
total=total+array[i];
average=total/length;
return average;
}
main(){
int array[5]={6,8,5},i;
clrscr();
printf("The average is %0.8f",average(array,3));
getchar();
}
3、
#include "stdio.h"
int getmax (int array[],int length){
int max=array[0],i;
for(i=0;i<length;i++)if(max<array[i])max=array[i];
return max;
}
main(){
int array[5]={6,8,4,9,5};
clrscr();
printf("The max is %d",getmax(array,5));
getchar();
}
4、
#include "stdio.h"
int retrieve(int array[],int length,int x){
int i;
for(i=0;i<length;i++)if(array[i]==x)break;
if(i<length)return i+1;/*返回x在该数组中的位置*/
else return -1;/*没查找到*/
}
main(){
int array[5]={6,8,4,9,5},x=5;
int order = retrieve(array,5,x);
clrscr();
if(order==-1)printf("%d is not in this array!",x);
else printf("The order of %d in this array is %d",x,order);
getchar();
}
5、
#include "stdio.h"
void sort(int array[],int length){/*选择排序法*/
int i,j,max,k,x;
for(i=0;i<length-1;i++){
max=i;
for(j=i;j<length;j++)
if(array[max]<array[j])max=j;
if(max!=i){k=array[i];array[i]=array[max];array[max]=k;}
}
clrscr();
for(i=0;i<length;i++)printf("%d ",array[i]);
}
main(){
int array[5]={6,8,4,9,5};
sort(array,5);
getchar();
}
㈡ C语言实验指导 顺序结构程序设计
编程序从键盘输入一个圆的面积,计算这个圆的半径并输出,输出带2位小数。再从计算得到的半径,反过来计算圆面积并输出,以作验算。面积输出占10个字符的宽度,带5位小数。
㈢ c语言程实训报告模板
C/C++面向对象程序设计实训报告
系部名称 计算机工程系 专业 网路安全 指导教师
学生姓名 班级
实训
时间 年 月 日---------- 年 月 日
实训项目和地点:
实训项目:C++程序的设计与应用
地点:
实训目的:
在实践过程中,使我们进一步巩固C++程序设计课程所学知识,更加深入地了解面向对象程序设计的主要技术特点以及C++语言的强大编程功能指导学生利用获取信息的手段进一步获取新知识,以解决实训过程中遇到的技术难点,从中提高自学能力;按照软件开发的基本要求引导我们完成实训课题,以便我们了解软件开发的几个重要环节;提高我们的编程技术,使程序的编写更趋于专业化,为从业打下良好的基础、培养我们分工协作的团队精神。
实训设备及器材:
1、计算机配置:Celeron cpu 2.66GHz 1G内存 计算机一台
2、操作系统平台: Windows XP
3、软件开发平台:Visual C++ 6.0
4、其它应用软件:Microsoft Access / SQL Server 、Word、Visio等
实训的步骤和内容:
设计题目:输入4个整数,要求按由大到小的顺序输出
第1步、问题描述:
输入4个整数,要求按由大到小的顺序输出。
第2步、基本思路:
利用选择法进行排序。
第3步、编写程序:
#include<stdio.h>
void main()
{
int a,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
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(b<c)
{t=b;
b=c;
c=t;}
if(b<d)
{t=b;
b=d;
d=t;}
if(c<d)
{t=c;
c=d;
d=t;}
printf("%d,%d,%d,%d",a,b,c,d);
}
第4步、运行结果:_
输入:5,7,9,4
输出:9,7,5,4
实训结果分析及其心得体会:
通过C++实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没用,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是 一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!
感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的互相探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下一个良好的基础。
㈣ 《C语言程序设计》实验报告
哥哥你太浪漫了,这么难得题!
使用结构数组...短多啦
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include<stdio.h>
struct stuScore
{
char name[20];
int number;
float math;
float comp;
};
void main()
{int i;
float sum[5];
stuScore st[5];
printf("请输入5位学生的学号、姓名、数学成绩、计算机成绩\n");
for(i=0;i<5;i++)
scanf("%d%s%f%f",&st[i].number,st[i].name,&st[i].math,&st[i].comp);
printf("学号\t姓名\t数学\t计算机\t总分\n");
for(i=0;i<5;i++)
{sum[i]=st[i].math+st[i].comp;
printf("%d\t%s\t%6.2f\t%6.2f\t%6.2f\n",st[i].number,st[i].name,st[i].math,st[i].comp,sum[i]);
}
}
使用结构变量,没有使用结构数组...恶长...
#include<stdio.h>
struct stuScore
{
char name[20];
int number;
float math;
float comp;
};
void main()
{float sum1,sum2,sum3,sum4,sum5;
stuScore st1,st2,st3,st4,st5;
printf("请输入5位学生的学号、姓名、数学成绩、计算机成绩\n");
scanf("%d%s%f%f",&st1.number,st1.name,&st1.math,&st1.comp);
scanf("%d%s%f%f",&st2.number,st2.name,&st2.math,&st2.comp);
scanf("%d%s%f%f",&st3.number,st3.name,&st3.math,&st3.comp);
scanf("%d%s%f%f",&st4.number,st4.name,&st4.math,&st4.comp);
scanf("%d%s%f%f",&st5.number,st5.name,&st5.math,&st5.comp);
sum1=st1.math+st1.comp;
sum2=st2.math+st2.comp;
sum3=st3.math+st3.comp;
sum4=st4.math+st4.comp;
sum5=st5.math+st5.comp;
printf("学号\t姓名\t数学\t计算机\t总分\n");
printf("%4d\t %s\t %6.2f\t %6.2f\t %6.2f\n",st1.number,st1.name,st1.math,st1.comp,sum1);
printf("%4d\t %s\t %6.2f\t %6.2f\t %6.2f\n",st2.number,st2.name,st2.math,st2.comp,sum2);
printf("%4d\t %s\t %6.2f\t %6.2f\t %6.2f\n",st3.number,st3.name,st3.math,st3.comp,sum3);
printf("%4d\t %s\t %6.2f\t %6.2f\t %6.2f\n",st4.number,st4.name,st4.math,st4.comp,sum4);
printf("%4d\t %s\t %6.2f\t %6.2f\t %6.2f\n",st5.number,st5.name,st5.math,st5.comp,sum5);
}
㈤ c语言学生成绩管理系统课程设计
/* Note:Your choice is C IDE */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 100
struct student
{
char num[10];
char name[10];
char tel[11];
};
/* 以下是函数原型说明,被调函数的定义在主调函数后面时,要加此部分 */
void myprint();
void mycreate();
void mydisplay();
void mysearch();
/* sch_num与sch_name函数被mysearch调用 */
void sch_num(FILE *fp);
void sch_name(FILE *fp);
void mymodify();
void myadd();
void mydelete();
/* del_num与del_name函数被mydelete调用 */
void del_num(FILE *fp);
void del_name(FILE *fp);
void mysort();
/* sort_num与sort_name函数被mysort调用 */
void sort_num();
void sort_name();
void main()
{
char choose,yes_no;
do
{
myprint(); /* 显示主菜单 */
printf(" ");
choose=getch();
switch(choose)
{
case '1': mycreate(); break; /* 创建 */
case '2': mydisplay(); break; /* 显示 */
case '3': mysearch(); break; /* 查询 */
case '4': mymodify(); break; /* 修改 */
case '5': myadd(); break; /* 添加 */
case '6': mydelete(); break; /* 删除 */
case '7': mysort(); break; /* 排序 */
case '0': break;
default:printf("\n %c为非法选项!\n",choose);
}
if(choose=='0')
break;
printf("\n 要继续选择吗(Y/N)?\n");
do
{
yes_no=getch();
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no!='Y'||yes_no!='y');
}
void myprint() /* 显示菜单界面 */
{
printf("\n\n\n\n\n\n\n\n");
printf(" |----------------------------|\n");
printf(" | 请输入选项编号(0-7): |\n");
printf(" |----------------------------|\n");
printf(" | 1--创建信息管理系统 |\n");
printf(" | 2--显示信息管理系统 |\n");
printf(" | 3--查询信息管理系统 |\n");
printf(" | 4--修改信息管理系统 |\n");
printf(" | 5--添加信息管理系统 |\n");
printf(" | 6--删除信息管理系统 |\n");
printf(" | 7--排序信息管理系统 |\n");
printf(" | 0--退出 |\n");
printf(" |----------------------------|\n");
}
/* 定义创建信息管理系统的函数 */
void mycreate()
{
int i=1;
struct student temp;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","w");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
printf("\n 请输入第1个记录:\n");
printf(" 学号(用#结束输入):");
do
{
gets(temp.num);
}while(strcmp(temp.num,"")==0);
printf(" 姓名(用#结束输入):");
gets(temp.name);
printf(" 电话号码(用#结束输入):");
gets(temp.tel);
while(temp.num[0]!='#'&&temp.name[0]!='#'&&temp.tel[0]!='#')
{
fprintf(fp,"%23s%15s%15s\n",temp.num,temp.name,temp.tel);
i++;
printf("\n 请输入第%d个记录:\n",i);
printf(" 学号(用#结束输入):");
do
{
gets(temp.num);
}while(strcmp(temp.num,"")==0);
printf(" 姓名(用#结束输入):");
gets(temp.name);
printf(" 电话号码(用#结束输入):");
gets(temp.tel);
}
fclose(fp);
}
/* 定义显示信息管理系统的函数 */
void mydisplay()
{
int n=0;
struct student temp;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
// clrscr();
printf(" 学号 姓名 电话号码\n");
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",&temp.num,&temp.name,&temp.tel);
printf("%23s%15s%15s\n",temp.num,temp.name,temp.tel);
n++;
}
if(n==0)
printf("\n 文件中无记录!\n");
else
printf("\n 文件中共有%d个记录!\n",n);
fclose(fp);
}
/* 定义查询信息管理系统的函数 */
void mysearch()
{
char c;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
printf("\n 按学号查询(h),还是按姓名查询(m)?");
c=getch();
if(c=='h'||c=='H')
sch_num(fp); /* 按学号查询 */
if(c=='m'||c=='M')
sch_name(fp); /* 按姓名查询 */
else
printf("\n 非法字符!\n");
fclose(fp);
}
/* 定义按学号查询信息管理系统的函数 */
void sch_num(FILE *fp)
{
int flag=0,n=0;
char tempnum[10];
struct student temp;
printf("\n 请输入要查询记录的学号:");
gets(tempnum);
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",&temp.num,&temp.name,&temp.tel);
if(strcmp(tempnum,temp.num)==0)
{
if(flag==0)
printf(" 学号 姓名 电话号码\n");
printf("%23s%15s%15s\n",temp.num,temp.name,temp.tel);
flag=1;
}
n++;
}
if(n==0)
printf("\n 文件中无记录!\n");
else
if(flag==0)
printf("\n 文件中无此人!\n");
}
/* 定义按姓名查询信息管理系统的函数 */
void sch_name(FILE *fp)
{
int flag=0,n=0;
char tempname[10];
struct student temp;
printf("\n 请输入要查询记录的姓名:");
gets(tempname);
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",&temp.num,&temp.name,&temp.tel);
if(strcmp(tempname,temp.name)==0)
{
if(flag==0)
printf(" 学号 姓名 电话号码\n");
printf("%23s%15s%15s\n",temp.num,temp.name,temp.tel);
flag=1;
}
n++;
}
if(n==0)
printf("\n 文件中无记录!\n");
else
if(flag==0)
printf("\n 文件中无此人!\n");
}
/* 定义修改信息管理系统的函数 */
void mymodify()
{
char c;
int n=0;
struct student *find,temp,record[100],*p; /* 最多100个记录 */
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
if(n==0)
{
printf("\n 文件中无记录!\n");
return;
}
printf("\n 请输入要修改记录的学号:");
gets(temp.num);
for(p=record;p<record+n;p++)
if(strcmp(temp.num,p->num)==0)
{
find=p; /* find记住修改记录的位置 */
break;
}
if(p==record+n)
{
printf("\n 无此人!\n");
return;
}
do
{
printf("\n 请输入正确的学号:");
do
{
gets(temp.num);
}while(strcmp(temp.num,"")==0);
printf(" 请输入正确的姓名:");
gets(temp.name);
printf(" 请输入正确的电话号码:");
gets(temp.tel);
for(p=record;p<record+n;p++)
if((strcmp(temp.num,p->num)==0)&&(p!=find))
{
printf("\n 学号重复,要重新输入吗(Y/N)?");
do
{
c=getch();
}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
putchar('\n');
break;
}
if(p==record+n)
{
*find=temp; /* find指向需要修改记录的位置 */
break;
}
}while(c=='Y'||c=='y');
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
}
/* 定义添加信息管理系统的函数 */
void myadd()
{
char c;
int n=0;
struct student temp,record[N],*p;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
do
{
printf("\n 请输入新记录的学号:");
do
{
gets(temp.num);
}while(strcmp(temp.num,"")==0);
printf(" 请输入新记录的姓名:");
gets(temp.name);
printf(" 请输入新记录的电话号码:");
gets(temp.tel);
for(p=record;p<record+n;p++)
if(strcmp(temp.num,p->num)==0)
{
printf("\n 学号重复,要重新输入吗(Y/N)?");
do
{
c=getch();
}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
putchar('\n');
break;
}
if(p==record+n)
{
*p=temp;
break;
}
}while(c=='Y'||c=='y');
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n+1;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
}
/* 定义删除信息管理系统的函数 */
void mydelete()
{
char c;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
printf("\n 按学号删除(h),还是按姓名删除(m)?");
c=getch();
if(c=='h'||c=='H')
del_num(fp); /* 按学号删除 */
if(c=='m'||c=='M')
del_name(fp); /* 按姓名删 */
else
printf("\n 非法字符!\n");
fclose(fp);
}
/* 定义按学号删除信息管理系统的函数 */
void del_num(FILE *fp)
{
int n=0;
char tempnum[10];
struct student record[N],*p,*k;
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
printf("\n 请输入要删除记录的学号:");
gets(tempnum);
for(k=record;k<record+n;k++)
if(strcmp(tempnum,k->num)==0)
break; /* 找到要删记录结束循环 */
if(k<record+n) /* 提前结束循环,说明找到人 */
for(p=k;p<k+n-1;p++) /* 向左移一位,相当于删除记录 */
*p=*(p+1);
else
printf("\n 无此人!\n");
fp=fopen("d:\\lbh\\guanli.dat","w");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n-1;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
}
/* 定义按姓名删除信息管理系统的函数 */
void del_name(FILE *fp)
{
int n=0;
char tempname[10];
struct student record[N],*p,*k;
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
printf("\n 请输入要删除记录的姓名:");
gets(tempname);
for(k=record;k<record+n;k++)
if(strcmp(tempname,k->name)==0)
break; /* 找到要删记录结束循环 */
if(k<record+n) /* 提前结束循环,说明找到人 */
for(p=k;p<k+n-1;p++) /* 向左移一位,相当于删除记录 */
*p=*(p+1);
else
printf("\n 无此人!\n");
fp=fopen("d:\\lbh\\guanli.dat","w");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n-1;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
}
/* 定义排序信息管理系统的函数 */
void mysort()
{
char c;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
fclose(fp);
printf("\n 按学号排序(h),还是按姓名排序(m)?");
c=getch();
if(c=='h'||c=='H')
sort_num(); /* 按学号排序 */
if(c=='m'||c=='M')
sort_name(); /* 按姓名排序 */
else
printf("\n 非法字符!\n");
}
/* 定义按学号排序信息管理系统的函数 */
void sort_num()
{
int i,j,k,n=0;
char c;
struct student record[N],*p,temp;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
printf("\n 按升序(s),还是按降序(j)?");
c=getch();
if(c=='s'||c=='S') /* 按学号的升序排列 */
for(i=0;i<n-1;i++) /* 选择法排序 */
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp((p+k)->num,(p+j)->num)>0)
k=j;
temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
else
if(c=='j'||c=='J') /* 按学号的降序排列 */
for(i=0;i<n-1;i++) /* 选择法排序 */
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp((p+k)->num,(p+j)->num)<0)
k=j;
temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
else
{
printf("\n 非法字符!\n");
return;
}
fp=fopen("d:\\lbh\\guanli.dat","w");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n;p++)
{
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
printf("%23s%15s%15s\n",p->num,p->name,p->tel);
}
fclose(fp);
}
/* 定义按姓名排序信息管理系统的函数 */
void sort_name()
{
int i,j,k,n=0;
char c;
struct student record[N],*p,temp;
FILE *fp;
fp=fopen("d:\\lbh\\guanli.dat","r+");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
p=record;
while(feof(fp)==0)
{
fscanf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
n++;
}
fclose(fp);
printf("\n 按升序(s),还是按降序(j)?");
c=getch();
if(c=='s'||c=='S') /* 按姓名的升序排列 */
for(i=0;i<n-1;i++) /* 选择法排序 */
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp((p+k)->name,(p+j)->name)>0)
k=j;
temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
else
if(c=='j'||c=='J') /* 按姓名的降序排列 */
for(i=0;i<n-1;i++) /* 选择法排序 */
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp((p+k)->name,(p+j)->name)<0)
k=j;
temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
else
{
printf("\n 非法字符!\n");
return;
}
fp=fopen("d:\\lbh\\guanli.dat","w");
if(fp==NULL)
{
printf("\n 打开文件失败!\n");
return;
}
for(p=record;p<record+n;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
}
㈥ c语言程序设计课后习题解答与实验指导
#include<stdio.h>
int max(int x,int y,int z)
{
int t;
t=x>y?x:y;
t=t>z?t:z;
return(t);
}
int min(int x ,int y,int z)
{
int t;
t=x<y?x:y;
t=t<z?t:z;
return(t);
}
int aver(int x ,int y,int z)
{
int t;
t=(x+y+z)/3;
return(t);
}
void main()
{ int x,y,z,a,b,c;
scanf("%d,%d,%d",&x,&y,&z);
a=(*max)(x,y,z);
b=(*min)(x,y,z);
c=(*aver)(x,y,z);
printf("%d,%d,%d\n",a,b,c);
}
建议改成:
#include<stdio.h>
int max(int x,int y,int z)
{
int t;
t=x>y?x:y;
t=t>z?t:z;
return(t);
}
int min(int x ,int y,int z)
{
int t;
t=x<y?x:y;
t=t<z?t:z;
return(t);
}
float aver(int x ,int y,int z)
{
int t;
t=(float)((x+y+z)/3.0);
return(t);
}
void main()
{ int x,y,z,a,b;float c;
scanf("%d,%d,%d",&x,&y,&z);
a=(*max)(x,y,z);
b=(*min)(x,y,z);
c=(*aver)(x,y,z);
printf("max=%d\nmin=%d\naver=%g\n",a,b,c);
}
㈦ c语言程序设计
第一章 程序设计的基本概念
第一节 C语言的发展历史与特点
第二节 程序与程序设计
第三节 算法与算法的描述
第四节 C语言的上机操作
思考题与习题
第二章 C语言程序设计基础
第一节 C语言的程序结构
第二节 数据类型
第三节 运算符与表达式
思考题与习题
第三章 C程序控制结构
第一节 C程序的三种基本控制结构
第二节 顺序结构
第三节 选择结构
第四节 循环结构
思考题与习题
第四章 数组
第一节 数组与数组元素的概念
第二节 一维数组
第三节 二维数组及多维数组
第四节 字符串与字符数组
思考题与习题
第五章 指针
第一节 指针与指针变量的概念
第二节 指针变量的定义和引用
第三节 指针变量与数组
思考题与习题
第六章 函数
第一节 函数的定义
第二节 函数的嵌套调用
第三节 数组作为函数参数
第四节 指针与函数
第五节 变量的使用范围与存储类别
第六节 不同文件中的函数使用
思考题与习题
第七章 编译预处理
第一节 宏定义
第二节 文件包含
第三节 条件编译
思考题与题
第八章 结构体与共用体
第一节 结构体基础
第二节 结构体数组
第三节 结构体指针
第四节 链表
第五节 位段
第六节 共用体
第七节 枚举类型与自定义类型
思考题与习题
第九章 文件
第一节 文件概述
第二节 文件的打开与关闭
第三节 文件的读/写
第四节 文件的定位
思考题与习题
第十章 程序设计方法
第一节 程序设计的基本概念
第二节 结构化程序设计方法
第三节 程序效率
第四节 程序设计风格
思考题与习题
附录
附录A C语言实验
附录B 标准ABSII码表
附录C C语言中的关键字
附录D 运算符的优先级与结合性