当前位置:文档之家› C语言

C语言

第一章

1.1 判断下列描述是否正确,对者打√,错者打×。

1. C语言是一种非结构化程序设计语言。(×)

2. C语言是一种面向对象的程序设计语言。(√)

3. C语言具有简洁明了的特点。(√)

4. C语言是一种具有某些低级语言特征的高级语言。(√)

5. C语言数据类型转换比较灵活,类型的使用不够严格。(√)

6. C语言的应用比较广泛,不仅可用来编写应用软件,而且可用来编写系统软件。(√)

7. C语言程序只能有一个文件。(×)

8. C语言程序中可以有多个函数,但只能有一个主函数。(√)

9. C语言程序在书写上只能是一条语句写一行。(×)

10. C语言程序的可读性较差,因此要求书写C语言程序应按照习惯上的约定。(√)

11. C语言标准输入操作中,gets()函数一次只可读取一个字串。(×)

12. C语言标准输出操作中,putchar()函数可以输出像是一个字符。(×)

13. C语言标准格式输入函数scanf()的参数表是由若干个表达式组成。(√)

14. C语言标准格式输出函数printf()的参数表是由若干个表达式组成。(√)

15. C语言程序实现与其他高级语言一样也要经过编辑、编译连接嗬欲行这样的三步曲。(√)

1.2 单选题。

1. 下列对C语言特点的描述中,错误的是(A)。

A.C语言不是结构化程序设计语言B.C语言编程简洁明了

C.C语言功能较强D.C语言移植性好

2. 下列关于C语言程序在结构上特点的描述中,错误的是(D)。

A.C语言程序是一个函数串

B.C语言程序可以由一个或多个文件组成

C.C语言程序的诸多函数中,只能有一个主函数

D.C语言程序被执行时,通常是从第1个行数开始

3. 在scanf()函数的格式说明符中,长整型数的输入格式说明符是(C)。

A.%d B.%lf C.%ld D.%x

4. 在printf()函数的格式说明符中,双精度浮点型数的输出格式说明符是(B)。

A.%ld B.%lf C.%c D.%s

5. 将一个双精度浮点型常数12.345使用printf()函数输出显示在屏幕上,要求输出宽度为数职左边有2个空格符,小数点后面4位数,正确的输出语句是(A)。

A.printf(“%9.4lf\n”,12.345); B.printf(“%8.4lf\n”,12.345);

C.printf(“%lf\n”,12.345); C.printf(“%9.4f\n”,12.345);

练习二

2.1.判断题

1.标识符中大小写字母是没有区别的. ( ×)

2.下划线是标识符中的合法字符。(√)

3.关键字不能用作用户的标识符。(√)

4.分号是C语言中语句的结束符,不可用作分隔符。( ×)

5.注释符中注释的信息是不参与编译的运行的。(√)

6.外部类变量的寿命比外部静态变量的长。(√)

7.变量在定义时必须被赋值初值,有了初值后便保持该值,不能不可改变。(×)

8.定义的变量都具有默认值,因此变量定义后便可使用。(×)

9.一个变量在定义它的作用域内通常是可见,并且是存在的。(√)

10.在同一的作用域中不可定以同名变量,在不同的作用域中可以定义同名变量。(√)

2.2单选题

1下列关于标识符的描述中,错误的是(c)

A.标识符是由字母、下划线和数字组成的字符序列,并且以字母和下划线开头

B.标识符中字符个数是不受限制的

C.标识符中大小写字母是不加区别的

D.用户不能使用关键字作标识符

2.下列给出的分割符中,错误的是(D)

A.. : B.; C., D. ?

3.下列各种数据类型中,数据长度最长的是(C)

A.char

B.long

C.double

D.float

4.下列各种存储类中,作用域最大的是(A)

A.外部类

B.外部静态类

C.自动类

D.寄存器类

5.下列使用指数形式表示的浮点型常量中,非法的是(B)

A. 4e-5

B. 12E3.5

C. 0e0

D. .5e2

6. 下列给出的字符串常量中,非法的是(C)

A. ""

B. "a8"

C. "m""n"

D. "99"

7. 下列符号常量中,正确的是(A)

A. #define N 3.65

B.#define N=3.65

C. #define 3.65 N

