《C语言程序设计》实验指导书
更新时间:2024-03-22 23:24:01 阅读量: 综合文库 文档下载
10级软件工程《C语言程序设计基础》指导书
实验1 C的实验环境和C语言的数据类型
⒈ 实验目的
⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。 ⑵ 通过运行简单的C程序,初步了解C源程序的特点。
⑶ 掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
⑷ 掌握不同的类型数据之间赋值的规律。
⑸ 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
⒉ 实验内容和步骤
⑴ 检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。 ⑵ 进入所用的集成环境。
⑶ 熟悉集成环境的界面和有关菜单的使用方法。 ⑷ 输入并运行一个简单的、正确的程序。
⒊ 实验题目
⑴ 输入下面的程序
# include “stdio.h” void main()
{ printf(“This is a c program.\\n”); }
程序无误,其运行的结果为:This a c program
⑵ 输入并编辑一个有错误的C程序。
# include “stdio.h” void main() { int a,b,sum a=123; b=456; sum=a+b
print(“sum is %d\\n”,sum); }
运行后程序出现几处错误,请分别指出,并逐一更改:3处
10级软件工程《C语言程序设计基础》指导书
# include \void main() { int a,b,sum; a=123; b=456; sum=a+b;
printf(\is %d\\n\}
⑶ 若k,g均为int型变量,则下列语句的输出为,:
# include “stdio.h” void main() { int k, g;
k=017; g=111; printf(“%d\\t”,++k); printf(“%x\\n”,g++); }
运行结果为:16 6f
10级软件工程《C语言程序设计基础》指导书
实验2 顺序结构程序设计
⒈ 实验目的
⑴ 掌握C语言中赋值语句的使用方法。
⑵ 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 ⑶ 进一步熟悉C程序的编辑、编译、连接和运行的过程。
⒉ 实验内容
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
请书写程序
#include “stdio.h” void main() { int a,b; float x,y; char c1,c2;
scanf(“a=%d b=%d”,&a,&b); scanf(“%f %e”,&x,&y); scanf(“ %c %c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\\n”,,a,b,x,y,c1,c2); }
运行,并按照如下方式在键盘上输入: A=3 b=7 8.5 71.82 A a
运行结果:
A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a
思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字
符,而写成:scanf(“%c %c”,&c1,&c2); 按以上的输入、输出将如何变化?请分析原因:输出结果为A=3,b=7,x=8.500000,y=71.820000,c1= ,c2=A..因为scanf(“ %c %c”,&c1,&c2)的空格吸收了在输入时的空格导致答案是A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a,.而少了空格则导致空格做为字符直接给了c1 所以导致了答案不一致.
10级软件工程《C语言程序设计基础》指导书
实验3 选择结构程序设计
⒈ 实验目的
⑴ 了解C语言表示逻辑量的方法(以0代表”假”,以非0代表”真”)。 ⑵ 学会正确使用逻辑运算符和逻辑表达式。 ⑶ 熟练掌握if语句和switch语句。 ⑷ 结合程序掌握一些简单的算法。 ⑸ 学习调试程序。
⒉ 实验内容
题目⑴: 有3个整数a、b、c,由键盘输入,输出其中最大的数。
题目⑵:求三位数的水仙花数。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
10级软件工程《C语言程序设计基础》指导书
实验4、循环结构程序设计
⒈ 实验目的
⑴ 熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
⑵ 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 ⑶ 进一步学习调试过程。
⒉ 实验内容
题目⑴:输入两个正整数m和n,求其最大公约数和最小公倍数。
题目⑵:输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。
题目⑶:猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
10级软件工程《C语言程序设计基础》指导书
实验5 函数定义和使用
⒈ 实验目的
⑴ 学习C语言中函数的定义和调用方法。 ⑵ 掌握通过参数在函数间传递数据的方法。
⑶ 熟悉TC集成环境对包含函数调用的程序的调试方法。
⒉ 实验题目
A:修改调试题目:
题目⑴:调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的函
数,使用该函数求1000以内的素数平均值。写出调试过程。
#include “stdio.h” void main()
{ int a=0,k; /* a保存素数之和 */
float av; /* av保存1000以内素数的平均值 */ for (k=2;k<=1000;k++)
if (fun(k)) /* 判断k是否为素数 */ a+=k; av=a/1000;
printf(\; }
fun(int n) /* 判断输入的整数是否为素数 */ { int i,y=0;
for(i=2;i 题目⑵:调试以下程序并查看运行结果: #include “stdio.h” void main() { int a=1,b=2,c; c=max(a,b); printf(\is %d\\n\ } 10级软件工程《C语言程序设计基础》指导书 max(int x,int y) //请回答:函数功能是什么? { int x; z=(x>y)?x:y; return(z); } 题目(3):调试以下程序并查看运行结果: int a=5;int b=7; #include “stdio.h” void main() { int a=4,b=5,c; c=plus(a,b); printf(\ } int plus(int x,int y) 请回答:函数功能是什么? { int z; z=x+y; return(x); } B、编程题目: 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:编写函数求x的n次方的值(提示:有一个参数的函数) 题目⑵:编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所 谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如:153就是一个水仙花数:153 = 13 + 53 + 33 10级软件工程《C语言程序设计基础》指导书 实验6 编译预处理 ⒈ 实验目的 ⑴ 掌握宏定义的规则,领会带参数宏定义和函数调用的区别。 ⑵ 了解文件包含命令的功能和使用规则。 ⑶ 了解条件编译的特点和功能。 ⒉ 实验内容 A 宏定义及其应用 ⑴ 以下程序的运行结果是_15_。 #define MIN(x,y) (x)<(y)?(x):(y) #include “stdio.h” void main() { int i=10,j=15,k; k=10*MIN(i,j); printf(\ } ⑵ 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是____。 int a;a=Y; printf(\printf(\ ⑶ 请读程序: #include #define MUL(x,y) (x)*y main() { int a=3,b=4,c; c=MUL(a++,b++); printf(\ } 上面程序的输出结果是____12__。 10级软件工程《C语言程序设计基础》指导书 ⑷ 以下程序的运行结果是_____. #include “stdio.h” void main() { incx(); incy(); incx(); incy(); incx(); incy(); } incx() { int x=0; printf(\} incy() { static int y=0; printf(\}11 B “文件包含”处理测试 ⑴ 文件format.h包含以下内容: #define PR printf #define NL \#define D \#define D1 D NL #define D2 D D NL #define D3 D D D NL #define D4 D D D D NL #define S \ ⑵ 文件file1.C包含以下内容: #include \void main() { int a,B,C,D; char string[]=\a=1;B=2;C=3;D=4; 10级软件工程《C语言程序设计基础》指导书 PR(D1,a); PR(D2,a,B); PR(D3,a,B,C); PR(D4,a,B,C,D); PR(S,string); } 调试并察看运行结果。注意文件保存的路径。 10级软件工程《C语言程序设计基础》指导书 实验7 数组应用编程 ⒈ 实验目的 ⑴ 掌握一维数组和二维数组定义、赋值和输入输出的方法。 ⑵ 掌握字符数组和字符串函数的使用。 ⒉ 实验内容 A:修改调试题目: 调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。 #include “stdio.h” void main() { int i,n,a[10],av; for(i=0;i { printf(\ if (i%3==0) printf(\} for(i=0;i!=n;i++) av+=a[i]; printf(\} 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。在程序运行过程中,可以使用 B、编程题目:(题目⑴、题目⑵为一组,题目⑶为一组,题目⑷为一组。每个同学每组都必须完成1题) 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。 题目⑵:从键盘输入一个字符串,编写程序将该字符串逆序。 10级软件工程《C语言程序设计基础》指导书 题目⑶:输出杨辉三角形(要求输出10行且必须是等腰三角形) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 ?? ?? ?? (提示,使用二维数组) 题目⑷: 输入4×4的数组,编写程序实现: ① 求出对角线上各元素的和; ② 求出对角线上行、列下标均为偶数的各元素的积; ③ 找出对角线上其值最大的元素和它在数组中的位置。 10级软件工程《C语言程序设计基础》指导书 实验8 数组名作为函数的参数 ⒈ 实验目的 ⑴ 掌握数组名作为函数参数的基本使用方式。 ⑵ 掌握与数组有关的算法(特别是排序算法)。 ⒉ 实验内容 编程题目:(题目⑴、题目⑵为一组,题目⑶为一组。每个同学每组都必须完成1题) 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入10个整 数存入数组,调用函数后输出数组的元素。 题目⑵:用数组名作为函数参数,编写一个比较两个字符串s和t大小的函数 strcomp(s,t),要求s小于t时返回-1,s等于t?时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。 题目⑶: 输入6×6的数组,下面的各要求通过编写函数实现,要求用数组名作为函 数参数: ① 求出对角线上各元素的和; ② 求出对角线上行、列下标均为偶数的各元素的积; ③ 找出对角线上其值最大的元素和它在数组中的位置。 10级软件工程《C语言程序设计基础》指导书 实验9 使用指针处理数组 ⒈ 实验目的 ⑴ 掌握指针变量的定义与引用。 ⑵ 掌握指针与变量、指针与数组的关系。 ⑶ 掌握用数组指针作为函数参数的方法。 ⒉ 实验题目 A:修改调试题目: 题目⑴: 调试下列程序,使之具有如下功能:用指针法输入12个数,然后按每行4 个数输出。写出调试过程。 #include \void main() { int j,k,a[12],*p; for(j=0;j<12;j++) scanf(\; for(j=0;j<12;j++) { printf(\; if (j%4 == 0) printf(\; } } 调试该程序时,数组a所有元素的值在一行显示出来。调试时注意指针变量指向哪个目标变量。 题目⑵:调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: ⑴ 2个数的和; ⑵ 2个数交换值。 要求用函数指针调用这两个函数,结果在主函数中输出。 #include \void main() { int a,b,c,(*p)(); scanf(\; p=sum; *p(a,b,c); p=swap; *p(a,b); printf(\; printf(\; 10级软件工程《C语言程序设计基础》指导书 } sum(int a, int b, int c) { c=a+b; } swap(int a, int b) { int t; t=a;a=b;b=t; } 调试程序时注意参数传递的是数值还是地址。 B、编程题目: 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴: 编写用指针变量作为函数参数实现两个数的交换的函数,主函数输入两个个 数都为10的数组A,B,调用所编写的函数交换数组A,B中对应元素的值。 题目⑵:编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数,主 函数输入个数都为10的数组,调用所编写的函数并输出该数组的最小值、最大值和平均值。
正在阅读:
《C语言程序设计》实验指导书03-22
109租房提取住房公积金申请表 - 图文02-03
机械原理-习题解答(请完善) - 周海07-08
5荒芜的花园(2011)05-28
益阳市中心城区服务业中长期发展规划(2014-2020) - 图文07-04
向狗学习美德美文11-21
2020年度县税务局述职述廉述法报告08-27
甲子刘氏宗亲理事会成立一周年工作汇报09-20
台湾省 教案10-21
软件考核管理办法03-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 程序设计
- 语言
- 实验
- 怎么写大事记
- 2015年总结及2016计划(述职报告) - 图文
- 电务施工单项作业措施及标准
- 西安临潼国家旅游休闲度假区规划建设实施方案
- 秋八年级数学上册第13章全等三角形本章中考演练练习(新版)华东
- 淡水热带鱼图片大全
- 智能化运维之IT系统统一监控预研报告 - 图文
- 郭璞易学渊源考(一)
- 我的班主任管理规定
- 奉节县肖霞诉奉节工商局侵权纠纷案 doc
- 国税12号公告解读《出口退税:细化与新规》
- 数据结构期末复习题及答案2
- 平法练习题
- 2015年注册监理工程师继续教育(水利水电专业)考试答案(68分)
- 2017—2018学年度上学期六年级上学期期末复习试卷
- 博思堂培训基础知识(改版)
- 太阁立志传5完美自创人物攻略 - 图文
- 七年级数学和、差、倍、分问题
- 小学语文教材特点及重难点的突破方法
- 三年级上册数学第三单元导学案