nullnull第一部份
C 语言中的数据一、基本数据一、基本数据一、整型数据
1、整型常量
十进制:0-9(如-1,23)
八进制:0-7(以0开头,如0123)
十六进制:0-9,A-F(以0x开头,如0x7134,0xab4)
2、整型变量
代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
内存中的一个整型存储空间。
定义格式:类型标志符 变量名
a、变量名:由字母,数字与下划线构成,数字不
起头,区分大小写, 关键字不能作变量名
b、类型标志符null例如: int a= -100;
long b=4000L;
unsigned int =32768;null二、实型数据
1、实型常量
小数形式:如-4.77,0.85,123. 等
指数形式:0.23E+4(等价于0.23x104)
注意事项:字母E前后都要有数值且不能有空格,前方数据格式不限,后方数据必须是整型数值.
2、实型变量
代表内存中的一个实型存储空间。
定义格式:类型标志符 变量名
a、变量名:由字母,数字与下划线构成,数字不
起头,区分大小写, 关键字不能作变量名
b、类型标志符
null例如:float x=179.5534;
double y=-0.000013;null三、字型型数据
1、字符型常量
普通字符:如’a’,’*’,’1’等
注意:用单引号为定界,包含一个宽度的字符.
转义字符: 见p69
注意:用单引号为定界,包含字符以\开头,代表一个特
定的ASCII字符.
2、字符型变量
代表内存中的一个字符型存储空间。
定义格式:类型标志符 变量名
a、变量名:由字母,数字与下划线构成,数字不
起头,区分大小写, 关键字不能作变量名
null b、类型标志符
例如 : char s=‘A’;
char k=‘\\’;二、构造体数据二、构造体数据一、 一维数组
a、概念:包含一组具有同一类型的变量且每个元素中带
有一个下标的数组
b、定义格式:类型名 数组名[常量表达式]
如: int a[8];
说明: 1、定义了一个一维数组a
2、8规定 a数组含有8个元素,分别为a[0]~a[7]
3、int 是数组的基类型,每个元素都是整型
4、每个元素只有一个下标,且从0开始
5、开辟了一个连续空间,如下图:a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]null c、数组元素引用格式
数组名[下标表达式]
注意:
1、每个元素实质上就是一个变量
2、下标表达式可以是常量、变量、表达式,必须为整
d、一维数组的初始化
1、定义时赋值
int a[6]={1,2,3,4,5,6};
2、定义后赋值
int a[6], i ;
a[0]=1; a[1]=2;………a[5]=6;
或循环赋值
for(i=0; i<6; i++) scanf("%d",&a[i]) ;
null 3、通过赋初值定义数组大小
int a[ ]={1,2,3,4,5,6};
注意:有6个值就有6个元素.
e、函数参数传递中的一维数组引用
float fun( float s[ ] , int n ) /* float fun(float *s ,int n) */
{ int i ; float m=0.0;
for(i=0; i
s[j][i]) k=s[j][i];
w[t++]=k;
}
}
main()
{ int a[][M]={4 , 6 , -1 , 7 ,
-9, 3 , 5 , 1 ,
2 , -5, 8 , -5,
-6, -3, 0 , 10},
b[M] , i ;
fun(a , b );
for(i=0; i
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
:将s所指字符串中的字母转换为按字母序列的后续字母
#include
void fun (char s[ ])
{ int i=0;
while(s[i]!='\0')
{ if (s[i]>='A' && s[i]<='Z' || s[i]>='a' && s[i]<='z')
{ if (s[i]=='Z') s[i]='A';
else
if(s[i]=='z') s[i]='a';
else s[i] += 1; }
i++; } }
main()
{ char s[80];
clrscr();
gets(s);
printf("\n The string : \n\n "); puts(s);
fun ( s );
printf ("\n\n The Cords :\n\n "); puts(s);} null四、结构体数据
a、概念:由若干个不同类型的成员构成的构造体数据
b、结构体类型的定义:
struct 结构体类型名
{ 类型名1 成员名表1;
类型名2 成员名表2;
....
类型名n 成员名表n; } ; 注意:
1、struct是关键字,不能省略
2、结构体类型定义描述结构的组织形式,不分配内存
例如:
struct student
{ char num[10];
char name[10];
float score; } ;null c、结构体变量的定义
(结构体变量的字节数=所有成员字节之和)★定义结构体类型的同时定义结构体变量
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;例 : struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2; null★直接定义结构体变量
struct
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;例: struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
null★ 先定义结构体类型,再定义结构体变量
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
};
struct 结构体名 变量名表列;例:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
struct student stu1,stu2; null★定义新类型名后再定义结构体变量
typedef struct
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}新类型名;
新类型名 变量名表列;例:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2; null d、结构体变量的赋值
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}结构体变量={初始数据}; 结构体成员的引用格式:
结构体变量名. 成员名
指针变量名->成员名
(*指针变量名). 成员名例如: struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
}stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};null例题:找出成绩最低的学生记录
#define N 10
typedef struct ss
{char num[10]; int score;} STU;
fun( STU a[], STU *s )
{ int i;
*s=a[0];
for(i=1;iscore>a[i].score) *s=a[i];
}
main ( )
{ STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
clrscr();
fun ( a, &m );
printf ("The lowest :%s,%d\n",m.num, m.s); }null五、共用体数据
a、概念:构造数据类型,也叫联合体,使几个不同类型的变量共占一段内存(相互覆盖)
b、共用体类型的定义
union 共用体名 例: union data
{ { int i;
类型标识符 成员名; char ch;
类型标识符 成员名; float f;
……………. }
};
c、共用体变量的定义
(共用体变量的字节数=占字节数最多的成员字节)
注: 参照结构体变量的定义格式
nulld、共用体变量的赋值
注意 : 共用体变量的成员不能同时得值.
例 : float x;
union
{ int i;
char ch;
float f;
}a,b;
a.i=1; a.ch=‘a’; a.f=1.5;
共用体成员的引用格式:
共用体变量名.成员名
共用体指针名->成员名
(*共用体指针名).成员名
nullmain()
{ union int_char
{ int i;
char ch[2];
}x;
x.i=24897;
printf("i=%o\n",x.i);
printf("ch0=%o,ch1=%o\n" x.ch[0],x.ch[1]); }运行结果:
i=60501
ch0=101,ch1=141例: 将一个整数按字节输出三、指针类数据三、指针类数据一、指向简单变量的指针变量
1、简单变量的指针:&变量名
2、指针变量:类型名 * 指针变量名;
3、指向简单变量的指针变量
指针变量名=&变量名;
注:两边类型必须相同
4、通过指针变量间接访问简单变量
*指针变量名例:int a,*pa; pa=&a; *pa=100; (即a=100)
float b,*pb; pb=&b; *pb=23.71; (即b=23.71)
char c,*pc; pc=&c; *pc='A'; (即c='A')null二、指向一维数组的指针变量
1、一维数组的指针:数组名 或 第一个元素的地址
2、指针变量:类型名 *指针变量名
3、指向一维数组的指针变量:
指针变量名=数组名 或
指针变量名=第一个元素的地址
4、数组元素的引用格式:
数组名[下标] / 指针变量名[下标] / *(数组名+i) / *(指针变量名+i) 例:int a[3],*pa;
pa=a; 或 pa=&a[0];
pa[0]=1; 即 a[0]=1;
*(pa+1)=2; 即 a[1]=2;
a[2]=3;null三、指向二维数组的指针变量
1、二维数组的指针:
行指针:二维数组名+i
列指针:&数组名[i][j] 或 数组名[i]+j
2、指针变量 :
行指针变量:类型名 (*指针变量名)[j];
列指针变量:类型名 *指针变量名
3、指向二维数组的指针变量
行指针变量=行地址; 列指针变量=列地址;
注:行指针变量只得行地址,列指针变量只得列地址
4、二维数组元素的引用格式:
数组名[i][j] / 行指针变量[i][j] / *(*(行指针+i)+j)例:int a[3][3], (*pa)[3] , *qa ;
pa=a; 即 pa=a+0
qa=&a[0][0]; 或 qa=a[0]+0
pa[0][0]=1; 即 a[0][0]=1; 即 *(*(a+0)+0)=1null四、指向字符串的指针变量
1、字符串的指针:字符串本身
2、指针变量:char *指针变量名
3、指向字符串的指针变量
指针变量名=字符串;
4、字符的引用:
指针变量名[下标] / *(指针变量名+i) 例:char *ps;
ps="acdef";
putchar(*ps); 即输出: a null五、其它指针变量
1、指向函数的指针变量
函数的指针:函数名
指针变量:类型名 *指针变量名(参数表列);
指向函数的指针变量: 指针变量名=函数名
引用函数的格式: (*指针变量名)(实参表列)
2、指向文件的指针变量
指针变量:FILE *指针变量名;
指向文件的指针变量: 指针变量名=fopen(文件名,打开方式)