D. define N(3.65)

8.字符串常量“123”在内容中的字节数是(B)

A.3

B.4

C.5

D.6

9.下列字符串常量中,非法的是(D)

A.'1'

B.'\t'

C.'x’

D.’ \ 18’

10.作用域是文件级寿命最长的变量的存储类是(B)

A. 自动类

B. 外部类

C. 内部静态类

D. 外部静态类

2.3填空题

1. C语言中通常用的单词有(关键字)(字符集)运算符(分隔符)常量和(注释)。

2.C语言中,整形常量有3种表示形式,分别是十进制(八进制)和(十六进制)。

3.C语言中,基本数据类型有(整形)(浮点型)和字符型

4.C语言中,变量的储存类有4种:(自动类),寄存器类,(外部类)和(静态类)

5.定义变量时被省略的存储类说明符是(auto),静态类变量的说明符是(static)

6.变量的作用域通常分4级,分别是程序级、(文件级)、(函数级)和程序段级。

练习题 3

3.1 判断下列描述是否正确,对者划√,错者划×。

1.有的运算符不能对浮点型数进行运算。()

2.结合性从右至的运算符都有副作用。()

3.增1减1运算符的前缀运算的表达式值是相同的。()

4.逻辑表达式的值为1或0。()

5.左移操作时,右端一律补0。()

6.单目运算符的优先级高于双目运算符,双目运算符的优先级又高于三目运算符。()

7.由相同运算符组成的表达式中,计算顺序是从左至右。()

8.由逻辑位运算符组成的表达式的值是逻辑值。()

9.表达式中不能出现带有副作用的运算符。()

10.一个变量的类型被强制后,它将保持被强制的类型,直到下一次再被强制时为止。()3.2 单选题。

1. 下列运算符中,优先级最高的是()。

A .^

B . ~

C . =

D . > >

2. 下列运算符中,优先级最低的是()。

A . < = B. != C. && D. ||

3.下列运算符中,优先级相同的是()。

A . +=,*= B. ! , && C. & , | D . >> , = =

4.已知:int a = 1 , b = 2 ; , 下列表达式中非法的是()。

A . a +=b B. b%a C.2*a=b D. a=b- -

5.已知:int a =1,b=2 ; , 下列表达式中合法的是()。

A .a=10.5%2 B. - - (a+b ) C.+ + (-a) D. a+=b+++2

6.已知:int a =5 ; , 计算表达式a-=a*=a+=a/a

A . 0

B . 1

C . 2

D . 3

7.已知:int a=3,b=1; , 表达式a+++b 的值是()。

A . 3 B. 4 C. 5 D . 6

8.已知:int a =2; , 下列各表达式的值不为5是()。

A.a+=3

B.++a+2

C.a >2? 5 : 1 D . a %2+(a=5)

9.下列关于运算符优先级的描述中,错误的是()。

A . C 语言的运算符中共分为15个优先级

B. 优先级高的运算符的先操作

C.可以使用圆括号运算符改变优先级

D.单目运算符的优先级最高

10.下列关于表达式的描述中,错误的是()。

A. 相同运算符组成的表达式的计算顺序都是从左至右的

B. 任何一个合法的表达式都应有确定的值和类型

C. 关系表达式和逻辑表达式的值是逻辑值,用1或0表示

D. 逗号表达式的值和类型取决于组成该表达式的最后一个操作数的值和类型

3.3填空题

1.运算符%,‖,<<,<=<,*=,==,中,优先级最高的是_,最低的是_。

2.具有副作用的运算符有_、_两类。

3.结合性从右至左的运算符有_、_、_三类。

4.已知:int a=3;,写出求表达式a+4.5的值在内存中占有的字节数的输出语句为_, 该输出

值为_。<32位机上>

5.已知:double d1=1.2,d2=2.4;,写出将表达式d1+2*d2强制为int型值的语句是_,强制后的

值为_。

6.增1减1运算符是_目运算符,它只能作用在_上,不能作用在_和_上。

7.右移运算符将右端移出的位_,左端补_。

8.条件表达式的类型是_号左边和右边两个操作数中类型_的操作数的类型。

9.已知:int a=3;,求表达式a=('m'>'n')?a+2:a-2,a+3,3*a的值之后,a的值

