printf("min=%d\n",c);
else
printf("Nofindminimum\n");
}
上述程序是按在三个数中仅有一个最小值时才称其为最小值进行设计的。
另外,注意程序的书写格式,一定要采用缩进格式,即不同层次〔分支〕的语句左起的空格不同,这样可以有效地提高程序的可读性。
2.编写程序,求解以下分段函数:
3.某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班〔Lowerclass〕;4岁孩子进中班〔Middleclass〕;5岁、6岁孩子进大班〔Higherclass〕。
编写程序〔用switch语句〕,输入孩子年龄,输出年龄及进入的班号。
如:
输入:
3,输出:
age:
3,enterLowerclass。
三、实验要求
1.复习关系表达式、逻辑表达式和if语句、switch语句。
2.学习程序的调试方法。
3.编写程序,运行程序并记录运行结果
4.将源程序、目标文件、可执行文件和实验报告存在软盘上。
四、选做题
1.自守数是其平方后尾数等于该数自身的自然数。
例如:
25*25=625
76*76=5776
任意输入一个自然数,判断是否自守数并输出:
如:
25yes25*25=625
11no11*11=121
2.输入月号,输出月份的英文名称。
实验四循环结构程序设计
一、实验目的
1.学习循环语句for、while和do-while语句的使用方法。
2.学习用循环语句实现各种算法,例如穷举法、迭代法等。
3.进一步熟悉TC集成环境的使用方法。
二、实验内容
1.以下程序计算SUM的值。
调试该程序,使之能正确地计算SUM。
写出调试过程。
计算公式如下:
main()
{intt,s,i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
t=1/i;
s=s+t;
printf("s=%f\n",s);
}
在调试过程中,用单步执行的方法观察变量s和t的值的变化,找到程序中存在的问题,加以改正。
2.下面程序的功能是计算n!
。
main()
{inti,n,s=1;
printf("Pleaseentern:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s*i;
printf("%d!
=%d",n,s);
}
首次运行先输入n=4,输出结果为4!
=24,这时正确的。
为了检验程序的正确性,再输入n=10,输出为10!
=24320,这显然是错误的。
为了找到程序的错误,可以通过单步执行来观察变量的变化。
这次我们在for循环体中增加一条输出语句,把变量s每次的运算结果显示出来。
显示的结果是:
s=1
s=2
s=6
s=24
s=120
s=720
s=5040
s=-25216
s=-30336
s=24320
运算过程中居然出现的负值,从显示看出s=5040是7!
,再乘以8应是40320,实际却是一个负数。
分析产生这种现象的原因,把程序改正过来,再用n=20进行实验,分析所得到的结果。
2.北京市体育彩票采用整数1、2、3、……、36表示36种体育运动,一张彩票可选择7种运动。
编写程序,选择一张彩票的号码,使得这张彩票的7个号码之和是105且相邻两个号码之差按顺序依次是1、2、3、4、5、6。
如果第一个号码是1,那么后续号码应是2、4、7、11、16、22。
3.编写程序实现输入整数n,输出如下所示由数字组成的菱形。
〔图中n=5〕
1
121
12321
1234321
123454321
1234321
12321
121
1
三、实验要求
1.复习for、while、do-while语句和continue、break语句。
2.在程序调试中,要实现准备充分的测试用例。
3.编写程序,运行程序并记录运行结果。
注意程序的书写格式。
4.将源程序、目标文件、可执行文件和实验报告存在效劳器的指定文件夹中。
四、选做题
2001年1月1日是星期一,编写程序,在屏幕上输出2000年的年历。
关于闰年的计算方法:
如果某年的年号能被400除尽,或能被4除尽但不能被100除尽,那么这一年就是闰年。
实验五数组
一、实验目的
1.掌握数组的定义、赋值和输入输出的方法。
2.学习用数组实现相关的算法〔如排序、求最大和最小值、对有序数组的插入等〕。
2、熟悉TC集成环境的调试数组的方法。
二、实验内容
1.调试以下程序,使之具有如下功能:
输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
写出调试过程。
main()
{inti,n,a[10],av;
for(i=0;i scanf("%d",a[i]);
for(i=0;i {printf("%d",a[i]);
if(i%3==0)
printf("\n");
}
for(i=0;i!
=n;i++)
av+=a[i];
printf("av=%f\n",av);
}
上面给出的程序是完全可以运行的,但是运行结果是完全错误的。
调试时请注意变量的初值问题、输出格式问题等。
请使用前面实验所掌握的调试工具,判断程序中的错误并改正。
在程序运行过程中,可以使用+键终止程序的运行,返回到TC环境。
2.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。
3.输入4×4的数组,编写程序实现:
⑴求出对角线上各元素的和;
⑵求出对角线上行、列下标均为偶数的各元素的积;
⑶找出对角线上其值最大的元素和它在数组中的位置。
三、实验要求
1.复习数组的定义、引用和相关算法的程序设计。
2.编写程序,运行程序并记录运行结果。
3.将源程序、目标文件、可执行文件和实验报告存在软盘上。
四、选做题
1.设某班50人,写一程序统计某一单科成绩各分数段的分布人数,每人的成绩随机输入,并要求按下面格式输出统计结果;〔"××"表示实际分布人数〕
0--39××
40--49××
50--59××
…………
90--100××
2.有一个n行m列的由整数组成的矩阵,请对矩阵中的元素重新进行排列,使得同行元素中右边的元素大于左边的元素,同列元素中下边的元素大于上边的元素。
实验六字符数据处理
一、实验目的
1.掌握C语言中字符数组和字符串处理函数的使用。
2.掌握在字符串中删除和插入字符的方法。
3.熟悉TC集成环境的调试字符串程序的方法。
二、实验内容
1.调试以下程序,使之具有如下功能:
任意输入两个字符串(如:
"abc123"和"china"),并存放在a,b两个数组中。
然后把较短的字符串放在a数组,较长的字符串放在b数组。
并输出。
main()
{chara[10],b[10];
intc,d,k;
scanf("%s",&a);
scanf("%s",&b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
if(c>d)
for(k=0;k {ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件"string.h"中。
调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。
2.编写程序,输入假设干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。
以"stop"作为输入的最后一个字符串。
3.编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定位