复习要点.docx

上传人:b****3 文档编号:2844220 上传时间:2022-11-15 格式:DOCX 页数:13 大小:19.43KB
下载 相关 举报
复习要点.docx_第1页
第1页 / 共13页
复习要点.docx_第2页
第2页 / 共13页
复习要点.docx_第3页
第3页 / 共13页
复习要点.docx_第4页
第4页 / 共13页
复习要点.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

复习要点.docx

《复习要点.docx》由会员分享,可在线阅读,更多相关《复习要点.docx(13页珍藏版)》请在冰豆网上搜索。

复习要点.docx

复习要点

1、变量的生存期

变量存储类别:

auto自动的、extern外部的、static静态的、register寄存器的

静态变量和外部变量的初始化是在编译阶段完成的

自动变量的赋值是函数调用时进行的

函数中未指定存储类别的局部变量,其隐含的存储类别为:

自动(auto)

函数的形式参数隐含的存储类型说明是:

自动(auto)

在C语言中,形参的缺省存储类是:

自动(auto)

外部变量不能用extern关键字显式定义,但可以用extern声明。

2、变量与常量

变量名(标识符):

只能字符、数字和下划线,不能以数字开头。

在C程序中所用的变量必须先定义后使用

在C语言中,大小写是有区别的,例如stu和STU是两个不同的变量

C语言中,一个int型数据在内存中占2个字节、float占4个字节、double占8个字节、char占1个字节;整型数据的取值范围:

-32768~32767、无符号整型的取值范围:

0~65535

在C语言中,char型数据在内存中的存储形式是ASCII码,整型和字符型是可以通用的。

数值常量的表示:

整型(八进制0开头、十六进制0x开头)、实型(指数用e(E)表示,e(E)的前后必须有数字,且e(E)的数字必须为整数)、字符型用单引号括起来、字符串用双引号括起来

变量的赋值:

不同类型的数据可以相互赋值。

整型数据可以赋给整型变量、也可以赋给实型变量、也可以赋给字符型变量;实型数据可以赋给实型变量,也可以赋给整型变量。

指针变量:

指针变量中存放的是某个变量的地址,而不是该变量的值、指针变量的类型与它所指向的变量类型一致、指针变量的命名规则与标识符相同。

 

3、赋值表达式(=)

运算方向:

自右向左

常见赋值:

a=5、a=(b=4)+(c=2)、i*=i+1、a=b=c、k=2*4,k*4

x=x+y;y=x-y;x=x-y;

t=x;x=y;y=t;

指针赋值:

int*p=&x;

错误的赋值:

a:

=b+1、int18.5%3、a=b+c=1、a=a+7=c+b

intp=&x、int*p=x

int*p,x;*p=*x;

强制类型转换:

(int)i、(float)f、(int)a+b、(int)(a+b)

4、关系、逻辑表达式

逻辑运算符:

&&、||、!

比较运算符:

>、>=、==、<、<=

常见的表达:

x<=y

x≥y≥z(x>=y&&y>=z)

闰年(year%4==0&&year%100!

=0)||year%400==0(1990、1992、1996、2000)、

a=5,b=6,w=1,x=2,y=3,z=4:

(a=w>x)&&(b=y>z)

x=2,y=3,z=4;x+y&&z

x=3,y=4,z=5:

'y'&&'y'、x||y+z&&y-z、!

(x

z||1)

a=1,b=2,c=3,d=4,m=2,n=2:

(m=a>b)&&(n=c>d)

大写字母(x>=’A’&&x<=’Z’)

小写字母(x>=’a’&&x<=’z’)

c=(c>='A'||c<='Z')?

c+32:

c

5、自增自减运算符

四种情况:

++i、--i、i++、i--

常见的题目:

intx=2;z=-x+++1;

intj=3;printf("%d,",++j);printf("%d",j++);

y=10;x=y++;

a=3;printf("%d,",++a);printf("%d",a++);

6、逗号运算符

运算过程:

从左向右,依次计算每个表达式,最后一个表达式的值就是逗号表达式的值。

常见表达形式:

y=((x=3*y,x+1),x-1)

(x=6,x+1,y=6,x+y)

 

7、数组的使用

数组的定义:

一维数组inta[5]、二维数组doublea[1][4]等。

数组的长度只能是整型常量、不能是变量。

