C程序复习文档格式.docx

上传人:b****3 文档编号:17532758 上传时间:2022-12-07 格式:DOCX 页数:27 大小:59.69KB
下载 相关 举报
C程序复习文档格式.docx_第1页
第1页 / 共27页
C程序复习文档格式.docx_第2页
第2页 / 共27页
C程序复习文档格式.docx_第3页
第3页 / 共27页
C程序复习文档格式.docx_第4页
第4页 / 共27页
C程序复习文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C程序复习文档格式.docx

《C程序复习文档格式.docx》由会员分享,可在线阅读,更多相关《C程序复习文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

C程序复习文档格式.docx

大学英文字母A~Z,小写英文字母a~z。

●数字:

1~9.

●专门符号:

29个:

”#&

‘()*+,—·

/:

<

=>

?

[\]ˆ_﹛﹜~

●空格符:

空格、水平制表符(tab)、垂直制表符、换行、换页(formfeed)。

●不能显示的字符:

空(null)字符(以'

0'

表示)、警告(以'

\a'

表示)、退格(以'

\b'

表示)、回车(以'

\r'

表示)等。

5、最常用的算术运算符

运算符

含义

举例

结果

+

正号运算符(单项运算符)

+a

a的值

-

负号运算符(单项运算符)

-a

a的算数负值

*

乘法运算符

a*b

a和b的乘积

/

除法运算符

a/b

a除b的商

%

求余运算符

a%b

a除b的余数

加法运算符

a+b

a和b的和

减法运算符

a-b

a和b的差

6、自增、自减运算符

作用是使变量的值加1或减1(++i、--i、i++、i--)

例如:

a的初始值为3,

(a++)+(a++)+(a++)=9

(++a)+(++a)+(++a)=18

7、运算符的优先级(详见第四章)与结合性

自左向右(又称“左结合性”,即运算对象先与左面的运算符结合):

算数运算符

结合性

自右向左(即右结合性):

赋值运算符

8、不同类型数据间的混合运算:

编译时,从左至右扫描。

(规律:

同一个字母,用小写表示的字符的ASCII代码比大写的大32,'

a'

的ASCII码为97,'

A'

的ASCII码为65)

9、C运算符

除了算数运算符外,C还提供其他运算符,共有以下几类:

(1)算术运算符(+-*/++--)

(2)关系运算符(> < == <= >=  !

=)

(3)逻辑运算符(!

&

&

||)

(4)位运算符(针对二进制的运算)(<

<

>

>

~|^&

例如:

和&

2&

0=02&

3=1(非零即为1)

3=2(2:

0103:

011010&

011=010)

(5)赋值运算符(=及其扩展赋值运算符)

(6)条件运算符(?

(7)逗号运算符(优先级最低)(,)

(8)指针运算符(*和&

(9)求字节数运算符(sizeof)

(10)强制类型转换运算符((类型))

(11)成员运算符(.->

(12)下标运算符([])

(13)其他

10、用printf函数输出数据

Printf函数的一般格式为:

printf(格式控制、输出列表)

Printf函数的一般形式可以表示为:

printf(参数1,参数2,...,参数n)

11、用scanf函数输出数据

Scanf函数的一般形式:

scanf(格式控制,地址列表)

12、用putchar函数输出一个字符,puts输出一个字符串

Putchar函数的一般形式为:

putchar(c)

用getchar函数输入一个字符,gets输入一个字符串

Getchar函数的一般形式为:

getchar()

第4章选择结构程序设计

1、if语句的一般形式:

if(表达式)语句1

[else语句2]

方括号内的部分(即else子句)为可选的,即可有可无。

嵌套(就近原则,向上就近且为配套的)

2、关系运算符及其优先次序

C语言提供6种关系运算符:

(1)

(小于)算术运算符(高)

(2)<

=(小于或等于)优先级相同(高)

(3)>

(大于)关系运算符

(4)>

=(大于或等于)

(5)

==(等于)优先级相同(低)赋值运算符(低)

(6)!

=(不等于)

3、逻辑运算符及其优先次序

说明

逻辑与

a&

a

如果a和b都为真,则结果为真,否则为假

||

逻辑或

a||a

如果a和b有一个以上为真,则结果为真,二者都为假时,结果为假

!

逻辑非

如果a为假,则!

a为真,如果a为真,则!

a为假

(非)(高)

算术运算符

关系运算符

和||

赋值运算符(低)

4、条件表达式的一般形式:

表达式1?

表达式2:

表达式3

真(非0)假(0)

5、例题:

输入一个字符,判别它是否为大写字母,如果是,将它转化为小写字母;

如果不是,不转换。

然后输出最后得到的字符。

(p99例4.4)(重点掌握大小写的转换)

解题思路:

用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换。

编写程序:

#include<

stdio.h>

intmain()

{

charch;

scanf("

%c"

&

ch);

ch=(ch>

='

ch<

z'

)?

(ch+32):

ch;

//或ch=(ch<

=65&

=90)?

(ch+32):

printf("

%c\n"

ch);

return0;

}

运行结果:

A

a

输入大写字母A,输出小写字母a。

6、有三个整数a,b,c,由键盘输入,输出其中最大的数。

(P112T4)

程序如下:

intmain()

{

inta,b,c;

printf("

请输入三个数:

"

);

scanf("

%d,%d,%d"

a,&

b,&

c);

运行结果:

if(a<

b)请输入三个整数:

12,34,9

if(b<

c)max=34

max=%d\n"

c);

else

b);

elseif(a<

c)

else

a);

return0;

}

