C语言程序设计总结.docx

上传人:b****8 文档编号:9189410 上传时间:2023-05-17 格式:DOCX 页数:18 大小:36.66KB
下载 相关 举报
C语言程序设计总结.docx_第1页
第1页 / 共18页
C语言程序设计总结.docx_第2页
第2页 / 共18页
C语言程序设计总结.docx_第3页
第3页 / 共18页
C语言程序设计总结.docx_第4页
第4页 / 共18页
C语言程序设计总结.docx_第5页
第5页 / 共18页
C语言程序设计总结.docx_第6页
第6页 / 共18页
C语言程序设计总结.docx_第7页
第7页 / 共18页
C语言程序设计总结.docx_第8页
第8页 / 共18页
C语言程序设计总结.docx_第9页
第9页 / 共18页
C语言程序设计总结.docx_第10页
第10页 / 共18页
C语言程序设计总结.docx_第11页
第11页 / 共18页
C语言程序设计总结.docx_第12页
第12页 / 共18页
C语言程序设计总结.docx_第13页
第13页 / 共18页
C语言程序设计总结.docx_第14页
第14页 / 共18页
C语言程序设计总结.docx_第15页
第15页 / 共18页
C语言程序设计总结.docx_第16页
第16页 / 共18页
C语言程序设计总结.docx_第17页
第17页 / 共18页
C语言程序设计总结.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计总结.docx

《C语言程序设计总结.docx》由会员分享,可在线阅读,更多相关《C语言程序设计总结.docx(18页珍藏版)》请在冰点文库上搜索。

C语言程序设计总结.docx

C语言程序设计总结

C语言程序设计总结

一、C语言程序的基本结构

#include“stdio.h”

voidmain()

{

定义变量;

程序实现;

输出结果;printf

}

二、变量的定义

1.整型:

inta,b,s=0;(可以在定义的同时为变量进行赋值)

长整型:

long

无符号整型(非负整数):

unsigned

2.单精度实型:

floatx,y,z=1.0;

3.双精度实型:

doublel,m;

4.字符型:

charc1=’A’,c2=’b’;

三、变量的赋值

1.直接赋值:

a=10;//用赋值号“=”将右侧的值赋给左侧的变量

2.赋表达式的值:

a=3+7;

3.赋另外一个变量的值:

a=s;//把s的值赋给a

变量的输入:

输入一个变量:

scanf(“%d”,&a);

输入多个变量:

scanf(“%d%d%d”,&a,&b,&c);

int--%dfloat--%fchar--%cdouble--%lf字符串--%s

变量的输出:

输出一个提示语句:

printf(“xxxxxx”);

输出一个回车:

printf(“\n”);

输出一个变量:

printf(“xxxis%d”,a);

输出多个变量:

printf(“xxxx%d,xxxx%d”,a,b);

练习:

1.输入圆的半径,求圆的周长。

四、常用流程控制语句

分支语句:

根据条件执行相应的语句

条件的形式:

a大于0写成a>0

a小于0写成a<0

a等于0写成a==0(注意,用两个=)

a大于等于0并且小于等于10写成a>=0&&a<=10

a小于0或者a大于10写成a<0||a>10

