수학 함수 (math.h)
double sqrt(double x); // x의 제곱근을 반환
double log(double x); // 자연로그 x의 값을 반환
double exp(double x); // 무리수 e의 x제곱을 반환
double pow(double x, double y); // x의 y제곱의 값을 반환
double sin(double x); // x의 사인값을 반환
double cos(double x); // x의 코사인 값을 반환
double tan(double x); // x의 탄제트 값을 반환
소스코드 | 실행 결과 |
#include <stdio.h>
return 0; |
sqrt(25.0) : 5 log(10) : 2.30259 exp(10) : 7.38906 pow(10) : 64 sin(10) : 0.5 cos(10) : 0.809017 tan(10) : 1 |
문자열 함수 (string.h)
char *strcpy(char *dest, char *src); //문자열 복사
char *strncpy(char *dest, char *src, unsigned n); //지정한 길이만큼 문자열 복사
unsigned strlen(char *str); //문자열 길이 반환
int strcmp(char *s1, char *s2); //문자열 비교 대소문가 구분
int stricmp(char *s1, char *s2); //문자열 비교 대소문자 구분안함
문자열 s1 > 문자열 s2 => 1
문자열 s1 == 문자열 s2 => 0
문자열 s1 < 문자열 s2 => -1
char *strupr(char *str); //모두 대문자로
char *strlwr(char *str); //모두 소문자로
str *strchr(char *str, char c); //문자열 조사(앞에서 뒤로)
char *strstr(char *str1, char *str2); //문자열 조사(대소문자 구분)
char *strcat(char *dest, char *src); //문자열 추가
char *strncat(char *dest, char *src, unsigned n); //문자열을 n문자만큼 추가
소스코드 | |
#include <stdio.h>
실행 결과] 문자복사 abcdefg |
소스코드 | 소스코드 |
#include <stdio.h> char str1[30] = "abcdefghijklmn"; return 0;
실행 결과] cdefghijklmn |
#include <stdio.h> char str1[100] = "abcdefg"; return 0; }
실행 결과] abcdefg1234567 |
난수함수 (stdlib.h)
int rand(); //0~32767(RAND_MAX) 사이의 정수 난수
void srand(unsigned int seed); //난수 발생 씨앗을 seed로 초기화한다.
srand(time(NULL)); //time(NULL)함수는 현재의 시스템 날짜와 시간의 초를 구함
int atoi(char *s); //문자열 s를 int형 정수로 변환
double atof(char *s); //문자열 s를 double형 실수로 변환
char *itoa(int x, char *str, int radix); //숫자를 문자열로 변환
소스코드 | 소스코드 |
#include <stdio.h> #include <time.h>
int n; return 0;
실행 결과] 2 34 30 12 23 14 8 24 35 8 |
#include <stdio.h>
char str[10] = "1234"; return 0;
실행 결과] 문자를 정수로 : 1234 |
메모리 할당 함수 (malloc.h)
void *malloc(int n); //메모리중에 n바이트를 할당
void free(void *ptr); //포인터 ptr에 할당되어 있는 메모리를 해제
소스코드 | 실행결과 |
#include <stdio.h> #include <string.h>
char *str; return 0; |
asdf |
문제풀어 보기]
1. 다음 직각 삼각형의 밑변m과 높이 n을 구하라. (빗변:100, 사이각:25°)
n/100 -> sin(25*PI/180)
m/100 -> cos(25*PI/180)
출력 예]
높이 : 42.3
밑변 : 90.6
2. 2의 1승부터 2의 10승까지 출력하는 프로그램을 작성하시오. (pow함수 사용)
출력 예]
2의 1승 : 2
2의 2승 : 4
2의 3승 : 8
2의 4승 : 16
2의 5승 : 32
2의 6승 : 64
2의 7승 : 128
2의 8승 : 256
2의 9승 : 512
2의 10승 : 1024
3. 두 개의 단어를 입력받아 길이가 긴 문자열을 출력하시오. (단 문자열의 길이는 100이하)
입력 예]
computer C++
출력 예]
computer
4. 문자열(100자 이하)을 입력받은 후 정수를 입력받아 해당위치의 문자를 제거하고 출력하는 작업을 반복하다가 문자 1개가 남으면 종료하는 프로그램을 작성하시오.
첫 번째 문자의 위치는 1이며 만약 입력받은 번호가 문자열의 길이 이상이면 마지막 문자를 제거한다.
입력 예]
word
3
1
10
출력 예]
wod
od
o
5. 공백을 포함한 문자열을 입력받아 다음과 같이 분리하여 번호와 함께 출력하는 프로그램을 작성하시오. 문자열의 길이는 100자 이하이다.
입력 예]
My name is Dunsancom
출력 예]
1. My
2. name
3. is
4. Dunsancom
6. 단어를 입력받다가 "0"을 입력받으면 입력을 종료하고 그 때까지 입력받은 단어의 개수를 출력하고 홀수 번째 입력받은 단어를 한 줄에 1개씩 출력하는 프로그램을 작성하시오. 단어의 개수는 50개를 넘지 않고, 단어의 길이는 100자 이하이다.
입력 예]
January
february
march
0
출력 예]
3
January
march
7. 10 이하의 정수 n을 입력받고 n개의 문자열을 입력받은 후 그 크기를 비교하여 가장 작은 문자열부터 차례로 출력하는 프로그램을 작성하시오. 문자열의 길이는 100자 이하다. 사전순(아스키코드순)으로 뒤에 나오는 것을 큰 것으로 한다.
입력 예]
3
window
linux
ms-dos
출력 예]
linux
ms-dos
window
8. 5개의 단어(각 단어는 100자 이하)를 입력받은 후 문자와 문자열(100자 이하)을 한 개씩 입력받아 나중에 입력받은 문자나 문자열이 포함된 단어를 모두 출력하는 프로그램을 작성하시오. 찾는 단어가 없으면 “없음”이라고 출력한다.
입력 예]
banana
apple
melon
tomato
pear
n
to
출력 예]
banana
melon
tomato
9. 두 개의 문자열 A와 B 한 개의 정수 n을 입력받아서 A에 B를 연결하고 A에서 n개의 문자를 B에 복사한 후 A와 B를 출력하는 프로그램을 작성하시오. (1≤n,A,B≤100)
입력 예]
tomato melon 3
출력 예]
tomatomelon
tomon
10. 한 개의 단어를 입력받아서 거꾸로 뒤집어 출력하는 작업을 반복하다가 "END"라고 입력이 되면 종료하는 프로그램을 작성하시오. (strrev()함수 문자열 거꾸로 뒤집는 함수)
입력받는 단어의 길이는 20이하이다.
입력 예] 출력 예]
Jungol lognuJ
jjang gnajj
END
11. 1 ~ 10이하의 숫자 난수를 50번 발생시켜 각각의 숫자의 개수를 출력하시오.
출력 예]
1번 : 6개
2번 : 5개
3번 : 4개
4번 : 5개
5번 : 7개
6번 : 7개
7번 : 5개
8번 : 2개
9번 : 5개
10번 : 4개
12. 10 ~ 100 사이의 난수 10개를 발생시켜 평균에 가장 가까운 수를 출력 하시오.
출력 예]
22 50 14 98 80 74 65 74 86 57
평균 : 62.0
가장 가까운 수 : 65
13. 다음과 같은 프로그램을 작성하시오. ( 메모리 할당 : malloc(), 해제 : free() 사용 )
1) 문자열을 입력받는다. (포인터 변수 메모리 할당)
2) 문자열의 문자수를 구한다.
3) 문자열의 문자수 + 1 바이트를 할당 한다. (포인터 변수 메모리 할당)
4) 입력된 문자열을 할당된 영역에 복사한다.
5) 복사된 문자열을 출력한다.
입력 예]
computer
출력 예]
computer
'프로그램언어 > C언어' 카테고리의 다른 글
c언어 scanf 에러 발생 (0) | 2019.10.10 |
---|---|
c언어 파일 입출력 (0) | 2019.10.08 |
c언어 구조체와 공용체 (0) | 2019.10.07 |
c언어 사용자 정의 함수 (0) | 2019.10.04 |
c언어 포인터 (0) | 2019.10.02 |