急!!)C程序期末考试上机题目

我有个文档,可是不能上传,只好把这些问题都传上去,而且只能是分几次传@@马上就要考试了,可是我还是不怎么会这二十道题目,愁死人了~~~希望高手可以看到我传的题目,帮忙啦,我会多给分的。里面的每个程序只需要填写一两个句子,所以不会占用你多长时间的。我已经考过一次了,可对于女生来说这个考试真是让我难过……

这是8——14题
9. 编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s所指的字符数组中,然后返回此最大字符串的长度。
#define N 30
int fun(char (*ss)[N],int m,char *s)
{
}
main()
{char a[8][N],b[N];
int i,len;
for(i=0;i<8;i++)
gets(a[i]);
len=fun(a,8,b);
printf("len=%d,str=%s\n",len,b);
}
10. 给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。
#include<stdlib.h>
#include<string.h>
void fun(char *s)
{
}
void main()
{char str[80];
gets(str); fun(str);
puts(str);
}
11.给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123,输出:3badc21
void fun(char *s)
{
}
void main()
{char str[80];
gets(str);
fun(str);
puts(str);
}
12.编写函数void fun(char *s1,char *s2),功能是:对形参s1所指字符串升序排序,并将排序后下标为偶数的字符取出,写入形参s2所指字符数组中,形成一个新串。例如,下面程序若输入:The C Programming Language,输出:□□LTaegghmnor。(□表空格)
void fun(char *s1,char *s2)
{
}
void main()
{char a[80],b[80];
gets(a);
fun(a,b);
puts(b);
}
13.函数void fun(char s[])的功能是:将s所指字符串中ASCII值为奇数的字符删除。例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依此类推。最后s中内容是:“BDF24”。
void fun(char s[])
{
}
void main()
{char a[80];
gets(a);
fun(a);
puts(a);
}
14.请编写一个函数int fun(long int x),它的功能是:判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。所谓“同构数”是指这样的数,它出现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数,输出"Yes"。要求x的值不大于10000。
int fun(long int x)
{
}
void main()
{int x;
scanf("%d",&x);
if(fun(x)==1)
puts("Yse");
else puts("No");
}

9.
你指最长的字符串?
int fun(char (*ss)[N],int m,char *s){
int max=0,i,j,k;
for(i=0;i<m;i++){
for(j=0;*(*(ss+i)+j)!='\0';j++);
if(j>max){max=j;k=i;}
}
for(j=0;*(*(ss+k)+j)!='\0';j++)
*(s+j)=*(*(ss+k)+j);
return max;
}

10.
void fun(char *s){
int i,j;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9'){
for(j=i;s[j]!='\0';j++);
j++;
for(;j>i;j--)
s[j]=s[j-];
s[j]='*';
}
}

11.
void fun(char *s){
char temp;
int i,j;
for(i=0;s[i]!='\0';i++)
if(i%2==0)j=i;
temp=s[j];
for(i=j;i>=2;i=i-2)
s[i]=s[i-2];
s[0]=temp;
}

12.
void fun(char *s1,char *s2){
int i,j,l=0,min;
for(i=0;s1[i]!='\0';i++)
l++;
for(i=0;i<l-1;i++){
min=i;
for(j=i+1;j<l;j++)
if(s1[j]<s1[m])m=j;
char temp=s1[i];
s1[i]=s1[min];
s1[min]=temp;
}
j=0;
for(i=0;i<l;i=i+2)
s2[j++]=s[i];
s2[j]='\0';
}

13.
void fun(char s[]){
int i,j=0;
for(i=0;s[i]!='\0';i++){
if(s[i]%2==0) s[j++]=s[i];
}
s[j]='\0';
}

14.
int fun(long int x){
long int divider;
divider=x<10?10:x<100?100:x<1000?1000:10000;
long int square=x*x;
if(square-x)%divider==0) return 1;
else return 0;
}

这些题目无聊死了,而且这不是一两行能打住的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-11
明明是9——14题
相似回答