void main()
{
int i,j;
i=8;
j=10;
printf(”%d,%d\n",i++,j++);
}
④在③的基础上,将printf语句改为:
printf(”%d,%d,%d,%d\n",i,j,++i,++j);
⑤再将printf语句改为:
printf("%d,%d,%d,%d\n",i,j,i++,j++);
⑥将程序改为:
#include
void main()
{
int i,j,m=0,n=0;
i=8; j=10;
m+=i++;
n-=-—j;
printf(”i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n); }
②将第6,7行改为:
m=i++; n=++j;
再运行。
以上程序结果的不同均是由于自增自减运算符引起的,考虑到一个判断技巧,看自增自减运算符时,先将它们从原程序中拿出来,如果++或—在后,就先把值放回去,然后自增自减,如果在前,先自增自减,再把结果放进去。
printf(”%d,%d,%d,%d\n",i,j,++i,++j);
#include〈stdio.h>
void main()
{
int i,j,m=0,n=0;
i=8; j=10;
m+=i++;
n—=——j;
printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); }
实验5循环控制
一、实验目的:
(1)熟练掌握for 语句、while 语句、do-while 语句实现循环的方法;
(2)理解循环嵌套及其使用方法;
(3)掌握break 语句与continue 语句的使用;
(4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。
二、实验内容:
1.输入两个正整数,求其中最大公约数和最小公倍数。
2。
输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数.
3.用牛顿迭代法求方程2X3-4X2+3X-6=0在1.5附近的根。
4。
猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一
个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一
天剩下的一半零一个.到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了
多少桃子。
三、程序调试与问题解决:
1.输入两个正整数,求其中最大公约数和最小公倍数。
编译无错误,运行如上图所示,使用了最简单的算法,清晰易理解,同时注意了编程的格式,在以往编程序时,往往不注意上下对齐等问题,容易出现缺标点等现象,将大括号一级一级对齐后,可以有效地避免出错。
发现一个技巧,打括号时一次打出一对括号,可以减少括号不配对的错误.
2。
输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数.
编译无误,测试正确,写该程序时特意加了注释,以便阅读。
3.用牛顿迭代法求方程2X3-4X2+3X-6=0在1.5附近的根.
该程序缺少#include〈stdio。
h>;是截图原因,原程序中是存在的。
最开始不知道fabs函数的用法,通过XX查询.
4。
猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一
个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一
天剩下的一半零一个.到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了
多少桃子。
实验7函数
一、实验目的:
(1) 掌握定义函数的方法。
(2) 掌握函数实参与形参的对应关系及值传递的方式.
(3) 掌握函数的嵌套调用和递归调用的方法。
(4) 掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。
(5) 学习对多文件程序的编译和运行。
二、实验内容:
1。
写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
本程序应当准备以下测试数据:
17、34、2、1、0。
分别运行并检查结果是否正确.
2.用一个函数来实现将一行字符串中最长的单词输出。
此行字符从主函数传递给该函数。
(1)把两个函数放在同一个程序文件中。
(2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。
3.用递归法将一个整数n转换成字符串。
例如输入483.应输出字符串“483”。
n的位数不确定,可以是任意的整数。
4.求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数。
分别用下面的两种方法编程.
(1)不用全局变量,在主函数中输入两个数和输出结果。
(2)用全部变量的方法,数据的传递通过全部变量的方法。
5.写一个函数,输入一个十六进制数,输出相应的十进制数.
三、程序调试与问题解决:
1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
本程序应当准备以下测试数据:
17、34、2、1、0。
分别运行并检查结果是否正确.
该例编译时出现错误,原因是误将sushu(a)==1写为sushu(a)=1。
改正后编译无误.
2.用一个函数来实现将一行字符串中最长的单词输出.此行字符从主函数传递给该函数。
子函数中第二个while考虑到了多种标点符号的情况,但是该程序可能存在的问题是,如果有两个单词的长度是相同的?
3.用递归法将一个整数n转换成字符串.例如输入483.应输出字符串“483"。
n的位数不确定,可以是任意的整数。
4.求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数。
分别用下面的两种方法编程。
(1)不用全局变量,在主函数中输入两个数和输出结果。
(2)用全部变量的方法,数据的传递通过全部变量的方法。
使用了两个子函数,我认为应该还有更简单的算法?
!
5.写一个函数,输入一个十六进制数,输出相应的十进制数。
程序运行时出现错误,后检查发现在scanf格式字符串的双引号是中文符号,改成英文双引号后成功。
实验9指针
一、实验目的 :
通过实验进一步掌握指针的概念,会定义和使用指针变量;
能正确使用数组的指针和指向数组的指针变量;
能正确使用字符串的指针和指向字符串的指针变量;
能正确使用指向函数的指针变量;
了解指向指针的指针的概念及其使用方法。
二、 实验内容:
(1). 输入三个整数,按由小到大的顺序输出,然后将程序改为:
输入三个字符串,按由小到大顺序输出。
(2). 将一个3X3的矩阵转置,用一函数实现之。
l 3 5
7 9 11
13 15 19
将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。
(3)。
有n个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位.
(4)。
用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:
int strcmp (char * p1, char * p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为 0, 如果sl≠s2,则返回它们二者第一个不相同字符的ASCII码差值(如“BOY"与“BAD”的第二个字母不相同,“O”与“A”之差为79—65=14);如果sl>s2,则输出正值;如果sl两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。
(5).用指向指针的指针的方法对n个整数排序并输出.要求将排序单独写成一个函数。
n和各整数在主函数中输入,最后在主函数中输出。
三、程序调试与问题解决:
(1). 输入三个整数,按由小到大的顺序输出,然后将程序改为:
输入三个字符串,按由小到大顺序输出.
(2). 将一个3X3的矩阵转置,用一函数实现之。
l 3 5
7 9 11
13 15 19
(3).有n个人围成一圈,顺序排号。
从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位.
(5).用指向指针的指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
n和各整数在主函数中输入,最后在主函数中输出。
实验12文件
一、目的要求 :
1.掌握文件以及缓冲文件系统、文件指针的概念;
2.学会使用文件打开、关闭、读、写等文件操作函数.
3.学会用缓冲文件系统对文件进行简单的操作。
二、实验内容 :
1. 有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、
三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“Stud”中。
三、程序调试与问题解决:
1. 有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、
三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“Stud”中。