◆字符串操作函数:
strlen()、strcpy()、strcmp()
13.返回指针值的函数:
char*func(char*s,charch)
◆切记:
返回的是地址,在主调函数中应使用指针类型变量接收函数返回值,
如:
char*p,a[]=“asdgg”;p=func(a,’d’);
14.动态内存分配:
掌握malloc函数的使用方法。
第九章
1.结构体:
struct,.定义的几种形式。
成员可以是任意类型。
成员引用:
结构体变量名.成员名
◆占用内存大小为:
各成员占用内存之和。
◆结构体数组:
同普通数组一样使用。
初始化时注意双重括号。
◆结构体指针:
(*p).成员名或p->成员名
注意:
只能用结构体变量地址赋值,不能赋某成员的地址,如:
p=&stu.name;是错误的。
◆通常定义变量或形参时必须加上struct,如:
voidfunc(structstudent*p)
{structstudenta[4],temp;……}
2.共用体:
union,定义形式同结构体。
成员引用:
共用体变量名.成员名
◆占用内存大小为:
共用体中较长的成员的长度。
◆某一时刻只有一个成员起作用,最后一个存放的成员值有效。
◆结构体类型与共用体类型可互相嵌套使用,即结构体成员的类型也可以是共用体类型,反之亦然。
3.枚举类型:
如:
enumweek{sun,mon,tues,wen,thur,fri,sat}day;
◆枚举元素就是枚举变量的可能取值,如:
day=mon;
◆枚举元素视为常量,其值就是序号(0~n-1)。
也可以在定义时改变其值,如:
enums{a=3,b=1,c=2};
4.类型标识符自定义:
typedef,如:
typedefintINTEGER;typedefstruct{……}STU;
typedefintARR[10];以后可直接使用INTEGER、ARR、STU类型进行变量定义,书写简略。
◆注意:
只能为类型另起新名,不能创造新类型,也不能为变量或函数重新命名(define)。
第十章文件
1.流式文件:
文本文件、二进制文件。
◆文本文件:
若干字符序列,较长,可用type命令或记事本查看。
◆二进制文件:
若干字节序列,短,存取速度快,不能用type或记事本等查看。
2.文件操作:
读操作、写操作。
使用有关文件函数来完成,需包含头文件stdio.h
3.操作步骤:
①定义文件类型指针②打开文件③检测指针④读/写⑤关闭文件。
4.打开文件时的使用方式各6种,P207页。
5.读/写函数:
fgetc(fp)、fputc(ch,fp)、fread(*p,size,n,fp)、fwrite(*p,size,n,fp)、fgets(*str,n,fp)、fputs(*str,fp)
fscanf(fp,“格式控制符”,地址列表)、fprintf(fp,“格式控制符”,输出列表),以上函数是简要书写,具体参考P238页。
6.三个标准设备文件指针:
stdin、stdout、stderr
7、有关文件操作函数ferror(fp)、feof(fp)、clearerr(fp);
10.控制循环:
while((ch=fgetc(fp))!
=EOF)或while(!
feof(fp))
EOF是在头文件中定义的符号常量,值为-1代表文件结束。
C语言程序设计第1~3章练习题
一、选择题
1、一个C语言程序总是从__B__
A、主过程开始执行 B、主函数开始执行
C、子程序开始执行 D、主程序开始执行
2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_C
A、4 B、16
C、32 D、52
3、下面四个选项中,均是C语言关键字的选项是__B__
A、autoenuminclude
B、switchtypedefcontinue
C、signedunionscanf
D、ifstructtype
4、下面四个选项中,均是合法整型常量的选项是_A___
A、160-0xffff011 B、-0xcdf01a0xe
C、-01986,0120668 D、-0x48a2e50x
5、下面四个选项中,均是合法浮点数的选项是_D__
A、+1e+15e-9.403e2
B、-.6012e-4-8e5
C、123e1.2e-.4+2e-1
D、-e3.8e-45.e-0
6、下面四个选项中,均是合法转义字符的选项是__A__
A、'\'''\\''\n' B、'\''\017''\"'
C、'\018''\f''xab' D、'\\0''\101''xlf'
7、下面正确的字符常量是_B___
A、'\X17'B、'\80'C、'\\'D、"\n"
8、下面四个选项中,均是正确的八进制数和十六进制数的选项是__C__
A、-100x8f-011
B、0abc-0170xc
C、010-0x110xf1
D、0a12-0x123-0xa
9、下面四个选项中,均是正确的数值常量或字符常量的选项是__D__
A、0.00f8.9e'&'
B、"a"3.9E-2.51e1'\"'
C、'3'0110xFF000a
D、+0010xabcd2e250.
10、若有代数式
,则正确的C语言表达式是_D___
A、2*ln(x)*cos(x)/3*x
B、2*ln(x)*cos(x)/(3*x)
C、2*log(x)*cos(x)/3*x
D、2*log(x)*cos(x)/(3*x)
11、若有说明语句:
charch1='\065';charch2="2";charch3='2';则:
ch1中__A__,ch2中__B__,ch3中__A__
A、包含1个字符 B、包含2个字符
C、包含3个字符D、字符个数不确定,说明不正确
12、若有运算符:
>、*=、?
:
、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)__B__
A、*=→?
:
→%→>→sizeofB、?
:
→*=→>→%→sizeof
C、*=→>→?
:
→sizeof→%D、*=→?
:
→>→%→sizeof
13、若有以下类型说明语句:
chara;intb;floatc;doubled;
则表达式a*b+d-c的结果类型为__D__
A、float B、char C、int D、double
14、若有变量说明:
inta=0,b=0,c=0;,以下符合C语言语法的赋值表达式是__B__
A、a=9+b+c=a+9 B、a=9+b;c=a+9;
C、a=(9+b,b++) D、a=9+b++=a+7
15、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为__A__
A、D B、68 C、一个不确定的值 D、C
16、以下运算符中优先级最高的运算符是__A__
A、&& B、++ C、?
:
D、!
=
17、若有定义:
intk=7