컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 몇 가지 일반적인 C 언어 면접 질문 분석

몇 가지 일반적인 C 언어 면접 질문 분석

한 번은 작은 회사에 면접을 갔는데 일이 너무 바빠서 별 신경을 쓰지 못했다. 그들이 준 시험지는 문제가 너무 많아서 한 시간 안에 풀어야 했고, 문제의 양이 연결 목록, 다차원 배열, 프로그램 읽기 등을 포함하고 있어서 깜짝 놀랐습니다. 다행히 기본 실력은 꽤 탄탄했고, 미션을 완수한 적은 없었다. 프로그래밍 질문을 마치고 나니 제가 오랫동안 프로그램을 작성하지 않았으며 사소한 버그 수정과 코드 유지 관리에 너무 많은 에너지를 낭비했다는 사실을 깨달았습니다. 계속 하다보니 은근히 놀랐다. 졸업만 하면 한 시간 안에 이 문제도 풀 수 있을 것 같았다. 프로그램을 작성할 때 표준 라이브러리 기능을 몰랐습니다. 원리 이해와 프로그래밍 기술이 점점 더 나빠졌습니다. 당시 시간이 촉박해서 제가 작성한 프로그램이 완벽하지 않아서 나중에 다시 생각해보고, 집에 와서 이런 문제들을 빠르게 다시 정리했습니다. 다음은 인터뷰에서 직면한 프로그래밍 문제에 대한 분석이다. 사회 속의 인간은 강과 호수와 같아서, 배움은 한시도 쉴 수 없는 것이 사실이다. 조심하지 않으면 밤에 자신을 보호할 수 없고 시궁창에 전복될 것입니다.

1. 경로 아래의 파일 이름을 가져옵니다.

char * FindFileName(char * s)

{

int len;

p>

char *tmp=NULL;

ASSERT(s != NULL);

for (len=strlen(s); lengt; 0; len--)

{

if((s[len]=='/') ||(s[len]=='//'))

{

tmp = amp;s[len 1];

break;

}

}

return tmp;

}

2. 정수 유형을 문자 유형으로 변환

char * i2a(int n, char *s)

{

int i, sign;

ASSERT(s != NULL);

if ((sign = n) lt ; 0)

{

n = -n; //위치 선택을 용이하게 하기 위해 양수로 변환

}

do

{

s[i ] = n 10 '0'

}

while ((n /= 10) gt ; 0)

if (부호 lt; 0)

{

s[i] = '-';

}

s[i] = '/0';

reverse(s);

}

3. 문자 유형을 정수로 변환합니다. 유형

int a2i(char * s)

{

int i, n, sign;

ASSERT(s != NULL );

for (i = 0; s[i] == ' '; i )

{

NULL; //앞에 공백이 있는 경우 문자열, 모두 공백 건너뛰기

}

sign = (s[i] == '-') ?: -1: 1;

if ( s[i] = = ' ' || s[i] == '-')

{

i; //양의 정수 문자열인지 음수인지 확인 정수 문자열

}

for (n = 0; s[i] gt; = '0' amp; amp; s[i] lt; = '9'; i )

{

n = 10 * n (s[i] - '0');

}

반환 기호*n ;

}

4. 출력 문자열 반전 텍스트, 메모리를 동적으로 할당할 수 없습니다.

char * reverse(char * s)

{

int c , i, j;

ASSERT(s != NULL);

for (i = 0, j = strlen(s) - 1; 나는 lt; i, j --)

{

c = s[i] = s[j ];

s [j] = c;

}

s를 반환;

}

5 . 하위 문자열이 존재하는지 확인합니다.

int strindex

(char *str, char *searchstr)

{

int end, i, j;

ASSERT((str != NULL) amp; amp; (searchstr != NULL));

//끝 위치 계산

end = strlen(str) - strlen(searchstr)

if ( end gt 0 )

{

for ( i = 0; i lt; = end; i )

{

for ( j = i; str[j] == searchstr[j-i]; j )

{

if ( searchstr[j-i 1] == '/0' ) /* 하위 문자열 끝 단어*/

{

return i 1; /* 하위 문자열을 찾았습니다*/

}

}

}

}

return -1;

}

上篇: Lenovo Sunrise 150C 노트북 업그레이드 정보 下篇: Yunzhu.com이 입찰을 취소하면 어떤 영향을 미치나요?
관련 내용