C语言复习重点.docx

上传人:b****1 文档编号:10405317 上传时间:2023-05-25 格式:DOCX 页数:42 大小:27.28KB
下载 相关 举报
C语言复习重点.docx_第1页
第1页 / 共42页
C语言复习重点.docx_第2页
第2页 / 共42页
C语言复习重点.docx_第3页
第3页 / 共42页
C语言复习重点.docx_第4页
第4页 / 共42页
C语言复习重点.docx_第5页
第5页 / 共42页
C语言复习重点.docx_第6页
第6页 / 共42页
C语言复习重点.docx_第7页
第7页 / 共42页
C语言复习重点.docx_第8页
第8页 / 共42页
C语言复习重点.docx_第9页
第9页 / 共42页
C语言复习重点.docx_第10页
第10页 / 共42页
C语言复习重点.docx_第11页
第11页 / 共42页
C语言复习重点.docx_第12页
第12页 / 共42页
C语言复习重点.docx_第13页
第13页 / 共42页
C语言复习重点.docx_第14页
第14页 / 共42页
C语言复习重点.docx_第15页
第15页 / 共42页
C语言复习重点.docx_第16页
第16页 / 共42页
C语言复习重点.docx_第17页
第17页 / 共42页
C语言复习重点.docx_第18页
第18页 / 共42页
C语言复习重点.docx_第19页
第19页 / 共42页
C语言复习重点.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言复习重点.docx

《C语言复习重点.docx》由会员分享,可在线阅读,更多相关《C语言复习重点.docx(42页珍藏版)》请在冰点文库上搜索。

C语言复习重点.docx

C语言复习重点

《C语言程序设计》复习重点

第一章C语言概述

1、C语言的特点包括:

结构化的程序设计语言、语句简洁、紧凑,功能强大、移植性好等等,重要的一点是它允许直接对硬件进行操作。

2、C程序由函数组成,一个C程序必须包含一个main函数,也可包含一个main函数和若干个其他函数。

main函数的位置可以任意,但C程序总是从main函数开始执行的。

3、C程序的每个语句和数据声明的最后必须有一个分号。

4、开发一个C程序,要经过编辑、编译、连接和运行四个步骤,形成.c和.obj以及.exe三个文件。

5、可以使用VC++6.0编辑和运行C程序。

习题1-1

#include

voidmain()

