封面:2015-2016学年第一学期,年级是2015级,指导教师:网络工程专业1班写:赵玉艳陈海宝;网络工程2班写:赵玉艳肖刚,其它如实填写。
实验名称:实验一用C语言编写简单程序;实验二分支结构程序设计;实验三循环结构程序设计;实验四函数程序设计;实验五数组程序设计;实验六指针程序设计;实验七结构体程序设计。
课程名称:程序设计基础(Ⅰ)实验时间:分别为9.28, 10.12, 11.9, 11.23, 12.7, 12.21, 1.4实验地点:X405组号,同组人以及成绩:不需要填写实验环境:Windows 7;Visual C++ 6.0。
实验目的实验一用C语言编写简单程序1. 熟悉VC6.0的编程环境,掌握运行C程序的基本步骤。
2. 了解C程序的基本框架,模仿例题编写简单的C语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C语言提供的数学库函数。
5. 掌握简单的单步调试方法。
实验二分支结构程序设计1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if语句实现多分支结构程序设计。
3.熟练掌握关系表达式和逻辑表达式的使用。
4.熟练掌握字符型数据的输入输出。
5.熟练掌握用嵌套的if语句或switch语句实现多分支结构程序设计。
6.熟练掌握switch语句中的break语句的作用。
7.掌握使用断点调试程序的方法。
实验三循环结构程序设计1. 熟练使用for、while和do-while语句实现简单的循环程序。
2. 理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处。
3. 掌握使用Debug菜单调试程序的方法。
4. 掌握break语句的使用。
5. 掌握continue语句的使用。
6. 熟练掌握嵌套循环程序设计。
实验四函数程序设计1. 熟练掌握函数的定义和调用。
2. 熟练掌握使用函数编写程序。
3.熟练掌握函数的实参、形参和返回值的概念及使用。
4. 掌握局部变量与全局变量在函数中的运用。
5. 掌握单步调试进入函数和跳出函数的方法。
6. 掌握嵌套函数的使用方法。
7. 掌握递归函数的编程方法。
实验五 数组程序设计1.掌握一维、二维数组编程的方法;2.理解排序算法的实现方法;3.掌握字符串的存储和操作方法;4.掌握数组程序的调试方法。
实验六 指针程序设计1. 理解指针、地址和变量/数组之间的关系。
2. 掌握通过指针操作数组元素的方法。
3. 掌握变量地址/数组名作为函数参数的编程方法。
4. 掌握通过指针操作字符串的方法。
5. 掌握与字符串操作与关的几个库函数。
实验内容和实验步骤实验一 用C 语言编写简单程序1.在屏幕上显示一个句子“What is a computer?”。
2.求华氏温度150F 对应的摄氏温度。
计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。
3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。
4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。
实验二 分支结构程序设计1.输入x ,计算并输出下列分段函数sign(x)的值。
553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥1 x<0()0 x=01 x>0y sign x -⎧⎪==⎨⎪⎩2.输入月薪salary,输出应交的个人所得税tax(保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction。
当s alary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary时,rate=45%、deduction=135053.输入一个正整数n,再输入n个学生的百分制成绩,统计各等级成绩的个数。
成绩等级分为五分级,分别是A(90-100),B(80-89),C(70-79),D(60-69)和E(0-59)。
4.查询水果的单价。
有4种水果,苹果(apple),梨(pear),橘子(orange)和葡萄(grape),单价分别是3.00元/千克,2.5元/千克,4.10元/千克和10.20元/千克。
在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。
当用户输入编号1-4,显示相应水果的单价(保留一位小数);输入0,退出查询;输入0-4之外的其它编号,显示价格为0。
[1] apple [2] pear [3] orange [4] grape [0] exit5.输入一个整数x,判断x能否被3、5、7整除,并输出以下信息之一。
(1) 能同时被3、5、7整除。
(2) 能被其中两个数整除。
(3) 能被其中一个数整除。
(4) 不能被3、5、7任意一个数整除。
6.输入五级制成绩(A-E),输出相应的百分制成绩区间(0-100)。
五级制成绩对应的百分制成绩区间为:A(90-100),B(80-89),C(70-79),D(60-69)和E(0-59)。
实验三循环结构程序设计1.输入一个正整数n,再输入n个整数,输出最小数。
2.输入一个整数,求它的位数以及各位数字之和。
例如,123的位数是3,各位数字之和是6。
3.输入一个正整数n,输出2/1 + 3/2 + 5/3 + 8/5 + …的前n项之和,保留2位小数。
(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)。
4.输入两个正整数a和n,求a + aa + aaa + aaaa + a a…a(n个a)之和。
例如,输入2和3,输出246(2+22+222)。
5.将一笔零钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合。
输入金额,输出共有多少种换法。
6.输入两个正整数m和n(0 < m < n < 1000),输出m到n之间的所有水仙花数。
水仙花数是指各位数字的立方和等于其自身的数。
7.计算2-100之间的所有素数之和。
说明:以上7个做在实验报告中,下面的5个做为课下练习。
1.从键盘上输入一个正整数,判断该数是否为素数。
2.输入一个正整数n (n < 7),输出n 行由大写字母A 开始构成的三角形字符阵列图形。
例如输入的正整数是4,则显示一个4行直角三角形,第一行“ABCD ”,第二行“EFG ”,第三行“HI ”,第四行“J ”。
3.显示一个5行的等腰三角形,第一行有一个星号,第二行有三个星号,第三行有五个星号,第四行有7个星号,第五行有9个星号。
4.显示一个5行的菱形,第一行有一个星号,第二行有三个星号,第三行有五个星号,第四行有3个星号,第五行有1个星号。
5.在中国数学史上,广泛流传着一个“韩信点兵”的故事:据说韩信在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,记下最末一个士兵报的数为1;按从1至6报数,记下最末一个士兵报的数为5;按从1至7报数,记下最末一个士兵报的数为4;按从1至11报数,记下最末一个士兵报的数为10;你知道韩信至少有多少兵?实验四 函数程序设计1.输入x ,计算并输出下列分段函数sign(x)的值。
要求定义和调用函数sign(x)实现分段函数。
2.输入一批正整数(以零或负数为结束标志),求其中所有奇数的和。
要求定义和调用even(n)函数判断整数的奇偶性,当n 为偶数时返回1,否则返回0。
3.给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位小数)。
要求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。
4.输入两个正整数m 和n (1 ≤ m ,n ≤ 500),统计并输出m 和n 之间的素数的个数以及这些素数之和。
要求定义和调用函数prime(m)判断m 是否为素数。
4.读入一个整数,统计并输出该数中“2”的个数。
要求定义和调用函数countdigit(number,digit),其功能是统计整数number 中数字digit 的个数。
例如:countdigit(12292,2)的返回值为3。
5.输入两个正整数m 和n (1 ≤ m ,n ≤ 1000),输出m-n 之间的所有满足各位数字的立方和等于它本身的数。
要求定义和调用函数is(number)判断number 的各位数字之立方和是否等于它本身。
6.根据下列公式可以计算出从n 个不同元素中取出m 个元素(m <= n )的组合数。
编写程序输入两1 x<0()0 x=01 x>0y sign x -⎧⎪==⎨⎪⎩个正整数m 和n (m ≤ n ),计算并输出组合数。
要求定义和调用函数fact(n)计算n!,函数类型为double 。
7.求1! + 2! + … + 10!,要求定义并调用递归函数fact(n)计算n!,函数类型为double 。
8.用递归方法编写求斐波那契数列项的函数,返回值为整型,并写出相应的主函数。
9.输入一个正整数n ,将其转换为二进制后输出。
要求定义并调用函数dectobin(n),它的功能是输出n 的二进制。
实验五 数组程序设计1. 输入一个正整数n (1 < n ≤ 10),再输入n 个整数,输出平均值(保留两位小数)。
2. 输入一个正整数n (1 < n ≤ 10),再输入n 个整数,输出最大元素及其下标(假设最大元素唯一且下标从零开始)。
3.输入一个正整数n (1 < n ≤ 10),再输入n 个整数,将它们从大到小排序后输出。
4.读入一个正整数(1 ≤ n ≤ 6),再读入n 阶矩阵a ,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线从矩阵的右上角到左下角的连线)。
5.读入一个正整数(0 < n < 6),输出九九乘法表的前n*n 项(将乘数、被乘数和乘积放入一个二维数组中,再输出该数组)。
6.输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符。