char name[20]; char sex; }boy1,boy2;
? o o o
o o o o o
boy1,boy2就是该结构体类型的两个变量。 结构体变量的引用:
1. 结构变量成员的一般形式是: 结构变量名. 成员名 结构数组
数组的元素也可以是结构类型的。 因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。 在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。 结构指针变量
1. 说明的一般形式为: struct 结构名*结构指针变量名 2. 访问的一般形式为:
(a) (*结构指针变量).成员名 (b) 结构指针变量->成员名 链表:
1. 概念 建立链表的方法
第十一章 预处理命令
宏定义
? 在C语言源程序中允许用一个标识符来表示一个字符串, 称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换, 这称为“宏代换”或“宏展开”。 ? 带参宏定义
? 1. 带参宏定义的一般形式为: #define 宏名(形参表) 字符串 在字符串中含有各个形参。带参宏调用的一般形式为: 宏名(实参表);
?
2. 在宏定义中的参数称为形式参数, 在宏调用中的参数称为实际参数。对带参数的宏,在调用中,先进行宏展开, 再用实参去代换形参。(常考,容易出错)
o 文件包含
o 1. 一般形式为: #include\文件名\
?
例如: #include\ #include\
【知识点练习】 一、选择题
1. 以下不能定义为用户标识符的是:
(A) INT (B) _int (C) 2int (D) int25 2.以下说法中正确的是 :( )
(A) C语言程序总是从第一个定义的函数开始执行
(B) 在C语言程序中,要调用的函数必须在main函数中定义 (C) C语言程序总是从main函数开始执行
(D) C语言程序中,main函数必须放在程序的开始部分
3. 在一个C语言程序
中 ( )
A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置
4.以下程序运行后,输出结果是。 main( )
{ char *p=\printf(\,p+2) ;
}
(A)123456 (B)456 (C)23456 (D)3456 ( ) 5.以下程序运行后,输出结果是。 #define N 3 #define S(x) x+N main( ) {
printf(\,S(2) *
S(2)) ; } (A)4 (C)25 11 6.下列程序的输出结果是 main( )
{ int a[10]={1 ,3 ,5 , 7, 9 ,11 ,13 , 15 , 17, 19}, *p; p=a+4;
printf(\
(A)5 (C)9 11 7.下面程序段的运行结果是。 struct student
( (B)9 D) ) (B)7 (D)
( ( } ){ int a; float b; char c;};
printf(“%d\\n”, sizeof
(struct student )); (A)7 (B)4 (C)2 (D)
8 ( ) 8.判断字符串s1是否大于字符串s2,应当使用。 (A)if(s1>s2) (B)if(a==b)
(C)if(strcpy(s2,s1)>0) (D)
if(stcmp(s1,s2)>0) ( ) 9.以下程序的输出结果是。 main( ) { int a=15 ;
printf ( \ a++ ); }
(A)16 15 (B)15 15 (C)17 16 (D)16 16 ( )
10.若x、i、j和k都是int型变量,计算x=(x=4,x=16,k=32)表达式后,x的值为。
(A)4 (B)16
(C)32 (D)
52 ( ) 11.执行以下语句后,a,b的值分别为。 int a ,b ,c ; a=b=c=1 ; ++a||++b&&++c;
(A)2 ,2 (B)1 ,1
(C)2 ,1 (D)
1 ,2 ( ) 12.下面程序段的运行结果是: union stu
{ int num; char name[10]; float scrose ; };
printf(“%d\\n”, sizeof
(union stu ));
(A)18 (B)16
(C)10 (D)
2 ( 13.数组定义为:int a[4][5]; 引用“a[1]+3”表示的是。 (A)a数组第2行第4列元素的地址 (B)a数组第2行第4列元素的值
(C)a数组第4行的首地址 (D)a数组第1行第3个元素的地址 ( ) 14.下面函数 f(double x)
{printf(“m”,x);}的类型
为 ( )
A. 实型 B. void 类型 C. int 类型 D. 均不正确 15.C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是。(A)地址传递 (B)单向值传递 (C)由实参传给形参,再由形参传递给实参 (D)同用户指定传递方式
16.若使用一维数组名作函数实参, 则以下正确的说法是 ( )
)