<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EA%B0%84%EB%8B%A8%ED%95%9CC%EC%96%B8%EC%96%B4%EB%AC%B8%EC%A0%9C</id>
	<title>간단한C언어문제 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EA%B0%84%EB%8B%A8%ED%95%9CC%EC%96%B8%EC%96%B4%EB%AC%B8%EC%A0%9C"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EA%B0%84%EB%8B%A8%ED%95%9CC%EC%96%B8%EC%96%B4%EB%AC%B8%EC%A0%9C&amp;action=history"/>
	<updated>2026-05-15T10:41:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EA%B0%84%EB%8B%A8%ED%95%9CC%EC%96%B8%EC%96%B4%EB%AC%B8%EC%A0%9C&amp;diff=41505&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EA%B0%84%EB%8B%A8%ED%95%9CC%EC%96%B8%EC%96%B4%EB%AC%B8%EC%A0%9C&amp;diff=41505&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;영호가 내는 간단한 C언어 문제.&lt;br /&gt;
C언어 기초를 *제대로* 배웠다면 아주 쉬운 문제가 될 것이다.&lt;br /&gt;
*주* : 컴파일 하지말고 그냥 풀어보기 바란다.&lt;br /&gt;
&lt;br /&gt;
 Spec은 다음과 같다.&lt;br /&gt;
 16Bit 체제의 Windows&lt;br /&gt;
 ANSI C를 규격으로 하는 Compiler (C90)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
※ 다음이 옳은지 옳지 않은지 평가하고 옳다면 옳다고 적고, 옳지 않으면 옳지 않다고 적고 왜 그런지 이유를 적으시오.&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 int i;&lt;br /&gt;
 &lt;br /&gt;
 	for(i=0; i&amp;amp;lt;10; i++){	// 딴지 : {는 for문 뒤에 쓰는 것이 좋다. -_-. 내리는 것은 정말 좋지 않은 스타일이다.(가독성을 해친다.)&lt;br /&gt;
 		printf(&amp;quot;%d&amp;quot;, i);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳다. -_- - [[이영호]]&lt;br /&gt;
&lt;br /&gt;
안옳다. 메인함수 정의가 잘못되어있다. -yahar&lt;br /&gt;
&lt;br /&gt;
옳다. -[[정수민]]&lt;br /&gt;
&lt;br /&gt;
C언어의 컴파일러에 따라 메인함수는 저렇게 쓰일 수가 있어요;;; 특정 컴파일러는 return형이 int형이 아니라고 warnning을 내기도 하죠;; - [[이영호]]&lt;br /&gt;
    특정 컴파일러에 종속적인 프로그래밍은 좋지 않습니다. C90이라는 표준이 엄연히 존재하니까요. 특정 구현에 종속적인 프로그래밍을 한다고 하더라도, 프로그램의 심장은 표준에 따라 프로그래밍 하는게 좋습니다. &lt;br /&gt;
    혹은, 그렇지 않습니다. -yuhar&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 int a, b;&lt;br /&gt;
 double c;&lt;br /&gt;
 &lt;br /&gt;
 	a = 30000;&lt;br /&gt;
 	b = 30000;&lt;br /&gt;
 &lt;br /&gt;
 	c = a + b;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;%f&amp;quot;, c);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
안옳다. 프린트에푸에있는 %f 가 %d로 바뀌면 더 예쁘게 출력될꺼같다.-[[정수민]]&lt;br /&gt;
signed int형인 a와 b를 더하면 (65535/2)에서 데이터가 넘치게 되어 -숫자가 나온다. (-65536/2)+((30000+30000)-(65536/2-1)) &amp;lt;- 제대로 설명을 못하겠다;;; - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 const char *a;&lt;br /&gt;
 char *b, msg[]=&amp;quot;test code&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	a = msg;&lt;br /&gt;
 	b = a;&lt;br /&gt;
 &lt;br /&gt;
 	puts(msg);&lt;br /&gt;
 	puts(msg);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳다. 콘스트 캐릭터 별에이는 포인터의 주소 그러니까 &amp;amp;a 값만 변하지 않는거같다(아닌가;;)-[[정수민]]&lt;br /&gt;
옳지 않다. 문제점은 b=a;에 있다. const char *형을 char *형에 대입할 수 없다. 컴파일러 에러. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
 // 이 소스는 제대로 컴파일 되며, 실행도 된다.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 float num;&lt;br /&gt;
 char data[]=&amp;quot;123.12&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	num = atof(data);&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;%f&amp;quot;, num);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
안옳다. f가 아니고 s여야한다. -[[정수민]]&lt;br /&gt;
옳지않다. atof함수로 float변환은 되었지만, atof함수의 프로토 타입이 있는 헤더를 추가하지 않았기 때문에 int형으로 return된다. 즉, num엔 숫자 123이 담긴다. ANSI C99에서는 프로토타입이 선언되지 않으면 컴파일되지 않도록 변했다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
5.&lt;br /&gt;
 main(){&lt;br /&gt;
 int a, b, c;&lt;br /&gt;
 &lt;br /&gt;
 	a = 0010;&lt;br /&gt;
 	b = 0200;&lt;br /&gt;
 	c = 2000;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;a=%d b=%d c=%dn&amp;quot;, a, b, c);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
