0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Similar documents
untitled

untitled

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

Chapter_06

untitled

PowerPoint 프레젠테이션


歯7장.PDF

chap7.PDF

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap05-제어문.pptx

C 언어 프로그래밊 과제 풀이

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

Microsoft PowerPoint - chap10-함수의활용.pptx

Infinity(∞) Strategy

Microsoft PowerPoint - chap11-포인터의활용.pptx

K&R2 Reference Manual 번역본

Microsoft PowerPoint - ch07 - 포인터 pm0415

歯9장.PDF

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

중간고사

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

13 주차문자열의표현과입출력

Microsoft PowerPoint - Chapter_05.pptx

쉽게 풀어쓴 C 프로그래밍

03장.스택.key

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

슬라이드 1


쉽게 풀어쓴 C 프로그래밍

11장 포인터

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap12-고급기능.pptx

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

C프로-3장c03逞풚

untitled

商用

chap8.PDF

C++-¿Ïº®Çؼ³10Àå

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

11장 포인터

Microsoft PowerPoint - chap-06.pptx

C 프로그래밊 개요

Infinity(∞) Strategy

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

컴파일러

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

ch15

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - Chapter_07.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

금오공대 컴퓨터공학전공 강의자료

13주-14주proc.PDF


Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - 제11장 포인터

PowerPoint 프레젠테이션

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

PowerPoint 프레젠테이션

본 강의에 들어가기 전

OCW_C언어 기초

chap7.key

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

11장 포인터

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap06-4 [호환 모드]

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Introduction to Geotechnical Engineering II

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - Chapter_09.pptx

Chapter 4. LISTS

02장.배열과 클래스

Microsoft PowerPoint - Chapter_08.pptx


1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

PowerPoint 프레젠테이션

Microsoft PowerPoint - 10장 문자열 pptx

YRRZBRRLMCEQ.hwp

chap 5: Trees

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

RYWKVGWKJOFY.hwp

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

C 프로그래밊 개요

ABC 6장

Microsoft PowerPoint - chap-07.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - Lesson6.pptx

Transcription:

Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 -

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4) + 2; x = 8 y = x = (2 + 3)/4; x = 1 y = 1 y = 3 + 2 * (x = 7 / 2); x = 3 y = 9 2. 각각의문장을 condition 으로표현하시오. (4) x 는 5 보다크다. x > 5 x 는 5 가아니다. x!= 5 x 는 20 보다크거나같다. x >= 20 x는 1과 9를포함하는두수사이의값이다. x는 1과 9를포함하는두수사이의값이아니다. x >= 1 && x <= 9 x < 1 x > 9-2 -

3. 다음 While-loop 를 for-loop 으로바꿔표현하시오. (10) // sweetie1.c -- a counting loop #include <stdio.h> int main(void) const int NUMBER = 22; int count = 1; while (count <= NUMBER) printf("be my Valentine!\n"); count++; for-loop code // sweetie1.c -- a counting loop #include <stdio.h> int main(void) const int NUMBER = 22; int count; for (( count = 1 ; count <= NUMBER ; count++ ) printf("be my Valentine!\n"); - 3 -

4. 다음과같은결과를출력하는프로그램의빈칸을채우시오. (10) 출력결과 Pick an integer from 1 to 100. I will try to guess it. Respond with a y if my guess is right and with an n if it is wrong. Uh...is your number 1? n Well, then, is it 2? no Well, then, is it 3? no sir Well, then, is it 4? forget it Sorry, I understand only y or n. n Well, then, is it 5? y I knew I could do it! #include <stdio.h> int main(void) int guess = 1; int response; printf("pick an integer from 1 to 100. I will try to guess "); printf("it.\nrespond with a y if my guess is right and with"); printf("\nan n if it is wrong.\n"); printf("uh...is your number %d?\n", guess); while ((response = getchar())!= 'y') if ( response == 'n' ) else printf("well, then, is it %d?\n", ++guess); printf("sorry, I understand only y or n.\n"); while ( getchar()!= '\n' ) continue; printf("i knew I could do it!\n"); - 4 -