#definesize10;

charstr1[size],str2[size+2];

数组的下标是从0开始的。

数组的初始化:

正确的:

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

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

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

chars[8]={"Beijing"};

char*s={"Beijing"};

char*s;s="Beijing";

chars[10];strcpy(s,"abcdefg");

错误的:

inta[2][]={{1,0,1},{5,2,3}};

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

inta[][3]={{1,0,1}{},{1,1}};

chars[8];s={"Beijing"};

chars[8];s="Beijing";

char*s;s={"Beijing"};

8、函数的使用

在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套

若使用一维数组名作函数实参,在被调用函数中,不需要考虑形参数组的大小

C语言程序中,当调用函数时,实参和虚参各占一个独立的存储单元

参数传递:

值传递(单向)、地址传递(双向)

关于return语句,可以在同一个函数中出现多次

 

9、其他

C语言中,if与else的配对关系是:

每个else总是与它上面的最近的if配对。

continue语句来终止本次循环

break语句来终止整个循环

在位运算中,操作数每右移一位,结果相当于操作数乘以2

无符号数的输出:

intk=-1;printf("%d,%u\n",k,k);

预处理命令行都必须以#号开始.

 

分析以下代码:

main()

{

intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

1010,91

 

main()

{inta=100,x=10,y=20,okl=5,ok2=0;

if(x

if(y!

=10)

if(!

okl)a=1;

else

if(ok2)a=10;

a=-1;

printf("%d\n",a)

}

-1

 

x=3;

do

{y=x--;

if(!

y){printf("x");continue;}

printf("#");

}while(1<=x&&x<=2);

#include

main()

{inti,b,k=0;

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

{b=i%2;

while(b-->=0)k++;

}

printf("%d,%d",k,b);

}

 

#include

main()

{floata=2,b,x=2;

if(a<10.0)b=1.0/x;

elseif((a<0.5)&&(a!

=2.0))b=1.0/(a十2.0);

elseif(a<10.0)b=1.0/x;

elseb=10.0;

printf("%f\n",b);

}

0.500000

 

main()

{inta=5,b=0,c=0;

if(a=b+c)printf("***\n");

e1seprintf("$$$\n");}

$$$

 

x=-1;

do

{x=x*x;}

while(!

x);

1

 

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

1

 

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

printf("x=%d,y=%d",x,y);

15,14

 

知道下列循环的作用

#include

voidmain()

{inti,j,a[2][3];

for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;

for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;

for(i=0;i<6;i++)a[i/3][i%3]=i+1;

for(i=1;i<=6;i++)a[i][i]=i;

for(i=0;i<2;i++){for(j=0;j<3;j++)

printf("%5d",a[i][j]);}

}

 

//以下几个程序主要是填空和改错

程序功能:

求一元二次方程的根。

#include

#include

main()

{

doublex1,x2,imagpart;

floata,b,c,disc,realpart;

scanf("%f%f%f",&a,&b,&c);

printf("theequation");

if(a<=1e-6)

printf("isnotquadratic\n");

else

disc=b*b-4*a*c;

if(fabs(disc)==1e-6)

printf("hastwoequalroots:

%-8.4f\n",-b/(2*a));

elseif(fabs(disc)>1e-6)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("hasdistinctrealroots:

%8.4fand%.4f\n",x1,x2);

}

else

{

realpart=-b/(2*a);

imagpart=sqrt(-disc)/(2*a);

printf("hascomplexroots:

\n");

printf("%8.4f=%.4fi\n",realpart,imagpart);

printf("%8.4f-%.4fi\n",realpart,imagpart);

}

}

 

判断其是否是素数,若为素数输出1,否则输出0.

main()

{inti,x,y=1;

scanf("%d",&x);

for(i=2;i<=x-1;i++)

if(x%2==0){y=0;break;}

printf("%d\n",y);

}

 

求1!

+3!

+5!

+……+n!

的和

#include

main()

{

longintf,s;

inti,j,n;

s=0;

scanf("%d",&n);

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

{

f=1;

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

f=f*j;

s=s+f;

}

printf("n=%d,s=%ld\n",n,s);

}

 

程序:

输入数组,最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。

#include

input(number)

intnumber[10];

{

inti;

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

scanf("%d,",&number[i]);

scanf("%d",&number[9]);

}

max_min

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1