是_。

10.已知:int a=1,b=0,c=1;,计算表达式!b‖++a&&++c值后,a,b和c的值分别是_、

_、_。

3.4 计算下列各表达式的值,并按其要求进行输出显示。

1. 计算下列表达式的值,按%d格式输出。

(1)52+31%7-56/12

(2)40*2/-(-5)%3+5

(3)8|5*1<<2

(4)(5<=5+2)-(3>5)

(5) 6&4/2

2.计算下列表达式的值,按%x格式输出。

已知:unsigned inta=0x2b,b=011;

(1)a&b

(2)a|b

(3)a^b

(4)a>>=2

(5) ~a+~b

3.计算下列各表达式的值,并按%d格式输出。假设各个表达式是相互独立,前者对后边无影响。

已知:int a=17,b=8;

(1)(a--b)+(--b)

(2)++a+b—

(3)a+=a*=a/=a-=b

(4)(a=5/2)-(b-=5)

(5)a|b|1

4.计算下列各表达式的值,并按%d 的格式分别输出表达式的值和a,b的值。

已知:int a=8,b=5;

(1)!a&&b--

(2)a||b&&a+b

(3)++a,--b,a+b

(4)a=2,b=7,a>b?++a:b++

(5)a%=b+=a/=b

3.5 简答题。

1.已知: int a=0;, 试问!a的值与~a的值是否相等?

2.已知:int a=5:,试问表达式a%-2值是否还是负?

3.将doubie型变量x和y的积强制转换为int型,使用下述两个表达式是否都可以?(int)x*y 和(int)(X*y)

4.已知:int a;,表达式a=3+19-a=8*2的值为6,对吗?

