1、程序设计基础(C语言)目 录第 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 数组(1)113.8 试验8 数组(2)123.9 试验9 字符串及其操作133.10 试验10 函数143.11 试验11 结构体153.12 试验12 指针16第 1 章 概述1.1 课程介绍 程序设计基础(C语言)是软
2、件工程各专业或其它相近专业学生公共职业基础课,是软件类各专业入门课程,直接影响学生后继职业技术课程学习及可连续发展能力培养。经过本书,学习基础程序设计概念和程序设计方法,学会使用C语言处理实际问题,进行初级程序设计。1.2 试验环境选择 VC+6.0 第 2 章 试验要求 2.1 试验过程要求 本课程中,试验者必需服从指导老师和试验室工作人员安排,遵守纪律和试验制度,珍惜设备及卫生。在指定试验时间内,必需到机房内试验,其它时间可自行设计和分析。本课程所包含程序代码,全部要求有较高可读性和效率,多文件表示。 2.2 考评及评分标准 若试验者在指定上机时间三次不到课,取消考评资格。请假,必需提前出
3、具正式假条,不接收事后假条。假如发觉剽窃、篡改、伪造试验数据,或试验汇报和设计汇报雷同,包含全部学生该课程成绩计为 0 分。本课程采取结构化评分,关键由指导老师灵活处理,能够是考勤等。第 3 章 试验内容3.1 试验1 熟悉C语言运行环境一、 试验目标1. 了解什么是C语言2. 熟悉C语言程序开发环境二、 试验内容和步骤1. 大学生涯第一个程序1) 运行Microsoft Visual Studio 或VC6.02) 创建项目,选择win32控制台应用程序或空项目,项目名为MyFirstApp3) 新建项目,选择C+源文件,文件名为HelloWorld4) 在程序编辑窗口,输入以下代码#inc
4、lude /* 主程序 */void main() printf(hello worldn);5) 实施程序,Ctrl+F56) 观察输出结果,并统计2. 修改程序1) 增加语句,观察输出结果是否不一样printf(hello worldn);printf(world is men);2) 删除输出字符串中“n”,观察输出结果是否不一样printf(hello worldn);3) 进行换行输出,观察输出结果是否不一样printf(hello, );printf(world);printf(n);4) 将上个程序块中printf(n);去掉,观察输出结果是否不一样3. 用自己语言,描述下对C语
5、言程序第一印象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,将其初
6、始化为b,要求将a值改变为它所对应大写字母B(不许可使用直接赋值aB方法),最终输出a值。(提醒:大小写字母之间差32,如:AASCII码为65,aASCII码为97,她们之间差值为32)输出格式要求以下:aB4. 定义一个字符型变量charInfo,使用scanf语句将charInfo得到一个值,并输出该值。(做此题之前,请先看提供课件)5. 用scanf 输入数据,圆半径r=1.5和圆柱高h=3,求圆周长、圆面积、圆球体积、圆柱体积。输出计算结果。6. 由键盘输入底和高,求三角形面积。7. 从键盘输入两个数为两个变量赋值,然后将两个变量值相互交换,再输出两个变量值。3.3 试验3 运算符和
7、表示式一、 试验目标1. 了解表示式概念2. 掌握多种运算符和表示式应用二、 试验内容和步骤1. 以下程序不用第三个变量,实现将两个数进行对调操作,请填空。 #include void main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);a=a+b;b=a-b;a=_;printf(a=%d,b=%dn,a,b);程序运行结果,如,输入3,4 ,输出:2. 有程序运行结果以下: 其作用是将分钟数转换为对应小时数,不足一小时显示对应分钟。请将程序补充完整。#include void main()int i=560,h,m;_; /*计算小
8、时数*/_; /*计算分钟数*/printf(%d分钟%d小时%d分钟n,i,h,m);3. 先计算下面两题,再编程计算下面算术表示式值,并思索和自己计算结果是否一致1) x + a %3 * (int) (x+y) % 2 / 4 设x=2.5,a=7,y=4.7 2) (float) (a + b ) / 2 + (int) x % (int) y 设a=2,b=3,x=3.5, y=2.54. 从键盘输入基础工资,并计算输出实领工资1) 说明:a) 物价津贴为基础工资40%b) 房租津贴为基础工资25%c) 薪水为三者和2) 运行结果以下:请输入基础工资:3000该职员工资细目为:基础工
9、资为: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(a*a+b*b),求
10、出c;(程序开头还要使用#include ,因为程序中要使用求平方根sqrt函数,这个道理和要使用输入输出函数时需要使用#include 道理是一样)3) 输出c。2. 编写一个程序,实现功效以下:在键盘上任意输入一个三位正整数,然后反向输出对应一个数。比如,你在键盘中输入123,则应输出321。【算法提醒】1) 要求数据从键盘输入(scanf函数)2) 使用以下方法分别得到个、十、百位上数据,再重新组合数据,实现反向输出对应数据(即个位作为百位,百位作成个位)包含到基础算术符号 中/ 和 使用(比如,假设数据为123,要分别取它个、十、百位,再重新组合。参考以下使用方法:123/100=1,
11、123/10=12,123%10023,123103)3. 调试下列程序,使之能正确输出3个整数之和及3个整数之积。#include main( ) int a,b,c;printf(Please enter 3 numbers:);scanf(%d,%d,%d,&a,&b,&c);ab=a+b;ac=a*c;printf(a+b+c=%dn,a+b+c);printf(a*b*c=%dn,a+c*b);4. 编写一个程序,实现功效以下:从键盘中输入秒数,将它按小时、分钟、秒形式来输出。比如输入7278秒,则输出2小时1分18秒;5. 编写程序,输入四个数,并求它们平均值3.5 试验5 选择结
12、构一、 试验目标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. 编写程序,求解下列分段函数:有一函数以下题
13、目,分别采取if和switch二者语句完成5. 使用if语句编写“显示某年某月天数”程序:【分析】:一月、三月、五月、七月、八月、十月、十二月,均为31天。四月、六月、九月、十一月,均为30天。二月,闰年为29天,不是闰年为28天。该题可用switch语句求解,但碰到两个矛盾需处理:怎样表示一月、三月、五月、七月、八月、十月、十二月均为31天?这是第一个矛盾。闰年怎样判定?这是第二个矛盾。能看到以下运行结果(“, 2”是用户键盘输入,“ 年2 月是 28 天”是程序运行后显示):Please enter year and month : , 2 2 is 28 days6. 输入四个数,要求按
14、由小到大次序输出。得到正确结果后,修改程序使之按从大到小次序输出。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语句使用二、 试验内容和步
15、骤1. 输入一个正整数,将该数逆序输出。2. 编写程序,求100200之间全部素数,及其个数。3. 编写程序,输出以下图案:* * * * * * * * * * * * * * * * * * *4. 编写程序,输出以下图案:* *5. (用do-while语句实现)编写程序:从键盘上输入10个整数,求其平均值。【注意】1) 用循环条件设置控制输入个数2) 整数/整数=整数,如10/4=2,而不是2.5;【继续思索“由人为控制输入数据个数,你想求多个数平均数就求多个数平均数”,怎样编程 】6. (用while语句实现)编写程序:输入不一样半径,输出其所对应圆面积程序,输入半径为负数时结束整个
16、程序运行。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
17、纵向表头 积 10. 编写程序实现输入整数n,输出以下所表示由数字组成菱形。(图中n=4)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 2 11 2 113.7 试验7 数组(1)一、 试验目标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.
18、02. 编写一个程序输入44数组,编写程序实现:1) 求出对角线上各元素和;2) 求出对角线上行、列下标均为偶数各元素积;3) 找出对角线上其值最大元素和它在数组中位置。3.8 试验8 数组(2)一、 试验目标1. 掌握数组冒泡排序和插入排序2. 熟悉数组折半查找二、 试验内容和步骤1. 编写程序(采取冒泡排序和插入排序两种方法实现),任意输入10个整数数列,先将整数根据从大到小次序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小次序。2. 利用上题排序好数组,进行折半查找一个数组具体位置。3.9 试验9 字符串及其操作一、 试验目标1. 了解字符串和数组关系2. 掌握字符串函数使用
19、二、 试验内容和步骤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位正整数全部水仙花数中次大值。
20、所谓水仙花数是指三位整数各位上数字立方和等于该整数本身。比如:153就是一个水仙花数:153 = 13 + 53 + 33 2. 任意输入一个4位自然数,调用函数输出该自然数各位数字组成最大数。3. 编写一个函数,对输入整数k输出它全部素数因子。比如:当k126时,素数因子为:2,3,3,7。要求按以下格式输出:126 = 2 * 3 * 3 * 7。3.11 试验11 结构体一、 试验目标1. 掌握结构体定义2. 熟悉结构体初始化二、 试验内容和步骤1. 有5个学生,每个学生数据包含学号、姓名、三门课成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,和三门课总分最高学生数据(包含学号
21、、姓名、三门课成绩、平均分数)。要求用一个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),要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。