5. 다음프로그램들의출력결과를나타내시오. (20) (1) #include <stdio.h> int main(void) int n, m; for (n = 0; n <= 12; n++) if (n % 3 == 0) putchar('#'); else putchar('*'); putchar('\n'); for (n = 6; n > 0; n--) for (m = 0; m <= n; m++) printf("*"); printf("\n"); 출력결과 # * * # * * # * * # * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * - 5 -

(2) #include<stdio.h> int main(void) int i,j,n; int set[100][100]; n = 6; for(i = 0; i <= n; i++) for(j = 0; j <= n; j++) set[i][j] = 0; set[0][0] = 1; for(i = 1; i <= n; i++) for(j = 1; j <= i; j++) set[i][j] = set[i - 1][j] + set[i - 1][j - 1]; printf(" Index"); for(i = 1; i <= n; i++) printf("%3d", i); printf("\n"); for(i = 1; i <= n; i++) printf("%4d ", i); for(j = 1; j <= n; j++) printf("%3d",set[i][j]); printf("\n"); - 6 -

출력결과 Index 1 2 3 4 5 6 1 1 0 0 0 0 0 2 1 1 0 0 0 0 3 1 2 1 0 0 0 4 1 3 3 1 0 0 5 1 4 6 4 1 0 6 1 5 10 10 5 1-7 -

6. 다음과같은결과를출력하는프로그램의빈칸을채우시오. (10) Enter an uppercase letter: D A A B A A B C B A A B C D C B A Enter an uppercase letter: E A A B A A B C B A A B C D C B A A B C D E D C B A Enter an uppercase letter: G A A B A A B C B A A B C D C B A A B C D E D C B A A B C D E F E D C B A A B C D E F G F E D C B A - 8 -

#include <stdio.h> void pyramid(char letter); int main(void) char letter; printf("enter an uppercase letter: "); scanf("%c", &letter); pyramid(letter); void pyramid(char letter) int i, j; for(i = 'A'; i <= letter; i++) for(j = 0 ; j <= letter i - 1 ; j++) printf(" "); for(j = 0 ; j <= i - A ; j++) printf("%c", j+ A ); for(j = i - A - 1 ; j >= 0; j--) printf("%c", j+ A ); printf("\n"); - 9 -

7. 다음빈칸을채우시오. (10) /* order.c -- precedence in pointer operations */ #include <stdio.h> int data[2] = 200, 300; int moredata[2] = 150, 50; int main(void) int * p1, * p2, * p3; p1 = p2 = data; p3 = moredata; printf(" *p1 = %d, *p2 = %d, *p3 = %d\n", *p1, *p2, *p3); printf("*++p1 = %d, *p2++ = %d, (*p3)++ = %d\n", *++p1, *p2++, (*p3)++); printf(" *p1 = %d, *p2 = %d, *p3 = %d\n", *p1, *p2, *p3); 출력결과 *p1 = 200, *p2 = 200, *p3 = 150 *++p1 = 300, *p2++ = 200, (*p3)++ = 150 *p1 = 300, *p2 = 300, *p3 = 151-10 -

8. 다음빈칸을채우시오. (25) (1) 다음은 삽입정렬 을수행하는프로그램이다. 아래와같이새로운수를하나씩입력하면이미정렬된배열에알맞게삽입하고출력하는것을반복한다. 이삽입정렬을수행하는프로그램의빈칸을채우시오. 입출력예제 2 2 4 2 4 6 2 4 6 5 2 4 5 6 10 2 4 5 6 10 1 1 2 4 5 6 10 3 1 2 3 4 5 6 10 7 1 2 3 4 5 6 7 10 13 1 2 3 4 5 6 7 10 13 9 1 2 3 4 5 6 7 9 10 13 11 1 2 3 4 5 6 7 9 10 11 13-1 - 11 -

#include <stdio.h> #define MAXSIZE 10000 int main(void) int i, loc, currentsize = 0; int inputnum; int num[maxsize]; while (scanf("%d", &inputnum) == 1) if (inputnum == -1) break; else if(currentsize == MAXSIZE) printf("error: Memory is full."); break; else loc = currentsize++ ; while ( loc > 0 && num[loc-1] > inputnum ) num[loc] = num[loc-1]; loc--; num[loc] = inputnum ; for (i = 0; i < currentsize; i++) printf("\n"); printf("%d ", num[i]); - 12 -

