嵌入式笔试面试题(12)---字符串和字符的笔试题

时间:2022-07-18 14:41:11

1、输入一个字符串,将其逆序后输出。

 

2、下面的代码有什么问题?并请给出正确的写法。
void DoSomeThing(char* p)
{
 char str[16];
 int n;
 assert(NULL != p);
 sscanf(p, "%s%d", str, n);
 if (0 == strcmp(str, "something"))
 {
  ...
 }
}

3、不使用系统库函数,请写一个在一个字符串中查找一个子串的程序。

 

4、字符串”\\\”A100\”\\”的长度是多少?

 

5、用下列程序判断字符串s是否是对称的,对称返回1,否则返回0,填空

Int f(_______)

{

Int i = 0,j = 0;

While(s[j])

_________;

For(j--;i<j&&s[i] == s[j]; i++,j--);

Return ________________;

 

}

 

6、编程实现,将一个字符串中的首尾空格全部删除,中间的空格只保留一个,例如:“   I   LOVE  MY    HOME   ”删除后的结果为“I LOVE MY HOME”

 

7、请写一个将整形转换成字符串的函数,函数接口自己定义,如 123 转变成“123”。

 

8、strcopy和memcopy的区别

 

9、请找出下面代码中的所有错误

说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”   

#include"string.h"   

main()   

{   

char*src="hello,world";   

char* dest=NULL;   

int len=strlen(src);   

dest=(char*)malloc(len);      

char* d=dest;   

char* s=src[len];           

while(len--!=0)   

d++=s--;          

printf("%s",dest);   

return 0;   

}  

 

10、下述程序执行后的输出结果是
include
main()
{
int x='f';
printf("%c\n",'a'+(x-'a'+1));
A.g     B.h     C.i       D.j

11、若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是
A.def
B.d
C.e
D.0

12、下列转义字符中错误的是
A.′\000′
B.′\14′
C.′\x111′
D.′\2′

 


13、表达式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一个
A.非零整数
B.浮点数
C.0
D.字符

14、这个程序有什么问题:

main() 
{ char cl,c2; 
cl='9'; 
c2='10'; 
printf(”cl=%c,c2=%c\n”,c1,c2); 
}

 

15、不使用循环语句,如何自己编程得出字符串str的长度,int  myStrlen(char * str);

 

16、strcpy、sprintf、memcpy有什么区别?

 

17、编写程序实现atoi(),讲一个字符串转化为一个整型数值。如:“65321”转化后为65321

 

18、编写一个函数,有如下函数原型:

函数:int continum(char *intputstr,char *outputstr).

给一个字符串,要求找到里面连续的串,并且串的长度是所有连续串中最长的;结果是返回最长连续串的长度和对应的串;

例如:有字符串“abc123ef456ss123456789”其首地址是intputstr,最长的连续串是 123456789,长度是9,该串由outputstr返回。

 

19、Strcat函数的返回值为什么是char *

 

20、Char *str=“//thtp.www.”sizeof(str)=?

     Char *p=str; sizeof(p)=?

     Char buf[100];sizeof(buf);