单片机c语言应用100例pdf(手把手教你学51单片机pdf)
大家好,如果您还对单片机c语言应用100例pdf不太了解,没有关系,今天就由本站为大家分享单片机c语言应用100例pdf的知识,包括手把手教你学51单片机pdf的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
单片机C语言应用100例的内容简介
《单片机C语言应用100例》在编写时力求通俗、易懂,硬件原理讲解以“有用、够用”为原则,内容讲解以“紧密结合实践”为特色。因此,《单片机C语言应用100例》特别适合单片机零起点的初学者使用,可作为高等院校控制类专业学生、电子爱好者及各类工程技术人员的参考用书,也可作为高职高专及中专院校的单片机课程教学用书。
AVR单片机C语言应用100例目录
第1章 ATmega128单片机基础
1.1 ATmega128单片机介绍
1.2 ATmega128单片机的结构
1.2.1 ATmega128单片机的内核
1.2.2 ATmega128单片机的存储器体系
1.2.3 ATmega128单片机的系统时钟
1.2.4 ATmega128单片机的电源管理
1.2.5 ATmega128单片机的复位
1.2.6 ATmega128单片机的中断系统
1.3 ATmega128单片机的指令系统和寻址
第2章 ATmega128单片机的软件开发环境
2.1 ICCAVR软件开发环境
2.1.1 ICCAVR软件安装
2.1.2 ICCAVR菜单
2.1.3 ICCAVR的常用文件类型
2.1.4 ICCAVR的扩展关键字
2.1.5 ICCAVR的启动文件
2.1.6 ICCAVR的库函数
2.2 ICCAVRIDE的使用
应用实例1——使用ICCAVRIDE
第3章 ATmega128单片机的开发环境
3.1 ATmega128单片机开发常用的工具
3.1.1 ISP编程器
3.1.2数字万用表
3.1.3数字示波器
3.2 Proteus仿真软件的使用
应用实例2——使用Proteus仿真ATmega128单片机
3.3 Proteus仿真软件的应用说明
3.3.1运行、单步运行、暂停和停止运行
3.3.2打开对应的观察窗口
第4章 ATmega128单片机应用系统开发基础
4.1 ATmega128单片机应用系统的构成
4.2 ATmega128单片机应用系统开发流程
4.3 ATmega128单片机应用系统的硬件设计
4.4 3个微型ATmega128单片机应用系统
应用实例3——点亮8位LED
应用实例4——驱动7位数码管
应用实例5——串口数据发送和接收
第5章 ATmega128单片机C语言基础
5.1 ATmega128单片机C语言的数据类型、运算符和表达式
5.1.1 ATmega128单片机C语言的数据类型
应用实例6——使用常量
应用实例7——使用变量
5.1.3 ATmega128单片机C语言的算术运算、赋值运算、逻辑运算和关系运算
应用实例8——使用算术表达式
应用实例9——使用强制类型转换
应用实例10——逻辑运算应用
应用实例11——关系运算应用
5.1.4 ATmega128单片机C语言的位操作
应用实例12——位逻辑运算:位与和位或
应用实例13——位逻辑运算:位异或和位取反
应用实例14——移位运算应用
应用实例15——自增减运算应用
应用实例16——复合运算应用
应用实例17——逗号运算应用
5.1.5运算符的优先级
5.2 ATmega128单片机C语言的结构语句
应用实例18——顺序结构语句应用
应用实例19——if语句的基本结构应用
应用实例20——switch语句的应用
5.2.3循环结构
应用实例21——while语句的应用
应用实例22——dowhile语句应用
应用实例23——for语句的应用
应用实例24——循环语句的进阶用法
5.2.4 break语句、continue语句和goto语句
应用实例25——break语句的应用
应用实例26——continue语句的应用
应用实例27——goto语句的应用
第6章 ATmega128单片机高阶C语言
6.1 ATmega128单片机C语言的函数
6.1.1函数的分类
6.1.2函数的定义
应用实例28——无参函数的应用
应用实例29——有参函数的应用
6.1.3函数的调用
应用实例30——函数的预先定义
应用实例31——函数的后定义
应用实例32——函数的递归调用
应用实例33——函数的嵌套调用
6.1.4内部函数和外部函数
6.1.5变量类型
应用实例34——静态局部变量应用
应用实例35——全局变量应用
第7章 ATmega128单片机的I/O引脚应用实例
7.1 ATmega128单片机的I/O引脚基础
7.1.1 ATmega128单片机的I/O引脚配置
7.1.2 ATmega128单片机读取引脚电平
7.1.3 ATmega128单片机的I/O引脚低功耗处理
7.1.4 ATmega128单片机的I/O引脚的第二功能
7.2 ATmega128单片机扩展发光二极管(LED)
应用实例60——使用I/O引脚驱动LED闪烁
应用实例61——使用I/O引脚驱动流水灯
7.3 ATmega128单片机扩展数码管
应用实例62——使用I/O引脚驱动数码管显示
7.3.3多位数码管基础
7.3.4 ATmega128单片机扩展多位数码管应用实例
应用实例63——使用I/O引脚驱动多位数码管动态显示
第8章 ATmega128单片机的外部中断应用实例
8.1 ATmega128单片机的外部中断基础
8.1.1外部中断控制寄存器A(EICRA)
8.1.2外部中断控制寄存器B(EICRB)
8.1.3外部中断屏蔽寄存器(EIMSK)
8.1.4外部中断标志寄存器(EIFR)
应用实例71——外部中断7脉冲计数
应用实例72——外部中断控制LED
应用实例73——多个外部中断联合计数
第9章 ATmega128单片机的内部E2PROM应用实例
9.1 E2PROM基础
9.1.1地址寄存器EEARH和EEARL
9.1.2数据寄存器EEDR
9.1.3控制寄存器EECR
9.1.4 E2PROM的操作时间
9.1.5 E2PROM的写操作
9.1.6 E2PROM的读操作
9.1.7 E2PROM的掉电处理
应用实例74——用E2PROM保存用户数据
应用实例75——E2PROM的数据写入和读出
第10章 ATmega128单片机的USART模块应用实例
10.1 USART模块应用基础
10.1.1 USART的相关寄存器
10.1.2 USART的时钟发生器
10.1.3 USART的数据帧格式
10.1.4 USART的使用方法
应用实例76——USART0的数据发送
应用实例77——USART1的数据发送
应用实例78——Proteus中的虚拟串口调试
应用实例79——使用USART0和计算机进行双向数据通信
应用实例80——综合使用USART0和USART1
应用实例81——使用单片机A控制单片机B
第11章 ATmega128单片机的定时/计数器模块应用实例
11.1定时/计数器T/C0基础
11.1.1定时/计数器T/C0的工作模式
11.1.2 T/C0的相关寄存器
应用实例82——T/C0控制LED闪烁
应用实例83——T/C1控制LED闪烁
应用实例84——T/C2脉冲计数
应用实例85——T/C1实现频率计
应用实例86——T/C1实现占空比可调PWM输出
应用实例87——T/C0的秒定时
应用实例88——频率可调的PWM信号输出
第12章 ATmega128单片机的TWI(I2C)接口总线模块应用实例
12.1 TWI(I2C)总线基础
12.1.1 TWI(I2C)接口总线的一些术语
12.1.2 TWI(I2C)接口总线的数据传输过程和帧格式
12.1.3 TWI(I2C)总线器件的地址
应用实例89——使用TWI(I2C)总线进行双机通信
第13章 ATmega128单片机的SPI接口总线模块应用实例
13.1 SPI总线基础
13.1.1 SPI总线的结构
13.1.2 SPI总线的时序
应用实例90——使用SPI总线接口进行双机通信
第14章 ATmega128单片机的模拟比较器模块应用实例
14.1 ATmega128单片机的模拟比较器模块应用基础
14.1.1 ATmega128单片机模拟比较器模块的寄存器
14.1.2 ATmega128单片机模拟比较器模块输入通道
应用实例91——使用比较器模块比较两个模拟信号
应用实例92——使用比较器模块将正弦波信号转换为方波信号
应用实例93——多通道模拟信号电压比较
第15章 ATmega128单片机的ADC模块应用实例
15.1 ADC基础知识
15.2 ATmega128单片机的ADC模块应用基础
15.2.1 ATmega128单片机的ADC模块的相关寄存器
15.2.3 ATmega128单片机的ADC模块的使用
应用实例94——单通道A/D采样
应用实例95——多通道A/D采样
应用实例96——差分输入A/D采样
应用实例97——增益放大A/D采样
应用实例98——定时器控制A/D采样
应用实例99——多通道电压比较和A/D采样
第16章 ATmega128单片机的看门狗模块应用实例
16.1 ATmega128单片机看门狗模块应用基础
应用实例100——ATmega128单片机看门狗模块工作状态测试
o你好,能给我发一份《单片机C语言程序设计实训100例
【程序80】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
1.程序分析:
2.程序源代码:
main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d\n",count);
break;}
}
}
【程序81】
题目:809*??=800*??+9*??+1其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
1.程序分析:
2.程序源代码:
output(long b,long i)
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
}
main()
{long int a,b,i;
a=809;
for(i=10;i<100;i++)
{b=i*a+1;
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)
output(b,i);}
}
==============================================================
【程序82】
题目:八进制转换为十进制
1.程序分析:
2.程序源代码:
main()
{ char*p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}
==============================================================
【程序83】
题目:求0—7所能组成的奇数个数。
1.程序分析:
2.程序源代码:
main()
{
long sum=4,s=4;
int j;
for(j=2;j<=8;j++)/*j is place of number*/{ printf("\n%ld",sum);
if(j<=2)
s*=7;
else
s*=8;
sum+=s;}
printf("\nsum=%ld",sum);
}
==============================================================
【程序84】
题目:一个偶数总能表示为两个素数之和。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
#i nclude"math.h"
main()
{ int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{ for(c=2;c<=sqrt(b);c++)
if(b%c==0) break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0) break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
==============================================================
【程序85】
题目:判断一个素数能被几个9整除
1.程序分析:
2.程序源代码:
main()
{ long int m9=9,sum=9;
int zi,n1=1,c9=1;
scanf("%d",&zi);
while(n1!=0)
{ if(!(sum%zi))
n1=0;
else
{m9=m9*10;
sum=sum+m9;
c9++;
}
}
printf("%ld,can be divided by%d\"9\"",sum,c9);
}
==============================================================
【程序86】
题目:两个字符串连接程序
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
main()
{char a[]="acegikm";
char b[]="bdfhjlnpq";
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{if(a[i]{ c[k]=a[i];i++;}
else
c[k]=b[j++];
k++;
}
c[k]='\0';
if(a[i]=='\0')
p=b+j;
else
p=a+i;
strcat(c,p);
puts(c);
}
==============================================================
【程序87】
题目:回答结果(结构体变量传递)
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
struct student
{ int x;
char c;
} a;
main()
{a.x=3;
a.c='a';
f(a);
printf("%d,%c",a.x,a.c);
}
f(struct student b)
{
b.x=20;
b.c='y';
}
==============================================================
【程序88】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
1.程序分析:
2.程序源代码:
main()
{int i,a,n=1;
while(n<=7)
{ do{
scanf("%d",&a);
}while(a<1||a>50);
for(i=1;i<=a;i++)
printf("*");
printf("\n");
n++;}
getch();
}
==============================================================
【程序89】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
1.程序分析:
2.程序源代码:
main()
{int a,i,aa[4],t;
scanf("%d",&a);
aa[0]=a%10;
aa[1]=a%100/10;
aa[2]=a%1000/100;
aa[3]=a/1000;
for(i=0;i<=3;i++)
{aa[i]+=5;
aa[i]%=10;
}
for(i=0;i<=3/2;i++)
{t=aa[i];
aa[i]=aa[3-i];
aa[3-i]=t;
}
for(i=3;i>=0;i--)
printf("%d",aa[i]);
}
==============================================================
【程序90】
题目:专升本一题,读结果。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
#define M 5
main()
{int a[M]={1,2,3,4,5};
int i,j,t;
i=0;j=M-1;
while(i{t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
i++;j--;
}
for(i=0;i printf("%d",*(a+i));
}
【程序91】
题目:时间函数举例1
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
#i nclude"time.h"
void main()
{ time_t lt;/*define a longint time varible*/ lt=time(NULL);/*system time and date*/ printf(ctime(<));/*english format output*/ printf(asctime(localtime(<)));/*tranfer to tm*/ printf(asctime(gmtime(<)));/*tranfer to Greenwich time*/}
==============================================================
【程序92】
题目:时间函数举例2
1.程序分析:
2.程序源代码:
/*calculate time*/#i nclude"time.h"
#i nclude"stdio.h"
main()
{ time_t start,end;
int i;
start=time(NULL);
for(i=0;i<3000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=time(NULL);
printf("\1: The different is%6.3f\n",difftime(end,start));
}
==============================================================
【程序93】
题目:时间函数举例3
1.程序分析:
2.程序源代码:
/*calculate time*/#i nclude"time.h"
#i nclude"stdio.h"
main()
{ clock_t start,end;
int i;
double var;
start=clock();
for(i=0;i<10000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=clock();
printf("\1: The different is%6.3f\n",(double)(end-start));
}
==============================================================
【程序94】
题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。
1.程序分析:
2.程序源代码:
#i nclude"time.h"
#i nclude"stdlib.h"
#i nclude"stdio.h"
main()
{char c;
clock_t start,end;
time_t a,b;
double var;
int i,guess;
srand(time(NULL));
printf("do you want to play it.('y' or'n')\n");
loop:
while((c=getchar())=='y')
{
i=rand()%100;
printf("\nplease input number you guess:\n");
start=clock();
a=time(NULL);
scanf("%d",&guess);
while(guess!=i)
{if(guess>i)
{printf("please input a little smaller.\n");
scanf("%d",&guess);}
else
{printf("please input a little bigger.\n");
scanf("%d",&guess);}
}
end=clock();
b=time(NULL);
printf("\1: It took you%6.3f seconds\n",var=(double)(end-start)/18.2);
printf("\1: it took you%6.3f seconds\n\n",difftime(b,a));
if(var<15)
printf("\1\1 You are very clever!\1\1\n\n");
else if(var<25)
printf("\1\1 you are normal!\1\1\n\n");
else
printf("\1\1 you are stupid!\1\1\n\n");
printf("\1\1 Congradulations\1\1\n\n");
printf("The number you guess is%d",i);
}
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
if((c=getch())=='y')
goto loop;
}
==============================================================
【程序95】
题目:家庭财务管理小程序
1.程序分析:
2.程序源代码:
/*money management system*/#i nclude"stdio.h"
#i nclude"dos.h"
main()
{
FILE*fp;
struct date d;
float sum,chm=0.0;
int len,i,j=0;
int c;
char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];
pp: clrscr();
sum=0.0;
gotoxy(1,1);printf("|---------------------------------------------------------------------------|");
gotoxy(1,2);printf("| money management system(C1.0) 2000.03|");
gotoxy(1,3);printf("|---------------------------------------------------------------------------|");
gotoxy(1,4);printf("|-- money records--|-- today cost list--|");
gotoxy(1,5);printf("|------------------------|-------------------------------------|");
gotoxy(1,6);printf("| date:--------------||");
gotoxy(1,7);printf("|||||");
gotoxy(1,8);printf("|--------------||");
gotoxy(1,9);printf("| thgs:------------------||");
gotoxy(1,10);printf("|||||");
gotoxy(1,11);printf("|------------------||");
gotoxy(1,12);printf("| cost:----------||");
gotoxy(1,13);printf("|||||");
gotoxy(1,14);printf("|----------||");
gotoxy(1,15);printf("|||");
gotoxy(1,16);printf("|||");
gotoxy(1,17);printf("|||");
gotoxy(1,18);printf("|||");
gotoxy(1,19);printf("|||");
gotoxy(1,20);printf("|||");
gotoxy(1,21);printf("|||");
gotoxy(1,22);printf("|||");
gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
i=0;
getdate(&d);
sprintf(chtime,"%4d.%02d.%02d",d.da_year,d.da_mon,d.da_day);
for(;;)
{
gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");
gotoxy(13,10);printf("");
gotoxy(13,13);printf("");
gotoxy(13,7);printf("%s",chtime);
j=18;
ch[0]=getch();
if(ch[0]==27)
break;
strcpy(chshop,"");
strcpy(chmoney,"");
if(ch[0]==9)
{
mm:i=0;
fp=fopen("home.dat","r+");
gotoxy(3,24);printf("");
gotoxy(6,4);printf(" list records");
gotoxy(1,5);printf("|-------------------------------------|");
gotoxy(41,4);printf("");
gotoxy(41,5);printf("|");
while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF)
{ if(i==36)
{ getch();
i=0;}
if((i%36)<17)
{ gotoxy(4,6+i);
printf("");
gotoxy(4,6+i);}
else
if((i%36)>16)
{ gotoxy(41,4+i-17);
printf("");
gotoxy(42,4+i-17);}
i++;
sum=sum+chm;
printf("%10s%-14s%6.1f\n",chtime,chshop,chm);}
gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
gotoxy(1,24);printf("||");
gotoxy(1,25);printf("|---------------------------------------------------------------------------|");
gotoxy(10,24);printf("total is%8.1f$",sum);
fclose(fp);
gotoxy(49,24);printf("press any key to.....");getch();goto pp;
}
else
{
while(ch[0]!='\r')
{ if(j<10)
{ strncat(chtime,ch,1);
j++;}
if(ch[0]==8)
{
len=strlen(chtime)-1;
if(j>15)
{ len=len+1; j=11;}
strcpy(ch1,"");
j=j-2;
strncat(ch1,chtime,len);
strcpy(chtime,"");
strncat(chtime,ch1,len-1);
gotoxy(13,7);printf("");}
gotoxy(13,7);printf("%s",chtime);ch[0]=getch();
if(ch[0]==9)
goto mm;
if(ch[0]==27)
exit(1);
}
gotoxy(3,24);printf("");
gotoxy(13,10);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{ if(j<14)
{ strncat(chshop,ch,1);
j++;}
if(ch[0]==8)
{ len=strlen(chshop)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chshop,len);
strcpy(chshop,"");
strncat(chshop,ch1,len-1);
gotoxy(13,10);printf("");}
gotoxy(13,10);printf("%s",chshop);ch[0]=getch();}
gotoxy(13,13);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{ if(j<6)
{ strncat(chmoney,ch,1);
j++;}
if(ch[0]==8)
{ len=strlen(chmoney)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chmoney,len);
strcpy(chmoney,"");
strncat(chmoney,ch1,len-1);
gotoxy(13,13);printf("");}
gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();}
if((strlen(chshop)==0)||(strlen(chmoney)==0))
continue;
if((fp=fopen("home.dat","a+"))!=NULL);
fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);
fputc('\n',fp);
fclose(fp);
i++;
gotoxy(41,5+i);
printf("%10s%-14s%-6s",chtime,chshop,chmoney);
}}}
==============================================================
【程序96】
题目:计算字符串中子串出现的次数
1.程序分析:
2.程序源代码:
#i nclude"string.h"
#i nclude"stdio.h"
main()
{ char str1[20],str2[20],*p1,*p2;
int sum=0;
printf("please input two strings\n");
scanf("%s%s",str1,str2);
p1=str1;p2=str2;
while(*p1!='\0')
{
if(*p1==*p2)
{while(*p1==*p2&&*p2!='\0')
{p1++;
p2++;}
}
else
p1++;
if(*p2=='\0')
sum++;
p2=str2;
}
printf("%d",sum);
getch();}
==============================================================
【程序97】
题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
main()
{ FILE*fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("cannot open file\n");
exit(0);}
ch=getchar();
ch=getchar();
while(ch!='#')
{fputc(ch,fp);putchar(ch);
ch=getchar();
}
fclose(fp);
}
==============================================================
【程序98】
题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
main()
{FILE*fp;
char str[100],filename[10];
int i=0;
if((fp=fopen("test","w"))==NULL)
{ printf("cannot open the file\n");
exit(0);}
printf("please input a string:\n");
gets(str);
while(str[i]!='!')
{ if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
==============================================================
【程序99】
题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
main()
{ FILE*fp;
int i,j,n,ni;
char c[160],t,ch;
if((fp=fopen("A","r"))==NULL)
{printf("file A cannot be opened\n");
exit(0);}
printf("\n A contents are:\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
ni=i;
if((fp=fopen("B","r"))==NULL)
{printf("file B cannot be opened\n");
exit(0);}
printf("\n B contents are:\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(c[i]>c[j])
{t=c[i];c[i]=c[j];c[j]=t;}
printf("\n C file is:\n");
fp=fopen("C","w");
for(i=0;i<n;i++)
{ putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
==============================================================
【程序100】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
1.程序分析:
2.程序源代码:
#i nclude"stdio.h"
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{int i,j,sum
OK,关于单片机c语言应用100例pdf和手把手教你学51单片机pdf的内容到此结束了,希望对大家有所帮助。