-
개발의 시초 C언어의 기본기술(Tech) 2023. 3. 26. 16:31반응형
목차
프로그래밍을 시작하기 전 언어를 선택해야 할 문제에 직면했다면 저는 C언어를 추천합니다. 그 이유는 모든 언어의 모티브이기 때문입니다.
C 언어는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 유닉스 운영체제를 만들기 위해 고안한 프로그래밍 언어입니다.
C 언어는 운영체제의 어머니라고 할 수 있는 UNIX 운영 체제를 보다 쉽게 개발하기 위해 만들어졌습니다. 지금은 WINDOWS, MAC OS 등 다양한 운영체제가 존재하지만, 과거 UNIX는 "독보적"이라고 할 수 있을 정도로 편리하고 효율적인 표준 운영체제로 자리 잡았습니다. 기존의 UNIX 운영체제는 "어셈블리 언어"라는 low-level 언어¹로 작성되었습니다. 어셈블리 언어는 컴퓨터 CPU 구조에 변화가 생길 때마다 매번 같은 프로그램을 서로 다른 어셈블리어로 작성해야 하는 문제점이 있었기 때문에 프로그래밍을 하는데 있어서 어떤 개발자가 봐도 이해하고 수정할 수 있는 고급 프로그래밍 언어의 필요성이 점점 증가했습니다. 그 결과 C 언어가 탄생하게 되었고, 어셈블리 언어로 작성된 대부분의 코드는 이후 C언어로 재작성되었습니다. .
다음은 코딩 테스트 브론즈 정도의 C언어 문제들입니다.
- 2차 방정식의 계수들(3개)를 입력 받아 근의 공식의 답을 출력하시오.
더보기#include <stdio.h>
#include <math.h>
int main (void)
{
int a,b,c,D;
printf(" a를 입력하시오.\n");
scanf("%d", &a);
printf(" b를 입력하시오.\n");
scanf("%d", &b);
printf(" c를 입력하시오.\n");
scanf("%d",&c);D=((b*b)-(4*a*c));
if(D>=0)
printf("%f, %f\n",(-b+sqrt(D))/(2*a),(-b-sqrt(D))/(2*a));
if(D<0)
printf("근이 없습니다");
return 0;
}- 위 식의 꼭지점을 출력하시오
더보기#include <stdio.h>
#include <math.h>void main()
{
int a,b,c,d;
float z;
double e,f;
printf("정수 a=");
scanf("%d",&a);
printf("정수 b=");
scanf("%d",&b);
printf("정수 c=");
scanf("%d",&c);
printf("y=%dx^2+%dx+%d\n",a,b,c);
z=(-b+sqrt(b*b-4*a*c))/(2*a);
printf("%.2f",z);
if(b*b-4*a*c<0)
{
printf("\n허근을 가짐");
}
else
{
e=-b/(2*a);
f=a*a*e+a*e+c;
printf("꼭지점은 [%1f, %1f].",e,f);
}
}반응형- int 형 배열 a,b,c를 각각 100개 만들고, a = { 1, 2, 3, ~~~ 100 }, b = { 100, 99, 98, ~~~ 1 }, c[] = a[] * b[]; c의 전체 합을 출력하시오
더보기#include <stdio.h>
#define Y 100
#define Z 0void main()
{
int a[Y],b[Y],c[Y];
int i;
int t=0;
for(i=Z; i<Y; i++)
{
a[i]=i+1;
}
for(i=99;i>=Z; i--)
{
b[i]=i+1;
}
for(i=0; i<Y; i++)
{
c[i]=a[i]+b[i];
t=t+c[i];
}
printf("모든 학생들의 총점은 %d\n",t);
}- i=0 부터 50 까지 7*i*i를 더하시오.
더보기#include <stdio.h>
void main()
{
int i,s=0;
for(i=0;i<50;i++)
{
s=s+7*i*i;
}
printf("답은 %d \n",s);
}- 300475는 7*i*i를 몇까지 더해야 하는가? (i=0 부터)
더보기#include <stdio.h>
void main()
{
int i,c;
c=282975;
for(i=0;c>0;i++)
{
c=c-(7*i*i);
}
printf("%d",i);
}- C언어 함수를 이용하여 1~10까지의 합, 1~100까지의 합을 구하는 프로그램을 작성하세요.
더보기#include<stdio.h>
int hapf(int value);
main()
{
printf("1부터 10까지의 합은 %d \n",hapf(10));
printf("1부터 100까지의 합은 %d \n",hapf(100));
printf("1부터 1000까지의 합은 %d \n",hapf(1000));
}
int hapf(int value)
{
int i;
int hap = 0;
for(i=1; i<=value; i = i+1)
{
hap = hap + i;
}
return hap;
}
C의 장점과 단점
장점과 단점이 확실하다고 말씀드릴 수 있습니다.
처리되는 속도가 빠릅니다. 이후에 등장한 파이썬 자바 등에 비해 기본으로 포함되는 크기도 작고 알고리즘을 만들어도 그러한 결과가 나옵니다.
계속해서 발전해나가는 세상에서 고수준 언어들이 등장하고 있지만 반대로 저수준을 제어할 수단이 부족하여 C언어코딩을 필요로 하는 경우도 많습니다.
단점이라고 함은 절차 지향 언어이다 보니 문자 자체 처리가 순서대로 짜야 해서 최적화가 어렵기도 하고 배열 문자열 포인터 등등 여러 각도에서 봤을 때 섬세한 작업을 하기에 힘든 부분이 존재합니다.
반응형'기술(Tech)' 카테고리의 다른 글
2023년 국비지원 교육 종류 및 지원금 정보: 내일배움카드 등 (2) 2023.03.27 Python Dictionary와 Formatting (0) 2023.03.26 협업을 위한 협업 도구 Git 공부 GitHub (0) 2023.03.23 [완강후기] 스파르타 코딩클럽 엑셀보다 쉬운 SQL (0) 2023.02.05 [완강 후기] 스파르타코딩클럽 주식 데이터를 활용한 파이썬 데이터분석 (0) 2023.02.05