{printf("**************************\n");

printf("VeryGood!

\n");

printf("**************************\n");

}

习题1-2

#include

voidmain()

{inta,b,c,max;

printf("pleaseinputa,b,c:

\n");

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

max=a;

if(max

max=b;

if(max

max=c;

printf("Thelargestnumberis%d\n",max);

}

第二章数据的存储与运算

1、常量和变量

(1)常量是在程序中不能被更改的值,包括直接常量和符号常量;

(2)变量在程序中可以被更改,通过变量可以引用存储在内存中的数据。

2、C语言提供了四种数据类型:

基本类型、构造类型、指针类型和空类型。

3、基本数据类型又包括三类:

整型、实型和字符型。

4、整型数据的分类:

整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型。

5、实型数据分类:

单精度实型、双精度实型和长双精度实型。

float型7位,double型15-16位,实型数据有舍入误差。

6、字符型变量可以存储单个字符,并且只能存放一个字符。

C语言中,字符型数据在内存中的存储形式是什么呢?

字符型变量存放的是字符对应的ASCII码。

7、算术运算符提供运算功能,包括+、-、*、/、%、++和--。

8、各类数值型数据间的混合运算,转换原则:

字节少的数据转化成字节多的类型。

9、强制类型转换运算符:

(类型名)(表达式)。

10、!

(非)算术运算符关系运算符&&和||赋值运算符。

习题2-3

#include

voidmain()

{charc1='C',c2='h',c3='i',c4='n',c5='a';

c1=c1+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf("passwordis%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

习题2-4

(1)可以。

因为在可输出的字符范围内,用整型和字符型作用相同。

运行结果为:

ab

9798

(2)c1和c2定义为int型时,输出:

B

289322

c1和c2为int型时,可正常存放数据,输出289和322;输出字符形式时,自动截取低8位二进制数,得出对应此值的ASCII码的字符。

c1和c2为char型时,输出:

B

3366

原因提示警告信息,多字节给字节少的变量赋值,int型4个字节给char型1个字节的变量赋值,自动截取int型数据的低8位二进制数赋值。

第三章最简单的C程序设计——顺序程序结构

1、算法就是解决问题的具体方法与步骤。

算法的四种表示方法:

自然语言、流程图、N-S流程图、伪代码。

2、C程序的三种基本结构:

顺序结构、选择结构、循环结构。

3、C语言的5类语句:

控制语句(9种),函数调用语句,表达式语句,空语句,复合语句。

4、赋值表达式的一般形式

(1)变量赋值运算符表达式

(2)加括号的赋值表达式可作为左值,其他表达式和常量都不能作为左值。

例:

(a=3*5)=4*35、数据的输入与输出

(1)printf()和scanf()函数属于格式输入输出函数;

(2)getchar()和putchar()函数用来输入输出单个字符的函数。

习题3-5

#include

voidmain()

{floath,r,l,s,sq,vq,vz;

floatpi=3.141526;

printf("请输入圆半径r,圆柱高h:

");

scanf("%f,%f",&r,&h);//要求输入圆半径r和圆柱高h

l=2*pi*r;//计算圆周长l

s=r*r*pi;//计算圆面积s

sq=4*pi*r*r;//计算圆球表面积sq

vq=4.0/3.0*pi*r*r*r;//计算圆球体积vq

vz=pi*r*r*h;//计算圆柱体积vz

printf("圆周长为:

l=%6.2f\n",l);

printf("圆面积为:

s=%6.2f\n",s);

printf("圆球表面积为:

sq=%6.2f\n",sq);

printf("圆球体积为:

v=%6.2f\n",vq);

printf("圆柱体积为:

vz=%6.2f\n",vz);

}

习题3-6

#include

voidmain()

{floatc,f;

printf("请输入一个华氏温度:

");

scanf("%f",&f);

c=(5.0/9.0)*(f-32);/*注意5和9要用实型表示,否则5/9值为0*/

printf("摄氏温度为:

%5.2f\n",c);

}

第四章选择结构程序设计

1、关系运算符(6种)运用测试两个操作数之间的关系。

2、关系表达式计算出的值始终为逻辑真(非0)或逻辑假(0)。

3、逻辑运算符用于组合多个条件(&&和||)或者为某一条件取反,逻辑表达式的值始终为逻辑真1或逻辑假0。

4、逻辑表达式求解中,所有逻辑运算符都要被执行吗?

不是的,例如:

1)a&&b&&c2)a||b||c

5、条件结构解决了程序中需要根据不同情形进行判断的情况。

6、if语句的一般形式:

简单if语句和if-else语句。

7、条件运算符是if–else语句的另一种表现形式。

8、多重if结构是if-else的另一种形式,也称为阶梯式if-else-if。

退而求其次

9、嵌套if结构:

逐层细化,逐层筛选,精益求精。

10、C语言规定,嵌套if结构中每个else部分总是属于前面最近的那个缺少对应的else部分的if语句。

11、switch结构也可以用于多分支选择。

用于分支条件的表达式可以是任意类型。

通过判断该表达式的值是否等于某些值(case罗列的),然后根据不同的情况,执行不同的操作。

习题4-5

方法一:

#include

voidmain()

{inta,b,c,max;

printf("pleaseinputa,b,c:

\n");

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

max=a;

if(max

max=b;

if(max

max=c;

printf("Thelargestnumberis%d\n",max);

}

方法二:

#include

voidmain()

{inta,b,c,temp,max;

printf("请输入三个整数:

");

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

temp=(a>b)?

a:

b;/*将a和b中的大者存入temp中*/

max=(temp>c)?

temp:

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

printf("三个整数的最大数是%d\n",max);

}

习题4-6

方法一:

#include

voidmain()

{floatscore;

chargrade;

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||score<0)

{printf("\n输入有误,请重输");

scanf("%f",&score);

}

/*应用switch语句解决问题:

*/

switch((int)(score/10))

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

default:

grade='E';

}

printf("成绩是%5.1f,相应的等级是%c.\n",score,grade);

}

方法二:

#include

voidmain()

{floatscore;

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||score<0)

{printf("\n输入有误,请重输");

scanf("%f",&score);

}

/*用多重if结构解决问题:

多重if,退而求其次*/

if(score>=90)

printf("成绩是%5.1f,相应的等级是A.\n",score);

elseif(score>=80)

printf("成绩是%5.1f,相应的等级是B.\n",score);

elseif(score>=70)

printf("成绩是%5.1f,相应的等级是C.\n",score);

elseif(score>=60)

printf("成绩是%5.1f,相应的等级是D.\n",score);

else

printf("成绩是%5.1f,相应的等级是E.\n",score);

}

习题4-8

方法一:

#include

voidmain()

{

longi;

doublebonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:

");

scanf("%ld",&i);

if(i<=100000)

bonus=i*0.1;

elseif(i<=200000)

bonus=bon1+(i-100000)*0.075;

elseif(i<=400000)

bonus=bon2+(i-200000)*0.05;

elseif(i<=600000)

bonus=bon4+(i-400000)*0.03;

elseif(i<=1000000)

bonus=bon6+(i-600000)*0.015;

else

bonus=bon10+(i-1000000)*0.01;

printf("奖金是:

%10.2f\n",bonus);

}

方法二:

#include

voidmain()

{

longi;

doublebonus,bon1,bon2,bon4,bon6,bon10;

intbranch;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:

");

scanf("%ld",&i);

branch=i/100000;

if(branch>10)branch=10;

switch(branch)

{case0:

bonus=i*0.1;break;

case1:

bonus=bon1+(i-100000)*0.075;break;

case2:

case3:

bonus=bon2+(i-200000)*0.05;break;

case4:

case5:

bonus=bon4+(i-400000)*0.03;break;

case6:

case7:

case8:

case9:

bonus=bon6+(i-600000)*0.015;break;

case10:

bonus=bon10+(i-1000000)*0.01;

}

printf("奖金是%10.2f\n",bonus);

}

习题4-9

#include

voidmain()

{intt,a,b,c,d;

printf("请输入四个数:

");

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

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b;b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("排序结果如下:

\n");

printf("%d%d%d%d\n",a,b,c,d);

}

第五章循环结构程序设计

1、循环结构的特点是:

在给定条件成立时,重复执行某程序段,直到条件不成立为止。

2、设计循环结构要考虑两个问题:

一是循环体,二是循环结束条件。

3、while循环用于在给定条件为真的情况下重复执行一组操作

(1)while循环的一般形式及其执行过程:

一般形式:

while(表达式)语句(注意后面没有分号)

(2)while循环先判断后执行

4、do-while循环先执行后判断,因此循环将至少执行一次。

do-while循环的一般形式及其执行过程:

一般形式:

do

循环体语句

while(表达式);(注意后面有分号)

5、在循环中,需要修改循环变量的值以改变循环条件,使循环趋于结束,否则有可能形成死循环。

6、for循环与while循环类似,属于先判断后执行,既可用于循环次数确定的情况,也可用于次数不确定,仅给出循环结束条件的情况。

7、for语句的一般形式及其执行过程:

一般形式:

for(表达式1;表达式2;表达式3)语句(注意后面没有分号)

8、for语句的最简单应用形式:

for(循环变量赋初值;循环条件;循环变量增值)语句9、break语句用在循环中时,可以直接终止循环,将控制流转向循环后面的语句。

10、continue语句的作用是跳过循环体中剩余的语句而执行下一次循环。

11、嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内。

习题5-1

#include

#include

voidmain()

{intm,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");

}

习题5-3

#include

voidmain()

{

inti,j,k,n;

printf("parcissusnumbersare");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

}

习题5-4

#include

voidmain()

{

intday,x1,x2;

day=9;

x2=1;

while(day>0)

{x1=(x2+1)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/

x2=x1;

day--;

}

printf("total=%d\n",x1);

}

习题5-5

#include

voidmain()

{

doublesn=100,hn=sn/2;

intn;

for(n=2;n<=10;n++)

{

sn=sn+2*hn;/*第n次落地时共经过的米数*/

hn=hn/2;/*第n次反跳高度*/

}

printf("第10次落地时共经过%f米\n",sn);

printf("第10次反弹%f米\n",hn);

}

习题5-7

#include

voidmain()

{

chari,j,k;/*i是a的对手;j是b的对手;k是c的对手*/

for(i='x';i<='z';i++)/*不考虑已设置的比赛名单问题,则a的对手可以是X~Y*/

for(j='x';j<='z';j++)/*不考虑已设置的比赛名单问题,则b的对手可以是X~Y*/

if(i!

=j)/*不考虑已设置的比赛名单问题,a和b的对手不能是同一人,所以i!

=j*/

for(k='x';k<='z';k++)

if(i!

=k&&j!

=k)/*不考虑已设置的比赛名单问题,c和a和b的对手不能是同一人*/

if(i!

='x'&&k!

='x'&&k!

='z')

/*在c和a和b的对手不是同一人的基础上,再满足a不和x比,c不和x、z比*/

printf("A--%c\nB--%c\nC--%c\n",i,j,k);

}

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

1、数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型。

2、数组必须先声明,然后才能使用。

声明一个数组只是为该数组留出内存空间,并不会为其赋任何值。

3、一维数组的定义方式:

类型说明符数组名[整型常量表达式]4、数组的元素通过数组下标访问。

5、一维数组可用一个循环动态赋值,而二维数组可用嵌套循环动态赋值。

6、二维数组可以看作是由一维数组的嵌套而构成的。

例6.2例6.3例6.5

习题6-1

#include

voidmain()

{inta[10],i,sum=0;

floataver;

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

{printf(“请输入一个整数成绩:

\n”);

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

}

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

sum+=a[i];

aver=sum/10.0;

printf(“10个学生的平均成绩为aver=%5.2f\n”,aver);

}

习题6-2

#include

voidmain()

{inta[10],i,max,k;

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

{printf(“请输入一个整数成绩:

\n”);

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

}

max=a[0];k=0;

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

{if(a[i]>max)

{max=a[i];k=i;}

}

printf(“最高分max=%d,序号k=%d\n”,max,k);

}

习题6-3

#include

voidmain()

{inti,j;

floata[4][4]={0},sum;

for(i=0;i<3;i++)//控制行

for(j=0;j<4;j++)//控制列变化

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

for(j=0;j<4;j++)//控制列变化

{sum=0;

for(i=0;i<3;i++)//控制行

sum+=a[i][j];//求每列的和

a[3][j]=sum/3.0;//求每列平均值放在第4行

}

for(j=0;j<4;j++)//控制列

printf(“%5.2f”,a[3][j]);//输出第4行各列的值

}

习题6-4

方法一:

#include

voidmain()

{inttemp,i,j,m,n,k,flag[5];//flag数组存放学生学号

floata[5][5],sum,t;

for(i=0;i<5;i++)//控制行,学生

{printf("请输入第%d个学生四门课成绩\n",i+1);

for(j=0;j<4;j++)//控制列变化,科目成绩

scanf("%f",&a[i][j]);

}

printf("学号语文数学物理英语\n");

for(i=0;i<5;i++)//控制行,学生

{printf("%3d",i+1);//输出学生序号

for(j=0;j<4;j++)//控制列变化,科目成绩

printf("%6.1f",a[i][j]);//输出学生未操作成绩表

flag[i]=i+1;

printf("\n");//换行,输出下一个学生成绩

}

for(i=0;i<5;i++)//控制行变化,学生

{sum=0;

for(j=0;j<4;j++)//控制列,科目成绩

sum+=a[i][j];//对每列成绩求和

a[i][4]=sum/4;

}

//以下for循环给5个学生的平均成绩排序

for(m=0;m<4;m++)//进行4次循环,实现4趟比较

for(n=0;n<4-m;n++)//每趟4-m次比较

if(a[n][4]

{

for(k=0;k<5;k++)//完成学生的四门成绩与平均成绩5个数的交换

{t=a[n][k];

a[n][k]=a[n+1][k];

a[n+1][k]=t;

}

temp=flag[n];

flag[n]=flag[n+1];

flag[n+1]=temp;

}

printf("名次学号语文数学物理英语平均\n");

for(i=0;i<5;i++)//控制行,学生

{

printf("%3d%3d",i+1,fl

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2