版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础指导书实验1 C的实验环境和C语言的数据类型 实验目的 了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。 通过运行简单的C程序,初步了解C源程序的特点。 掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。 实验内容和步骤 检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 实验题目 输入下面
2、的程序# include “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”
3、,+k);printf(“%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,&
4、amp;y);scanf(“ %c %c”,&c1,&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.500000,y=71.820000,c1=A,c2=a思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2); 按以上的输入、输出将如何变化?请分析原因实验3 选择结构程序设计 实验目的 了解C语言表示逻辑量的方法(以0代表”假”
5、,以非0代表”真”)。 学会正确使用逻辑运算符和逻辑表达式。 熟练掌握if语句和switch语句。 结合程序掌握一些简单的算法。 学习调试程序。 实验内容题目: 有3个整数a、b、c,由键盘输入,输出其中最大的数。题目:求三位数的水仙花数。要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。实验4、循环结构程序设计 实验目的 熟悉掌握用while语句,dowhile语句和for语句实现循环的方法。 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 进一步学习调试过程。 实验内容题目:输入两个正整数m和n,求其最大公约数和最小公倍数。题目:输入一行字符
6、,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。题目:猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。实验5 函数定义和使用 实验目的 学习C语言中函数的定义和调用方法。 掌握通过参数在函数间传递数据的方法。 熟悉TC集成环境对包含函数调用的程序的调试方法。 实验题目A:修改调试题目:题目:调试下列程序,使之具有如下功能:fun
7、函数是一个判断整数是否为素数的函数,使用该函数求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("av=%fn",av);fun(int n) /* 判断输入的整数是否为素数 */ int i,y=0;for(i=2;i<n;i+)if (n%i=0) y=1;else
8、 y=0;return y;题目:调试以下程序并查看运行结果:#include “stdio.h”void main() int a=1,b=2,c;c=max(a,b);printf("max is %dn",c); max(int x,int y) /请回答:函数功能是什么? int x; z=(x>y)?x:y;return(z); 题目:调试以下程序并查看运行结果:int a=5;int b=7;#include “stdio.h”void main() int a=4,b=5,c;c=plus(a,b);printf("A+B=%dn",
9、c); int plus(int x,int y) 请回答:函数功能是什么? int z;z=x+y;return(x);B、编程题目:要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:编写函数求x的n次方的值(提示:有一个参数的函数)题目:编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如:153就是一个水仙花数:153 = 13 + 53 + 33实验6 编译预处理 实验目的 掌握宏定义的规则,领会带参数宏定义和函数调用的区别。 了解文件包含命令的功能和使用规则。 了解条件编译的特点和功能。 实验
10、内容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 <std
11、io.h>#define MUL(x,y) (x)*ymain() int a=3,b=4,c;c=MUL(a+,b+);printf("%dn",c); 上面程序的输出结果是_。 以下程序的运行结果是_.#include “stdio.h”void main() incx();incy();incx();incy();incx(); incy(); incx() int x=0;printf("x=%dt",+x);incy() static int y=0;printf("ny=%dn",+y);B “文件包含”处理测试 文
12、件format.h包含以下内容:#define PR printf#define NL "n"#define D "%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 "%S" 文件file1.C包含以下内容:#include "format.h"void main() int a,B,C,D;char string="CHINA"a=1;B=2;C=3;D=4;PR(D1,a)
13、;PR(D2,a,B);PR(D3,a,B,C);PR(D4,a,B,C,D);PR(S,string);调试并察看运行结果。注意文件保存的路径。实验7 数组应用编程 实验目的 掌握一维数组和二维数组定义、赋值和输入输出的方法。 掌握字符数组和字符串函数的使用。 实验内容A:修改调试题目:调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。#include “stdio.h”void main() int i,n,a10,av;for(i=0;i<n;i+)scanf("%d",ai);for(i=0;i
14、<n;i+) printf("%d",ai);if (i%3=0) printf("n");for(i=0;i!=n;i+)av+=ai;printf("av=%fn",av);上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。在程序运行过程中,可以使用<Ctrl>+<Break>键终止程序的运行,返回到TC环境。B、编程题目:(题目、题目为一组,题目为一组,题目为一组。每个同学每组都必须完成1题)
15、要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。题目:从键盘输入一个字符串,编写程序将该字符串逆序。题目:输出杨辉三角形(要求输出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 (提示,使用二维数组)题目: 输入4×4的数组,编写程序实现: 求出对角线上各元素的和; 求出对角线上行、列下标均为偶数的各元素的积; 找出对角线上其值最大的元素和它在数组中的位置。实验8 数组名作为函数的参数 实验目的 掌握数组名作为函数参数的基本使用方式。 掌握
16、与数组有关的算法(特别是排序算法)。 实验内容编程题目:(题目、题目为一组,题目为一组。每个同学每组都必须完成1题)要求:每道题目分别书写程序,试运行(如何输入,结果如何)。题目:编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入10个整数存入数组,调用函数后输出数组的元素。题目:用数组名作为函数参数,编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。题目: 输入6×6的数组,下面的各要求通过编写函数实现,要求用数组名作为函数参数: 求出对角线上各
17、元素的和; 求出对角线上行、列下标均为偶数的各元素的积; 找出对角线上其值最大的元素和它在数组中的位置。实验9 使用指针处理数组 实验目的 掌握指针变量的定义与引用。 掌握指针与变量、指针与数组的关系。 掌握用数组指针作为函数参数的方法。 实验题目A:修改调试题目:题目: 调试下列程序,使之具有如下功能:用指针法输入12个数,然后按每行4个数输出。写出调试过程。#include "format.h"void main() int j,k,a12,*p;for(j=0;j<12;j+)scanf("%d",p+);for(j=0;j<12;j+
18、) printf("%d",*p+);if (j%4 = 0) printf("n");调试该程序时将a设置为一个"watch",数组a所有元素的值在一行显示出来。调试时注意指针变量指向哪个目标变量。题目:调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: 2个数的和; 2个数交换值。要求用函数指针调用这两个函数,结果在主函数中输出。#include "format.h"void main() int a,b,c,(*p)();scanf("%d,%d",&a,&
19、;b);p=sum;*p(a,b,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中对应元素的值。题目:编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数,主函数输入个数都为10的数组,调用所编写的函数并输出该数组的最小值、最大值和平均值。实验10 使用指针处理数组 实验目的 掌握指针变量的定义与引用。 掌握指针与变量、指针与数组的关系。 掌握用数组指针作为函数参数的方法。 实验内容编程题目:要求:本题的实现要求用函数实现,主函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国家管网集团高校毕业生招聘笔试模拟试题(浓缩500题)及答案详解【夺冠】
- 2026国网云南省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题附答案详解(满分必刷)
- 2026国网青海省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题附答案详解(满分必刷)
- 2026秋季国家管网集团华中公司高校毕业生招聘笔试备考试题(浓缩500题)含答案详解(黄金题型)
- 2026国家能源投资集团有限责任公司高校毕业生统招考试参考试题(浓缩500题)有完整答案详解
- 2026国网安徽省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题及答案详解(夺冠)
- 2026秋季国家管网集团共享运营分公司高校毕业生招聘考试参考题库(浓缩500题)及一套参考答案详解
- 2026秋季国家管网集团山东分公司高校毕业生招聘笔试模拟试题(浓缩500题)及参考答案详解ab卷
- 2025国网上海市电力校园招聘(提前批)笔试模拟试题浓缩500题及参考答案详解一套
- 2026国网内蒙古电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题及参考答案详解
- 2025年新《安全生产法》考试试题库(附答案)
- 2025-2030智慧农业行业市场发展趋势解析及农业物联网与精准农业技术应用报告
- 美国心脏协会心肺复苏(CPR)与心血管急救(ECC)指南(2025年)解读课件
- 水汇休闲业务知识培训课件
- 基金从业人员资格模拟测试完美版带解析2025年含答案
- 六年级美术教案《远去的路》
- 2025年10月自考11467人力资源统计学押题及答案
- 《企业人力资源管理师》四级练习题库及参考答案
- 风电场冬季安全培训课件
- 零工经济中的女性劳动者权益保障研究
- 果园轨道运输施工方案
评论
0/150
提交评论