惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
AI
AI
博客园 - 三生石上(FineUI控件)
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网
NISL@THU
NISL@THU
S
Schneier on Security
T
Threatpost
T
Tenable Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
SecWiki News
SecWiki News
AWS News Blog
AWS News Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Project Zero
Project Zero
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
Help Net Security
Help Net Security
Cloudbric
Cloudbric
Recent Announcements
Recent Announcements
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
The Cloudflare Blog
Forbes - Security
Forbes - Security
C
Cisco Blogs
O
OpenAI News
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - yijiangchunxue

测试网站和电子书下载网址 glomosim仿真的运行过程 一位软件工程师的6年总结(转) 【转】VC调试篇 【转】C++时间函数 在VC++中生成伪随机数祥解 c++产生随机数 2008年全球人均GDP排行 精选最新优秀源码下载网站排行 堆内存和栈内存区别 assert() 函数用法 C/C++笔试题(1) 华为笔试网络题 华为笔试题及解答 华为C/C++笔试题(5) 华为C/C++笔试题(3) 华为C/C++笔试题(2) 华为C/C++笔试题(1) malloc/free 和 new /delete 的区别
华为C/C++笔试题(4)
yijiangchunxue · 2008-10-22 · via 博客园 - yijiangchunxue

一、判断题

1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。(正确)

2、int (*ptr) (),则ptr是一维数组的名字。(错误 int (*ptr) ();定义一个指向函数的指针变量 )

3、指针在任何情况下都可进行>,<,>=,<=,==运算。(错误)

4、switch(c) 语句中c可以是int ,long,char ,float ,unsigned int 类型。( 错,不能用实形)

二、填空题

1、在windows下,写出运行结果

char str[ ]= "Hello";
char *p=str;
int n=10;

sizeof(str)=( )
sizeof(p)=( )
sizeof(n)=( )
void func(char str[100]){    }
sizeof(str)=( )

答案:6,4,4,4

2、

void getmemory(char **p, int num)
{
    
*p=(char *) malloc(num);
}
void test(void)

    
char *str=NULL;
    getmemory(
&str,100);
    strcpy(str,
"hello");
    printf(str);
}

运行test函数有什么结果?( )

答案:输出hello,但是发生内存泄漏。

3、
设int arr[]={6,7,8,9,10};
  int *ptr=arr;
  *(ptr++)+=123;
  printf("%d,%d", *ptr, *(++ptr));

答案:8,8。这道题目的意义不大,因为在不同的编译器里printf的参数的方向是不一样的,在vc6.0下是从有到左,这里先*(++ptr) 后*pt,于是结果为8,8

二、编程题

1、不使用库函数,编写函数int strcmp(char *source, char *dest)

相等返回0,不等返回-1;

答案:一、

int strcmp(char *source, char *dest)
{
    assert((source
!=NULL)&&(dest!=NULL));
    
int i,j;
    
for(i=0; source[i]==dest[i]; i++)
    {
        
if(source[i]=='\0' && dest[i]=='\0')
            
return 0;
        
else
            
return -1;
    }
}

答案:二、

int strcmp(char *source, char *dest)
{
    
while ( (*source != '\0'&& (*source == *dest))
    {
        source
++;
        dest
++;
    }
    
return ( (*source) - (*dest) ) ? -1 : 0;
}

2、 写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1

答案:一、

int fun(char *p)
{
    
if(p==NULL)
        
return -1;
    
else
    {
        
int length = 0;
        
int i = 0;
        
int judge = 1;
        length 
= strlen(p);
        
for(i=0; i<length/2; i++)
        {
            
if(p[i]!=p[length-1-i])
                judge 
= 0;
            
break;
        }
        
if(judge == 0)
            
return 0;
        
else
            
return 1;
    }
}

答案:二、

int fun(char *p)

    
int len = strlen(p) - 1
    
char *= p + len; 
    
if (!p) 
        
return -1
    
while (p < q) 
    {
        
if ((*p++!= (*q--)) 
            
return 0
    } 
    
return 1;
}