程序设计要点总结

时间:2019-05-12 13:16:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《程序设计要点总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《程序设计要点总结》。

第一篇:程序设计要点总结

实验三:单精度的有效数字为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 数学函数的应用:cos(x)sin(x)tan(x)fabs(x)log(x)log10(x)pow(x,y)x的y次方;

实验六:不完全运算: 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 #include void main(){ char string[20];char str[3][20];int i;for(i=0;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);else strcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf(“nThe largest string is %sn”,string);}  Strcpy的用法 例1 #include #include void main(){

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[]=“zftde ”输出的时候,遇''字符截断,于是只输出“zftd” 例2 定义一个字符串char a[20],和一个字符串c[]=“i am a teacher!”;把c复制到a中就可以这样用:strcpy(a,c);这个函数包含在头文件 中.程序代码: #include #include void main(){ char a[20],c[]=“i am teacher!”;strcpy(a,c);cout<

第五篇: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 是必不可少的,它包含了C语言标准输入输出库的相关信息;

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 是必不可少的,它包含了C语言标准输入输出库的相关信息;

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;// 跳出当前的循环,执行循环后面的语句

if(d

printf(“%d 不是素数”, a);

else

printf(“%d 是素数 “,a);

}

2、continue:

continue语句用于for、while、do-while语句中,其作用是结束本次循环,接着进入下一次是否执行循环的判断。例:输入10个非0的整数并求和。

#inclu de

main()

{

int i,n=0,sum=0;

while(n<10)

{

printf(“ 请输入整数:”);

scanf(“%d”,&i);

if(i==0)

continue;// 若为0,则继续输入下一个数

sum+=i;

n++;

}

printf(“%d”,sum);

} 五、三种循环的比较:

1、三种循环可以处理同一个问题,一般情况下可以相互代替;

2、while和do-while循环语句只在while语句之后指定循环条件,在循环体内应包含使循环趋于结束的语句;for循环语句可以在<语句3>中包含使循环趋于结束的语句;

3、对于while和do-while循环语句,循环变量的初始化应在while和do-while语句之前完成;for循环语句可以在<表达式1>中进行;

4、while和for语句是先判断表达式,后执行循环;do-while循环语句是先执行循环,后判断表达式;

07数组

数组是一组具有同一名字、不同下标的变量。数组中带下标的变量称为数组元素,每个数组元素由数组名字和下标唯一地来确定;同一数组中的元素数据类型相同。一、一维数组:

1、定义:只有一个下标的数组。

2、定义格式: 类型说明符

数组名[常量表达式]

如: int a[3];//定义了一个一维数组,名称为a,数据类型为整型,含3个数组元素 a[0]、a[1]、a[2];

说明:

•类型说明符:是指数组的数据类型;

•常量表达式:是一个值为正整数的表达式,用来表示该数组的元素的个数,即数组的大小;

3、数组的引用:

数组名[下标];

如: a[2]

4、数组的初始化:

•对数组的全部因素赋初值:

如: int a[3]={10,20,30};则该语句执行后,a[0]=10,a[1]=20,a[2]=30;

• 对数组的部分元素赋初值:

如:int b[3]={12,11};则该语句执行后,b[0]=12,b[1]=11,a[2]=0;

•对数组的全部元素赋初值时,也可将数组定义为一个不确定长度的数组:

如:int c[ ]={10,15,20};则该语句执行后,数组c的长度自动确定为3,c[0]=10,c[1]=15,c[2]=20;

例:将输入的10个整数按反序输出

#include

main()

{

int a[10],i;

printf(”请输入10个整数:“);

for(i=0;i<10;i++)

scanf(”%d“,&a[i]);

printf(” 反序输出:“);

for(i=9;i>=0;i--)

printf(”%d“,a[i]);

printf(”n“);

}

例:计算Fibonacci数列的前20项

Fibonacci数列定义:

f(1)=1

f(2)=1

f(n)=f(n-1)+f(n-2)(n>2)

#include

main()

{

int f[21],i;

f[1]=1;

f[2]=1;

for(i=3;i<=20;i++)

f[i]=f[i-1]+f[i-2];

for(i=1;i<=20;i++)

{

printf(”%8d“,f[i]);

//每个数字占8位

if(i%5==0)

printf(”n“);

//按5个一行输出

}

} 二、二维数组:

具有两个下标的数组为二维数组。

1、定义格式: 类型说明符

数组名[常量表达式][常量表达式]

如: int a[3][2];//定义了一个二维数组,名称数组名为a,含有6个元素:a[0][0]、a[0][1]、a[1][0]、a[1][1]、a[2][0]、a[2][1];