안옳다. 최초의 0을 제외한 숫자가오는 시점부터 프린트 되는거같다. -[[정수민]]&lt;br /&gt;
옳지않다. 0을 앞에 적으면 8진수로 취급된다. 0x숫자 &amp;lt;- 16진수 - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
6.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;ctype.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 char ss[] = &amp;quot;A2 문자&amp;quot;;&lt;br /&gt;
 int i;&lt;br /&gt;
 &lt;br /&gt;
 	puts(ss);&lt;br /&gt;
 &lt;br /&gt;
 	for(i=0; ss[i]; i++){&lt;br /&gt;
 		printf(&amp;quot;i=%d %4x(%4d) &amp;quot;, i, ss[i], ss[i]);&lt;br /&gt;
 		if(isdigit(ss[i]))	puts(&amp;quot;숫자&amp;quot;);&lt;br /&gt;
 		else			puts(&amp;quot;일반 문자&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳지않다. ss[]의 &amp;quot;문자&amp;quot;란 단어는 isdigit로 확인 할 수 없다. (확장코드이므로.) 이것을 isdigit로 확인 하려면 unsigned char형으로 선언 하면 된다. 기본 char형은 signed형이다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
7.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 int i;&lt;br /&gt;
 &lt;br /&gt;
 	while(scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;i), i)&lt;br /&gt;
 		printf(&amp;quot;%d&amp;quot;, i);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
안옳다. 와일문의 조건문에는 콤마가 허용돼지 않는거같다. -[[정수민]]&lt;br /&gt;
옳다. ,의 앞은 비교문이 아니라 선행 수행으로 처리한다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
8.&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 char *p;&lt;br /&gt;
 &lt;br /&gt;
 	gets(p);&lt;br /&gt;
 	puts(p);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
안옳다. 단순히 포인터만 존재한다. -[[정수민]]&lt;br /&gt;
옳지않다. 포인터만 있다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
9.&lt;br /&gt;
 // main.h&lt;br /&gt;
 #define NUM 100&lt;br /&gt;
 &lt;br /&gt;
 struct a {&lt;br /&gt;
 	int num1;&lt;br /&gt;
 	int num2;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 // main.c&lt;br /&gt;
 #include &amp;quot;main.h&amp;quot;&lt;br /&gt;
 #define NUM 200&lt;br /&gt;
 &lt;br /&gt;
 main(){&lt;br /&gt;
 struct a test;&lt;br /&gt;
 &lt;br /&gt;
 	test.num1 = 100;&lt;br /&gt;
 	test.num2 = 200;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;%d&amp;quot;, test.num1+test.num2);&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳다. -[[정수민]]&lt;br /&gt;
옳지 않다. NUM 상수가 2번 define 되었다. 이 경우 나중 define된 200으로 처리된다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
10.&lt;br /&gt;
 // 두 파일을 같이 linking&lt;br /&gt;
 //main1.c&lt;br /&gt;
 static int a = 100;&lt;br /&gt;
 &lt;br /&gt;
 int mul(int num)&lt;br /&gt;
 {&lt;br /&gt;
 	printf(&amp;quot;a = %d&amp;quot;, a);&lt;br /&gt;
 	return num*num;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //main2.c&lt;br /&gt;
 main(){&lt;br /&gt;
 exturn int a;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;a = %d&amp;quot;);&lt;br /&gt;
 	printf(&amp;quot;%d&amp;quot;, mul(100));&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳다. -[[정수민]]&lt;br /&gt;
옳지 않다. static은 C++의 private와 비슷하다. 한 파일이나 특정 로컬함수에서만 쓰인다는 것을 표현한다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
11.&lt;br /&gt;
 // 두 파일을 같이 linking&lt;br /&gt;
 // 1.c&lt;br /&gt;
 main(){&lt;br /&gt;
 double a, b;&lt;br /&gt;
 &lt;br /&gt;
 	a = 1234.1234;&lt;br /&gt;
 	b = 123.123;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;%f&amp;quot;, mul(a, b));&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 2.c&lt;br /&gt;
 double mul(double a, double b){&lt;br /&gt;
 	return a*b;&lt;br /&gt;
 }&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
옳다. -[[정수민]]&lt;br /&gt;
옳지않다. 함수의 프로토 타입이 정의되지 않았기 때문에 return형이 int형으로 바뀐다. 프로토타입은 return 타입을 컴파일러에서 알기 위해 쓰이는 것이다. - [[이영호]]&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
12.&lt;br /&gt;
 main(){&lt;br /&gt;
Note:&lt;br /&gt;
-&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
100번 까지만 내겠다. -_-&lt;br /&gt;
11번 까지의 답은 일주일 후에.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 쓰레드 ===&lt;br /&gt;
아무나 참가해도 되는 건가요 ? --아영&lt;br /&gt;
아무나 참가해도 되는거야. --영호&lt;br /&gt;
네 . ^^ 근데 생각보다 어렵네요 김승욱 교수님 시험 스타일이 문득 생각나네요ㅋㅋ --아영&lt;br /&gt;
너무 쉬운 문제들이야 많이 생각하고 풀어봤잖아. 이쯤에선 기초에 치중한 중간 난이도의 문제가 필요하지. --영호&lt;br /&gt;
&lt;br /&gt;
가독성에 대한 내용을 따로 뽑아서 [[가독성]] 페이지에 뽑아두었습니다. 이에 대한 의견 교환은 이제 새로 만들어진 페이지에서 했으면 합니다 - [[임인택]]&lt;br /&gt;
&lt;br /&gt;
틀려도 어쩔수없어요 ;; -[[정수민]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[분류분류]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>