5. 已知:char ch=’M’;,表达式(ch>=’A’&&ch<=’z’=?(ch+32):ch的值是什么?

练习五

5.1 判断下列描叙是否正确,对者划√,错者划×。

1. 任何表达式语句都是表达式加分号组成的()

2. 表达式语句和表达式没什么区别。()

3. 条件语句和开关语句都可以实现多路分支。()

4. 开关语句种,每个<语句序列>都必须包含break语句。()

5. 开关语句中,default子句不可省略。()

6. 三种循环语句都有循环条件,都有循环体,她们之间都可以嵌套使用。()

7. for循环语句和do-while循环语句一样,都是至少执行一次循环体。()

8. 在条件语句冲,else子句是与它最近的一个if子句配对的,但是一个if子句只能有一个else子句。()

9. continue语句和break语句都是用来推出循环体的。()

10. 语句标号在同一个文件中式唯一的。()

5.2 单选题。

1. 已知:int,j,k,a;i=j=k=0;a=10; 运行下列程序段后,a的值是()

If(!i) ++a;

else if(j);

if(k) a=5;

else a=8;

A.10

B.11

C.5

D.8

2. 下列关于if语句的描叙中,错误的是()

A.if语句中可以没有else if子句,也可以没有else子句

B.if语句中只能有1个else子句

C.if中只能有不超过5个的else if子句

D.if语句中<条件>可以是任意表达式

3. 下列关于switch语句的描叙中,错误的是()

A.switch语句至少应有1个case子句和default子句

B.case子句中,case后面的表达式一定是整常量表达式

C.switch语句中,default子句可以放在花括号内的任何位置

D.switch语句的右花括号具有退出该开关语句的作用

4. 下列循环语句中,错误的是()

A.int a=1,b=2;while(b- -);

B.int a=1,b=2;do a++;while(a==b);

C.int a=1,b=2;while(a=3);

D.int a=1,b=2;do b—while(b==0);

5. 下列循环语句中,执行循环体的次数是()

While(100) printf(“ABC”)

A. 3

B. 0

C. 无限

D. 10

6. 下列循环语句中,执行循环体的次数是()

int i, j;

for(i=0,j=0;i<=3&&j;i++) j++;

A. 3

B. 0

C. 无限

D. 1

7. 下列循环语句中,执行循环体的次数是()

int i,j;

for(i=0,j=1;i=j=3;i++,j- -) printf(“AB”)

A. 5

B. 1

C. 0

D. 无限

8. 下列关于bresk语句和continue语句的描叙中,错误的是()

A. break语句可以用来退出和开关语句和循环体

B. break语句可以用来退出if语句

C. continue语句只能用于循环句的循环体内

D. break语句和continue语句都属于转向语句

9. 执行下列程序段后,y的值是()

Int x=1, y=5;

Do {y-=x; ++x;} while(- -y<0);

A. 1

B. 2

C. 3

D. 4

10. 下列是一段关于用来计算1至5连乘至的程序,指出该程序中有一错误时()

int i=1 p;

p=0; (1 )

for(;i<5;i++) (2)

p*=I; (3)

printf(“%d/n”,p); (4)

A. 1

B. 2

C. 3

D. 4

5.3 填空

1.c语言的循环语句有3种,它们是、、。

2.循环语句中,除了从循环条件退出循环外,还可以退出循环。

3.for循环语句关键字for后边括号内的3个表达式d1,d2,和d3,在通过情况下,d1 用来,d2用来,d3用来。

4.已知:int i=0,j=10,k:完成下列for循环后,k的值是。

For(;i<=j; i++) k=i+j;

c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素 int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1** void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1** void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3** void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3** void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2** void showall();//*输出全部信息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*//

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言通讯录

C语言程序设计课程设计报告 题目: 通讯录 课程设计报告书 一、设计目的:灵活使用C语言进行程序编写,巩固有关语句,指针,结构体,链表,文件操作等概念和方法。提高调试程序的技能,提高软件编写的能力。 二、总体设计:

三、详细设计 1、编写菜单界面程序,并用Switch 语句实现菜单的选择,通过函数调用实现菜单跳转。 2、编写菜单中调用的各个函数,思路如下: (1)、add _record (添加记录) 程序会提示用户输入增加的姓名和号码,并且输入一组数据后,会提示用户是否继续输入数据,如选择否,就会显示记录,自动返回二级菜单(如流程图(1))。

流程图(2) 流程图(1) (2)、find_record (查找记录) 程序会提示用户输入要查找的姓名,并输出该人的姓名和电话号码,如果查找不到会自动提示没有该人的姓名记录,并自动返回二级菜单(如流程图2)。 (3)、change_record(修改记录) 程序会提示用户输入要修改的姓名,并要求输入该人新的姓名和电话号码,如果查找不到会自动提示没有该人的姓名记录,如果修改成功就输出新的记录。 (4)、delete_ record(删除记录) 程序会提示用户输入要删除的姓名,如果没有该人会自动提示没有该人的姓名记录,否则就会删除该记录,输出删除后的记录并返回二级菜。 (6)、sort -record(记录排序)

程序自动将姓名按字母顺序排列并输出并返回二级菜。 (流程图3) (7) load(读取已有的记录) 程序会自动打开已保存的文件记录,以便用户进行修改、删除等。 (8)display(显示链表) 此函数经过调用会显示链表中的记录,以便用户查看。 四、调试与测试 调试过程中,遇到了很多的问题,如排序问题、用fopen函数打开原有记录会出现一大堆乱码等。不过,经过和同学们讨论却从中受到了很好的启示,并能更好地解决问题和复习了C语言程序设计。 五、源程序清单和执行结果 #include

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

c语言通讯录管理系统

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。 (2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统 修改退出 插入显示删除查询保存

三、详细设计 1、 主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N Y 【程序】 int main() //主函数 { Man man[500],*pman=man;; char control; int size; printf("\t\t**********************************************\n"); //窗口初始化 printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n"); printf("\t\t*--------------------------------------------*\n"); printf("\t\t* 请按回车键继续! *\n"); printf("\t\t**********************************************\n"); 开始 显示一系列功能选项 输入n ,判断是否是0~6 根据n 的值调用各功能模块函数 结束

C语言程序设计 通讯录程序

目录: 课程设计任务书..................... 错误!未定义书签。目录:................................... 错误!未定义书签。 一、目的..................................................错误!未定义书签。 二、基本情况..............................................错误!未定义书签。 三、时间安排..............................................错误!未定义书签。 四、设计和调试过程规范化要求..............................错误!未定义书签。 五、设计内容和设计要求....................................错误!未定义书签。 六、考核方式..............................................错误!未定义书签。一通讯录的主要功能: .................... 错误!未定义书签。 一、问题描述: .............................................错误!未定义书签。 二、功能要求: .............................................错误!未定义书签。 三、算法提示: .............................................错误!未定义书签。 四、测试数据: .............................................错误!未定义书签。 二、课题的主要功能模块划分:............. 错误!未定义书签。 三、主要功能的实现....................... 错误!未定义书签。 一、按名字查找显示函数 void search( ) ................错误!未定义书签。 二、快速查找函数:void qseek( ) ...........................错误!未定义书签。 四、程序调试:........................... 错误!未定义书签。 五、总结................................. 错误!未定义书签。 六、源程序............................... 错误!未定义书签。机械工程学院课程设计评分表............... 错误!未定义书签。

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

c语言课程设计学生通讯录管理系统精编版

c语言课程设计学生通讯录管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

C语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

C语言程序的设计报告_个人通讯录

航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:: 学号:: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 ?用户信息界面美观、简洁,采用菜单式显示功能选择; ?能够从磁盘文件输入和输出数据; ?能够对联系人信息进行增、删和改的操作; ?能够根据联系人的的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择:

选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入: 选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字: 13213 性别: 2144444444444 手机: 44444444444 电子:44444444444 QQ:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

C语言常用函数名及用法

字符函数和字符串函数 头文件:字符串函数头文件:#include 字符函数头文件:#include putchar:输出一个 putchar(a):输出字符变量a的值,(其中a可为字符变量,整形变量,字符常量,整形常量) getchar:输入一个字符 a=getchar(); putchar(a);结果为b printf(格式控制符,输出列表); scanf(格式控制符,地址列表); 输入形式与格式控制部分对应 1.当为两个连续输入时:scanf(“%d%d”,&a,&b); 输入量数据之间可为:一个或多个空格,也可以用enter,tab无逗号时输入时不能用逗号作分隔。 2.格式控制中两%d有两个空格,输入时两数据间应有两个空格或两个以上。 3.当为“:”时输入时应对应一样,当为:scanf(“a=%d,b=%d”,&a,&b);输入a=12,b=22。 4.当格式控制符为%c时,输入时空格与转义字符都作为有效字符记录在里面:scanf(“%c%c%c”,&a,&b,&c); 输入时:ab c↙空间不能插空格或其他符

5. Scanf(“%d%c%f”,&a,&b,&c); 输入时1234a123h26↙在输入遇到时空格回车 tab或其他非法输入就会认定输入完毕 Gets (字符数组):读入字符串函数 Gets(str)从键盘键入a b↙括号里为字符数组str的起始地址,Puts(字符数组):输出字符串函数 Strcat(字符数组1,字符数组2):字符串连接函数(2连接在1后面) Strcpy和strncpy:字符串复制函数 Strcpy(字符数组1,字符数组2):将2复制到1 数组1 要为数组名,字符串2可以为数组名或者字符串 Strncpy(str1,str2,2):将str2的前两个字符复制到str1,取代str1的前两个字符 Strcmp:字符串比较函数 Strcmp(str1,str2):相等则为0(对字符串自左向右逐个字母进行比较) Strlen(字符数组):测字符串的实际长度 Strlwr(字符串)将字符串转换为大写 Strupr(字符串)将字符串转换为小写

c语言编写的通讯录代码、

#include #include struct friends_list{ char name[10]; int age; char telephone[13]; }; int Count=0; void new_friend(struct friends_list friends[]); void search_friend(struct friends_list friends[],char*name); void Modify_friend(struct friends_list friends[],char*name); void Delete_friend(struct friends_list friends[],char*name,int n); int main(void) { int choice,n; char name[10]; struct friends_list friends[50]; do{ printf("手机通讯录功能选项: 1:新建2:查询3:修改4:删除0:退出\n"); printf("请选择功能:"); scanf("%d",&choice); switch(choice){ case 1: new_friend(friends); break; case 2: printf("请输入要查找的联系人姓名:"); scanf("%s",name); search_friend(friends,name); break; case 3: printf("请输入您要修改的联系人的姓名:"); scanf("%s",name); printf("\n"); Modify_friend(friends,name); break; case 4:

通讯录C语言程序设计报告书

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

相关主题
文本预览
相关文档 最新文档