(一)单分支if语句(如果满足某个条件,就做某件事情,不满足就向下执行。

if(条件)

{执行语句;}

(二)双分支if语句(如果满足某个条件,就做某件事情,否则就做另外一件事情。

if(条件)

{执行语句1;}

else

{执行语句2;}

(三)多分支if语句(满足哪一个条件,就做相应的语句。

if(条件1)

{执行语句1;}

elseif(条件2)

{执行语句2;}

elseif(条件3)

{执行语句3;}

elseif(条件4)

{执行语句4;}

else

{执行语句5;}

(四)if的嵌套(根据具体情况对if~else~语句进行灵活的运用)

其格式如下:

if(条件1)

if(条件2)

{执行语句a;}

else

{执行语句b;}

else

if(条件3)

{执行语句c;}

else

{执行语句d;}

(五)多分支语句switch(根据switch后的值,执行相对应的case语句,此语句了解即可,因为它的作用完全可以用多分支if来实现)

switch(表达式)

{

case值1:

{语句1;break;}

case值2:

{语句2;break;}

case值3:

{语句4;break;}

……

case值n:

{语句n;break;}

default:

{语句n+1;}

}

练习:

2.某自助餐厅规定,浪费食物在20克以下的,每克罚款2元;如浪费超过20克,则超过的部分每克加罚1元。

编程求罚款金额。

3.从键盘输入正方形的边长,如果边长大于零则求出该正方形的周长和面积,否则提示输入错误。

4.输入3个数x,y,z,求其中的最小值。

5.输入3个数x,y,z,将其中最大值放在x中,最小值放在z中,中间值放在y中,然后输出x,y,z。

循环语句:

在条件成立时重复执行一组语句

(一)当型循环while

while(条件)

{

循环体

}

例如:

求1+2+3+…100

intn=1,s=0;

while(n<=100)

{

s=s+n;

n=n+1;

}

(二)直到型循环do~while

do

{

循环体

}while(条件);

例如:

求1+2+3+…100

intn=1,s=0;

do

{

s=s+n;

n=n+1;

}while(n<=100);

(三)知起至型循环for

for(循环变量初值;循环变量范围;步长)

{

循环体

}

例如:

求1+2+3+…100

intn=1,s=0;

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

{

s=s+n;

}

 

 

(四)循环的嵌套

for(i=1;i

{

……

for(j=1;j

{

……

}

……

}

说明:

1.假设某同学参与“打气球游戏”,该同学可以打5局,每局可以打10枪。

这里的每局10枪就相当于内循环的次数;5局就相当于5个10枪,也就是外循环的次数。

2.这5*10枪不是一次性打完的,而且每一枪都要记是哪一局的哪一枪打出来的成绩,哪一局对应的是i,哪一枪对应的是j。

(五)使用break可以强制退出循环,其用法必须配合if来使用:

例如:

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

{

if(条件)

{

……;

break;

}

}

练习:

1.编程求出公式s=1-1/3+1/5-1/7+…1/101的值并输出

2.编程输出如下图形:

*

**

***

****

*****

3.编程打印九九乘法表

4.编程打印出2016年1月份的日历

注意:

1月份的总天数是31天,其中1日是星期五。

日历如下:

一二三四五六日

123

45678910

11121314151617

18192021222324

25262728293031

voidmain()

{

inti,n,d;//i是循环变量,n代表总天数,d代表星期;

n=31;//n代表一个月的天数

d=5;//d代表星期,星期一为1,星期五为5,星期日为7

printf("一二三四五六日\n");//一个汉字占两个字符的位置

for(i=1;i

printf("");

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

{

printf("%3d",i);

if(d%7==0)

{

printf("\n");

}

}

}

5.在第4题的程序上进行修改,如果输入任意一个月的总天数及该月第一天的星期(1代表星期日,2代表星期一……以此类推),能否打印出该月日历

6.计算x的n次方(x为双精度,n为非负整数)

voidmain()

{

doublex,s;

unsignedn,i;

s=1;

printf("请输入x和n:

");

scanf("%lf%u",&x,&n);

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

{

s=s*x;

}

printf("jieguois%.2lf",s);

}

四、数组

一维数组

1.一维数组:

名字相同且带有下标的一组变量

2.定义形式:

类型名数组名[长度]

例如:

inta[10]//a数组中包含有10个整型变量,名字分别是a[0]、a[1]、a[2]……a[9]

这里每一个a[n]都是一个普通的整数变量

3.一维数组的初始化:

定义数组的时候就给每个数组元素赋值

inta[5]={2,4,6,8,10};

4.对a数组中的每一个元素依次进行操作(访问)的方法如下:

inti;

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

{

…a[i]…

}

例如:

●通过键盘输入给a数组中的每个元素赋值

●将a数组中每一个元素都扩大2倍

●统计a数组中奇数的个数

●求a数组中的最大值

●把a数组的元素进行逆置

●把a数组中的元素进行右移

练习:

1.从一维数组中查找x,并返回x所在的位置,否则提示没有找到。

2.求fibonacci数列的第n项。

3.求任意一个数的1.2~1.6倍存入数组。

4.数组中存入10个数并进行循环左移

二维数组

1.二维数组:

名称相同且带有2个下标的一堆变量,逻辑上可看成n行m列的二维表格。

2.定义形式:

类型名数组名[行长度][列长度]

例如:

inta[3][4]

这里a数组中包含有3*4=12个数组元素,这12个元素的名字分别是:

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

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

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

3.二维数组的初始化:

inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

4.对a中数组元素的访问,需要定义2个下标变量i和j,a[i][j]代表第i行第j列的元素。

按行的顺序访问:

inti,j;

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

for(j=0;j<4;j++){

按列的顺序访问:

inti,j;

for(j=0;j<4;j++){

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

…a[i][j]…

}

}

…a[i][j]…

}

}

例如:

●为二维数组中的每一个元素赋值

●将二维数组转置输出(行变列,列变行)

●求每行的平均值

●求每列的总和

●求列上的最小值

5.行列相等的二维数组叫做矩阵,对矩阵的操作有:

●求主对角线的和

●求次对角线的平均值

●输出该矩阵的上半三角元素

练习:

1.对一个3*4的数组,求列上的平均值

2.求一个3*3矩阵的主、次对角线的平均值

3.利用数组输出以下图形

字符串

1.字符串:

字符型的一维数组,可以存储一串字符,并以’\0’做为结束标志。

2.字符串的输入与输出

charstr1[20],str2[20],str3[20];

gets(str1);//字符串的输入

scanf(“%s”,str2);//字符串的输入

puts(str1);//字符串的输出;

printf(“%s”,str2);//字符串的输出;

3.对字符串的访问:

如有chars1[20];intn;

字符串的长度:

n=strlen(s1);

第一个字符:

s1[0];

最后一个字符:

s1[n-1]

‘\0’的位置:

s1[n]

从第一个字符访问到最后一个字符:

chars1[20];

inti;

gets(s1);

for(i=0;s[i]!

=0;i++)

从最后一个字符访问到第一个字符:

chars1[20];

inti;

gets(s1);

for(i=strlen(s1)-1;i>=0;i--)

{

…s[i]…;

}

{

…s[i]…;

}

4.字符串常用函数:

注意:

用以下函数需要用#include“string.h”引入头文件。

⏹连接字符串:

strcat(str1,str2)

⏹比较两个字符串的大小:

strcmp(str1,str2);

⏹求字符串的长度:

strlen(str1);

⏹在字符串中查找一个字符,并返回其位置:

charc=’a”;strchr(str1,c);

⏹复制字符串:

strcpy(str3,str1);

⏹在字符串str1中查找字串str2的位置:

strstr(str1,str2)

5.字符串常见操作

⏹把字符串逆置

⏹判断是否为回文

五、函数

(一)函数的定义:

1.无返回值、无参函数的定义:

void函数名()

{

定义变量;

实现功能;

返回;

}

例:

定义一个能够输出10个”*”的程序。

voidf1()

{

inti;

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

{printf(“*”);}

return;

}

2.无返回值、有参函数的定义:

void函数名(参数定义列表)

{

定义变量;

实现功能;

返回;

}

例:

定义一个能够输出n个”*”的程序

voidf2(intn)

{

inti;

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

{printf(“*”);}

return;

}

例:

定义一个能够输出n个指定字符的程序。

voidf3(charc,intn)

{

inti;

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

{printf(“%c”,c);}

return;

}

3.有返回值有参函数的定义:

类型函数名(参数定义列表)

{

定义变量;

实现功能;

返回计算结果;

}

这里”类型”一定要与”计算结果”一致。

例:

定义一个计算两个整数加法的函数。

intf4(intx,inty)

{

return(x+y);

}

例:

定义一个能判断奇数的函数

intf5(intx)

{

if(x%2==1)

return1;

else

return0;

}

(二)函数的调用

1.无参函数调用:

函数名()

2.有参函数调用:

函数名(实参列表)

这里的实参可以是一个具体的值,或者一个已经有值的变量,也可以是一个表达式。

3.函数的调用可以成为一个独立的语句,也可以参与到表达式中进行计算。

例如:

调用f1函数:

f1()

调用f2函数:

f2(5)或intn=20;f2(n);

调用f3函数:

f3(‘#’,10)或charcc=’$’;intn=8;f3(cc,n);

调用f4函数:

ints,a=1,b=2;

s=f4(a,b);

调用f5函数:

intx=7;

if(f5(x))printf(“奇数”)

elseprintf(“偶数”);

(三)指向一维数组的函数:

f1(inta[],intn)

{

inti;

for(i=0;i

{

a[i];

}

}

voidmain()

{

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

f1(a,10);

}

练习:

●求10个数的和

●求10个数的平均值

●把10个数逆序输出

●求10个数中的最小值

(四)指向字符串的函数:

f2(chars[])

{

inti;

for(i=0;s[i]!

=0;i++)

{

…s[i]…;

}

}

使用自定义函数的要点:

1.自定义函数要写在main函数的上方

2.在分析程序的运行时要知道,程序的执行从main函数开始,在main中结束

3.自定义函数可以接收主函数传递的多个参数

4.自定义函数每次只能返回一个结果给主函数

5.自定义函数可以通过指针对主函数中的数值进行直接访问(操作)

6.输入操作一般交给main函数

练习(全都用函数实现,输入输出由主函数负责,功能实现由自定义函数负责):

●求任意两个数的和、差、积(用三个自定义函数实现)

●求任意两个数的余数,如果输入的除数为0要输出警告信息

●交换两个变量

●计算x的10次方(x为双精度)

●求等比数列2481632…的第n项

●查找字符c在字符串s中第一次出现的位置

●连接两个字符串

/*连接两个字符串*/

#include"stdio.h"

#include"string.h"

Voidf1(chars1[],chars2[])

{

inti;

ln=strlen(s1);

for(i=0;i<=strlen(s2);i++)

{

s1[ln+i]=s2[i];

}

}

voidmain()

{

chars1[20],s2[10];

printf("请输入两行字符串:

");

gets(s1);

gets(s2);

f1(s1,s2);

printf("结果是%s",s1);

}

六、指针

(一)指针的概念:

1.指针:

变量的地址

2.指针变量:

能存指针的变量

3.指针变量的定义:

int*p,x;

4.对于变量指针的操作:

赋值:

p=&x;//把x的地址值赋给p,即p指向x

通过p间接访问x:

*p;

将x的值加上10:

*p=*p+10;

(二)指向一维数组的指针:

1.定义与赋值:

inta[20],*p;p=a;

2.相关概念:

数组名a就是数组的首地址,也就是a[0]的地址。

3.利用指针访问数组:

inta[10],*p,i;

p=a;

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

{

p[i];//相当于*(p+i)

}

(三)指向字符串的指针:

1.定义:

chars[20],*p;

2.赋值:

p=s;//p指向字符串

3.通过指向访问字符串:

chars[20],*p;

p=s;

while(*p)//相当于p!

=0或p!

=’\0’

{

…*p…;

p++;

}

..

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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