10级软件工程C语言程序设计实验指导书文档格式.docx
《10级软件工程C语言程序设计实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《10级软件工程C语言程序设计实验指导书文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

k=017;
g=111;
print(“%d\t”,++k);
printf(“%x\n”,g++);
运行结果为:
实验2顺序结构程序设计
⑴掌握C语言中赋值语句的使用方法。
⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。
⒉实验内容
用下面的scanf函数输入数据,使a=3,b=7,x=,y=,c1=’A’,c2=’a’。
问在键盘上如何输入?
请书写程序
#include“”
{inta,b;
floatx,y;
charc1,c2;
scanf(“a=%db=%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=3b=7
Aa
运行结果:
A=3,b=7,x=,y=,c1=A,c2=a
思考:
为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:
scanf(“%c%c”,&
按以上的输入、输出将如何变化?
请分析原因
实验3选择结构程序设计
⑴了解C语言表示逻辑量的方法(以0代表”假”,以非0代表”真”)。
⑵学会正确使用逻辑运算符和逻辑表达式。
⑶熟练掌握if语句和switch语句。
⑷结合程序掌握一些简单的算法。
⑸学习调试程序。
题目⑴:
有3个整数a、b、c,由键盘输入,输出其中最大的数。
题目⑵:
求三位数的水仙花数。
要求:
每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
实验4、循环结构程序设计
⑴熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
⑵掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
⑶进一步学习调试过程。
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。
题目⑶:
猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,就只剩一个桃子了。
求第一天共摘多少桃子。
实验5函数定义和使用
⑴学习C语言中函数的定义和调用方法。
⑵掌握通过参数在函数间传递数据的方法。
⑶熟悉TC集成环境对包含函数调用的程序的调试方法。
⒉实验题目
A:
修改调试题目:
调试下列程序,使之具有如下功能:
fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。
写出调试过程。
{inta=0,k;
/*a保存素数之和*/
floatav;
/*av保存1000以内素数的平均值*/
for(k=2;
k<
=1000;
k++)
if(fun(k))/*判断k是否为素数*/
a+=k;
av=a/1000;
printf("
av=%f\n"
av);
fun(intn)/*判断输入的整数是否为素数*/
{inti,y=0;
for(i=2;
i<
n;
i++)
if(n%i==0)y=1;
elsey=0;
returny;
调试以下程序并查看运行结果:
{inta=1,b=2,c;
c=max(a,b);
maxis%d\n"
c);
max(intx,inty)#include“”
{incx();
incy();
incx();
incx()
{intx=0;
x=%d\t"
++x);
incy()
{staticinty=0;
\ny=%d\n"
++y);
B“文件包含”处理测试
⑴文件包含以下内容:
#definePRprintf
#defineNL"
\n"
#defineD"
%D"
#defineD1DNL
#defineD2DDNL
#defineD3DDDNL
#defineD4DDDDNL
#defineS"
%S"
⑵文件包含以下内容:
#include"
"
{inta,B,C,D;
charstring[]="
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数组应用编程
⑴掌握一维数组和二维数组定义、赋值和输入输出的方法。
⑵掌握字符数组和字符串函数的使用。
输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
{inti,n,a[10],av;
for(i=0;
n;
scanf("
%d"
a[i]);
{printf("
if(i%3==0)printf("
);
i!
=n;
av+=a[i];
av);
上面给出的程序是完全可以运行的,但是运行结果是完全错误的。
调试时请注意变量的初值问题、输出格式问题等。
请使用前面实验所掌握的调试工具,判断程序中的错误并改正。
在程序运行过程中,可以使用<
Ctrl>
+<
Break>
键终止程序的运行,返回到TC环境。
B、编程题目:
(题目⑴、题目⑵为一组,题目⑶为一组,题目⑷为一组。
每个同学每组都必须完成1题)
每道题目分别书写程序,试运行(如何输入,结果如何)。
从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。
从键盘输入一个字符串,编写程序将该字符串逆序。
输出杨辉三角形(要求输出10行)
1
11
121
1331
14641
15101051
1615201561
………………
(提示,使用二维数组)
题目⑷:
输入4×
4的数组,编写程序实现:
①求出对角线上各元素的和;
②求出对角线上行、列下标均为偶数的各元素的积;
③找出对角线上其值最大的元素和它在数组中的位置。
实验8数组名作为函数的参数
⑴掌握数组名作为函数参数的基本使用方式。
⑵掌握与数组有关的算法(特别是排序算法)。
编程题目:
(题目⑴、题目⑵为一组,题目⑶为一组。
编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入10个整数存入数组,调用函数后输出数组的元素。
用数组名作为函数参数,编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。
在主函数中任意输入4个字符串,利用该函数求最小字符串。
输入6×
6的数组,下面的各要求通过编写函数实现,要求用数组名作为函数参数:
实验9使用指针处理数组
⑴掌握指针变量的定义与引用。
⑵掌握指针与变量、指针与数组的关系。
⑶掌握用数组指针作为函数参数的方法。
调试下列程序,使之具有如下功能:
用指针法输入12个数,然后按每行4个数输出。
{intj,k,a[12],*p;
for(j=0;
j<
12;
j++)
p++);
{printf("
*p++);
if(j%4==0)printf("
);
调试该程序时将a设置为一个"
watch"
,数组a所有元素的值在一行显示出来。
调试时注意指针变量指向哪个目标变量。
任意输入2个数,调用两个函数分别求:
⑴2个数的和;
⑵2个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
{inta,b,c,(*p)();
%d,%d"
&
b);
p=sum;
*p(a,b,c);
p=swap;
*p(a,b);
sum=%d\n"
c);
a=%d,b=%d\n"
a,b);
sum(inta,intb,intc)
{c=a+b;
swap(inta,intb)
{intt;
t=a;
a=b;
b=t;
调试程序时注意参数传递的是数值还是地址。
(题目⑴为一组,题目⑵为一组。
编写用指针变量作为函数参数实现两个数的交换的函数,主函数输入两个个数都为10的数组A,B,调用所编写的函数交换数组A,B中对应元素的值。
编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数,主函数输入个数都为10的数组,调用所编写的函数并输出该数组的最小值、最大值和平均值。
实验10使用指针处理数组
本题的实现要求用函数实现,主函数只负责进行函数调用。
函数的参数要求全部用到的情况是:
●用数组名作函数参数;
●用指向数组元素的指针变量作函数参数;
●用指向一维数组的指针变量作函数参数;
题目:
输入两个行、列数相同的矩阵(实际上是二维数组)A、B,以矩阵的方式分别输出A、B;
求矩阵的和并输出;
求出每个矩阵中的最大值及其位置;
求出每个矩阵中绝对值最大的元素及其位置。
下面的各要求通过编写函数实现:
①输入矩阵(实际上是二维数组);
②输出矩阵;
②求出两个矩阵的和。
设A=(aij)m×
n,B=(bij)m×
n,则C=A+B=(cij)m×
n,cij=aij+bij;
③求矩阵中的最大值及其位置;
④求矩阵中绝对值最大的元素及其位置。
实验11结构体程序设计
⑴掌握结构体类型变量的定义和使用。
⑵掌握枚举类型的概念与使用。
⑶掌握基础的链表操作。
⑷掌握用户自定义类型的特点和应用。
有若干个学生,每个学生的数据包括学号、姓名、五门课的成绩,从键盘输入若干个学生数据,要求打印出五门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、五门课的成绩、平均分数)。
●要求用一个input函数输入5个学生数据;
●用一个average函数求总平均分;
●用max函数找出最高分学生数据;
总平均分和最高分的学生的数据都在主函数中输出。
提示:
定义结构体如下:
structstudent{
charnum[6];
charname[10];
floatscore[6];
/*其中最后一个元素用来保存平均成绩*/
};