说明:

•第一个常量表达式指出的是数组的行数;第二个常量表达式指出的是数组的列数;

•二维数组元素的顺序是:按行存放;即先顺序存放第一行的元素,再存放第二行的元素…以此类推;

其存储格式:

a[0][0] a[0][1]

a[1][0] a[1][1]

a[2][0] a[2][1]

2、二维数组的初始化: 同一维数组。

•分行为二维数组赋初值:

int a[3][2]={{1,2},{3,4},{5,6}};则该语句执行后,a[0][0]=1, a[0][1]=2, a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;

•按数组在存储时的排列次序赋初值:

int a[3][2]={1,2,3,4,5,6};

•对数组的部分元素赋初值:

int a[3][2]={{1},{2,3},{4}};

•忽略第一维的长度,对二维数组赋初值:

int a[][2]={1,2,3,4,5,6};该语句执行后,C语言系统自动计算出第一维的长度为6/2=3,同样有:a[0][0]=1, a[0][1]=2,a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;

例:将两个2行3列的矩阵相加,并显示结果。

#include

main()

{

int a[2][3]={1,3,5,7,9,11};

int b[2][3]={2,4,6,8,10,12};

int c[2][3],sum=0,i,j;

for(i=0;i<2;i++)

//i 表示第1行到第3行

for(j=0;j<3;j++)

//j 表示第1列到第3列

c[i][j]=a[i][j]+b[i][j];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

{

printf(“%5d”,c[i][j]);

if((j+1)%3==0)printf(“n”);

} }

08字符数组

字符数组是用来存放字符的数组,字符数组中的一个元素存放一个字符。

1、字符数组的定义:

char a[10];

2、字符串:字符串是借助于字符数组来存放的,并规定以字符’’(占用存储空间,但不计入字符串的长度)为字符串的结束标记。

3、字符串处理函数:

•scanf(“%s”,a);//以格式符%s输入字符串,输入的字符串自动以’’结尾;输入的字符数组名前不加”&”前缀;

•printf(“%s”,a);//以格式符%s输出字符串,输出的字符串以’’结尾;

•gets(a);//a为字符数组名,输入的字符可以包含’’字符;

•puts(a);//a为字符数组名,输入的字符可以包含’’字符;

•strcat(字符串1,字符串2);//把字符串2连接到字符串1后;

•strcpy(字符数组1,字符串2);//把字符串2拷贝到字符数组1中;

如:str为字符数组,将字符常量赋予str: strcpy(str,”abcdef“);

•strcmp(字符串1,字符串2);//比较两个字符串,若相等,则返回0,若字符串1>字符串2,则返回1,否则返回-1;

如:比较两个字符串str1、str2:if(strcmp(str1,str2)==1)printf(”str1>str2“);

•strlen(字符数组);//返回字符数组中包含的字符串的长度;

•strlwr(字符串);//将字符串的大写字符转换为小写;

•strupr(字符串);//将字符串的小写字符转换为大写;

例:不使用strlen()函数,计算一个字符串的长度

#include

main()

{

int i=0;

char str[30];

printf(“ 输入一个字符串:”);

gets(str);

while(str[i]!=’’)

i++;

printf(“字符串长度为:%dn”,i);

}

例:将一字符串逆转

#include

#include

main()