方法二:

使用条件表达式:

{inta,b,c,temp,max;

temp=(a>

b)?

a:

b;

//将a和b中的大者放入temp中

max=(temp>

c)?

temp:

c;

//将a和b中的大者和c比较,取最大者

三个整数中最大数是%d\n"

max);

7、给一个不多余5位的正整数,要求:

1 求出它是几位数;

2 分别输出每一位数字;

3 按逆序输出各位数字,如原数为234,应输出321。

(P113T9)

解:

math.h>

intmain()

intnum,indiv,ten,hundred,thousand,ten_thousand,place;

请输入一个整数(0-99999):

%d"

num);

if(num>

9999)

place=5;

elseif(num>

999)

place=4;

99)

place=3;

9)

place=2;

elseplace=1;

位数:

%d\n"

place);

每位数字为:

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

switch(place)

{case5:

%d,%d,%d,%d,%d"

ten_thousand,thousand,hundred,ten,indiv);

\n反序数字为:

printf("

%d%d%d%d%d\n"

indiv,ten,hundred,thousand,ten_thousand);

break;

case4:

%d,%d,%d,%d"

thousand,hundred,ten,indiv);

%d%d%d%d\n"

indiv,ten,hundred,thousand);

case3:

hundred,ten,indiv);

%d%d%d\n"

indiv,ten,hundred);

case2:

%d,%d"

ten,indiv);

%d%d\n"

indiv,ten);

case1:

indiv);

请输入一个整数(0~99999):

98423printf("

位数:

5

每位数组为:

9,8,4,2,3

反序数字为:

32489

}

8、输入四个整数,要求按由大到小的顺序输出。

(P113T11)

{intt,a,b,c,d;

请输入四个数:

c,&

d);

a=%d,b=%d,c=%d,d=%d\n"

a,b,c,d);

if(a>

b)

{t=a;

a=b;

b=t;

a=c;

c=t;

d)

a=d;

d=t;

if(b>

{t=b;

b=c;

b=d;

if(c>

d)运行结果:

请输入四个数字:

6,8,1,4

{t=c;

c=d;

}a=6,b=8,c=1,d=4

排序结果如下:

\n"

排序结果如下:

%d%d%d%d\n"

a,b,c,d);

1468

第5章循环结构程序设计

1、循环结构:

while;

dowhile;

for。

2、while语句:

只要当循环表达式为真(即给定的条件成立),就执行循环体语句

循环特点:

先判断条件表达式,后执行循环体语句。

一般形式:

while(表达式)语句

3、dowhile语句特点:

无条件地执行循环体,然后判断循环条件是否成立。

do

语句

while(表达式)

4、for语句一般形式:

for(表达式1;

表达式2;

表达式3)

3个表达式的主要作用:

表达式1:

设置初始条件,只执行一次。

表达式2:

是循环条件表达式,用来判断是否继续循环。

在每次执行循环体前先执行此表达式,决定是否继续执行循环体。

表达式3:

作为循环的调整。

即:

for(循环变量赋初值;

循环条件;

循环变量增值)

说明:

表达式3)语句

可以该写为while循环的形式:

while表达式2

表达式3

5、集中循环的比较:

1)3种循环都可以用来处理同一问题,一般情况下可以相互代替。

2)在while循环和do...while循环中,只在while后面的括号内制定循环条件,因此为了使循环能正常结束,应在循环体中包含是循环趋于结束的语句。

for循环可以在表达式3中包含使循环区域结束的操作,甚至可以将循环体中的操作全部放到表达式3中。

因此,for语句的功能能强,凡能用while循环能完成的,用for循环都能实现。

3)用while和dowhile循环时,循环变量初始化的操作应在while和do...while语句完成之前完成。

而for语句可以在表达式1中实现循环变量的初始化。

