yahoo在线笔试题(c语言)及部分答案
发布时间: 2009-11-20 19:18 阅读: 5829 次 推荐: 0
[收藏]
[1] yahoo在线笔试题(c语言)及部分答案
[2] yahoo在线笔试题(c语言)及部分答案
[3] yahoo在线笔试题(c语言)及部分答案
[4] yahoo在线笔试题(c语言)及部分答案
[5] yahoo在线笔试题(c语言)及部分答案
[2] yahoo在线笔试题(c语言)及部分答案
[3] yahoo在线笔试题(c语言)及部分答案
[4] yahoo在线笔试题(c语言)及部分答案
[5] yahoo在线笔试题(c语言)及部分答案
Question 51. (问答)
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a的bit 3。在以上两
个操作中,要保持其它
位不变。
a|=0x4;
int b=a&0x7;
a>>=4;
a=(a<<4)|b;
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a的bit 3。在以上两
个操作中,要保持其它
位不变。
a|=0x4;
int b=a&0x7;
a>>=4;
a=(a<<4)|b;
Question 52. (问答)
有双向循环链表结点定义为:
struct node
{ int data;
struct node *front,*next;
};
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中dat
a值相同的结点删除
struct node
{ int data;
struct node *front,*next;
};
node* del(node *pHead){
if(pHead==pHead->next){
free(pHead);
return NULL;
}
node *p=pHead;
pHead->next->front=pHead->front;
pHead->front
给定字符串A和B,输出A和B中的最大公共子串。比如A="aocdfe" B="pmcdfa" 则输出"cdf"
*/
//Author: azhen
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *commanstring(char shortstring[], char longstring[])
{
int i, j;
char *substring=malloc(256);
if(strstr(longstring, shortstring)!=NULL) //如果……,那么返回shortstring
return shortstring;
for(i=strlen(shortstring)-1;i>0; i--) //否则,开始循环计算
{
for(j=0; j<=strlen(shortstring)-i; j++){
memcpy(substring, &shortstring[j], i);
substring[i]='\0';
if(strstr(longstring, substring)!=NULL)
return substring;
}
}
return NULL;
}
main()
{
char *str1=malloc(256);
char *str2=malloc(256);
char *comman=NULL;
gets(str1);
gets(str2);
if(strlen(str1)>strlen(str2)) //将短的字符串放前面
comman=commanstring(str2, str1);
else
comman=commanstring(str1, str2);
printf("the longest comman string is: %s\n", comman);
}
11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1
int strcmp ( const char * src,const char * dst)
{
int ret = 0 ;
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
{
++src;
++dst;
}
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
3,求1000!的未尾有几个0(用素数相乘的方法来做,如72=2*2*2*3*3);求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4;
#include<stdio.h>
#define NUM 1000
int find5(int num){
int ret=0;
while(num%5==0){
num/=5;
ret++;
}
return ret;
}
int main(){
int result=0;
int i;
for(i=5;i<=NUM;i+=5)
{
result+=find5(i);
}
printf(" the total zero number is %d\n",result);
return 0;
}