单片机的C语言应用设计答案.ppt
文本预览下载声明
习题参考答案(P.142)
习题1. C语言中,函数的存储类型和数据类型的意义是什么?
答:一,函数存储类型有extern(外部函数)和static(内部函数或静态函数)。在没有任何存储类说明的情况下函数都是全程序可见的,即函数的默认存储类特性为extern。Static存储类使函数对对其所在的文件定义之前的部分和非定义文件是不可见的,不能调用的。
二,数据类型是说明函数的返回值类型。包括简单类型(char,unsigned char,int,unsigned int,long,unsigned long,float,bit),复合型(struct,union)和无类型(void)
习题参考答案(P.142)
习题3. 作为函数形式参数使用的数组名具有什么特征?它们的使用特点是什么?
答:
1、当用数组作为函数的参数时,应当在调用函数和被调用函数中分别定义数组;
2、实参数数组与形式参数数组的类型应当一致;
3、实参数数组与形式参数数组的大小可以一致,也可以不同,用户需自行考虑数组的边界问题。
习题5. 当一个函数需要返回多于一个值时,可以怎么做?
答:
可以通过返回指针实现,先把需要返回的所有数据连续存放在一段存储空间中,让该指针指向其首地址,然后返回该指针。
7.编写字符串字符替换函数replchr(s,c1,c2),把字符串s中的c1置换为c2
void replchr(char* s,char c1,char c2)
{ char i=0,temp;
while(s[i] !=\0)
{
if(s[i]==c1) {
temp=c1;
c1=c2;
c2=temp;}
else
s++; // 下一个字符
}
}
void main()
{
char* str=ABCDabcd;
replchr(str,D,d);
}
8.编写把十六进制字符串s变换成整数值返回的函数htoi(s)
#include “stdio.h” #include “string.h” int translat(char c) //每个字符转换为十进制数{ if(c=‘9’c=‘0’) return c-48; //’9’(0x39)变成9,就是hex39-30,
//30表示 ‘0’,依此类推 if(c=‘a’ c=‘f’) return c-87; //a变成10,就是十进制97-87,依此
//类推 if(c=‘A’ c=‘F’) return c-55; //A变成10,就是十进制65-55,依此 //类推 return -1;//其它字符返回-1 } int htoi(char *str) { int length=strlen(str); if(length==0) return 0; int i,n=0,stat; for(i=0;ilength;i++) { stat=translat(str[i]); //每个字符占2个字节 if(stat=0) n=n*16+stat; } return n; } }
ASCII码
ASCII : 0 ~ A ~ F a ~ f
HEX: 30-39H 41-46H 61-66H
十进制: 48-57
显示全部