《程序设计语言C》实验指导书
更新时间:2024-04-02 01:44:01 阅读量: 综合文库 文档下载
- 《程序设计语言Ada》推荐度:
- 相关推荐
《程序设计语言C》实验指导书
实验一 熟悉C语言的运行环境
一、实验目的
1.熟悉Visual C++ 6.0的集成环境,了解如何编辑、编译、连接和运行一个C程序,即运行一个C程序的全过程。
2.通过运行简单的C程序,初步了解C程序的基本结构及特性。
二、实验内容
1.上机验证运行教材P6 例1.1 字符串输出。 文件名:SY01-01.C 2.上机验证运行教材P8 例1.2 求两个整数之和。 文件名:SY01-02.C 3.上机验证运行教材P8 例1.3 求两个整数中的较大者。 文件名:SY01-03.C
上机操作的基本步骤见教材P370-P376附录A ,注意:
(1)先在硬盘上建立一个工作目录(例如:E:\\2011314101欧阳海),将实验中的源文件都保存到该文件夹。
(2)选择“File/New/Files/C++ Source File”,在“Location”框中选择要保存文件的目录,在“File”框中输入文件名,文件名后缀为 .C。
(3)在新建一个C++源程序文件前,先关闭以前的工作区(文件/关闭工作区或File/Close Workspace)。
1 / 16
实验二 数据类型、运算符与表达式
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法,输出方法。
2.了解不同的类型数据之间赋值的规律。
3.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运算符的使用。
二、实验内容
1.定义整型变量、单精度浮点型变量、双精度浮点型变量、字符型变量各1个,给变量赋值并输出。 文件名:SY02-01.C
#include
b=357.123456789; c=357.123456789; d='A';
2 / 16
printf(\的十进制数是:%d,十六进制是:%x\\n\ printf(\ printf(\ printf(\ return 0; }
2.算术表达式,文件名:SY02-02.C #include
{ int a,b,c,x,y,z; a=4,b=6,c=7; x=a+b*5-++c%3; a=12,b=5,c=23; y=a+++--b*3+--c%3; a=12,b=5,c=23;
z=(a++)+(--b)*3+(--c)%3; printf(\ printf(\ printf(\ return 0; }
3.赋值表达式,文件名:SY02-03.C #include
{ int a=3,b=10,c=20,x,y,z; x=y=z=0; x+=a+b+4; y*=(y=5)+a+5; z+=y+x+(z=9);
printf(\ return 0; }
4.关系表达式,文件名:SY02-04.C #include
3 / 16
{ int a=2,b=7,c=12,x,y,z; x=(a<=b); y=(a+b>=c); z=((a=(c!=5));
printf(\ return 0; }
5.逻辑表达式,文件名:SY02-05.C #include
{ int a=1,b=0,c=1,x,y,z; x=!((a&&b)||(a&&c)); y=++a&&b&&++a; z=--c||a||b++;
printf(\ printf(\return 0; }
6.逗号表达式,文件名:SY02-06.C #include
{ int a=2,b=7,c=12,x1,x2,y1,y2; x1=(a-8,b*3,c+20); x2=a-8,b*3,c+20; y1=(a-6,b*12); y2=a=6,b*12;
printf(\ return 0; }
7.编写一个程序,求表达式x-z%2*(x+y)%2/2的值。设x=8.5 ,y=2.5 ,z=4。文件名:SY02-07.C #include
x=8.5,y=2.5,z=4;
4 / 16
bds=x-z%2*(int)(x+y)%2/2;
printf(\ return 0; }
8.向字符变量赋予整数 文件名:SY02-08.C #include
printf(\ printf(\ return 0; }
9.给定小写字母,输出对应的大写字母 文件名:SY02-09.C #include
printf(\ return 0; }
10.强制类型转换 文件名:SY02-10.C #include
printf(\ return 0; }
5 / 16
11.文件名:SY02-11.C #include
printf(\}
12.程序改错 文件名:SY02-12.C
下面的程序的功能是计算由键盘输入的任意两个整数的平均值,找出程序中的错误并改正之。 #include
scanf(“%x, %y, &x, &y); a=(x+y)/2;
printf(“The average is :” a); }
调试无错误后,使用下列测试用例对上述程序进行测试:2,5
改正后的程序: #include
printf(\ scanf(\ a=(float)(x+y)/2;
printf(\}
实验三 顺序结构程序设计
一、实验目的
1.掌握赋值语句的使用方法。
2.掌握各种类型数据的输入、输出的方法,能正确使用各种格式转换符。
6 / 16
3.掌握输入、输出函数的使用。
二、实验内容
1.从键盘输入两个整数,求两数之和并输出。 文件名:SY3-01.C 2.从键盘输入园的半径r,求园的周长C、面积S并输出。 文件名:SY3-02.C 3.从键盘输入一个小写字母,要求输出其对应的大写字母。 文件名:SY3-03.C 4.输入圆锥的底面圆的半径和高,求圆锥的表面积和体积。 文件名:SY3-04.C
s??r2??rll?r2?h2 求平方根函数sqrt( )
1v??r2h r2可用函数pow(r,2)表示,也可用r*r表示
35.求一个三位正整数各位数上的数字之和(例如:357为3+5+7=15)。 文件名:SY3-05.C 6.求一元二次方程ax?bx?c?0的根。(教材P86例4.1) 文件名:SY3-06.C
2实验四 选择结构程序设计
一、实验目的
1.熟悉关系表达式和逻辑表达式的使用。
2.掌握break 和continue语句的使用,以及它们之间的区别。 3.熟悉掌握if语句和switch语句的应用。
二、实验内容
1.从键盘输入3个整数,求最大的数。 文件名:SY4-01.C
(x?1)?x?2.有一函数y??2x?1(1?x?10) 文件名:SY4-02.C
?3x?11(x?10)?编写程序:输入x,输出y值。
3.输入百分制成绩,要求输出对应的等级A~E。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。 文件名:SY4-03.C
4.编写程序:输入月收入,输出应交个人所得税金额。 文件名:SY4-04.C
个人所得税税率
级数 1 2 3 4 5 6 7 应纳税所得额(月) 不超过1500元部分 超过1500元至4500元部分 超过4500至9000元部分 超过9000至35000元部分 超过35000至55000元部分 超过55000至80000元部分 超过80000元的部分 7 / 16
税率 3% 10% 20% 25% 30% 35% 45% 速算扣除数 0 105 555 1005 2755 5505 13505 超额累进应纳税款 = 纳税所得额×按全额累进所用税率-速算扣除数
个人所得税起征点为3500元。五险一金(养老保险、医疗保险、失业保险、工伤保险、生育
保险、住房公积金)不交税,本题不考虑五险一金。
例如:某人月收入为6000元,则3500元不用交税,2500元要交税。2500元中的1500元交税
3%即45元,1000元交税10%即100元,此人需交个人所得税145元。用速算法:(6500-3500)*10%-105=145元。
实验五 循环结构程序设计
一、实验目的
1.掌握三种循环语句:while语句 、do while语句、for语句。 2.学会非顺序程序的编写,并结合程序掌握一些简单的算法。 3.会使用循环嵌套进行编程。
二、实验内容
1.求1+2+3+?+100。 (教材P115 例题5.1、5.2、5.3)
要求分别用以下三种循环实现: while语句、do while语句、for语句;文件名分别为:SY5-01F1.C、SY5-01F2.C、SY5-01F3.C。
2.求100之内的素数。 文件名:SY5-02.C 3.输入两个正整数,求其最大公约数和最小公倍数。 文件名:SY5-03.C 4.求1!+2!+3!+ ?+20! 文件名:SY5-04.C 5.求1-100之间能同时被3和5整除的数。 文件名:SY5-05.C 6.输出所有的“水仙花数”。
“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1+5+3。
3
3
3
1111?????,求?的近似值。 文件名:SY5-07.C
4357923581321,?,求这个数列的前20项之和。 P141习题10 8.有一分数序列 ,,,,,12358137.已知
??1?9.输出“九九乘法表”。
8 / 16
10.输出以下图形 (教材P141 习题16)
11.编写程序输出1000之内的所有“完数”。(P141 习题5.9)
注:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
实验六 数组
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用;
3.掌握排序、求最大值(最小值)、求平均值(和)等基本算法。
二、实验内容
1.从键盘输入10个整数,求最大数。
2.从键盘输入10个整数,按从大到小顺序输出。 3.编写程序,完成以下功能
(1)先从键盘上输入一个 3行3列矩阵的各个元素的值, (2)输出主对角线元素之和,(3)实现矩阵的转置(即行列互换) 。
4.输入N*N矩阵的N及各元素,找出最大元素,并指出该最大元素位于矩阵的第几行,第几列。 5.输入一行字符,求字符串的长度 6.输入一行字符,反向显示。
7.将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。 8.输入一行字符,统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。 9.编写程序,将两个字符串连接起来。 10.输出以下的杨辉三角形。
9 / 16
实验七 函数
一、实验目的
1.掌握函数的定义、调用、参数传递; 2.掌握函数嵌套调用和递归调用的方法;
3.掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法;
二、实验内容
1.从键盘输入10个整数,求最大数。要求输入、输出在主函数中实现,求最大值用函数实现。 2.从键盘输入10个整数,按从小到大顺序输出。要求输入、输出在主函数中实现,排序用函数实现。 3.编写求圆周长、圆面积、球体积的程序。要求在主程序中输入半径、输出圆周长、圆面积、球体积,用函数分别实现求圆周长、圆面积、球体积。
4.编写函数fun将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=4251。要求:在主函数中输入a、b,输出c。
5.用递归方法求n!。 教材P187例7.7 6.文本菜单
圆周长、圆面积、球体积计算
1.计算圆周长 2.计算圆面积 3.计算球体积 4.退出
(1)用文本菜单方式循环实现,在键盘上通过1、2、3、4选择对应功能。 (2)主程序显示文本菜单、进行功能选择、调用子函数。 (3)计算圆周长、圆面积、球体积分别用三个子函数实现。
10 / 16
#include
#define PI 3.1415926
float zc(); float mj(); float tj();
int main() { char c; while(1)
{ system(\清屏
printf(\ printf(\计算园周长\\n\ printf(\计算圆面积\\n\ printf(\计算球体积\\n\ printf(\退出系统\\n\
printf(\
printf(\请选择:\ scanf(\
switch(c)
{ case '1':zc();getch();break; case '2':mj();getch();break; case '3':tj();getch();break; case '4':exit(0);break; } }
Return 0; }
float zc()
{ float r,qzc;
printf(\ scanf(\ qzc=2*PI*r;
printf(\}
float mj()
{ float r,qmj;
printf(\ scanf(\
11 / 16
qmj=PI*r*r;
printf(\}
float tj()
{ float r,qtj;
printf(\ scanf(\
qtj=4.0/3.0*PI*r*r*r; printf(\}
实验八 指针
一、实验目的
1.通过实验加深理解指针概念,掌握指针变量的定义与应用; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串指针和指向字符串的指针变量; 4.了解指向指针的指针的概念及其使用方法。
二、实验内容
1.运行下列程序
#include
2.输入3个整数,按由小到大的顺序输出。 (教材P291习题8.1) 3.输入3个字符串,按由小到大的顺序输出。 (教材P291习题8.2)
12 / 16
#include
5.输入一行文字,统计大写字母、小写字母、空格、数字字符及其他字符的个数。(教材P291 习题8.8)
6.有一个3*4的矩阵,编写一程序利用指针变量实现矩阵的转置。(教材P291 习题8.9) 7.将n个数按输入时顺序的逆序排列,用函数实现。 (教材P292习题8.14)
8.有一个班4个学生,3门课程。①求第一门课程的平均分;②找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编写3个函数实现以上3个要求。 (教材P292习题8.15)
9.写一函数,实现两个字符串的比较。 (教材P292习题8.17)
实验九 结构体和共用体
一、实验目的
1.掌握结构体类型变量和结构体类型变量数组的定义和使用; 2.掌握共用体的概念与使用。
二、实验内容
1.结构体变量
对成员取字符型name,整数型age和salary,结构名为shain的结构和结构变量进行说明之后,将lixia赋值给name,20赋值给age,2580赋值给salary并进行显示。
2.多结构变量
将下表数据赋值给结构变量并进行显示。
姓名 lixia wangpin sunjun 年龄 20 35 28 工资 2580 4500 3800 3.结构数组变量
将上题表格中的数据赋值给结构数组并进行显示。 4.结构指针变量
将第3题表格中的数据赋值给结构数组,并用指向结构体数组的指针来进行显示。 5.下表为学生成绩表,编写程序从键盘输入5个学生的数据记录,然后输出这些记录。
学号
姓名 成绩1 成绩2 13 / 16 成绩3 (num) 101 102 103 104 105 (name) Li Ma Wang Sun Xue (score1) 90 97 95 67 87 (score2) 79 90 88 89 65 (score3) 89 68 92 56 69 6.对上题中的学生成绩表,从键盘输入5个学生的数据,计算每个学生的平均成绩,要求输出学生信息(学号、姓名、3门课程成绩、平均分),以及平均分最高的学生数据。
实验十 文件
一、实验目的
1.掌握文件的打开和关闭方法; 2.了解文件的基本处理函数。
二、实验内容
1.读文本文件的内容并显示。
2. 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。 P338例10.1 3. 将一个文件中的信息复制到另一个文件中。 P338例10.2
4.5个学生的学习成绩表见实验九第5题,从键盘上输入这些数据,计算平均成绩,将原有数据及计算出的平均成绩存放在磁盘文件“stud”中。
5.将上题“stud”文件中的学生数据,按平均分(降序)排序处理,将已排序的学生数据存入一个新文件“studsort”中。
实验十一 位运算
一、实验目的
1.掌握按位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。
二、实验内容
1.求数5和12的AND、OR、XOR、NOT的值。
2.逻辑运算:a取12、b取18、c为0,编写求a&&b,a&&c,a||b,a||c,!a,!b的程序。 3.编写求将数12左移3位,将数5右移1位的值的程序。
14 / 16
实验上交材料要求
1.实验3~实验7实验的源程序(只要源程序,其余文件删除),文件名用指定的文件名。以自己的学号和姓名为目录,例如:2011314101欧阳海,下面不要有子目录。
2.《程序设计语言C》学习总结:C语言课程的内容、你觉得学习中比较困难的地方、实验中遇到的问题及解决方法、学习的心得体会(比如:学得好或不好的原因)、对今后教学的建议等。 3.上交时间:16周星期一之前,收齐后以班级为单位发到 winterming@163.com
实验资料电子版在邮箱: fosucomputer@163.com 密码:computer
附录:上机操作注意事项
一、上机操作步骤
1.工作目录、文件名 2.编辑、保存文件 3.编译、调试改错 4.连接、运行
二、C程序结构
15 / 16
三、常见错误
1.程序中的符号、界限符等为半角下字符,而非全角下字符 2.变量要先定义再使用 3.语句以分号;结尾
4.等号(==)与赋值符号(=)的区别 5.注意大小写 6.函数名错误
7.数据类型、格式说明符要一致 8.复合语句用{ } 9.括号要配对 10.if else的配对 11.scanf、printf
Printf函数可输出字符串,也可输出变量的值。格式为: ①输出字符串:Printf(“This is a C program.\\n”); ②输出字符串及变量:Printf(“sum is %d\\n”,sum);
Scanf函数可将键盘输入的值赋值给变量
①键盘输入一个整数赋值给变量a:scanf(“%d”,&a); 格式符%d加引号,变量前要使用& ②键盘输入两个整数赋值给变量a和b:scanf(“%d,%d”,&a,&b); 或scanf(“%d %d”,&a,&b); 注意:由键盘输入多个数值时格式(逗号、空格、回车)要与scanf中的一致。 ③不要用:scanf(“a=%d”,&a); 改为:printf(“a=”); scanf(“%d”,&a); ④不要用:scanf(“%d\\n”,&a);
四、编程风格
注释、空行、空格、缩进、对齐
16 / 16
三、常见错误
1.程序中的符号、界限符等为半角下字符,而非全角下字符 2.变量要先定义再使用 3.语句以分号;结尾
4.等号(==)与赋值符号(=)的区别 5.注意大小写 6.函数名错误
7.数据类型、格式说明符要一致 8.复合语句用{ } 9.括号要配对 10.if else的配对 11.scanf、printf
Printf函数可输出字符串,也可输出变量的值。格式为: ①输出字符串:Printf(“This is a C program.\\n”); ②输出字符串及变量:Printf(“sum is %d\\n”,sum);
Scanf函数可将键盘输入的值赋值给变量
①键盘输入一个整数赋值给变量a:scanf(“%d”,&a); 格式符%d加引号,变量前要使用& ②键盘输入两个整数赋值给变量a和b:scanf(“%d,%d”,&a,&b); 或scanf(“%d %d”,&a,&b); 注意:由键盘输入多个数值时格式(逗号、空格、回车)要与scanf中的一致。 ③不要用:scanf(“a=%d”,&a); 改为:printf(“a=”); scanf(“%d”,&a); ④不要用:scanf(“%d\\n”,&a);
四、编程风格
注释、空行、空格、缩进、对齐
16 / 16
正在阅读:
《程序设计语言C》实验指导书04-02
04+温州2010年度第一学期十校联合体高三期中考试数学理科试卷及答案12-18
教师节黑板报通知112-02
最新西山小学 专项课题《学生核心素养校本化实施的实践研究》开题报告汇编 - 图文01-20
解决科技型中小企业的融资难题论文08-22
2022-2022学年甘肃省会宁四中高一下学期期中考试生物试题04-12
浙江省重点建设项目档案专项验收评分标准05-23
会展案例分析教案06-09
双关与象征的比较11-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 程序设计
- 语言
- 实验
- 中华人民共和国特种设备安全法试题及答案(最全)
- 历年高考复数试题汇编
- 名著阅读围城40道选择题
- 学习《幼儿园教师专业标准》的心得体会
- 中考真题一模二模资料第一学期初三化学质量检测试卷
- 分享超级技巧
- 计算机网络及应用实验指导书
- 社交网络疏远了人们之间的距离-立论
- 部编2017新版七年级下册语文 生字词(B4试卷格式)
- 天姚星在各个宫位的表现
- 全国水环境容量核定技术指南 - 图文
- 东莞市房产测绘细则(送审稿)
- 17春北理工《二手车鉴定评估》在线作业
- 中国松鹤镇尺行业发展研究报告 - 图文
- 苏教版三年级数学下册第6、7单元试卷
- 2018-2024年CRO行业市场盈利模式与投资前景研究报告(目录) -
- 假设检验spss操作例题
- 城乡居民养老保险注销登记业务经办方法
- 定语从句导学案及 高考真题(有答案)
- 少数民族预科学生思想政治教育工作情况汇报