一些C语言编程题,看不懂,请大家帮忙看看,小弟初学
C语言二级南开一百题中有些函数功能看不懂,请各位大虾帮忙看下,初学,请各位多多指教15.unsignedfun(unsignedw){unsignedt,s=0,s1=1...
C语言二级南开一百题中有些函数功能看不懂,请各位大虾帮忙看下,初学,请各位多多指教 15. unsigned fun (unsigned w) { unsigned t , s=0 ,s1=1,p=0; t=w ; while( t>1 {if (t/10) p=t%10 ; s=s+p*s1; s1=s1*10; t=t/10 ; } return s; } 24. long fun( char *p) { long s=0,t; int i=0, n=strlen(p), k,s1; if(p[0]== '-') i++; for(j=i ; j<=n-i ; j++) { t=p[j]-‘0’; s1=10; for(k=j; k<n-i; k++) t*=s1; s+=t; } if(p[0]== '-') return -s; else return s; } 36. 把“*”号找出来集中放到该数组的后面 void fun ( char *a) { int i=0,n=0 ; char *p ; p=a; while (*p=='*') {n++ ; p++; } while (*p) { a[i]= *p ; i++; p++ ; } while(n!=0) { a[i]= '*' ; i++ ; n-- ; } a[i]= '\0' ; } 41. void fun( char (*s)[N], char *b) { int i,j,k=0; for(j=0;j<N;j++) for(i=0;i<M;i++) { b[k]=* (* (s+i)+j); “/这两*号怎么用的啊/” k++; } b[k]= '\0'; } 39. void fun(int *w,int p,int n) { int b[]={0,0,0,0,0,0,0,0,0,0},i,j=0; for(i=0;i<=p;i++) b[i]=w[i]; for(i=p+1;i<n;i++) { w[j]=w[i]; j++; } for(i=0;i<=p;i++) {w[j]=b[i]; j++; } } 55 ? void fun(int (*s)[10], int *b, int *n, int mm, int nn) { int i, j; for(i=0;i<mm;i++) for(j=0;j<nn;j++) { b[*n]=*(*(s+i)+j); *n= *n+1;} }
展开
1个回答
展开全部
你这个题真是太多了,我给你写了快到一个小时了,要是认识你非得让你请吃饭不可呵呵,下面是你要是答案,要是还有什么不明白给我发邮件吧,我会告诉你的。liyang5553989@163.com
15,输入一个数,把这个数的最高位去掉,然后输出。如:输入123456,输出23456。
24,输入一个字符串,这个串应该为一个数字,返回一个long型的数字。
如:输入“-124586”,输出数字-124586。
36,把一个字符串中的前面的“*”号放到后面。如:输入“**fsaf*fd”,输出“fsaf*fd**”。
41,这个函数的参数:s是指向二维数组的指针,所指向的二维数组的第二维长度为N,b是指向一个数组的指针。
此函数的功能:二维数组的读取正常是按行来的,这个函数把s指向的二维数组按列存到b中。
如:s指向{{'a','b','c'},{'d','e','f'},{'g','h','i'}}
则输出为adg
beh
cfi.
39,是把数组w的第p+1到n-1的元素提到前面,剩下的往后写。
如:w[10]={0,10,20,30,40,50,60,70,80,90},p=3,n=6,就把数组的第4,5元素向前移,其余的按原来顺序写入,w为{40,50,0,10,20,30,60,70,80,90}
55,这个函数的参数:s是指向二维数组的指针,所指向的二维数组的第二维长度为10,b是指向一个数组的指针,n是指向一个数的指针,mm是s的第一维的长度,nn是s的第二维长度。
这个题是把s指向的数组中的所有数拷贝到b中,在b中存放是从*n开始的,b后要是还有值就还是那样存着。
如:int
(*s)[3],
k=2,*n=&k;
int
b[10]={0,0,0,0,0,0,0,0,0,0};
int
a[2][3]={{10,11,12},{0,1,2}};
s=a;
fun(s,b,n,2,10);
则b为{0,0,10,11,12,0,1,2,0,0}
15,输入一个数,把这个数的最高位去掉,然后输出。如:输入123456,输出23456。
24,输入一个字符串,这个串应该为一个数字,返回一个long型的数字。
如:输入“-124586”,输出数字-124586。
36,把一个字符串中的前面的“*”号放到后面。如:输入“**fsaf*fd”,输出“fsaf*fd**”。
41,这个函数的参数:s是指向二维数组的指针,所指向的二维数组的第二维长度为N,b是指向一个数组的指针。
此函数的功能:二维数组的读取正常是按行来的,这个函数把s指向的二维数组按列存到b中。
如:s指向{{'a','b','c'},{'d','e','f'},{'g','h','i'}}
则输出为adg
beh
cfi.
39,是把数组w的第p+1到n-1的元素提到前面,剩下的往后写。
如:w[10]={0,10,20,30,40,50,60,70,80,90},p=3,n=6,就把数组的第4,5元素向前移,其余的按原来顺序写入,w为{40,50,0,10,20,30,60,70,80,90}
55,这个函数的参数:s是指向二维数组的指针,所指向的二维数组的第二维长度为10,b是指向一个数组的指针,n是指向一个数的指针,mm是s的第一维的长度,nn是s的第二维长度。
这个题是把s指向的数组中的所有数拷贝到b中,在b中存放是从*n开始的,b后要是还有值就还是那样存着。
如:int
(*s)[3],
k=2,*n=&k;
int
b[10]={0,0,0,0,0,0,0,0,0,0};
int
a[2][3]={{10,11,12},{0,1,2}};
s=a;
fun(s,b,n,2,10);
则b为{0,0,10,11,12,0,1,2,0,0}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询