{

char str[20],temp;

int i,j;

printf(“输入一个字符串:”);

gets(str);

for(i=0;i

{

j=strlen(str)-1;

temp=str[i];

str[i]=str[j-i];

str[j-i]=temp;

}

printf(“倒置的字符串为:%sn”,str);

}

09指针

字符数组是用来存放字符的数组,字符数组中的一个元素存放一个字符。

1、字符数组的定义:

char a[10];

2、字符串:字符串是借助于字符数组来存放的,并规定以字符’’(占用存储空间,但不计入字符串的长度)为字符串的结束标记。

3、字符串处理函数:

•scanf(“%s”,a);//以格式符%s输入字符串,输入的字符串自动以’’结尾;输入的字符数组名前不加”&”前缀;

•printf(“%s”,a);//以格式符%s输出字符串,输出的字符串以’’结尾;

•gets(a);//a为字符数组名,输入的字符可以包含’’字符;

•puts(a);//a为字符数组名,输入的字符可以包含’’字符;

•strcat(字符串1,字符串2);//把字符串2连接到字符串1后;

•strcpy(字符数组1,字符串2);//把字符串2拷贝到字符数组1中;

如:str为字符数组,将字符常量赋予str: strcpy(str,”abcdef“);

•strcmp(字符串1,字符串2);//比较两个字符串,若相等,则返回0,若字符串1>字符串2,则返回1,否则返回-1;

如:比较两个字符串str1、str2:if(strcmp(str1,str2)==1)printf(”str1>str2“);

•strlen(字符数组);//返回字符数组中包含的字符串的长度;

•strlwr(字符串);//将字符串的大写字符转换为小写;

•strupr(字符串);//将字符串的小写字符转换为大写;

例:不使用strlen()函数,计算一个字符串的长度

#include

main()

{

int i=0;

char str[30];

printf(“ 输入一个字符串:”);

gets(str);

while(str[i]!=’’)

i++;

printf(“字符串长度为:%dn”,i);

}

例:将一字符串逆转

#include

#include

main()

{

char str[20],temp;

int i,j;

printf(“输入一个字符串:”);

gets(str);

for(i=0;i

{

j=strlen(str)-1;

temp=str[i];

str[i]=str[j-i];

str[j-i]=temp;

}

printf(“倒置的字符串为:%sn”,str);

}

10函数

C程序是由函数组成的,有且只有一个主函数main(),由主函数调用其他函数,其他各函数也可以相互调用。

1、函数的定义: 一般格式:

类型说明 函数名(形式参数表)

//函数头

{

说明部分;

//函数体

执行部分;

}

其中:类型说明:是指函数返回值的数据类型;默认为int;

函数名:为一标识符;代表了函数的入口地址;

形式参数表:是用逗号分隔的一组变量说明,指出每一个形式参数的类型和名称;

函数值的返回:有时,调用函数是为了计算一个结果,这是需要使用返回语句将就是结果返回给主调函数,此值即为函数的返回值;

一般格式:return(表达式);

其中,圆括号可以省略;

当函数不需要返回值时,可以写成:return;

例:编写一个函数power(),用于计算x的n次方的值

#include

float power(float x,int n)

{

int i;

float s;

s=1;

for(i=1;i<=n;i++)

s=s*x;

return(s);

}

2、函数的调用:

C语言中函数调用的一般格式:

函数名(实参表);

如:float f;

f=power(3,10);

3、数组作为函数的参数

•数据元素作为函数实参

在函数调用时,把数组元素作为实参传递给形参,实现单向的值传递;

如:判别各个元素的值,大于0,则输出该值,小于或等于0,则输出0

#include

void func(int x)

{

if(x>0)

printf(“%4d”,x);

else

printf(“%2d”,0);

}

main()

{

int a[5],i;

printf(“请输入5个数:”);

for(i=0;i<5;i++)

scanf(“%d”,&a[i]);

for(i=0;i<5;i++)

func(a[i]);//将数组元素作为实参传递

}

•数组名作为函数参数

(1)使用数组名作为函数参数时,形参和实参是同类型的数组;

(2)在主调函数和被调函数中分别定义数组;

(3)数组名代表了数组的起始地址,数组名作为函数参数传递的是该数组的起始地址,而不是该数组元素的值;

例:将数组中的元素的和计算并显示出来。

#include

func(int b[])

{

int sum=0,i;

for(i=0;i<10;i++)

sum+=b[i];

return sum;

}

main()

{

int a[]={1,2,3,4,5,6,7,8,9,10},s;

s=func(a);

//将数组a组为参数传递给函数func

printf(”s=%d“,s);

}

4、内部函数和外部函数

• 内部函数:在定义函数时,在其类型名之前加“static”,则所定义的函数为内部函数,只能被所在的源文件中的函数调用,其他源文件若有同名的内部函数,互不干扰。

• 外部函数:在定义函数时,在其类型名之前加“extern”(也可省略),则所定义的函数为外部函数(也称全局函数),可被其他源程序的函数调用。

如:static int func_1()

//内部函数

{

...}

extern func_2()

//外部函数

{

...}

综合测试

~~~~~给定程序为:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上只剩一个桃子。求第一天共摘了多少桃子。由主函数输出第一天共摘桃子数。输出结果为1534。

#include int fun(int n){ } main(){ int n=10,sum;sum=fun(n);printf(”sum=%d“,sum);}

解析:根据题意,第n+1天剩下的桃子数为x(n+1),第n天剩下的桃子数为x(n),则满足:x(n)=2*(x(n+1)+1);第十天剩下1个桃子,可推算出第九天剩下的数量;可利用for循环,递推出其他天数剩下的桃子数:

int fun(int n)

{

int x,i;

x=1;

//第十天剩下的数量

for(i=n-1;i>=1;i--)//从第九天开始推算

{

x=2*(x+1);

}

return x;}

~~~~~~给定程序的功能是:从键盘输入10个整数求其中的最大值。#include main(){ int fun(int b[],int n);int max;int i,a[10];

for(i=0;i<10;i++)

scanf(”%d“,&a[i]);

max=fun(a,10);

printf(”max=%d“,max);}

int fun(int b[],int n){

} 解析:比较最大值的一般算法:设置一个变量max,第一步:将第一个数赋予max;第二步:利用for循环,将剩下的9个数依次与max相比较,每次比较,max均等于大的数;

int fun(int b[],int n){

int max,i;

max=b[0];//将第一个数赋予max

for(i=1;i<=n-1;i++)

//将剩下的9个数依次与max比较;

if(max

return max;}

~~~~~~~给定程序的功能是:将给定字符串中所有的小写字母转换成大写字母(大写字母A的ASCII码为65,小写字母a的ASCII码为97)。#include #include void hs(char c[]){ } main(){

char a[]={”AgRbhLfFGjI“};

hs(a);

printf(”%s“,a);} 解析:将给定字符串的每一个字符取出,判断是否介于'a'和'z'之间,若是,则将其转换为大写字符,即其ASC码值-32。void hs(char c[]){

unsigned int i;

for(i=0;i

if(c[i]>='a' && c[i]<='z')

c[i]=c[i]-32;

return;} ~~~~~~~给定程序的功能是:求1+2+3+4+5+6+......+n(n的值由键盘输入)。include main(){

int fac(int n);

int n,sum;

scanf(”%d“,&n);

sum=fac(n);

printf(”sum=%d“,sum);}

int fac(int n){

} 解析:函数fac的功能是计算1-n之间整数的累计和。int fac(int n){

int i,sum;

sum=0;

//累计和的初始值为0

for(i=1;i<=n;i++)

sum+=i;

//将1-n之间的整数累加起来

return sum;}

~~~~~~~~~给定程序的功能是:从键盘输入

10个整数,求其中的最小值。

#include ”stdio.h“ main(){

int fun(int x[],int n);

int a[10],i,min;

printf(”please input 10 numbers:n“);

for(i=0;i<10;i++)

scanf(”%d“,&a[i]);

min=fun(a,10);

printf(”min=%dn",min);}

int fun(int x[],int n){ } 解析:比较最小值的一般算法:设置一个变量min,第一步:将第一个数赋予min;第二步:利用for循环,将剩下的9个数依次与min相比较,每次比较,min均等于小的数;

int fun(int x[],int n){

int min,i;

min=x[0];//将第一个数赋予min

for(i=1;i<=n-1;i++)

//将剩下的9个数依次与min比较;

if(min>x[i])min=x[i];

return min;}

下载程序设计要点总结word格式文档
下载程序设计要点总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    程序设计教学总结

    程序设计教学工作总结 在一学期的教学工作中,本人能坚持党的教育方针,认真学习国家的各种法律法规,严格要求自己,努力培养自己的职业道德修养与正确的行为规范,在实际的工作岗位......

    程序设计期中考总结[定稿]

    1.Von Neumann提出存储程序计算机模型; 2.存储程序结构特点:以运算器为核心;采用存储程序原理(指令和数据都在存储器);存储器按地址访问的、线性编址的空间;控制流由指令产生;指令由......

    C++程序设计总结

    第一章面向对象编程原理 近五十年间,软件技术经历了多个阶段的发展演变  目前为止最流行的技术还是面向过程编程(POP)  面向过程编程采用了自顶向下的设计方案,问题被看做多个......

    VFP程序设计总结

    班级:电气2013-1 学号:20***9 VFP程序设计 ——课设总结 为期几周的VFP数据库设计的课设就快过去了,在这做课设的这段时间,可以说是有苦有甜,令人难忘。因此,有必要写一......

    程序设计进修总结

    《程序设计》进修总结通过这短短2天的培训,使我对教育有了新的认识,主要的收获如下: 1、教育应以培养学生能力为主,给学生传授专业知识、技能只是培养学生的学习和社会能力的一......

    第四届程序设计大赛总结

    计算机科学系团学会办公室第四届 大学生程序设计大赛活动总结 一、大赛安排 1、时间:2010年11月14日8:00-13:00 2、地点:新校区一实验楼510机房 3、参赛对象:全校对编程感兴趣的......

    《Java程序设计》课程总结.

    《Java程序设计》总评成绩分析及课程总结 1、学期授课计划是否符合教学大纲要求 符合。 2、教学内容及进度是否与学期授课计划有出入,是何原因 无出入,完成规定的学习内容。......

    程序设计总结(优秀范文五篇)

    程序设计总结 懂的 ....................................................................................................................................................