资源描述
科技大学
信息科学技术学院
C语言程序设计
实验指导书
目录
实验1 C语言入门与选择结构1
实验1.1 Visual C++6.0开发环境1
实验1.2 C程序快速入门8
实验1.3算术运算与赋值运算12
实验1.4逻辑运算与if语句18
实验1.5 switch选择结构24
实验2循环结构与数组(共8学时)28
实验2.1 循环结构(2学时)28
循环结构程序设计补充33
实验2.2数组一:一维数组37
实验2.3数组二:二维数组44
实验2.4数组三:字符数组46
实验3:函数与自定义数据类型50
实验3.1函数一:函数的定义、调用和声明50
实验3.2函数二:函数的参数传递256
实验3.3函数三:函数的嵌套和递归258
实验3.4 自定义数据类型(2学时)60
实验4:指针(共6学时)62
实验4.1指针一:指针的定义与运算62
实验4.2指针二:指向数组的指针68
实验4.3指针三:用指针操作字符串272
69 / 71
实验1 C语言入门与选择结构
实验1.1 Visual C++6.0开发环境
一、实验目的
1. 熟悉C语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C语言程序的方法。
2. 掌握C语言源程序的结构特点与书写规。
二、实验学时数
2学时
三、实验步骤与任务
(一) VC++6.0集成环境
(1)运行VC++6.0
a.双击桌面上的VC++6.0快捷方式,运行VC++6.0。
b.双击"C:\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE",运行VC++6.0。
(2)认识VC++6.0
菜单栏
标准按钮
执行
执行
组建
工作空间
编译
输出
标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。
菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。
工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。
项目工作区窗口包含有Class View和File View两个页面。
(3)建立C语言源文件,单击[文件]-[新建],单击[文件]选项卡,新建一个C++ Source File,选择存储位置(新建建立的文件夹D:\test),输入文件名“myhello.c”,进入D:\test,可以看到新建的文件myhello.c。
(4)输入C语言源程序,在打开的程序编辑窗口输入C语言源程序。
输入C语言源程序
(5)编译
点击[组建]-[编译],或按ctrl+F7进行预编译,或用工具栏工具编译,编译成功生成.obj目标文件(myhello.obj),显示在输出窗口。
编译工具
编译结果
(6)连接
点击[组建]-[编译]命令,或按F7,或点按连接按钮执行连接操作。连接成功生成扩展名为.exe的文件。
连接工具
连接结果
(7)执行
点击[组建]-[执行]命令,或按ctrl+F5,或点按执行按钮完成“执行”操作。
完成后界面如下,到目前为止一个简单的C程序创建成功。
执行工具
结果输出窗体
(8)关闭工作空间
程序运行结束后,如果想输入一个新程序,我们需要将当前的程序关闭,选择菜单栏中的“文件”→“关闭工作空间”即可。
(9)常用功能键与其意义
为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望在实验中逐步掌握。
操作类型
功能键
对应菜单
含义
文件操作
Ctrl+N
File|New
创建新的文件、项目等
Ctrl+O
File|Open
打开项目、文件等
Ctrl+S
File|Save
保存当前文件
编辑操作
Ctrl+X
Edit|Cut
剪切
Ctrl+C
Edit|Copy
复制
Ctrl+V
Edit|Paste
粘贴
Ctrl+Z
Edit|Undo
撤消上一个操作
Ctrl+Y
Edit|Redo
重复上一个操作
Ctrl+A
Edit|Select All
全选
Del
Edit|Del
删除光标后面的一个字符
建立程序操作
Ctrl+F7
Build| Compiler current file
编译当前源文件
Ctrl+F5
Build|Run exe
运行当前项目
F7
Build|Build exe
建立可执行程序
F5
Build|Start Debugging
启动调试程序
调试
F5
Debug|Go
继续运行
F11
Debug|Step into
进入函数体部
shift+F11
Debug|Step out
从函数体部运行出来
F10
Debug|Step over
执行一行语句
F9
设置/清除断点
Ctrl+F10
Debug|Run to cursor
运行到光标所在位置
shift+F9
Debug|QuickWatch
快速查看变量或表达式的值
Shift + F5
Debug|Stop debugging
停止调试
要求:请用最简单的语言描述如何新建一个C语言的源文件,如何编辑程序,如何编译程序,如何连接程序,如何运行程序,程序结果然后显示?
(二)阅读程序
要求:编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。
1. 输入并运行以下程序,观察运行结果。(sy1.1.1.c)
# include<stdio.h>
int main()
{printf("*********************\n");
printf(" Hello world!\n");
printf("*********************\n");
return 0;
}
分析结果
运行结果
思考:如何采用一个输出(printf)函数调用实现此输出结果。
2.输入并运行以下程序,观察运行结果。(sy1.1.2.c)
# include<stdio.h>
int main()
{ int a,b,sum,minus;
a=456;b=123;
sum=a+b; minus=a-b;
printf("a+b=%d\na-b=%d\n",sum,minus);
return 0;
}
分析结果
printf中删除a+b=和a-b=
输出结果:
printf中删除第一个\n
输出结果:
运行结果
printf中删除a+b=和a-b=
输出结果:
printf中删除第一个\n
输出结果:
(三)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求(a-b)×c的值。(设a=33,b=22,c=11)(sy1.1.3.c)
# include<stdio.h>
int main( )
{ int a,b,c;
a=33;
c=11;
printf("%d\n",(a-b)*c);
return 0;
}
2.求圆的面积。(sy1.1.4.c)
#include<stdio.h>
#define PI 3.14
int main( )
{
float r,area;
printf("\n Enter r value:");
scanf("%f",&r);
area=PI*r*r;
printf(" \n area=%f\n",);
return 0;
}
(四)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。(sy1.1.5.c)
行号 #include <stdio.h>
1. int main( )
2. {int x;
3. x=5,y=8;
4. printf("\n%d,%d,%d\n",x,(x+5)*2,y);
5. return 0;
6. }
错
错误在行
应改为:
调试正确后的运行结果
输出结果:
(五)编写程序
1.请用C程序告诉大家你来自哪里?有什么爱好?(sy1.1.6.c)
2.输出以下图案: (sy1.1.7.c)
*
**
***
(六)分析与讨论
1.记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。
2.总结C程序的结构和书写规则。
实验1.2 C程序快速入门
一、实验目的
1.掌握标识符、变量与常量的定义;
2.掌握C语言数据类型的种类和作用;
3.熟悉如何定义一个整型、字符型、实型变量,以与对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
4.掌握不同的类型数据之间赋值的规律;
5.掌握输出、输入函数的使用与格式控制;
6.进一步熟悉C程序语句和程序的结构特点,学习简单程序的编写方法。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main()
{ char c1,c2;
c1=97;c2=98;
printf("%c,%c\n",c1,c2);
return 0;
}
(1)在第五行后面加入以下printf语句,并运行。
printf("%d,%d\n",c1,c2);
分析结果
字符型97,98对应a,b
运行结果
a
b
(2)在(1)的基础上,将第三行改为以下语句,并运行。
int c1,c2;
分析结果
运行结果
仍为a,b
若改为%d,则为97,98
(3)在(1)的基础上,将第四行改为以下语句,并运行。
c1=321;c2=400;
分析结果
运行结果
A,?
2. 分析并运行此程序,当输入的数据为10时,下面程序的运行结果。
#include <stdio.h>
int main()
{ float x,y;
scanf("%f",&x);
printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);
printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);
printf("\n(x-=x*10,x/=10)=%d\n",(x-=x*10,x/=10));
return 0;
}
分析结果
运行结果
2.4*x-1/2=23.500000
x%%2/5-x=-10.000000
(x-=x*10,x/=10)=0
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求任意输入字符的ASCⅡ码。
#include <stdio.h>
int main( )
{char a;
int b;//变量的定义
printf(“请输入一个字符:”);
scanf(“%c”,&a);
b=(int)a;
printf(“\n\n%c的ASCⅡ码为%d\n”,a,b);
return 0;
}
2、输出任意一个十进制数对应的八进制,十六进制数。
#include<stdio.h>
int main( )
{int a;
scanf(“%d”,&a);
printf(“\n%d(10) ,%o(8), %x(16)\n”,a,a,a);
return 0;
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 #include <stdio.h>
1 int main( )
2 {int u=v=89;
3 printf(“u=%d,v=%d\n”,u,v);
4 return 0;
5 }
错
错误在 1 行
应改为:
调试正确后的运行结果
输出结果:
2.下面的程序试图计算由键盘输入的任意两个整数的平均值:
行号 #include <stdio.h>
1 int main()
2 {
3 int x,y,a;
4 scanf("%x,%y",&x,&y);
5 a=(x+y)/2;
6 printf("The average is %d:\n", a);
7 return 0;
8 }
错
错误在行
应改为:
调试正确后的运行结果
输入数据
2,6
1,4
-1,-3
-2,4
2,0
输出结果:
(四)编写程序
1. 编写一个程序,从键盘输入某电视机的价格,再输出该价格打7折后的价格。
分析:必须设计一个实型变量接受从键盘输入的值,输入、输出应该有提示。#include<stdio.h>
int main()
{
double a,b;
printf("电视机的价格:");
scanf("%lf",&a);
b=0.7*a;
printf("打折后的价格:%lf",b);
return 0;
}
2. 编写一个程序, 求一元一次方程ax+b=0的根。
分析:a、b的值从键盘输入,输入时a的值不能为0(无解),方程的根即x的值为:-b/a
实验1.3算术运算与赋值运算
一、实验目的
1.掌握算术运算符和算术表达式。
2.熟练掌握赋值运算符、复合的赋值运算符
3.熟练掌握自增1和自减1运算符。
4.熟练掌握顺序结构的程序设计,能够编写简单的应用程序。
二、实验学时数
2学时
三、实验步骤
(一)分析程序
1.分析以下程序运行的结果
#include <stdio.h>
int main()
{
int i,j,m,n ;
i=8;j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
return 0;
}
分析结果
运行结果
(2)将第6、7行改为:m=i++;
n=++j;
分析结果
运行结果
(3)程序改为:
#include <stdio.h>
int main()
{ int i , j , m=0 , n=0 ;
i=8; j=10;
m+=i++;
n-=--j;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
return 0;
}
分析结果
运行结果
1. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main( )
{ int a=17;
float u=1234.567;
printf("%d,%7d,%-7d\n",a,a,a);
printf("%f,%7.2f\n",u,u);
return 0;
}
分析结果
运行结果
2. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main( )
{int a,x,y;
x=(a=2,6*2);
y=a=2.6 *a;
printf(“x=%d,y=%d\n”,x,y);
return 0;
}
分析结果
运行结果
3.阅读以下程序,若输入的数据形式为25 13 10,输出结果为:
#include<stdio.h>
int main( )
{ int x,y,z;
scanf("%d%d%d", &x,&y,&z);
printf("x+y+z=%d\n", x+y+z);
return 0;
}
分析结果
运行结果
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1. 键盘输入任意一个小写字母,将其转换成大写字母,然后输出。
#include<stdio.h>
int main( )
{ char c1,c2;
c1=getchar( );
c2=;
putchar('\n');putchar('\'' );putchar(c2); putchar('\'' );
return 0;
}
2. 求的值。(设a=25,b=5)
#include<stdio.h>
int main( )
{ float a=25,b=5;
float c;
c=;
printf("c=%f\n ",c);
return 0;
}
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
1. 行号 #include<stdio.h>
1 int main( )
2 { int i,k;
3 i=8;
4 k=5*I*I;
5 printf("%d\n",k);
6 return 0;
7 }
错
错误在行
应改为:
调试正确后的运行结果
2.该程序输入一个三位数,然后进行个位和百位的置换,如 234 ,转换成432
行号 #include<stdio.h>
1 int main( )
2{int n,a,b,c,m;
3 scanf("%d",n);
4 a=n%10;
5 b=(n/10)%10;
6 c=(n/100)%10;
7 m=100*a+10*b+c;
8 printf("%d=>%d\n ",n,m);
9 return 0;
10 }
错
错误在行
应改为:
调试正确后的运行结果
(四)编写程序
1.编程求出某学生期末三门课程的总分与平均分。结果保留小数点后一位。
2.编程从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。
1.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。
分析:若输入的浮点数存入fd变量,则可用强制类型转换运算符,将输入的该数的整数部分取出:zhs=(int)fd;
2. 从键盘输入三角形的三条边a,b,c的值,计算三角形的面积,程序框架如下:
#include “sdtio.h”
#include “math.h”
main()
{定义变量
从键盘输入 a,b,c 三条边的值
计算 s 的值
计算三角形面积
输出结果
}
1.编程序计算数学表达式:b2 -4ac,a,b,c的值从键盘输入。
2. 编程序计算298秒是几分几秒。
提示:设 int x=298; 再定义两个变量存放分(m)、秒(s)值; 则:m=x/60;s=x%60;
3.从键盘输入一个三位数,求各位数字之和。例如,输入的三位数为358,则输出结果为3+5+8=16 。
提示:题目的关键是要求出该数的个、十、百位上的数字,可利用C语言整数相除,结果仍为整数的特点。若设该数为data,它的个、十、百位为g、s、b,则b=data/100 ;s=(data-b*100)/10;g=data%10
(三)编写程序
1.用赋值语句表达:a 的值为2,b的值比a多2,c 的值比b的值多2,并输出a,b,c的结果。请编出完整程序验证。
2.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请先填空,再编出完整程序验证。
a+=_________;(a为a、b之和) b=a-__________;a-=___________;
实验1.4逻辑运算与if语句
一、实验目的
1.掌握关系、条件、逻辑运算符与关系、条件、逻辑表达式。
2.掌握逗号运算符和逗号表达式。
3.熟练掌握三种单分支、双分支和多分支if语句。
4.掌握if语句的嵌套。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.分析程序运行结果:
#include <stdio.h>
int main()
{ int i , j , m=0 , n=0 ;
i=8; j=10;
m+=i++;
n-=--j;
printf(“%d,%d, \n”,(i,j,m),n);
return 0;
}
分析结果
运行结果
2. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main()
{
int x=10,y=9,a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
分析结果
运行结果
3、若x=12,则以下程序运行的结果是
#include<stdio.h>
int main()
{int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("y=%d\n",y);
return 0;
}
分析结果
运行结果
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main()
{ int a,b,c;
a=10;b=60;c=30;
if(a>b) a=b;
b=c;
c=a;
printf("a=%d,b=%d,c=%d\n" , a , b, c );
return 0;
}
分析结果
运行结果
2. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main()
{int x=60,a=30,b=20;
int v1=3,v2=8;
if (a<b)
if (b!=15)
if (!v1)x=1;
else
if (v2) x=10;
x=-2;
printf(“%d\n”, x);
return 0;
}
分析结果
运行结果
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1. 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在_______上填写正确容。
#include<stdio.h>
int main()
{ char ch ;
scanf("%c",&ch);
if (_______________________)ch=ch+32;
else if (ch>='a' && ch<='z' ) ____________________;
printf("%c\n" ,ch);
return 0;
}
2. 以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在_______上填写正确容。
#include <stdio.h>
#include <math.h>
int main()
{float a, b , c ;
float s , area ;
scanf(“%f ,%f ,%f” , &a, &b ,&c);
if (___________________________)
{ s=(a+b+c)/2;
area= sqrt(s*(s-a)*(s-b)*(s-c));
printf(“三角形的面积为:%f\n”,area);
if (_________________)
printf(“等边三角形\n”);
else if (_________________)
printf(“等腰三角形\n”);
else if((a*a+b*b==c*c)|| (a*a+c*c==b*b)|| (c*c+b*b==a*a))
printf(“直角三角形\n”);
else printf(“一般三角形\n”);
}
else printf(“不能组成三角形\n”);
return 0;
}
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
1. 以下程序实现求分段函数。
y= -1 x>9
x*(x+2) 3<x<=9
2*x-1<x<=3
x-1x<=-1
#include <stdio.h>
int main()
1 {int x ,y ;
2 scanf(“%d”,&x);
3 if (3<x<=9) y=x*(x+2);
4 else if (-1<x<=3) y=2*x;
5 else if (x<=-1)y=x-1;
6 else y=-1;
7 printf(“%d\n”, y);
8 return 0;
9 }
错
错误在行
应改为:
调试正确后的运行结果
输入数据:4 2 1 -3 10
输出结果:
2. 有一函数关系如下: x-3 x<0
y= 0 x=0
x+3 x>0
以下程序表示上面的函数关系
行号#include<stdio.h>
int main()
1 { int x ,y ;
2 scanf("%d",&x);
3 y=x-3;
4 if (x!=0)
5 if (x>0) y=x+3;
6 else y=x;
7 printf("y=%d\n" , y);
8 return 0;
9 }
错
错误在行
应改为:
调试正确后的运行结果
输入数据:5 0 -3
输出结果:
(四)编写程序
1. 输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。),经处理后给出学生的等级,等级分类如下:
90分以上(包括90): A
80至90分(包括80):B
70至80分(包括70):C
60至70分(包括60):D
60分以下: E
2.输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3)
1.某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收取手续费0.5元,再加上根据下表按重量weight计算的邮资,请编写程序计算某包裹的邮寄资费。
2.输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不与格成绩的个数。
实验1.5 switch选择结构
一、实验目的
1.熟练掌握switch语句。
2.掌握省略break的case语句的执行方式。
3.比较if语句的嵌套与if、switch多路分支语句。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
int main()
{ int i=1;
switch(i)
{ case 1:printf("%d\t",i++);
case 2:printf("%d\t",i++);
case 3:printf("%d\t",i++);
case 4:printf("%d\t",i++);
}
printf("\ni=%d\n",i);
return 0;
}
分析结果
运行结果
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1. 以下程序实现的功能是: -1 x<0,请将以下程序补充完整
y= 0 x=0
1 x>0
#include<stdio.h>
int main()
{ int x,y;scanf(“%d”,&x);
switch(x<0)
{case 1:;break;
case 0:switch(x==0)
{ case 1;y=0;break;
case 0:y=1;
}
}
printf(“y=%d\n”,y);
return 0;}
2.用switch结构编写一个处理四则运算的程序。
#include<stdio.h>
int main()
{ float v1,v2;char op;
printf(“please type your expression:\n”);
scanf(“%f%c%f”,&v1,&op,&v2);
switch()
{case ‘+’:printf(“%1.0f+%1.0f=%1.0f\n”,v1,v2,v1+v2);break;
case ‘’:printf(“%1.0f-%1.0f=%1.0f\n”,v1,v2,v1-v2); break;
case ‘*’:printf(“%1.0f*%1.0f=%1.0f\n”,v1,v2,v1*v2); break;
case ‘/’:
if(){printf(“除数为零\n”);break;}
else {printf(“%1.0f/%1.0f=%1.0f\n”,v1,v2,v1/v2);break;}
default:printf(“运算符错误\n”);
}
return 0;
}
3.输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3 月5 日为例,应该先把前两个月的加起来,然后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。
#include <stdio.h>
int main()
{int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",___________);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:________;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(_______________))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(______________________)/*如果是闰年且月份大于2,总天数应该加一天*/
_____________;
printf("It is the %dth day. \n ",sum);
return 0;
}
(三)编写程序
1. 以下4种水果([1]苹果[2]梨[3]桔子[4]芒果)单价分别是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,请输入水果编号、重量,计算应付款。
2.从键盘输入1-7,显示输出该日期对应的英文日期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,sunday)名称。
3.己知某公司员工的保底薪水为500,某月所接工程的利润p与利润提成的关系如下:(计量单位:元)(选作)
p<=1000 没有提成
1000<p<=2000 提成10%
2000<p<=5000提成15%
5000<p<=10000提成20%
10000<p 提成25%
1.编写程序实现运输公司对用户计算运费。路程(s)越远,每公里运费越低。
2.考虑一个自动售货机,提供如下选择:
[1]矿泉水
[2]巧克力
[3]爆米花
[4] 果汁
[5] 显示购买商品的数量
[6] 退出系统
实验2循环结构与数组(共8学时)
实验2.1 循环结构(2学时)
2.1.1 while循环和do…while循环与二者比较
2.1.2 for循环
2.1.3循环嵌套
一、实验目的
1. 掌握while ,do-while,for循环语句的使用与区别;
2. 掌握循环条件、循环体、循环终止等循环要素;
4. 理解循环执行过程。
5. 熟练使用循环语句编写程序。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1. #include <stdio.h>
int main()
{int a=2,b=8;
while(b--<0)
b-=a ;
a++ ;
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
分析结果
运行结果
2. #include<stdio.h>
int main()
{ int x=2 ,y=6 , z=3;
do
y=y-1;
while(z-->0&&++x<5) ;
printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);
return 0;
}
分析结果
运行结果
3. #include<stdio.h>
int ma
展开阅读全文