首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

宇观笔试题

2013-11-09 
宇视笔试题1、下列代码输出结果为:#includestdio.hunion{int ichar x[2]}avoid main(){a.x[0]10a.x[

宇视笔试题
1、下列代码输出结果为:

#include<stdio.h>
union{
int i;
char x[2];
}a;
void main(){
a.x[0]=10;
a.x[1]=1;
printf("%d",a.i);
}

2、比较下列哪个运算符优先级最高?  %   <<  <=  <<=
3、char arr[6]; sizeof(arr)是多少?
char filename[]="/etc/passwd"; sizeof(filename)是多少?
sizeof("a")是多少?
4、int w[2][3],(*pw)[3],下列哪些可以作为对数组w中元素的引用?
*(pw+1)   *(w[0]+2)  pw[0][0]   *(pw[1]+2)
5、一个链表,长度未知,怎么找出中间节点的位置?表结构和函数体自定义
6、找出一个字符串中包含的最长的对称字符串,并返回长度,比如“abccba”和“abcdcba”均为对称字符串
7、6个瓶子,装两种油,一种油的价格是另一种的double,容量分别为8,13,15,17,19,31,分别用相等的钱买这两种油,最后剩下一瓶,剩下的一瓶为:13,15,17,19?



======================
前面的选择题很多都忘了,就不贴了
[解决办法]
5. 两个指针先指向头结点,其中一个指针每次走一步,另一个指针每次走两步。当第二个指针走到末尾时,第一个指针就在中间。
[解决办法]
第6题


#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <stdbool.h>
static bool ispalindrome(char *str,int len);
int palindromes(char *str);
int main()
{
    char *str="abcdcbfg";
    int c=palindromes(str);
    printf("%d\n",c);
    return 0;
}


int palindromes(char *str)
{
    int len=strlen(str);
    int maxlength=0;
    int length;
    for(int i=0;i<len-1;i++)
    {
        for(int j=i+1;j<len;j++)
        {
            if(str[i]==str[j] && ispalindrome(str+i,j-i+1))
            {
                length=j-i+1;
                if(maxlength<length)maxlength=length;
            }
        }
    }
    return maxlength;

}

static bool ispalindrome(char *str,int len)
{
    if(len<=1)
        return true;
    else
        return (str[0]==str[len-1] && ispalindrome(str+1,len-2));

}



热点排行