求大侠帮忙:C语言程序设计---编程考题
1. 编写一个函数,函数首部为int index(char *str,char t),用来计算字符t在str中第一次出现的位置,如str为“abcc”,t为‘c’,则返回3,如果没有找到该字符,则返回-1.2. 编写一个函数,函数首部为int split(int n,int *a,int *b),对于正整数n,将其分解为任意两个素数之和a和b,若无法分解,则返回0,若可以分解,则返回1.其中主函数如下:
Void main()
{
Int n,a,b;
Scanf(“%d”,&n);
If(split(n,&a,&b)==1)
{
Printf(“%d,%d”,a,b);
}
Else
{
Printf(“no results!”);
}
}
3. 编写一个函数,函数首部为void maxword(char *s,char *t),求出两个字符串包含的相同单词(同一字母的大小写视为不同的字符)。规定单词全部由英文字母构成,单词直接由一个或多个空格分隔。其中主函数如下:
#include <string.h>
Void main()
{
Char s[]=”This is C programming text”;
Char t[]=”This is a text for C programming”;
maxword(s,t);
}
4. 设有一个数组a包含count个数,已经按照升序排好。现要求编一函数,函数首部为int arrage(int *a,int count,int n,int m)能够把从指定位置n开始的m个数按照逆序重新排列并输出新的完整数列。若排序完成则返回1,出现错误返回0.
Void main()
{
Int i,a[10]={0,1,2,3,4,5,6,7,8,9};
Arrage(a,10,3,5);
for(i=0;i<10;i++)
Printf(“%d”,a[i]);
}
5. 设文件student.dat中存放着一年级1000名学生的基本情况,这些情况由以下结构体来描述:
Struct student
{
Long int num;
Char name[10];
Int age;
Char sex;
Char addr[40];
};
请编写程序:
1) 在main函数中打开student.dat文件,并将所有数据按照学号排序后保存在一个student类型的数组中。
2) 编写函数,函数首部为void print(struct student *s,int m,int n),打印该数组中从学号为m到学号为n的数据
3) 编写函数,函数首部为struct student search(struct student *s,int num),利用折半查找算法查找学号num的学生,并将该学生的信息打印输出。
4) 编写函数,函数首部为void write(struct student *s),将数组写入到backup.dat文件中