用C语言描述数据结构与算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum+=i; i++; } printf("%d",sum); }
for语句
一般形式:
例例 -i++ -(i++) -i++ 例 j+++k; i=3; printf(“%d”,-i++); //-3 (j++)+k; i=3; printf(“%d”,-i++);
数据输入与输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>
格式输出函数
例 scanf(“%d”,&a); 输入:10 则 a=10
输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符
例 scanf(“%d%o%x”,&a,&b,&c); 例例 scanf(“%d,%d”,&a,&b) scanf(“%d:%d:%d”,&h,&m,&s); printf(“a=%d,b=%d,c=%d\n”,a,b,c); 输入 12:30:45 输入 3,4 例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 则3a,30 b 45 s 123 123 123 则12 h, 4 m, 输入 a=12,b=24,c=36 输出 a=123,b=83,c=291
expr
=0 statement2
形式三: 格式: 执行过程:
=0
if ( expr1 )
else if (expr2 ) else if (expr3 )
statement1
statement2 statement3
…...
[ else statementn ]
例:if (salary>1000) index=0.4; 非0 if (salary>800) =0 index=0.3; else expr2 else if (salary>600) index=0.2; =0 非0 else if (salary>400) expr3 index=0.1; else 非0 index=0;
例 int a=3,b=4; int a=3,b=4; ABC 字符串 printf(“%s”,“ABC”); printf(“%d %d\n”,a,b); printf(“%d %d\n”,a,b); float a=567.789;printf(“%e”,a); 指数形式浮点小数 printf(“a=%d , b=%d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); 5.677890e+02 567.789000 float a=567.789;printf(“%f”,a); 小数形式浮点小数 输出结果: 3 4 floata=3, b=4 a=567.789;printf(“%g”,a); 567.789 e和f中较短一种
C语言
C语言程序设计
第一章 C语言概述
格式特点
习惯用小写字母,大小写敏感 main( 不使用行号,无程序行概念 main( ) ) { { ………………. 可使用空行和空格 int i , j , sum; ……………… 常用锯齿形书写格式 sum=0; ………….. for(i=1; i<10;i++) ………….. { 优秀程序员的素质之一: ……… for(j=1;j<10;j++) 使用TAB缩进 ………. { …………… {}对齐 sum+=i*j ; 有足够的注释 ……………. } 有合适的空行 ………………. } ……………….. } printf(“%d\n”,sum); }
百分号本身 printf(“%%”); % 说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式 输出
char a=65;printf(“%c”,a);
A
格式输入函数
格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e
例 用while循环求
循环初值
循环变量增值
/*ch5_2.c*/ #include <stdio.h> main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d",sum); }
循环条件
循环终值
循环体
do~while语句
格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1)
输出表:要输出的数据(可以没有,多个时以“,”分 隔) 格式控制串:包含两种信息 格式说明: %[修饰符]格式字符 ,用于指定输出格式
普通字符或转义序列:原样输出
说明: E1,E2,…En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加{ } switch可嵌套 多个case可共用一组执行语句
如: …… case „A‟: case „B‟: case „C‟: printf(“score>60\n”); break; ……..
switch语句(开关分支语句)
一般形式:
switch 表达式 case E1 语句组1 E2 语句组2 En
…...
语句组n
执行过程:
switch( 表达式) { case E1: 语句组 1; break; case E2: 语句组 2; break; default ……. 语句组 case En: 语句组 n; break; [default: 语句组 ; break;] }
C语言程序设计
第一章 C语言概述
结构特点
函数与主函数
程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套 调用得以执行。
程序语句
C程序由语句组成 用“;”作为语句终止符 /* */为注释,不能嵌套 不产生编译代码
/*ch5_3.c*/ #include <stdio.h> main() { int i,sum=0; i=1; do { sum+=i; i++; }while(i<=100); printf("%d",sum); }
例 while和do~while比较
/*ch5_4.c*/ #include <stdio.h> main() { int i,sum=0; scanf("%d",&i); do { sum+=i; i++; }while(i<=10); printf("%d",sum); }
运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!
§循环型程序设计
概述
C语言可实现循环的语句: while 语句 do ~ while 语句 for 语句
while语句
一般形式: while(表达式) 循环体语句; 执行流程:
while 假(0) expr 真(非0) 循环体
特点:先判断表达式,后执行循环体 说明: 循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1) 循环体;
复合语句:用 {…}括起来的一组语句 一般形式: { [数据说明部分;] 执行语句部分; } 说明: “}”后不加分号 语法上和单一语句相同 复合语句可嵌套
§选择型程序设计
if语句(条件选择语句)
if语句的三种形式 形式一: 格式:if (expression) statement 执行过程:
非法
注释 例: /*This is the main /* of example1.1*/ */
数据描述
C 语 言 程 序 设 计
§数据类型
数据类型总表
基本类型 整 型
短整型short
整型int 长整型long 单精度型float 双精度型double 字符类型char
实型
数组
C 数 据 类 型 结构体struct
expr 非0 statement =0
例:if (x>y) 形式二: 非0 printf(“%d”,x); 格式:if (expression) statement1 statement1 else statement2 执行过程: 例:if (x>y) max=x; else max=y;
一般形式: do 循环体语句; while(表达式); 执行流程:
do
循环体 真(非0)
while expr 假(0)
特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 do~while可转化成while结构
循环体
While循环
假(0) expr 真(非0) 循环体
例 用do~while循环求
例 switch(score) { case 5: case 4: case 3: case 2: default : }
printf(“Very good!”); printf(“Good!”); printf(“Pass!”); printf(“Fail!”); printf(“data error!”);
C程序流程设计
§C语句概述
C语句:以“;”作分隔符,编译后产生机器指令. C语句分类
表达式语句:表达式加分号构成。 分支 如 total=total+limit; 空语句: ; a=3; 程序控制语句(9种): func( ); 循环 printf(“Hello,world!\n”);
if( )~else~ switch for( )~ while( )~ do~while( ) continue break 辅助控制 goto return
statemnt1 statemnt2 statemnt3 statemntn
expr1
说明: if后面的表达式类型任意 语句可以是复合语句 如:if(a==b&&x==y) printf(“a=b,x=y”); if(x) if(x!=0) if(3) printf(“OK”); if(!x) if(x==0) if(„a‟) printf(“%d”,‟a‟); 例 考虑下面程序的输出结果: #include <stdio.h> main() { int x,y; scanf(“%d,%d”,&x,&y); if(x>y) Compile Error! x=y; y=x; else x++; y++; printf(“%d,%d\n”,x,y); }
格式字符
格式字符:
d,i x,X o u c s e,E f g %%
十进制整数
int a=567;printf ( “%d”,a);
255;printf(“%x”,a); int a=65;printf(“%o”,a); 八进制无符号整数 不带符号十进制整数 int a=567;printf(“%u”,a); 单一字符
构造类型
共用体union 枚举类型enum
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作
第 二 章 数 据 描 述
指针类型
空类型void
定义类型typedef
C 语 言 程 序 设 计
第 二 章 数 据 描 述
自增、自减运算符 ++ -作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用 i值) 后置 i++,i-(先使用i值,再执行i+1或 i-1) 说明: ++ -- 不能用于常量和表达式,如5++,(a+b)++ ++ --结合方向: 自右向左
相关文档
最新文档