c语言题库与答案精华版资料.doc
题目标题:
插队(胡宁静)
题目描述:
编写程序,对一个已经排好序的数组,输入一个元素。将该元素按原来的排序规则将它插入到数组中。例如原数组为:1 2 6 7 9,输入待插入的元素3,则插入完成后结果为: 1 2 3 6 7 9;
输入描述:
输入包含两部分,第一部分先输入n,表示数组中元素个数,接着输入n个已经排序好的数,数组最大个数n为20,第二部分为待插入的数据
输出描述:
新的排序好的数组元素
样式输入:
5
1 2 6 7 9
3
样式输出:
1 2 3 6 7 9
#include
int爉ain()
{
牋牋int燼[25],i,j,t,n;
牋牋scanf("%d",&n);
牋牋for(i=0;i
牋牋牋牋scanf("%d",&a[i]);
牋牋scanf("%d",&t);
牋牋for(i=0;i
牋牋牋牋if(t
牋牋牋牋{
牋牋牋牋牋牋for(j=n-1;j>=i;j--)
牋牋牋牋牋牋牋牋a[j+1]=a[j];
牋牋牋牋牋牋a[i]=t;
牋牋牋牋牋牋break;
牋牋牋牋}
牋牋printf("%d",a[0]);
牋牋for(i=1;i<=n;i++)
牋牋牋牋printf("?d",a[i]);
牋牋return?;
}
题目标题:
卫星定位(胡宁静)
题目描述:
编写程序,对一个已经排好序的数组,输入一个元素。将该元素在数组中的位置索引出来(折半查找)。例如原数组为:1 2 6 7 9,输入待查找的元素7,则查找结果为4,如果没有找到该元素,则输出-1;
输入描述:
输入包含两部分,第一部分先输入n,表示数组中元素数,接着输入n个已经排序好的数,数组最大个数n为20,第二部分为待查找的数据
输出描述:
待查找的元素位置
样式输入:
5
1 2 6 7 9
7
样式输出:
4
#define?M?25?
#include?
int?main()
{
????static?int?a[25];?
????int?i,n,low,mid,high,flag,x;
????scanf("%d",&n);????
????low=0;
????high=n-1;
????flag=-1;?
????for(i=0;i
????????scanf("%d",&a[i]);
????scanf("%d",&x);
????while(low<=high)? /*老师上课讲的经典算法*/
????{
????????mid=(low+high)/2;
????????if?(x==a[mid])?
????????{
????????????flag=mid+1;break;
????????}
????????else?if?
????????????(x>a[mid])?
????????????low=mid+1;
????????else?high=mid-1;?
????}
????printf("%d",flag);
????return?0;
}
题目标题:
警察抓贼(胡宁静)
题目描述:
编写程序,将n(n<1000)个元素中的某个特定元素删除。如果该元素出现的次数t为奇数次,则删除第(t+1)/2那个,如果出现的次数t为偶数次,则删除第(t/2)个
输入描述:
输入包含两部分,第一部分先输入n,接着输入n个原数据。第二部分为待删除的元素;
输出描述:
删除特定元素后的剩余元素
样式输入:
8
1 3 4 6 3 5 3 6
3
样式输出:
1 3 4 6 5 3 6
?#include
int?main()
{
牋牋int爄,t,n,count=0,x,a[1005];
牋牋scanf("%d",&n);
牋牋for(i=0;i
牋牋牋牋scanf("%d",&a[i]);
牋牋scanf("%d",&x);
牋牋for(i=0;i
牋牋牋牋if(a[i]==x)
牋牋牋牋牋牋count++;
牋牋t=count;
牋牋if(count%2==0)
牋牋{
牋牋牋牋count=0;
? 牋牋牋爁or(i=0;i
牋牋牋牋{
牋牋牋牋牋牋if(a[i]==x)
牋牋牋牋牋牋count++;
牋牋牋牋牋牋if(count=