C语言程序设计实验.docx
- 文档编号:17381689
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:24
- 大小:66.08KB
C语言程序设计实验.docx
《C语言程序设计实验.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验.docx(24页珍藏版)》请在冰点文库上搜索。
C语言程序设计实验
C语言实验报告
姓名:
杨建永学号:
114130630专业:
测绘工程
一、顺序结构程序设计
一、要内容:
C语句概述,赋值语句,数据输入/输出。
1、C语句概述
(1)、说明语句和执行语句组成函数,函数和预处理命令构成源文件,多个源文件构成了C程序(必须有一个主函数)。
其中,函数由函数名和函数体构成,函数体包含说明语句和执行语句。
(2)、C语句的分类:
①、控制语句(控制程序的流程):
A.if()……else条件语句B.for()………循环语句
C.while()……循环语句D.do……while()循环语句
E.continue继续语句F.break间断语句
H.switch()开关语句G.goto转向语句
K.return返回语句
②、函数调用语句:
由一个函数加一个分号组成。
③、表达式语句:
表达式+分号。
④、空语句:
只有一个分号。
⑤、复合语句:
包含在一对{}中的语句。
3、数据输出/输入
C语言中没有专门的输入输出语句,输入输出操作是通过输入、输出函数来实现的。
(1)输出函数:
(基本函数:
字符输出函数、格式输出函数)
1字符输出函数:
格式:
putchar(字符变量),说明:
a、一次调用只能输出一个字符,b、在末尾加上分号构成字符输出语句,c、使用时在程序开头用编译命令(#include“stdio.h”)。
2格式输出函数:
格式:
printf(格式控制串,变量表)
说明:
A、格式控制串包括:
%d、%o、%x、%u、%f、%c等,
B、对格式的修饰:
%md……输出整数据占m个字符位,右对齐,%-md……左对齐;%m.nf……输出数据占m个字符位,小数点后留n位,右对齐;
C、格式控制串的控制符号与变量表要一一对应,即:
类型相同,个数相等;
D、格式控制符尽量用小写字母;
E、若需显示百分号,格式为:
%%;
F、如果实际数据所占字符位大于指定的域宽,按实际输出。
(2)输入函数:
1、字符输入函数:
格式:
getchar(),输入字符,回车后才读入,使用时需要“#include“stdio.h””.
2、格式输入函数:
格式:
scanf(格式控制串,地址表),地址表格式为:
&……。
二、练习题:
1、存款利息的计算。
#include"stdio.h"
voidmain()
{
floatr1,r2,r3,r5,r0,p1,p2,p3,p4,p5,p;
p=1000;
r1=0.0414;
r2=0.0468;
r3=0.054;
r5=0.0585;
r0=0.0072;
p1=p*(1+r5*5);
p2=p*(1+r2*2)(1+r3*3);
p3=p*(1+r3*3)(1+r2*2);
p4=p*pow(1+r1,5);
p5=p*pow(1+r0/4,4*5);
printf("p1=%f\n",p1);
printf("p2=%f\n",p2);
printf("p3=%f\n",p3);
printf("p4=%f\n",p4);
printf("p5=%f\n",p5);
return0;
}
二分支结构程序设计
一、基础知识:
1、关系运算符(表示数据之间的相等及大小关系):
>,<,>=,<=,==,!
=。
2、关系表达式(由关系运算符连接操作数构成的表达式)
关系表达式的值是整数0或1,0代表逻辑假,1代表逻辑真
3、逻辑运算符:
!
、&&、||。
4、逻辑表达式(由逻辑运算符连接操作数构成的表达式)
逻辑表达式:
结果为1(真),为0(假)
非0数据被认为是逻辑真,0数据被认为是逻辑假。
5、条件运算符:
格式:
表达式1?
表达式2:
表达式3。
执行过程:
判断表达式1的结果,为真,则执行表达式2并将其结果
作为整个表达式的值;为假,则执行表达式3并将其结果作为整个表达式的值。
二、分支结构:
1、单分支if语句:
if(表达式)
语句
执行过程:
判断条件P,为真则执行A操作,否则什么也不做。
2、双分支if语句
If(P)
A
else
B
执行过程:
判断条件P,为真则执行A操作,否则执行B操作。
3、switch语句:
switch(表达式)
{
case常量表达式1:
语句组1;
case常量表达式2:
语句组2;
……
case常量表达式n:
语句组n;
default:
语句组n+1;
}
执行过程:
判断表达式的值,当值与某一个常量表达式相匹配时,执行其后语句组,执行完毕后转移到下一个语句组处继续执行(即执行完之后不跳出switch结果,而是继续执行),否则(即表达式的值和所有的常量表达式都不匹配),执行default之后的语句组。
说明:
①、每一个case的常量表达式值须不相同
【举例分析】
switch(a)
{
case1:
printf(“值为1”);break;
case1:
printf(“值为2”);break;
}
是错误的。
因为无法判断究竟应该执行哪一个case语句。
②、表达式的类型和常量表达式的类型是整型、字符型
判断下列语句是否正确
switch(a)
{
casea>=0&&a<10:
printf(“a在0到10之间”);break;
casea>=10&&a<100:
printf(“a在10到100之间”);break;
}
③、case和default的出现次序不影响执行
④、多个case可以共用一组执行语句
switch(a)
{
case1:
case2:
printf(“值为2”);break;
case3:
printf(“值为3”);break;
default:
printf(“其它”);break;
}
4、练习题:
(1)、输入三个整数a、b、c,输出其中最大数:
#include
main()
{
inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
if(a>c)
printf("%d最大",a);
else
printf("%d最大",c);
}
else
{
if(b>c)
printf("%d最大",b);
else
printf("%d最大",c);
}
}
(2)、确定学生成绩范围,输入A输出“90分以上”,输入B输出“80~90分”,输入C输出“70~80分”,输入D输出“60~70分”,输入E输出“60分以下”。
#include
main()
{
charch;
scanf("%c",&ch);
switch(ch)
{
case'A':
printf("90分以上");break;
case'B':
printf("80~90分");break;
case'C':
printf("70~80分");break;
case'D':
printf("60~70分");break;
case'E':
printf("60分以下");break;
}
}
4、对于任意整数n,我们可以采用类似方法分离出各个数位。
定义三个变量用来存放分离出来的各个数位上的数字。
a存放百位上的数字,b存放十位上的数字,c存放个位上的数字。
百位a:
n/100
十位b:
(n–a*100)/10
个位c:
123–a*100–b*10
三循环结构程序设计
一、概述:
C语言可实现循环的语句:
●用goto和if构成循环
●while语句
●do~while语句
●for语句
1、goto语句及用goto构成循环
vgoto语句一般格式:
goto语句标号;
v….…..
v标号:
语句;
v功能:
无条件转移语句
v说明:
●不能用整数作标号
●只能出现在goto所在函数内,且唯一
●只能加在可执行语句前面
●限制使用goto语句
2、while语句
一般形式:
while(表达式)
循环体语句;
特点:
先判断表达式,后执行循环体
说明:
①、循环体有可能一次也不执行
②、循环体可为任意类型语句
③、下列情况,退出while循环
④、条件表达式不成立(为零)
循环体内遇break,return,goto
无限循环:
while
(1)
循环体;
3、do~while语句
一般形式:
do
循环体语句;
while(表达式);
v特点:
先执行循环体,后判断表达式
v说明:
●至少执行一次循环体
●do~while可转化成while结构
4、for语句:
一般形式:
for([expr1];[expr2];[expr3])
循环体语句;
vfor语句一般应用形式:
vfor(循环变量赋初值;循环条件;循环变量增值)
v{
v循环体语句
v}
二、练习题:
(1)、输出圆面积,面积大于100时停止
#definePI3.14159
main()
{
intr;
floatarea;
for(r=1;r<=10;r++)
{area=PI*r*r;
if(area>100)
break;
printf("r=%d,area=%.2f\n",r,area);
}
}
(2)、编写程序找出1000内的所有完数:
#include"stdio.h"
voidmain()
{
inti,j,p,q,s,sum;
inta[200];
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;
p=0;
for(j=1;j
{
if((i%j)==0){a[p]=j;p++;}
}
for(q=0;q
{
s+=a[q];
}
if(i==s){printf("%d",i);sum++;}
}
printf("完数的个数:
%d\n",sum);
printf("i")
}
(3)输出所有的”水仙花数”:
#include"stdio.h"
voidmain()
{
inti,a,b,c;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if((a*a*a+b*b*b+c*c*c)==i)
printf("%d\n",i);
}
return(0);
}
四数组的应用
一、基本知识:
1、数组:
有序数据的集合,用数组名标识,
元素:
属同一数据类型,用数组名和下标确定,
2、一维数组:
定义方式:
数据类型数组名[常量表达式];注:
①数组名为合法标识符;②常量表达式表示数组的下标从零开始,③数组必须先定义,后使用;④只能逐个引用数组元素,不能一次引用整个数组;⑤数组元素表示形式:
数组名[下标],其中:
下标可以是常量或整型表达式。
3、冒泡排序法:
①比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上,
②对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置,
2重复上述过程,共经过n-1趟冒泡排序后,排序结束。
4、简单排序法的过程:
①首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上,
②再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序,
3重复上述过程,共经过n-1趟排序后,排序结束。
5、二维数组:
定义方式:
数据类型 数组名[常量表达式][常量表达式];
6、字符数组和字符串:
★字符数组
v定义:
例charc[10],ch[3][4];
字符串:
★字符串及其结束标志
★无字符串变量,用字符数组处理字符串
★字符串结束标志:
‘\0’
二、练习题:
1、筛选法求100内的素数:
main()
{
chara[10]="abcde";
inti;
printf("\n");
for(i=0;i<10;i++)
printf("%c",a[i]);
}
2、求一个二维数组的鞍点:
#include
#definen3
voidmain()
{
inta[n][n],i,j,x,y,k,m;
printf("&a[n][m]:
\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验
文档标签
- C语言程序设计方案语言程序设计方案实验
- C语言程序设计语言程序设计实验教学大纲
- C++语言程序设计实验答案
- 语言设计实验案例
- 语言程序设计实验
- 语言程序设计实验教程习题
- C语言程序设计实验与习题语言程序设计实验习题
- 语言程序设计循环语句实验
- VB语言程序设计实验
- C++语言程序设计实验报告C++语言程序设计实验
- 实验程序语言典型
- C语言程序设计语言程序设计实验报告
- 版语言课程设计实验
- 版C++程序设计实验
- C#NET程序设计NET程序设计教案设计
- C#程序设计实验
- c++程序设计c++程序设计
- 教案C#程序设计语言18319
- C语言程序设计语言程序设计江宝钏著实验
- c++实验参考程序
- 语言程序设计实验习题答案
- 语言程序设计实验习题答案