版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验1 C的实验环境和C语言的数据类型 实验目的 了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。 通过运行简单的C程序,初步了解C源程序的特点。 掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。 实验内容和步骤 检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 实验题目 输入下面的程序# incl
2、ude “stdio.h”void main() printf(“This is a c program.n”); 程序无误,其运行的结果为:(请填写) 输入并编辑一个有错误的C程序。# include “stdio.h”void main() int a,b,suma=123; b=456;sum=a+bprint(“sum is %dn”,sum);运行后程序出现几处错误,请分别指出,并逐一更改: 若k,g均为int型变量,则下列语句的输出为,:# include “stdio.h”void main() int k, g;k=017; g=111;print(“%dt”,+k);prin
3、tf(“%xn”,g+);运行结果为:实验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;charc1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&y);scanf(“ %c %c”,&c1
4、,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn”);运行,并按照如下方式在键盘上输入:A=3 b=78.5 71.82A a运行结果:A=3,b=7,x=8.,y=71.,c1=A,c2=a思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2); 按以上的输入、输出将如何变化?请分析原因实验3 选择结构程序设计 实验目的 了解C语言表示逻辑量的方法(以0代表”假”,以非0代表”真”)。 学会正确使用逻辑运算符和逻辑表达式。 熟练掌握if语句和switch语句。 结合程
5、序掌握一些简单的算法。 学习调试程序。 实验内容题目: 有3个整数a、b、c,由键盘输入,输出其中最大的数。题目:求三位数的水仙花数。要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。实验4、循环结构程序设计 实验目的 熟悉掌握用while语句,dowhile语句和for语句实现循环的方法。 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 进一步学习调试过程。 实验内容题目:输入两个正整数m和n,求其最大公约数和最小公倍数。题目:输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。题目:猴子吃桃问题。猴子第一天摘下若干个桃子,
6、当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。实验5 函数定义和使用 实验目的 学习C语言中函数的定义和调用方法。 掌握通过参数在函数间传递数据的方法。 熟悉TC集成环境对包含函数调用的程序的调试方法。 实验题目A:修改调试题目:题目:调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。写出调试过程。#include
7、“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(av=%fn,av);fun(int n) /* 判断输入的整数是否为素数 */ int i,y=0;for(i=2;iy)?x:y;return(z); 题目:调试以下程序并查看运行结果:int a=5;int b=7;#include “stdio.h”void main() int a=4,b=5,c;c=
8、plus(a,b);printf(A+B=%dn,c); int plus(int x,int y) 请回答:函数功能是什么? int z;z=x+y;return(x);B、编程题目:要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:编写函数求x的n次方的值(提示:有一个参数的函数)题目:编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如:153就是一个水仙花数:153 = 13 + 53 + 33实验6 编译预处理 实验目的 掌握宏定义的规则,领会带参数宏定义和函数调用的区别。 了解文件包含命令的
9、功能和使用规则。 了解条件编译的特点和功能。 实验内容A 宏定义及其应用 以下程序的运行结果是_。#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(%dn,k); 若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出结果是_。int a;a=Y;printf(%dn,Z);printf(%dn,-a); 请读程序:#include #define MUL(x,y) (x)*y
10、main() int a=3,b=4,c;c=MUL(a+,b+);printf(%dn,c); 上面程序的输出结果是_。 以下程序的运行结果是_.#include “stdio.h”void main() inc x();incy();incx();incy();incx(); incy(); incx() int x=0;printf(x=%dt,+x);incy() static int y=0;printf(ny=%dn,+y);B “文件包含”处理测试 文件format.h包含以下内容:#define PR printf#define NL n#define D %D#define
11、D1 D NL#define D2 D D NL#define D3 D D D NL#define D4 D D D D NL#define S %S 文件file1.C包含以下内容:#include format.hvoid main() int a,B,C,D;char string=CHINA;a=1;B=2;C=3;D=4;PR(D1,a);PR(D2,a,B);PR(D3,a,B,C);PR(D4,a,B,C,D);PR(S,string);调试并察看运行结果。注意文件保存的路径。实验7 数组应用编程 实验目的 掌握一维数组和二维数组定义、赋值和输入输出的方法。 掌握字符数组和字符
12、串函数的使用。 实验内容A:修改调试题目:调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。#include “stdio.h”void main() int i,n,a10,av;for(i=0;in;i+)scanf(%d,ai);for(i=0;in;i+) printf(%d,ai);if (i%3=0) printf(n);for(i=0;i!=n;i+)av+=ai;printf(av=%fn,av);上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验
13、所掌握的调试工具,判断程序中的错误并改正。在程序运行过程中,可以使用+键终止程序的运行,返回到TC环境。B、编程题目:(题目、题目为一组,题目为一组,题目为一组。每个同学每组都必须完成1题)要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。题目:从键盘输入一个字符串,编写程序将该字符串逆序。题目:输出杨辉三角形(要求输出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 (提示,使用二维数组)题目: 输入44的数组,编写程序实现: 求出对角线上各元素的和;
14、 求出对角线上行、列下标均为偶数的各元素的积; 找出对角线上其值最大的元素和它在数组中的位置。实验8 数组名作为函数的参数 实验目的 掌握数组名作为函数参数的基本使用方式。 掌握与数组有关的算法(特别是排序算法)。 实验内容编程题目:(题目、题目为一组,题目为一组。每个同学每组都必须完成1题)要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入10个整数存入数组,调用函数后输出数组的元素。题目:用数组名作为函数参数,编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t时返回0,s
15、大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。题目: 输入66的数组,下面的各要求通过编写函数实现,要求用数组名作为函数参数: 求出对角线上各元素的和; 求出对角线上行、列下标均为偶数的各元素的积; 找出对角线上其值最大的元素和它在数组中的位置。实验9 使用指针处理数组 实验目的 掌握指针变量的定义与引用。 掌握指针与变量、指针与数组的关系。 掌握用数组指针作为函数参数的方法。 实验题目A:修改调试题目:题目: 调试下列程序,使之具有如下功能:用指针法输入12个数,然后按每行4个数输出。写出调试过程。#include format.hvoid main() int j,
16、k,a12,*p;for(j=0;j12;j+)scanf(%d,p+);for(j=0;j12;j+) printf(%d,*p+);if (j%4 = 0) printf(n);调试该程序时将a设置为一个watch,数组a所有元素的值在一行显示出来。调试时注意指针变量指向哪个目标变量。题目:调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: 2个数的和; 2个数交换值。要求用函数指针调用这两个函数,结果在主函数中输出。#include format.hvoid main() int a,b,c,(*p)();scanf(%d,%d,&a,&b);p=sum;*p(a,b,
17、c);p=swap;*p(a,b);printf(sum=%dn,c);printf(a=%d,b=%dn,a,b);sum(int a, int b, int c) c=a+b; swap(int a, int b) int t;t=a;a=b;b=t;调试程序时注意参数传递的是数值还是地址。B、编程题目:(题目为一组,题目为一组。每个同学每组都必须完成1题)要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目: 编写用指针变量作为函数参数实现两个数的交换的函数,主函数输入两个个数都为10的数组A,B,调用所编写的函数交换数组A,B中对应元素的值。题目:编写用指针变量作为函数参数求
18、数组的最小值、最大值和平均值的函数,主函数输入个数都为10的数组,调用所编写的函数并输出该数组的最小值、最大值和平均值。实验10 使用指针处理数组 实验目的 掌握指针变量的定义与引用。 掌握指针与变量、指针与数组的关系。 掌握用数组指针作为函数参数的方法。 实验内容编程题目:要求:本题的实现要求用函数实现,主函数只负责进行函数调用。函数的参数要求全部用到的情况是:l 用数组名作函数参数;l 用指向数组元素的指针变量作函数参数;l 用指向一维数组的指针变量作函数参数;题目:输入两个行、列数相同的矩阵(实际上是二维数组)A、B,以矩阵的方式分别输出A、B;求矩阵的和并输出;求出每个矩阵中的最大值及其位置;求出每个矩阵中绝对值最大的元素及其位置。下面的各要求通过编写函数实现: 输入矩阵(实际上是二维数组); 输出矩阵; 求出两个矩阵的和。设A=(aij)mn,B=(bij)mn,则C=A+B=(cij)mn,cij= aij+ bij; 求矩阵中的最大值及其位置; 求矩阵中绝对值最大的元素及其位置。实验11 结构体程序设计 实验目的 掌握结构体类型变量的定义和使用。 掌握枚举类型的概念与使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药茶剂工安全理论测试考核试卷含答案
- 凹版印刷员班组协作竞赛考核试卷含答案
- 光学镜头装配调试工安全演练评优考核试卷含答案
- 脂肪酸酰化及酯化操作工标准化水平考核试卷含答案
- 2026年新科教版初中九年级科学下册第一单元生物遗传规律练习卷含答案
- 钽电解电容器赋能、被膜工岗前保密意识考核试卷含答案
- 玻璃灯工岗前安全宣教考核试卷含答案
- 钢琴共鸣盘制作工安全知识竞赛能力考核试卷含答案
- 肉品分级员班组考核考核试卷含答案
- 火锅料理师班组评比考核试卷含答案
- AI在药物研发中的应用
- 新人教版七至九年级英语单词表
- 中医病证诊断疗效
- 关键施工技术、工艺与工程项目实施的重点、难点和解决方案
- 2023年环境卫生(正高)考试历年难点与易错点考核试题3答案解析
- 50套普通话测试题与答案
- GB/T 4325.23-2013钼化学分析方法第23部分:氧量和氮量的测定惰气熔融红外吸收法-热导法
- GB/T 2970-2016厚钢板超声检测方法
- 中小学生励志主题班会课件《告诉你孩子:几年的放纵-换来的是一生卑微和坎坷》
- 022pet热灌装饮料生产工艺及品质控制
- 二年级上册语文课件-《登鹳雀楼》人教部编版 (共18张PPT)
评论
0/150
提交评论