top 40 c programming interview questions
가장 자주 묻는 C 프로그래밍 인터뷰 질문 및 답변 :
C 프로그래밍 언어는 Bell Labs의 Dennis Ritchie에 의해 1969 년에서 1973 년 사이에 개발되었습니다. 그는이 새로운 프로그래밍 언어를 사용하여 UNIX 운영 체제를 다시 구현합니다.
C는 범용 프로그래밍 요구 사항에 사용되는 고급 구조 지향 프로그래밍 언어입니다. 기본적으로 C는 라이브러리 함수의 모음입니다. 사용자 정의 함수를 추가하고 C 라이브러리에 포함하는 것도 유연합니다.
C 프로그래밍 언어의 주요 용도에는 언어 컴파일러, 운영 체제, 어셈블러, 텍스트 편집기, 인쇄 스풀러, 네트워크 드라이버, 최신 프로그램, 데이터베이스, 언어 해석기 및 유틸리티가 포함됩니다.
가장 일반적인 C 프로그래밍 인터뷰 질문
여기 있습니다.
Q # 1) C 프로그래밍 언어의 주요 기능은 무엇입니까?
답변 : 기능은 다음과 같습니다.
- 휴대 성 : 플랫폼 독립적 인 언어입니다.
- 모듈성 : 큰 프로그램을 작은 모듈로 분해 할 수 있습니다.
- 적응성: 프로그래머가 언어를 제어 할 수있는 가능성.
- 속도: C는 시스템 프로그래밍을 지원하므로 다른 고급 언어와 비교할 때 고속으로 컴파일하고 실행합니다.
- 확장 성 : 프로그래머가 새로운 기능을 추가 할 수 있습니다.
Q # 2) C와 관련된 기본 데이터 유형은 무엇입니까?
대답:
- Int – 숫자 (정수)를 나타냅니다.
- Float – 분수 부분이있는 숫자.
- 더블 – 배정 밀도 부동 소수점 값
- Char- 단일 문자
- 무효 – 값이없는 특수 목적 유형입니다.
Q # 3) 구문 오류에 대한 설명은 무엇입니까?
대답: 프로그램을 만드는 동안 발생하는 실수 / 오류를 구문 오류라고합니다. 철자가 틀린 명령 또는 잘못된 대 / 소문자 명령, 메서드 / 함수 호출의 잘못된 매개 변수 수, 데이터 형식 불일치가 구문 오류의 일반적인 예로 식별 될 수 있습니다.
Q # 4) C에서 증감 문을 생성하는 과정은 무엇입니까?
대답: 이 작업을 수행하는 방법에는 두 가지가 있습니다.
- 증가 (++) 및 감소 (-) 연산자를 사용하십시오.
예 x = 4이면 x ++는 5를, x-는 3을 반환합니다.
- 일반 + 또는 – 기호를 사용하십시오.
예 x = 4이면 x + 1을 사용하여 5를 얻고 x-1을 사용하여 3을 얻습니다.
Q # 5) 프로그래밍 언어에서 예약어는 무엇입니까?
대답: 표준 C 언어 라이브러리의 일부인 단어는 예약어 . 이러한 예약어는 특별한 의미를 가지며 의도 된 기능 이외의 다른 활동에 사용할 수 없습니다.
예: void, return int.
Q # 6) C에서 매달린 포인터에 대한 설명은 무엇입니까?
대답: 어떤 변수의 메모리 주소를 가리키는 포인터가 있지만 일정 시간이 지난 후 포인터가 해당 위치를 가리키는 포인터를 유지하면서 변수가 메모리 위치에서 삭제 된 경우 C에서 매달린 포인터라고합니다.
Q # 7) 정적 함수의 사용법을 설명해주세요.
대답: 정적 키워드가 접두사로 붙은 함수 정의가있는 함수는 정적 함수로 정의됩니다. 정적 함수는 동일한 소스 코드 내에서 호출되어야합니다.
Q # 8) abs () 함수와 fabs () 함수의 차이점은 무엇입니까?
대답: 두 기능 모두 절대 값을 검색합니다. abs ()는 정수 값이고 fabs ()는 부동 유형 숫자입니다. abs ()의 프로토 타입은 라이브러리 파일에 있고 fabs ()는.
Q # 9) C에서 와일드 포인터를 설명 하시나요?
대답: C 코드에서 초기화되지 않은 포인터는 다음과 같이 알려져 있습니다. 와일드 포인터 . 임의의 메모리 위치를 가리키며 잘못된 프로그램 동작이나 프로그램 충돌을 일으킬 수 있습니다.
Q # 10) ++ a와 a ++의 차이점은 무엇입니까?
대답: ‘++ a’는 접두사 증분이라고하며 증분은 변수에서 먼저 발생합니다. ‘a ++’는 후위 증분이라고하며 증분은 연산에 사용되는 변수 값 다음에 발생합니다.
Q # 11) C 프로그래밍에서 =와 == 기호의 차이점을 설명해주세요.
대답: ‘==’는 왼쪽의 값 또는 표현식을 오른쪽의 값 또는 표현식과 비교하는 데 사용되는 비교 연산자입니다.
‘=’는 오른쪽의 값을 왼쪽의 변수에 할당하는 데 사용되는 할당 연산자입니다.
Q # 12) C에서 프로토 타입 기능에 대한 설명은 무엇입니까?
위험 관리와 관련된 필수 도구는 다음과 같습니다.
대답: 프로토 타입 함수는 컴파일러에 다음 정보가 포함 된 함수 선언입니다.
- 함수의 이름입니다.
- 함수의 반환 유형입니다.
- 함수의 매개 변수 목록입니다.
이 예에서 함수의 이름은 Sum이고 반환 유형은 정수 데이터 유형이며 두 개의 정수 매개 변수를받습니다.
Q # 13) C에서 데이터 유형의 주기적 특성에 대한 설명은 무엇입니까?
대답: C의 일부 데이터 유형은 개발자가 데이터 유형의 범위를 벗어난 값을 할당 할 때 특별한 특성을 갖습니다. 컴파일러 오류가 없으며 값이 순환 순서에 따라 변경됩니다. 이것을 순환 성이라고합니다. Char, int, long int 데이터 유형에는이 속성이 있습니다. 추가 float, double 및 long double 데이터 유형에는이 속성이 없습니다.
Q # 14) C 프로그래밍에서 헤더 파일과 그 사용법을 설명해주세요.
대답: 프로그램에서 사용되는 함수의 정의와 프로토 타입이 포함 된 파일을 헤더 파일이라고합니다. 라이브러리 파일이라고도합니다.
예: 헤더 파일에는 stdio.h 라이브러리 파일에서 가져온 printf 및 scanf와 같은 명령이 포함되어 있습니다.
Q # 15) 디버깅 할 때 삭제하는 것보다 주석 기호에 일부 코드 블록을 유지하는 코딩 방식이 있습니다. 디버깅 할 때 이것이 어떤 영향을 미칩니 까?
대답: 이 개념을 주석 처리라고하며 이는 오류의 가능한 원인을 스캔하는 코드의 일부를 분리하는 방법입니다. 또한이 개념은 코드가 문제의 원인이 아닌 경우 단순히 주석에서 제거 할 수 있으므로 시간을 절약하는 데 도움이됩니다.
Q # 16) C에서 루프 문과 사용 가능한 루프 유형에 대한 일반적인 설명은 무엇입니까?
대답: 반복되는 방식으로 명령문 또는 명령문 그룹의 실행을 허용하는 명령문은 루프로 정의됩니다.
다음 다이어그램은 일반적인 형태의 루프를 설명합니다.
C에는 4 가지 유형의 루프 문이 있습니다.
- While 루프
- For 루프
- Do… While 루프
- 중첩 루프
Q # 17) 중첩 루프 란 무엇입니까?
대답: 다른 루프 내에서 실행되는 루프를 중첩 루프 . 첫 번째 루프는 외부 루프라고하고 내부 루프는 내부 루프라고합니다. 내부 루프는 외부 루프에 정의 된 횟수만큼 실행됩니다.
Q # 18) C에서 일반적인 함수 형태는 무엇입니까?
대답: C의 함수 정의에는 네 가지 주요 섹션이 있습니다.
return_type function_name( parameter list ) { body of the function }
- 반환 유형 : 함수 반환 값의 데이터 유형입니다.
- 기능 이름 : 기능의 이름과 기능의 활동을 설명하는 의미있는 이름을 갖는 것이 중요합니다.
- 매개 변수 : 필요한 작업을 수행하는 데 사용되는 함수의 입력 값입니다.
- 기능 본체 : 필요한 작업을 수행하는 문 모음입니다.
Q # 19) C 프로그래밍 언어에서 포인터에 대한 포인터는 무엇입니까?
대답: 다른 포인터 변수의 주소를 포함하는 포인터 변수를 포인터의 포인터라고합니다. 이 개념은 포인터 변수가 보유한 데이터를 가리 키기 위해 두 번 역 참조합니다.
이 예에서 ** y는 변수 a의 값을 반환합니다.
Q # 20) '휴식'이라는 키워드를 사용할 수있는 유효한 장소는 무엇입니까?
대답: Break 키워드의 목적은 실행중인 코드 블록에서 컨트롤을 가져 오는 것입니다. 루핑 또는 switch 문에만 나타날 수 있습니다.
Q # 21) 헤더 파일이 큰 따옴표 (“”)와 꺾쇠 괄호 ()에 포함되어있을 때 동작상의 차이는 무엇입니까?
대답: 헤더 파일이 큰 따옴표 (“”) 안에 포함되면 컴파일러는 먼저 작업 디렉토리에서 특정 헤더 파일을 검색합니다. 찾을 수없는 경우 포함 경로에서 파일을 검색합니다. 그러나 헤더 파일이 꺾쇠 괄호 () 안에 포함되면 컴파일러는 작업 디렉토리에서 특정 헤더 파일 만 검색합니다.
Q # 22) 순차 액세스 파일이란 무엇입니까?
대답: 일반 프로그램은 데이터를 파일에 저장하고 파일에서 기존 데이터를 검색합니다. 순차 액세스 파일을 사용하면 이러한 데이터가 순차 패턴으로 저장됩니다. 이러한 파일에서 데이터를 검색 할 때 필요한 정보를 찾을 때까지 각 데이터를 하나씩 읽습니다.
Q # 23) 스택 데이터 구조 유형으로 데이터를 저장하는 방법은 무엇입니까?
대답: 데이터는 다음을 사용하여 Stack 데이터 구조 유형에 저장됩니다. FILO (선입 선출) 기구. 주어진 인스턴스에서 스택의 맨 위만 액세스 할 수 있습니다. 저장 메커니즘을 PUSH라고하고 검색을 POP라고합니다.
Q # 24) C 프로그램 알고리즘의 의미는 무엇입니까?
대답: 알고리즘이 먼저 생성되고 솔루션이 어떻게되어야하는지에 대한 단계별 지침이 포함되어 있습니다. 또한 고려해야 할 단계와 프로그램 내에서 필요한 계산 / 작업이 포함되어 있습니다.
Q # 25) 중첩 된 for 루프를 사용하여 C에서 다음 출력을 갖는 올바른 코드는 무엇입니까?
대답:
#include int main () { int a; int b; /* for loop execution */ for( a = 1; a <6; a++ ) { /* for loop execution */ for ( b = 1; b <= a; b++ ) { printf('%d',b); } printf('
'); } return 0; }
Q # 26) 예제 코드와 함께 toupper () 함수의 사용법을 설명해주세요.
대답: Toupper () 함수는 문자와 함께 사용할 때 값을 대문자로 변환하는 데 사용됩니다.
암호:
#include #include int main() { char c; c = 'a'; printf('%c -> %c', c, toupper(c)); c = 'A'; printf('
%c -> %c', c, toupper(c)); c = '9'; printf('
%c -> %c', c, toupper(c)); return 0; }
결과:
숙련자를위한 성능 테스트 인터뷰 질문
Q # 27) 주어진 코드의 출력을 반환하는 while 루프의 코드는 무엇입니까?
#include int main () { int a; /* for loop execution */ for( a = 1; a <= 100; a++ ) { printf('%d
',a * a); } return 0; }
대답:
#include int main () { int a; while (a<=100) { printf ('%d
', a * a); a++; } return 0; }
Q # 28) 다음 목록에서 잘못된 연산자 형식을 선택하십시오 (==,,> =,<=) and what is the reason for the answer?
대답: 잘못된 연산자는‘’입니다. 이 형식은 조건문을 작성할 때 정확하지만 C 프로그래밍에서 같지 않음을 나타내는 것은 올바른 작업이 아닙니다. 다음과 같은 컴파일 오류가 발생합니다.
암호:
#include int main () { if ( 5 10 ) printf( 'test for ' ); return 0; }
오류:
Q # 29) C 프로그램에서 한 줄 코드를 묶기 위해 중괄호 ({})를 사용할 수 있습니까?
대답: 예, 오류없이 작동합니다. 일부 프로그래머는 이것을 사용하여 코드를 구성합니다. 그러나 중괄호의 주요 목적은 여러 줄의 코드를 그룹화하는 것입니다.
Q # 30) C의 수식어를 설명해주세요.
대답: Modifier는 변수에 대한 저장 공간 할당에 대한 수정을 나타내는 데 사용되는 기본 데이터 유형의 접두사입니다.
예- 32 비트 프로세서에서 int 데이터 유형의 저장 공간은 4입니다. 수정 자와 함께 사용하면 저장 공간이 다음과 같이 변경됩니다.
- Long int : 저장 공간은 8 비트입니다.
- 짧은 정수 : 저장 공간은 2 비트입니다.
Q # 31) C 프로그래밍 언어에서 사용할 수있는 수정자는 무엇입니까?
대답: 다음과 같이 C 프로그래밍 언어에서 사용할 수있는 5 가지 수정자가 있습니다.
- 짧은
- 긴
- 서명 됨
- 서명되지 않음
- 오래 오래
Q # 32) C 프로그래밍 언어로 난수를 생성하는 과정은 무엇입니까?
대답: 이 목적을 위해 rand () 명령을 사용할 수 있습니다. 이 함수는 0부터 시작하는 정수를 반환합니다. 다음 샘플 코드는 rand ()의 사용을 보여줍니다.
암호:
#include #include int main () { int a; int b; for(a=1; a<11; a++) { b = rand(); printf( '%d
', b ); } return 0; }
산출:
Q # 33) 샘플 프로그램으로 개행 이스케이프 시퀀스를 설명해주세요.
대답: 개행 이스케이프 시퀀스는 n으로 표시됩니다. 이것은 새 줄이 컴파일러로 시작되고 그에 따라 출력이 생성되는 지점을 나타냅니다. 다음 샘플 프로그램은 개행 이스케이프 시퀀스의 사용을 보여줍니다.
암호:
/* * C Program to print string */ #include #include int main(){ printf('String 01 '); printf('String 02 '); printf('String 03
'); printf('String 01
'); printf('String 02
'); return 0; }
산출:
Q # 34) int 데이터 형 변수에 32768을 저장할 수 있습니까?
대답: Int 데이터 유형은 – 32768에서 32767 사이의 값만 저장할 수 있습니다. 32768을 저장하려면 수정자를 int 데이터 유형과 함께 사용해야합니다. Long Int를 사용할 수 있으며 음수 값이 없으면 unsigned int도 사용할 수 있습니다.
Q # 35) C 프로그래밍 언어로 사용자 정의 헤더 파일을 만들 수 있습니까?
대답: 예, 새 헤더 파일을 만드는 것이 가능하고 쉽습니다. 프로그램 내에서 사용되는 함수 프로토 타입으로 파일을 만듭니다. 이름에서‘#include’섹션에 파일을 포함합니다.
Q # 36) C 프로그래밍 언어로 동적 데이터 구조를 설명합니까?
대답: 동적 데이터 구조는 메모리에 더 효율적입니다. 메모리 액세스는 프로그램에서 필요에 따라 발생합니다.
Q # 37) 서로에게 포인터를 추가 할 수 있습니까?
대답: 포인터를 함께 추가 할 가능성이 없습니다. 포인터에 주소 세부 정보가 포함되어 있으므로이 작업에서 값을 검색 할 방법이 없습니다.
Q # 38) 간접적이란 무엇입니까?
대답: 변수 또는 메모리 개체에 대한 포인터를 정의한 경우 변수 값에 대한 직접적인 참조가 없습니다. 이를 간접 참조라고합니다. 그러나 변수를 선언하면 값에 대한 직접적인 참조가 있습니다.
Q # 39) C 프로그래밍 언어에서 사용할 수있는 널 포인터에 대한 방법은 무엇입니까?
답변 : Null 포인터는 세 가지 방법으로 사용할 수 있습니다.
- 오류 값으로.
- 센티넬 가치로.
- 재귀 데이터 구조에서 간접 지정을 종료합니다.
Q # 40) 모듈 식 프로그래밍에 대한 설명은 무엇입니까?
대답: 메인 프로그램을 실행 가능한 하위 섹션으로 나누는 과정을 모듈 프로그래밍이라고합니다. 이 개념은 재사용 성을 촉진합니다.
결론
질문자는 포인터를 사용한 메모리 관리, 구문 지식 및 기본 C 프로그램 구조를 사용하는 몇 가지 예제 프로그램을 포함한 C 프로그래밍 언어 개념을 기반으로합니다. 후보자의 연극 적, 실제적 지식이 질문과 함께 검토됩니다.