第一篇:程序设计要点总结
实验三:单精度的有效数字为7位,双精度的有效数字为16位。实验四:x=3.600000,i=3 当以浮点型输出时,小数点默认为6位;
int b=-1;
1111 1111 1111 1111;
p=(i++)+(i++)+(i++);备注:i=5,在Turbo C中把5作为表达式中所有的i值,因此三个5相加得15,再求出表达式的值后在实现自加三次得8;
q=(++j)+(++j)+(++j);备注:j=5,同上,j先自加三次得8,再将8作为表达式中所有的j值,因此三个8相加的24;
i+=i*=i+6;备注:+号比复合运算符高级,先算;再从右向左计算;
k=(j=++i,i+=j,i+=5);备注:逗号也是一种运算符,从左向右算,左后得到的值为k得值;
t 作用是跳过8列;b 作用是退一列;ddd 代表1到3位八进制数
(101)8=(65)10;
a=12赋值运算符优先级低于算术运算符
a*=5
a等于12*5=60 a+=a-=a*=a
结果为0
从右到左
实验五:进制间的转换
双精度也是用%f输出,但长整型要用%ld输出。long n=1234567长整型有32位 比普通整型多一倍
当未规定小数点后的位数时,系统自动输出6位小数。Printf(“%e”,123.456);会输出1.23456e+02 ,其中小数点也算一位
scanf(“%d%d%d”,&a,&b,&c);使用scanf函数时不要丢掉&,输入形式由双引号内的形式决定;
printf(“%d,%d,%dn”,a,b,c);} 输出的形式由双引号内的形式决定。#include
实验六:不完全运算: c=(a
实验七:do{„„}while(n)do 循环体语句 while(表达式);先执行循环体语句,再判断表达式,“真”,继续执行,“加”结束循环;当输入0时
循环结束
while(1){„„}由于表达式为真,为避免循环体语句不断循环下去,循环体语句中必有break。
while((d/=10)>9);
空操作 :当表达式的 值为真时,不执行任何操作
1.对于整型变量x,与while(!x)等价的是(B)
A.while(x!=0)
B.while(x==0)
C.while(x!=1)
D.while(~x)
6.以下程序段运行后变量n的值为(D)int i=1,n=1;for(;i<3;i++)
{
当表达式为真时,不做任何操作(空操作)
continue;
当表达式为真时,跳过n=n+i
n=n+i;
} A.4
B.3 C.2
D.1 所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。
课本例6.9 求100~200间的全部素数
# include
main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;if(i>=k+1){printf(“%d
”,m);n=n+1;}
if(n%10==0)printf(“\n”);
}
printf(“\n”);
}
实验八:用起泡法对10个数排序(由小到大)
main()
{
int a[11];
int i,j,t;
printf(“input 10 numbers :n”);
for(i=1;i<11;i++)
scanf(“%d”,&a [i]);
printf(“n”);
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1]){t=a [i];a [i]=a [i+1];a[i+1]=t;}
printf(“the sorted numbers :n”);
for(i=1;i<11;i++)
printf(“%d ”,a[i]);
} 8.若有定义int a [ ] [ 3 ]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为(A)
A、3
B、4
C、5
D、9 5.若有定义int a[2][3];则对数组元素的非法引用是(D)A.a[0][1/2]
B.a[1][1]
C.a[4-4][0]
D.a[0][3]
1/2==0
107、以下数组定义中,正确的是(B)A、int a[2][3]={1,2,3,4,5,6,7};B、int a[ ][ ]={{1,2,3},{4,5,6}, {7,8,9}};C、int a[2][ ]={1,2,3,4,5,6};D、int a[ ][4]={6} 实验九:scanf函数以空格结束一个字符串的输入,而gets函数以回车结束
4.以下程序结束后屏幕输出(B)
char str[]=“abcd”;printf(“%d”,strlen(str));
代表一个字节? A.4.B.5
C.6
D.7 补充:若题目问:“分配多少空间给数组str[],则结果为4个,包括一个结束标识符‘ ’”
实验十:scanf(“%f,%f”,&a,&b);输入20,30 逗号不要忘了
2.已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A.scanf(“%d”,&a);
B.scanf(“%lf”,&a);
C.scanf(“%c“,a);
D.scanf(”%u”,&a);
整型和字符型可互相转换,但浮点型不可以
用选择法对数组中10个整数按由小到大排序。所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换„„每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。
void sort(int array[],int n)
{int i,j,k,t;
for(i=0;i {k=i; for(j=i+1;j if(array[j] t=array[k]; array[k]=array[i]; array[i]=t;}} main() {int a[10],i; printf(“enter the arrayn”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); sort(a,10); printf(“the sorted array:n”); for(i=0;i<10;i++) printf(“%d”,a[i]); printf(“n”); } 1.若有以下函数定义: int fun(){ static int k=0;return ++k;} 以下程序段运行后屏幕输出为(D)int i; for(i=1;i<=5 i++) fun();printf(“%d”,fun()); 第六次调用 A.0 B.C.5 D.6 自增自减运算符比关系运算符高级,自增自减运算符属于算术运算符 *p=&a(该星号只起标识作用,没有特殊意义,标识p为指针变量。表达式对指针变量附值) 定义指针变量p后,*p 中的星号为指针运算符,整个表达式表示指针变量所指向的变量 数组变量赋值:scanf(“%c”,a);注意区分他们的区别 但&a 和a都是地址 整型变量赋值:scanf(“%d”,&a); 第二章 微处理器的结构 1.8086微处理器的内部结构及功能 2.8086的段式存储结构 段地址+偏移量地址=存储单元的物理地址 或者,段寄存器的值*16+偏移地址=存储单元的物理地址 3.段寄存器,通用寄存器,指针与变址寄存器,标志寄存器 (1)段寄存器通常和哪些寄存器配合形成物理地址 ds:Bx si di ss:bp(2)有哪些寄存器可以作为地址指针,访问存储单元 4.寻址方式(1)寻址方式的概念(2)寻址方式的分类 (3)各寻址方式中对于寄存器的限制(4)各类寻址方式的格式 (5)有哪些用于存储器访问的寻址方式 Mov ax,val mov ax,[bx] mov ax,[si] mov ax,[bx][si] 第三章 指令及寻址方式(参照课件) 1.汇编语句格式: [标号] 操作符 操作数 [;注释] 2.标号的概念以及其三个属性 Seg offset type 3.伪指令: (1)符号定义伪指令:EQU (2)数据定义伪指令:DB,DW,DD(3)段定义伪指令:SEGMENT、ENDS、ASSUME、END(4)代码定位伪指令ORG 4、运算符 (1)分析算符:SEG,OFFSET,SIZE,TYPE, LENGTH(2)组合算符:PTR 5.指令语句与伪指令语句的区别 6.数据段、堆栈段、代码段的用途 第四章 指令及程序设计 一、顺序结构 1.数据传送指令:MOV、PUSH、POP、XCHG、XLAT、LEA 2.算数运算指令:ADD、ADC、INC、SUB、SBB、DEC、NEG、CMP MUL、IMUL、DIV、IDIV 3.逻辑运算指令:TEST、OR、AND、NOT、XOR 4.移位指令:(SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR)逻辑左移/右移,算数左移/右移,循环左移/右移,带进位的循环左移/右移;以及移位指令对于CF、OF标志位的影响 二、分支结构 1.无条件转移指令 jmp 2.有条件的转移指令(1)Jc/jnc Jo/jno Jz/jnz Jp/jnp Js/jns(2)Ja jbe(3)Jg jl 3.分支程序编写 三、循环结构 1.循环控制指令LOOP 2.循环程序编写(两种控制方式 CX) 四、子程序结构 1.子程序定义伪指令、调用指令、返回指令 2.子程序设计中对于堆栈操作的要求 3.子程序的设计 五、综合程序设计 例:求内存中三组数据中最小值。(1)子程序 (2)求最小值.循环 分支 第三章 微型计算机结构 1.8086的段式存储结构 段地址+偏移量地址=存储单元的物理地址 或者,段寄存器的值*16+偏移地址=存储单元的物理地址 2.段寄存器,通用寄存器,指针与变址寄存器,标志寄存器 (1)段寄存器通常和哪些寄存器配合形成物理地址 ds:Bx si di ss:bp(2)有哪些寄存器可以作为地址指针,访问存储单元 3.寻址方式(1)寻址方式的概念(2)寻址方式的分类 (3)各寻址方式中对于寄存器的限制(4)各类寻址方式的格式 (5)有哪些用于存储器访问的寻址方式 Mov ax,val mov ax,[bx] mov ax,[si] mov ax,[bx][si](6)段跨越 第四章 汇编语言(参照课件) 1.汇编语句格式: [标号] 操作符 操作数 [;注释] 2.标号的概念以及其三个属性 Seg offset type 3.伪指令: (1)符号定义伪指令:EQU (2)数据定义伪指令:DB,DW,DD(3)段定义伪指令:SEGMENT、ENDS、ASSUME、END(4)代码定位伪指令ORG 4、运算符 (1)分析算符:SEG,OFFSET,SIZE,TYPE, LENGTH(2)组合算符:PTR 5.指令语句与伪指令语句的区别 6.数据段、堆栈段、代码段的用途 第五章 顺序结构程序设计 1.数据传送指令:MOV、PUSH、POP、XCHG、XLAT、LEA 2.算数运算指令:ADD、ADC、INC、SUB、SBB、DEC、NEG、CMP MUL、IMUL、DIV、IDIV 3.逻辑运算指令:TEST、OR、AND、NOT、XOR 4.移位指令:(SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR)逻辑左移/右移,算数左移/右移,循环左移/右移,带进位的循环左移/右移;以及移位指令对于CF、OF标志位的影响 第六章 分支结构程序设计 1.无条件转移指令 jmp 2.有条件的转移指令(教材P102)(1)Jc/jnc Jo/jno Jz/jnz Jp/jnp Js/jns(2)Ja jbe(3)Jg jl 3.分支程序编写 第七章 循环结构程序设计 1.循环控制指令LOOP、LOOPE/Z、LOOPNE/NZ以及他们的控制条件(对CF、ZF的判断)2.循环程序编写 3.串操作 ds:si es:di si di +-1/2 第八章 子程序设计 1.子程序定义伪指令、调用指令、返回指令 2.子程序设计中对于堆栈操作的要求 3.子程序的设计 第十二章 输入与输出中断 1.IN、OUT、INT指令的指令格式 2.CPU与外设之间的接口信号 3.CPU与外设之间的数据传送方式 4.CPU响应硬件可屏蔽中断的条件 5.8086/8088的中断类型的分类 6.中断向量表、中断向量的概念 7、硬件中断和软件中断的区别 一 选择 20分 10-20道 二 判断改错 20分 10道 三 简答 20分 3-4道 四 程序分析 20分 3-4道 五 程序设计 20分 2道*10分 循环+分支+子程序 类似:求内存中三组数据中最小值。(1)子程序 (2)求最小值.N 循环 分支 Strcmp的用法 原型:extern int strcmp(const char *s1,const char * s2); 用法:#include 功能:比较字符串s1和s2。 说明: 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇' '为止。如: “A”<“B” “a”>“A” “computer”>“compare” 特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。编辑本段应用举例 举例1:(在VC6.0中运行通过)#include char str1[20]={“i love ”}; char str2[20]={“zftd”}; printf(“%sn”,strcpy(str1,str2));} 输出的是“zftd”还是“zftdve ”? 也就是说strcpy是替换全部的str1,还是将str2复制到str1的前几个(str1占10字节,str2占5字节,输出是str2还是str2和str1的后5字节);strcpy之前,str1[]=“i love ”strcpy后, 复制过来5个字节,“zftd”和结尾的' '共5个字节.于是变成str1[]=“zftd e ”输出的时候,遇' '字符截断,于是只输出“zftd” 例2 定义一个字符串char a[20],和一个字符串c[]=“i am a teacher!”;把c复制到a中就可以这样用:strcpy(a,c);这个函数包含在头文件 01.C程序基本结构 一、C语言的特点: 1、C语言源程序的基本组成单位是函数;一个C程序可由若干个函数组成,其中必须有且仅有一个以main命名的主函数,其余的函数名称可由编程者自行设定。,2、C程序的执行总是由main()函数的第一个可执行语句开始,到main()函数的最后一个可执行的语句结束;而其他函数都是在main()函数开始执行以后,通过其他函数的调用才得以运行。 3、C语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include编译预处理命令将描述该库函数的头文件包含进去。 二、C程序的书写格式: 1、语句可从分开放在任意多行内; 如:printf(“To C,”); printf(“ or not to C:”); 与printf(“To C , or not to C:”);是等价的2、一行中可以有若干个语句; 如:a=123;b=345; 3、每个语句和数据定义的最后必须有一个分号; 三、C语言程序的运行: 1、编译(Compile):将C源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。 2、建造(Bulid): C语言程序示例:显示“Hello” #include int main(void) { printf(“Hello.n”); return 0; } 说明:#include printf函数来自”标准输入输出库”,可以产生格式化输出; n 告诉printf函数执行完信息显示后要进行换行操作; return 0 表明程序终止时会向操作系统返回值0; { }来标出main()函数的起始和结束。 02.数据类型 一、C语言的特点: 1、C语言源程序的基本组成单位是函数;一个C程序可由若干个函数组成,其中必须有且仅有一个以main命名的主函数,其余的函数名称可由编程者自行设定。 2、C程序的执行总是由main()函数的第一个可执行语句开始,到main()函数的最后一个可执行的语句结束;而其他函数都是在main()函数开始执行以后,通过其他函数的调用才得以运行。 3、C语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include编译预处理命令将描述该库函数的头文件包含进去。 二、C程序的书写格式: 1、语句可从分开放在任意多行内; 如:printf(“To C,”); printf(“ or not to C:”); 与printf(“To C , or not to C:”);是等价的2、一行中可以有若干个语句; 如:a=123;b=345; 3、每个语句和数据定义的最后必须有一个分号; 三、C语言程序的运行: 1、编译(Compile):将C源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。 2、建造(Bulid): C语言程序示例:显示“Hello” #include int main(void) { printf(“Hello.n”); return 0; } 说明:#include printf函数来自”标准输入输出库”,可以产生格式化输出; n 告诉printf函数执行完信息显示后要进行换行操作; return 0 表明程序终止时会向操作系统返回值0; { }来标出main()函数的起始和结束。 03,运算符和表达式 1、算术运算符和表达式 +:加法运算符,如 3+5; -:减法运算符,如 5-3; *:乘法运算符,如 5*8; /:除法运算符,如 3/6;参与运算量均为整型时,结果也为整型,舍去小数;若运算量中有一个是实型,则结果为双精度实型。 %:模运算符,也称“取余运算符”,用于计算两数相除后的余数,如 5%3=2; 2、赋值运算符和赋值表达式 赋值运算符:”=”,其作用是将一个表达式的值赋给一个变量; 其一般形式为:变量=表达式 如: x=a+b;赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。因此 a=b=c=5 可理解为 a=(b=(c=5));复合赋值运算符:+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|= 构成复合赋值表达式的一般形式为:变量 双目运算符=表达式 它等价于:变量=变量 运算符 表达式 如: a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7) r%=p 等价于r=r%p 3、类型转换 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下: 1)实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。 2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。 4、自增、自减运算符: 自增运算符:“++”,功能是将变量的值加1; 自减运算符:“--”,功能是将变量的值减1; 可有以下几种形式: ++i i自增1后再参与其它运算。 --i i自减1后再参与其它运算。 i++ i参与运算后,i的值再自增1。 i-- i参与运算后,i的值再自减1。 注: (1)”++”、”--“的操作对象只能是变量; (2)”++”、”--“运算优先级相同,且结合方向自右向左;-i++应理解为-(i++),【例】自增、自减运算、#include main() { int i=8; printf(“%dn”,++i);/* i先加1,再输出i,输出结果为9 */ printf(“%dn”,--i); /* i先减1,再输出i,结果为8 */ printf(“%dn”,i++);/* 先输出i,输出结果为8,i再加1,*/ printf(“%dn”,i--);/* 先输出i,输出结果为9,i再减1,*/ printf(“%dn”,-i++);/* 先加输出-i,输出结果为-8,i再加1 */ printf(“%dn”,-i--);/* 先输出-i,输出结果为-9,i再减1 */ } 5、求字节运算符 计算表达式的结果所占字节数或某种数据类型的定义字节数。 一般格式:sizeof(数据类型标识符)或 sizeof(表达式) 如: sizeof(float)的值为4,占4个字节; sizeof(2*3)的值为2,占2个字节; 6、关系运算符和关系表达式 关系运算符:“<”(小于)、“<=”(小于等于)、”>”(大于)、”>=”(大于等于)、”==”(等于)、“!=”(不等于)关系表达式:若关系表达式成立,其值为“真”,否则为“假”;在C语言中,用0代表“假”,用1代表“真”; 7、逻辑运算符和逻辑表达式: 逻辑运算符: “!”(非)、“&&”(与)、“||”(或);运算优先级:!>&&>|| 逻辑表达式:用逻辑运算符将表达式连接起来的式子;逻辑表达式的结果仍然是逻辑量(“真”或“假”) 8、条件运算符: 一般格式: <表达式1>?<表达式2>:<表达式3> 先计算表达式1,若表达式1的值为真,则计算表达式2的值,且表达式2的值为整个条件表达式的值;否则,计算表达式3的值,且表达式3的值即为整个条件表达式的值。 9、逗号运算符和逗号表达式 逗号运算符:”,”作为运算符,其功能是将多个表达式组成一个表达式; 一般形式:表达式1,表达式2,…,表达式n 求解过程:先计算表达式1,再计算表达式2,依此计算表达式n,最终,表达式n的值即为整个表达式的值。 04.顺序结构 一、概述: 顺序语句按照语法形式分为:表达式语句、函数调用语句、复合语句、流程控制语句和空语句。 1、表达式语句: 语法格式:表达式; 如:a+4; 其中赋值语句为最典型的表达式语句,如: a=5; a=b+3; 特别提示:分号(;)是表达式语句中不可缺少的一部分。 2、函数调用语句: 如:printf(”I am a student!”); 其中:printf()为系统提供的函数,用于显示信息。 3、复合语句: 所谓“复合语句”即由一对“{}”括起来的一组语句,也称“块语句”或“分程序”。 一般形式为: { 语句1 语句2 ...语句n } 如: { i++; j=a+3; printf(“%d,j=”,i,j); } 特别提示:复合语句中的最后一条语句的分号不得缺少;复合语句的“}”之后不得有分号。 4、空语句: “空语句”即为一个独立的分号。 如: main() { ...; ...} 二、数据的输入输出 C语言提供了一些输入输出函数,如printf()和scanf(),在程序中调用这些输入输出函数时,必须将标准输入输出头文件“stdio.h”包含到用户所编写的源程序中。 如:#include 其中:#include命令一般写在程序的开头位置。 1、格式输入输出 1、格式输出函数printf() (1)一般格式: printf(格式字符串,输出列表) 其中:“格式字符串”包括“输出字符”和“格式控制字符”(由%和格式字符组成,指定输出项的输出格式)。 • d格式符:用于输出十进制整数; %d:以十进制形式显示输出变量的值; %5d:以十进制形式显示变量的值,且至少占用5个字符的空间,若不够5位数字,则左侧补空格; %-5d:以十进制形式显示变量的值,且至少占用5个字符的空间,左对齐; %5.3d:以十进制形式显示变量的值,且至少占用5个字符的空间并至少有3位数字,若不够3位数字,则左侧补0; 如:#include main() { int i; i=40; printf(“%dn”,i); printf(“%5dn”,i); printf(“%-5dn”,i); printf(“%5.3dn”,i); } • f格式符:用于以小数形式输出实数; %10.3f:以定点十进制形式显示变量的值,且总共用10个字符,其中,整数位6位,小数位3位,小数点1位; 如:#include main() { float x; x=839.21f; printf(“%10.3fn”,x); } • c格式符:用于输出一个字符; 如: x=”a”,y =”b”,则 printf(%c %c“,x,y)的输出结果为:a b 若变量的值为整数,则输出该整数值为ASCII码的字符: 如 x=65,y=98,则 printf(“%c, %c”,x,y)的输出结果为: A, b; 同理,一个字符的数据也可以以整数的形式输出; 如 x=’a’,y=’B’,则printf(“%d,%d”,x,y)的输出结果为:97,66 • s格式符:用于输出一个字符串。 如:printf(“%s”,”I am a student!”) • e,E格式符:用于以指数形式输出实数。 如:printf(“%e”, 123.456),则输出结果为:1.234560e+002; • g,G格式符:用于输出实数,根据数值的大小自动选择f格式或e格式。 2、格式输入函数scanf() (1)一般格式: scanf(格式字符串,变量地址表) 其中:格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入)、“格式控制字符”(由%和格式字符组成,用来标定输入数据的格式)。 变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。 • d格式:用于输入十进制整数; 如:scanf(“%d,%d”,&x,&y);则输入格式为:123,3456 •u格式:用于输入十进制无符号整数; •f格式:用于输入以小数形式的实数; 如:scanf(“%f,%f”,&x,&y);则输入格式为:123.23,23.456 •c格式:用于输入一个字符; 如:scanf(“%c,%c”,&x,&y);则输入格式为:a,b •s格式:用于输入一个字符串; 如:scanf(“%s”,a);假定a为字符数组,则输入格式为:abcdef 注:输入的字符串中间不能包含空格。 特别说明: • 对于变量,”&”加变量名即为该变量的地址;如:&a、&b等分别表示变量a和变量b的地址; •对于字符串数组或字符指针型变量,数组名和指针变量名本身即为其地址; •可以在%和格式字符之间加表示位数的数字;如:scanf(“%5s”,p);表示只能输入5个字符给字符串指针p; 3、字符数据的输入输出: (1)putchar()函数:是向标准输入输出设备输出一个字符; 其调用格式为:putchar(ch);其中:ch为一个字符变量或常量; putchar()函数作用等同于 printf(“%c”,ch); (2)getch()getche()和getchar()函数: •getch():从键盘上读入一个字符,但不显示在屏幕上; •getche():从键盘上读入一个字符,显示在屏幕上; •getchar():从键盘上读入一个字符,并显示在屏幕上,但直到输入回车键时才结束输入,第一个字符为其函数的返回值。 05.选择结构 一、if语句: 一般格式: if(表达式)语句; 表示:当“表达式”成立时,则执行“语句”;否则跳过“语句”; 如:if(a>b)printf(“a>b!”); 例:若用户输入的数为3的倍数,则显示”OK” #include main() { int a; scanf(“%d”,&a); if(a %3==0)printf(“OK”); } 二、if-else 语句: 一般格式: if(表达式) 语句1; else 语句2; 例:给出用户输入的两个整数的较大者 #include main() { int a,b; scanf(“%d,%d”,&a,&b); if(a>b) printf(“the max=%d”,a); else printf(“ the max=%d”,b); } 三、if语句的嵌套 1、if子句中嵌套: • if(表达式1) if(表达式2)语句1; else 语句2; else 语句3; • if(表达式1) { if(表达式2)语句1;} else 语句2; 2、else子句中嵌套 • if(表达式1)语句1; else if(表达式2)语句2; else 语句3; • if(表达式1)语句1; else if(表达式2)语句2; 3、嵌套一般格式: if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; … else if(表达式n)语句n; else 语句n+1; 例:将用户输入的成绩按以下规则转换成等级成绩: 分数: 90~100 等级:优 分数: 80~89 等级:良 分数: 70~79 等级:中 分数: 60~69 等级:及格 分数: 60以下 等级:不及格 # include main() { int d; printf(“输入分数:”); scanf(“%d”,&d); if(d>=90)printf(“优”); else if(d>=80)printf(“ 良”); else if(d>=70)printf(“ 中”); else if(d>=60)printf(“ 及格”); else printf(“ 不及格”); } 四、条件语句: 表达式1 ? 表达式2 :表达式3 执行的过程:若表达式1的值为非0时,该条件语句的职位表达式2,否则为表达式3; 例:求一个整数的绝对值 #include main() { int i,absi; scanf(“%d”,&i); absi=i>0 ? i :-i; printf(“%d绝对值是%dn”,i,absi); } 五、switch语句 switch(表达式) { case 常量表达式1: 语句1; break; case常量表达式2: 语句2; break; … case常量表达式n: 语句n; break; default: 语句n+1; } 例:商店卖货物,每一件3.5元,按购买的数量给与优惠: 购买100件,优惠5%; 购买200件以上,优惠6%; 购买300件以上,优惠8%; 购买400件以上,优惠10%; 购买500件以上,优惠15%; #include main() { int n; float p,price; scanf(”%d“,&n); switch(n/100) { case 1: p=0.05; break; case 2: p=0.06; break; case 3: p=0.08; break; case 4: p=0.10; break; case 5: p=0.15; break; } price=3.5*n*(1-p); printf(”%应付款=%7.2fn“,price); } 06.循环结构 一、for语句: 一般格式: for(表达式1;表达式2;表达式3)语句; 表示:先计算表达式1的值,再计算表达式2的值,若表达式2的值为0,则跳出循环体,转去执行循环体后面的程序命令;若表达式2的值非0,则执行循环体中的语句,接着计算表达式3的值;而后,再从计算表达式2的值开始重复上诉操作,直到表达式2的值为0时结束。 例:计算sum=1+2+3+…+100的值” #include main() { int i,sum; sum=0; for(i=1;i<=100;i++) sum=sum+i; printf(“sum=%d”,sum); } 二、while 语句: 一般格式: while<表达式> 语句; 表示:先计算表达式的值,若为非0,则执行循环体语句,然后再计算表达式的值,重复上述过程,直到计算表达式的值为0时结束循环。 例:计算sum=1+2+3…+100的值 #include main() { int i,sum; i=1; sum=0; while(i<=100) { sum=sum+i; i++; } printf(“sum=%d”,sum); } 三、do-while语句 1、一般格式: Do 语句; While<表达式>; 表示:先执行一次循环语句,然后计算表达式的值,若表达式的值非0,则再执行循环语句,然后从计算表达式的值开始重复上述过程,直到计算表达式的值为0,循环结束。 例:计算sum=1+2+3…+100的值 #include main() { int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=100); printf(“sum=%d”,sum); } 四、break和continue语句: 1、break语句: 使用break语句可以提前结束由while、for、do-while语句构成的循环,而去执行循环下面的语句。 例:判定用户输入的一个数是否为素数 #include main() { int a,d; printf(“请输入一个整数:”); scanf(“%d”,&a); for(d=2;d if(a%d==0) break;// 跳出当前的循环,执行循环后面的语句第二篇:语言及程序设计要点总结
第三篇:语言及程序设计要点总结
第四篇:程序设计总结
第五篇:C语言程序设计基础知识要点