资源描述
. . 程序设计基础目 录第 1 章概述11.1 课程简介11.2 实验环境选择1第 2 章实验要求12.1 实验过程要求12.2 考核及评分标准1第 3 章实验内容23.1 实验1 熟悉C语言运行环境23.2 实验2 数据类型33.3 实验3 运算符和表达式43.4 实验4 顺序结构及输入和输出63.5 实验5 选择结构73.6 实验6 循环结构93.7 实验7 数组113.8 实验8 数组123.9 实验9 字符串及其操作133.10 实验10 函数143.11 实验11 结构体153.12 实验12 指针1612 / 14第 1 章 概述1.1 课程简介程序设计基础是软件工程各专业或其它相近专业学生的公共职业基础课,是软件类各专业的入门课程,直接影响学生后继职业技术课程的学习及可持续发展能力的培养。通过本书,学习基本的程序设计概念和程序设计方法,学会使用C语言解决实际问题,进行初级的程序设计。1.2 实验环境选择VC+6.0第 2 章 实验要求2.1 实验过程要求本课程中,实验者必须服从指导教师和实验室工作人员的安排,遵守纪律与实验制度,爱护设备及卫生。在指定的实验时间内,必须到机房内实验,其余时间可自行设计和分析。本课程所涉及的程序代码,都要求有较高的可读性和效率,多文件表示。 2.2 考核及评分标准若实验者在指定上机时间三次不到课,取消考核资格。请假,必须提前出具正式假条,不接受事后假条。如果发现抄袭、篡改、伪造实验数据,或实验报告和设计报告雷同,涉及的所有学生的该课程成绩计为 0 分。本课程采用结构化评分,主要由指导教师灵活处理,可以是考勤等。第 3 章 实验内容3.1 实验1熟悉C语言运行环境一、 实验目的1. 了解什么是C语言2. 熟悉C语言程序开发环境二、 实验内容和步骤1. 大学生涯的第一个程序1) 运行Microsoft Visual Studio 2008或者VC6.02) 创建项目,选择win32控制台应用程序或者空项目,项目名为MyFirstApp3) 新建项目,选择C+源文件,文件名为HelloWorld4) 在程序编辑窗口,输入如下代码#include /* 主程序 */void main printf;5) 执行程序,Ctrl+F56) 观察输出结果,并记录2. 修改程序1) 增加语句,观察输出结果是否不同printf;printf;2) 删除输出字符串中的n,观察输出结果是否不同printf;3) 进行换行输出,观察输出结果是否不同printf;printf;printf;4) 将上个程序块中的printf;去掉,观察输出结果是否不同3. 用自己的语言,描述下对C语言程序的第一印象4. 简单描述下,第二步骤中,输出结果相同与不同的原因;以及n的用途3.2 实验2数据类型一、 实验目的1. 掌握变量的命名规则和定义2. 掌握C语言程序中的各种数据类型并使用它们二、 实验内容和步骤1. 定义3个变量numInt、numFloat、charInfo,他们的类型分别为整型,单精度类型,字符型;并分别初始化为2,2.0和A,最后输出这三个变量的值。变量c输出两次输出格式要求如下:numInt2,numFloat2.000000,charInfoA,charInfo652. 有三个数25、47、36,编写程序求整数200减去这三个数的差。3. 定义一个字符型变量a,将其初始化为b,要求将a的值改变为它所对应的大写字母B不允许使用直接赋值aB的方法,最后输出a的值。提示:大小写字母之间差32,如:A的ASCII码为65,a的ASCII码为97,他们之间差值为32输出格式要求如下:aB4. 定义一个字符型变量charInfo,使用scanf语句将charInfo得到一个值,并输出该值。做此题之前,请先看提供的课件5. 用scanf 输入数据,圆半径r=1.5和圆柱高h=3,求圆周长、圆面积、圆球体积、圆柱体积。输出计算结果。6. 由键盘输入底和高,求三角形的面积。7. 从键盘输入两个数为两个变量赋值,然后将两个变量的值互相交换,再输出两个变量的值。3.3 实验3运算符和表达式一、 实验目的1. 了解表达式的概念2. 掌握各种运算符和表达式的应用二、 实验内容和步骤1. 以下程序不用第三个变量,实现将两个数进行对调操作,请填空。 #include void mainint a,b;scanf;printf;a=a+b;b=a-b;a=_;printf;程序运行结果,如,输入3,4 ,输出:2. 有程序运行结果如下:其作用是将分钟数转换为对应的小时数,不足一小时的显示对应的分钟。请将程序补充完整。#include void mainint i=560,h,m;_; /*计算小时数*/_; /*计算分钟数*/printf%d分钟%d小时%d分钟n,i,h,m;3. 先计算下面两题,再编程计算下面算术表达式的值,并思考与自己计算的结果是否一致1) x + a %3 * % 2 / 4 设x=2.5,a=7,y=4.7 2) / 2 + x % y 设a=2,b=3,x=3.5, y=2.54. 从键盘输入基本工资,并计算输出实领工资1) 说明:a) 物价津贴为基本工资的40%b) 房租津贴为基本工资的25%c) 薪水为三者的和2) 运行结果如下:请输入基本工资:3000该员工的工资细目为:基本工资为:3000物价津贴为:1200.0房租津贴为:750.0员工薪水为:4950.05. 幸运抽奖:商场推出幸运抽象活动,具体规则如下1) 输入会员卡号,卡号为4位整数2) 根据卡号,计算卡号的各位数字之和3) 提示,采用%运算符进行分解数字运行结果请输入4位会员卡号:8349会员卡号8349各位数字之和为:243.4 实验4顺序结构及输入和输出一、 实验目的1. 掌握顺序结构程序设计2. 熟练输入与输出的应用二、 实验内容和步骤1. 从键盘输入直角三角形的两条直角边a,b,编程序计算斜边c。算法提示1) 输入a,b的值,a,b为实型数据。2) 根据公式c=sqrt,求出c;程序的开头还要使用#include ,因为程序中要使用求平方根的sqrt函数,这个道理和要使用输入输出函数的时需要使用#include 道理是一样的3) 输出c。2. 编写一个程序,实现功能如下:在键盘上任意输入一个三位正整数,然后反向输出对应的一个数。例如,你在键盘中输入123,则应输出321。算法提示1) 要求数据从键盘输入2) 使用如下方法分别得到个、十、百位上的数据,再重新组合数据,实现反向输出对应的数据即个位作为百位,百位作成个位涉及到基本算术符号中/ 以及的使用例如,假设数据为123,要分别取它的个、十、百位,再重新组合。参考如下使用方法:123/100=1,123/10=12,123%10023,1231033. 调试下列程序,使之能正确输出3个整数之和及3个整数之积。#include main int a,b,c;printf;scanf;ab=a+b;ac=a*c;printf;printf;4. 编写一个程序,实现功能如下:从键盘中输入秒数,将它按小时、分钟、秒的形式来输出。例如输入7278秒,则输出2小时1分18秒;5. 编写程序,输入四个数,并求它们的平均值3.5 实验5选择结构一、 实验目的1. 熟练if语句的使用2. 熟练switch语句的使用二、 实验内容和步骤以下题目,采用if语句。1. 编写程序,使之具有如下功能:输入a、b、c三个整数,求最小值。2. 编写程序,求解下列分段函数:3. 某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班Lower class;4岁孩子进中班Middle class;5岁、6岁孩子进大班Higher class。编写程序用switch语句,输入孩子年龄,输出年龄及进入的班号。如:输入:3输出:age:3,enter Lower class。以下题目,采用switch语句。4. 编写程序,求解下列分段函数:有一函数以下题目,分别采用if和switch两者语句完成5. 使用if语句编写显示某年某月的天数程序:分析:一月、三月、五月、七月、八月、十月、十二月,均为31天。四月、六月、九月、十一月,均为30天。二月,闰年为29天,不是闰年为28天。该题可用switch语句求解,但遇到两个矛盾需解决:如何表示一月、三月、五月、七月、八月、十月、十二月均为31天?这是第一个矛盾。闰年如何判断?这是第二个矛盾。能看到如下运行结果:Please enter year and month : 2002, 22002 2 is 28 days6. 输入四个数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按从大到小顺序输出。7. 给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E3) 要求分别用if语句和switch语句编程实现,并检查结果是否正确4) 再运行一次程序,输入分数为负数如-70,这显然是输入时出错,不应该出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户输入数据错,程序结束。3.6 实验6循环结构一、 实验目的1. 熟练while语句的使用2. 熟练dowhile语句的使用3. 熟练for语句的使用二、 实验内容和步骤1. 输入一个正整数,将该数逆序输出。2. 编写程序,求100200之间所有的素数,及其个数。3. 编写程序,输出以下图案:* * * * * * * * * * * * * * * * * * *4. 编写程序,输出以下图案:*5. 用do-while语句实现编写程序:从键盘上输入10个整数,求其平均值。注意1) 用循环条件的设置控制输入的个数2) 整数/整数=整数,如10/4=2,而不是2.5;继续思考由人为的控制输入数据的个数,你想求几个数的平均数就求几个数的平均数,如何编程 6. 用while语句实现编写程序:输入的不同半径,输出其所对应的圆面积程序,输入半径为负数时结束整个程序运行。7. 用for语句实现编写程序:求1100之间的素数,将每个素数都打印出来,并且要求每行只显示5个数。8. 用循环语句编写程序。9. 实现功能显示乘法口诀表The multiplication table = | 1 2 3 4 5 6 7 8 9 横向表头 - 1 | 1 2 | 2 4 3 | 3 6 9 4 | 4 8 12 16 5 | 5 10 15 20 25 6 | 6 12 18 24 30 36 7 | 7 14 21 28 35 42 49 8 | 8 16 24 32 40 48 56 64 9 | 9 18 27 36 45 54 63 72 81纵向表头 积 10. 编写程序实现输入整数n,输出如下所示由数字组成的菱形。图中n=411 2 11 2 3 2 11 2 3 4 3 2 11 2 3 2 11 2 113.7 实验7数组一、 实验目的1. 掌握数组的应用2. 熟悉二维数组的应用二、 实验内容和步骤1. 以表格的形式输入5笔购物金额,最后输出各笔信息以及总金额运行结果请输入第1笔购物金额:123.6请输入第2笔购物金额:45.7请输入第3笔购物金额:325.7请输入第4笔购物金额:99.0请输入第5笔购物金额:128.0序号金额元1:123.62:45.73:325.74:99.05:128.0总金额 722.02. 编写一个程序输入44的数组,编写程序实现:1) 求出对角线上各元素的和;2) 求出对角线上行、列下标均为偶数的各元素的积;3) 找出对角线上其值最大的元素和它在数组中的位置。3.8 实验8数组一、 实验目的1. 掌握数组的冒泡排序和插入排序2. 熟悉数组的折半查找二、 实验内容和步骤1. 编写程序采用冒泡排序和插入排序两种方法实现,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。2. 利用上题排序好的数组,进行折半查找一个数组的具体位置。3.9 实验9字符串及其操作一、 实验目的1. 理解字符串和数组的关系2. 掌握字符串函数的使用二、 实验内容和步骤1. 编写一个程序,对给定的一串字符串s=Iamastudent,获得该字符串从索引3到7的子串,并将结果显示出来。2. 程序要求如下:给定字符串:this is java for you,java is good for programming!编写代码:完成如下要求:5) 打印这个字符串的长度。6) 打印第一次出现字符a的位置。7) 打印最后一次出现字符串for的位置3. 将字符串全部转为大写并打印。3.10 实验10函数一、 实验目的1. 掌握函数的定义2. 熟悉函数的调用3. 理解实参和形参的区别二、 实验内容和步骤1. 编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如:153就是一个水仙花数:153 = 13 + 53 + 332. 任意输入一个4位自然数,调用函数输出该自然数的各位数字组成的最大数。3. 编写一个函数,对输入的整数k输出它的全部素数因子。例如:当k126时,素数因子为:2,3,3,7。要求按如下格式输出:126 = 2 * 3 * 3 * 7。3.11 实验11 结构体一、 实验目的1. 掌握结构体的定义2. 熟悉结构体的初始化二、 实验内容和步骤1. 有5个学生,每个学生的数据包括学号、XX、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及三门课总分最高的学生的数据包括学号、XX、三门课的成绩、平均分数。要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。3.12 实验12指针一、 实验目的1. 理解指针的意义2. 掌握指针变量和指针运算符的使用二、 实验内容和步骤1. 在主函数中任意输入10个数存入一个数组,然后按照从小到大的顺序输出这10个数,要求数组中元素按照输入时的顺序不能改变位置。2. 请编程读入一个字符串,并检查其是否为回文即正读和反读都是一样的。例如:读入:MADA M I M ADAM. 输出:YES读入:ABCDBA. 输出:NO3. 自己编写一个比较两个字符串s和t大小的函数strcomp,要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。
展开阅读全文