4)While循环、do...while循环和for循环,都可以用break语句跳出循环,用continue语句结束本次循环。

6.break语句和continue语句的区别:

Continue语句只结束本次循环而不是终止整个循环的执行。

而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

7、P128例题5.6程序语句:

if(n%5==0)printf("

\n"

)控制在输出5个数据后换行。

8、输入两个正数m和n,求其最大公约数和最小公倍数。

(P140T3)

intmain()

{

intp,r,n,m,temp;

请输入两个正整数n,m:

n,&

m);

if(n<

m)

temp=n;

n=m;

m=temp;

p=n*m;

while(m!

=0)

r=n%m;

m=r;

}运行结果:

它们的最大公约数为:

n);

请输入两个正整数n,m:

35,49

它们的最小公倍数为:

p/n);

他们的最大公约数是:

7

他们的最小公倍数是:

245

9、输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.(P140T4!

重点)

程序如下:

charc;

intletters=0,space=0,digit=0,other=0;

请输入一行字符:

while((c=getchar())!

\n'

c<

||c>

Z'

)运行结果:

letters++;

请输入一行字符:

elseif(c=='

'

)Iamastudent.

space++;

字母数:

11

elseif(c>

9'

)空格数:

3

digit++;

数字数:

Else其他字符:

1

other++;

字母数:

%d\n空格数:

%d\n数字数:

%d\n其他字符数数:

letter,apace,digit,other);

10、求

,即1+2!

+3!

+4!

+…+20!

.(P140T6,重点掌握求一个数的阶乘)

main()

doubles=0,t=1;

intn;

for(n=1;

n<

=20;

n++)

t=t*n;

s=s+t;

1!

+2!

=%22.15e\n"

s);

1!

=2.561327494111820e+018

11、一个数恰好等于它的因子之和,这个数就称为完数。

例如,6的因子为1,2,3,而6=1+2+3,因此6是完数。

编程找出1000以内的所有完数,并按下面的格式输出其因子:

(P141T9)

6itsfactorsare1,2,3

#defineM1000//定义寻找范围

intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10;

inti,a,n,s;

for(a=2;

a<

=M;

a++)//a是2~1000之间的整数,检查它是否完数

{n=0;

//n用来积累a的因子个数

s=a;

//s用来存放尚未求出的因子之和,并开始等于a

for(i=1;

i<

a;

i++)//检查i是否a的因子

if(a%i==0)//如果i是a的因子

{n++;

//n加一表示新找到一个因子

s=s-i;

//s减去已找到的因子,s的新值是尚未求出的因子之和

switch(n)//将找到的因子赋给k1~k9,或k10

{case1:

k1=i;

break;

//找出第1个因子赋值给k1

case2:

k2=i;

//找出第2个因子赋值给k2

case3:

//找出第3个因子赋值给k3

case4:

k4=i;

//找出第4个因子赋值给k4

case5:

k5=i;

//找出第5个因子赋值给k5

case6:

k6=i;

//找出第6个因子赋值给k6

case7:

k7=i;

//找出第7个因子赋值给k7

case8:

k8=i;

//找出第8个因子赋值给k8

case9:

k9=i;

//找出第9个因子赋值给k9

case10:

k10=i;

//找出第10个因子赋值给k10

}

if(s==0)

%d,itsfactorsare"

if(n>

1)printf("

k1,k2);

//n>

1表示a至少有2个因子

2)printf("

%d"

k3);

2表示至少有3个因子,故再输出一个因子

3)printf("

k4);

3表示至少有4个因子,故再输出一个因子

4)printf("

k5);

//以下类推

5)printf("

k6);

6)printf("

k7);

7)printf("

k8);

8)printf("

k9);

9)printf("

k10);

}6,itsfactorsare1,2,3

28,itsfactorsare1,2,4,7,14

}496,itsfactorsare1,2,4,8,16,31,62,124,248

#include<

{intm,s,i;

for(m=2;

m<

1000;

m++)

{s=0;

for(i=1;

m;

i++)

if((m%i)==0)s=s+i;

if(s==m)

{printf("

%d,itsfactorsare"

m);

i++)

if(m%i==0)printf("

%d"

i);

第6章利用数组处理批量数据

1、定义一维数组的一般形式为:

类型符数组名[常量表达式]

注意:

下标从0开始,常量表达式中可以包括常量和符号常量,不能包含变量。

2、应用数组元素的表示形式为:

数组名[下标]

只能引用数组元素而不能一次整体调用整个数组的全部元素的值。

3、对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

(P144例题6.1)

inti,a[10];

for(i=0;

=9,i++)

a[i]=i;

for(i=9;

i>

=0,i--)运行结果:

pri

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

当前位置:首页 > 初中教育 > 语文

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

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