(2) 아래는 8-(1) 의코드의일부분이다. 여기서 if 문을제거해도같은동작을수행 하도록 while 조건부분을수정하라. while (scanf("%d", &inputnum) == 1) if (inputnum == -1) break;... while( scanf("%d", &inputnum) == 1 && inputnum!= -1 )... - 13 -

9. 다음과같은선언이주어졌을때, 각 statement 가올바르면 O, 그렇지않으면 X 로표시하시오. (10) (1) float rootbeer[10], things[10][5], *pf, value = 2.2; int i = 3; rootbeer[2] = value; things[4][4] = rootbeer[3]; things[5] = rootbeer; pf = value; pf = rootbeer; O O X X O (2) double rates[5] = 88.99, 100.12, 59.45, 183.11, 340.5; const double locked[4] = 0.08, 0.075, 0.0725, 0.07; const double * pd = rates; pd[2] = 222.22; *pd = 29.89; pd++; pd = &rates[3]; pd = locked; X X O O O - 14 -

10. 다음의가운데정렬을하는프로그램의빈칸을채우시오. (10) ( 단, strlen() 함수를사용한일반적인답이아닌경우오답처리 ) 출력결과 **************************************** G I G A T H I N K, I N C. 1 0 1 M e g a b u c k P l a z a M e g a p o l i s, C A 9 4 9 0 4 **************************************** Hint: size_t strlen( const char *str ) 함수는인자로 String 을받아그 String 의길이를리턴하는함수이다. 예 : strlen( abcdefg ) == 7 strlen( 12345 67890 ) == 11-15 -

#include <stdio.h> #include <string.h> #define NAME "GIGATHINK, INC." #define ADDRESS "101 Megabuck Plaza" #define PLACE "Megapolis, CA 94904" #define WIDTH 40 #define SPACE ' ' void show_n_char(char ch, int num); int main(void) int spaces; show_n_char('*', WIDTH); putchar('\n'); show_n_char(space, 12); printf("%s\n", NAME); spaces = (WIDTH - strlen(address)) / 2; show_n_char(space, spaces); printf("%s\n", ADDRESS); show_n_char(space, ( WIDTH strlen(place) ) / 2 ); printf("%s\n", PLACE); show_n_char('*', WIDTH); putchar('\n'); void show_n_char(char ch, int num) int count; for (count = 1; count <= num; count++) putchar(ch); - 16 -

11. 다음 if-elseif 문을 switch-case 문으로바꿔표현하시오. (15) if-elseif 문 #include<stdio.h> int main(void) char code; scanf("%c",&code); if(code == 'A' code == 'a') printf("your Score : 90-100\n"); else if(code == 'B' code == 'b') printf("your Score : 80-89\n"); else if(code == 'C' code == 'c') printf("your Score : 70-79\n"); else if(code == 'D' code == 'd') printf("your Score : 60-69\n"); else if(code == 'F' code == 'f') printf("your Score : - 60\n"); else printf("not known..\n"); - 17 -

Switch-case 문 int main(void) char code; scanf("%c",&code); switch(code) case 'A': case 'a': printf("your Score : 90-100\n"); break; case 'B': case 'b': printf("your Score : 80-89\n"); break; case 'C': case 'c': printf("your Score : 70-79\n"); break; case 'D': case 'd': printf("your Score : 60-69\n"); break; case 'F': case 'f': printf("your Score : - 60\n"); break; default: printf("not known..\n"); break; - 18 -

12. 입력이 abcdefg 일때, 다음과같은출력이나오도록빈칸을채우시오. ( 입력문자열의길이가 1000을넘지않는다.) (15) 출력결과 gabcdef fgabcde efgabcd defgabc cdefgab bcdefga abcdefg #include<stdio.h> #include<string.h> int main(void) int i,j; char current_word[1000], next_word[1000]; scanf("%s",currnet_word); for(i = 0; i < strlen(current_word); i++) next_word[0] = current_word[strlen(current_word) - 1]; for(j = 1; j < strlen(current_word); j++) next_word[j] = current_word[j - 1]; next_word[j] = '\0'; printf("%s\n",next_word); strcpy(current_word, next_word); - 19 -