PAGE
东北石油大学
计算机程序设计训练
院 系
院 系 电气信息工程学院
专业班级 测控**
学生姓名 ***
学生学号 ***
指导教师 段志伟、曹广华
2014年6月28日
程序设计训练任务书
课程 C计算机程序设计训练
专业 测控 姓名 *** 学号 ***
主要内容:
【程序 1】题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
【程序2】题目:文件操作,要求以二进制方式打开命令行参数中指定的文件,并将二进制方式读取的文件数据(0和1)存储为文本文件,即文件内容是ASCII的0与1方式。
【程序 3】题目:空间直角坐标系变换程序,在空间直角坐标系中,如果保持原点不动,x轴偏转度,y轴偏转度,求z轴偏转的角度以及z轴在原坐标系中XY平面的投影.
【程序 4】题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序 5】题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序 6】题目:要求设计一个程序对从键盘输入一个字符串str,str长度小于99,然后在屏幕打印出一个新字符串,新字符串的构成为AABB10strXCCDD,其中AABB和CCDD是开始标志和结束标志,第5、6位是字符串str的长度,X是整个字符串的逻辑异或结果。
【程序 7】题目:要求设计一个程序提取程序6的输出字符串中的内容,并打印到屏幕上。
【程序 8】题目:使用递归方式求解hanoi塔问题。
【程序 9】题目:设计两个链表,分别输入2个和3个数据,然后连接两个链表,采用搜索的方式找出链表中最大值与最小值。
【程序10】题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
【程序11】题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。
【程序12】题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
基本要求:
至少完成10个程序,程序运行结果正确
程序可读性好,要有注释
所有程序完成后,统一保存为.c文件,用winrar压缩后发送到邮箱dqzly@163.com
撰写训练报告,7月10日交到自动化馆104
完成期限 201*年7月1**号
指导教师 ***
201*年6 月**日
计算机程序设计训练
PAGE 4
目 录
TOC \o "1-3" \h \z \u [程序1] 2
[程序2] 3
[程序3] 5
[程序4] 6
[程序5] 7
[程序6] 8
[程序7] 9
[程序8] 11
[程序9] 12
[程序10] 13
[程序1]
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
思路:随机产生一个数组再排好顺序,输入一个数与原数组中的数作比较,符合条件的数后面的数都往后移动一个位置,空出一个位置留给输入的数.再输出.
程序:
#include
#include
#include
main()
{
int n,a[100],i,j,t;
srand(time(0));
for(i=0;i<10;i++)
a[i]=rand()%100+1; //随机产生十个数
for(i=0;i<9;i++) //排序
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]); //输出
printf("\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n
for(j=10;j>i;j--) //将大