1.
C 언어에서 구조체와 공용체에 대한 설명으로 옳은 것은?
- ①배열은 구조체의 멤버가 될 수 없다.
- ②구조체를 구성하는 멤버는 구조체가 될 수 없다.
- ③같은 기억 장소를 여러 개의 변수가 공유하도록 하기 위해 공용체를 사용한다.
- ④구조체의 포인터를 통해 구조체의 멤버를 직접 참조할 때에는 ‘점(.)’ 연산자를 사용한다.
정답 보기
정답 ③ · 해설 보기
시행 2013-06-22 · 책형 인 · 20문항 · 출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)
정답 ③ · 해설 보기
#include <stdio.h>
typedef struct p {
int x, y;
} PT;
void calcPoint(PT x, PT y, PT z) {
z.x = x.x + y.x;
z.y = x.y + y.y;
}
int main() {
PT p1 = {10,20}, p2 = {30,40}, p3 = {0,0};
calcPoint(p1, p2, p3);
printf("(%d, %d)\n", p3.x, p3.y);
return 0;
}정답 ① · 해설 보기
#include <stdio.h>
int main() {
int a;
double c, d;
c = a = 3.5;
d = 3+a/2+c;
printf("Result = %3.1f\n", d);
return 0;
}정답 ② · 해설 보기
정답 ① · 해설 보기
정답 ② · 해설 보기
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, res = 0;
int *ip = (int *) calloc(5, sizeof(int));
for (i = 0; i< 5; i++)
ip[i] += i + 1;
ip = (int *) realloc(ip, 10 * sizeof(int));
for (i = 5; i< 10; i++)
ip[i] = ip[i-5] + i + 1;
for (i = 0; i< 10; i++)
res += ip[i];
printf("%d\n", res);
return 0;
}정답 ④ · 해설 보기
#include <stdio.h>
#define COL ( ㉠ )
int main() {
int arr[ ][COL] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int ROW = sizeof(arr) / sizeof(int) / COL;
int (*ptr1)[COL] = arr;
int *ptr2[ROW];
int i, res = 0;
for (i = 0; i< ROW; i++) {
ptr2[i] = *(ptr1 + i);
res += *ptr2[i];
}
printf("%d\n", res);
return 0;
}정답 ③ · 해설 보기
정답 ④ · 해설 보기
class A {
protected static int a=0;
protected int b=0;
public static void inc_a() { a++; }
public void inc_b() { b++; }
public void print() {
System.out.println(a+" "+b);
}
}
class B extends A {
public static void inc_a() { a+=2; }
public void inc_b() { b+=2; }
}
public class Test {
public static void main(String[ ] args) {
B y = new B();
A z = new B();
y.inc_a();
y.inc_b();
z.inc_a();
z.inc_b();
z.print();
}
}정답 ③ · 해설 보기
정답 ① · 해설 보기
정답 ① · 해설 보기
#include <stdio.h>
int main() {
int a, b;
a = 8;
b = 12;
printf("a^b = %d\n", a^b);
return 0;
}정답 ④ · 해설 보기
#include <stdio.h>
#define MULTIPLY(a, b) (a*b)
int main() {
float f = 100/MULTIPLY(2+3, 4+5);
printf("%.1f\n", f);
return 0;
}정답 ② · 해설 보기
정답 ③ · 해설 보기
#include <iostream>
using namespace std;
class Base {
protected :
int a, b;
public :
void setab(int n, int m) { a = n; b = m; }
};
class Derived : protected Base {
int c;
public :
void setc(int n) { c = n; }
void showabc() {
cout << a <<' '<< b <<' '<< c << endl;
}
};
int main() {
Derived ob;
ob.setab(1, 2);
ob.setc(3);
ob.showabc();
return 0;
}정답 ② · 해설 보기
1. E → E + T2. E → E * T3. E → T4. T → ( E )5. T → a
정답 ② · 해설 보기
정답 ④ · 해설 보기
public class FourTimes {
private static int j = 0;
public static boolean methodB(int k) {
j += k;
return true;
}
public static void methodA(int i) {
boolean b;
b = (i<10 | methodB(4)) &&
(i<10 || methodB(4));
}
static void methodC() {
try {
methodD();
methodB(4);
} catch (ArithmeticException e) {
methodB(4);
} catch (NullPointerException e) {
methodB(4);
} catch (Exception e) {
methodB(4);
} finally {
methodB(4);
}
}
static void methodD() {
throw new NullPointerException();
}
public static void main(String[ ] args) {
methodA(0);
try {
methodC();
} catch (Exception e) {
methodA(10);
}
System.out.println(j);
}
}정답 ② · 해설 보기
import java.util.*;
class Guest {
private String _name;
public Guest(String name) { _name = name; }
public String getName() { return _name; }
}
class GuestList extends Vector<Guest> {
public GuestList() { super(); }
public Guest getAt(int index) {
return super.get(index);
}
public void addTail(Guest ptr) { super.add(ptr); }
public void removeGuest(String name) {
Guest tmp;
for (int i = 0; i< this.elementCount; i++) {
tmp = this.elementAt(i);
if (name.equals(tmp.getName()))
super.removeElementAt(i);
}
}
}
public class GuestMan {
public static void main(String[ ] args) {
GuestList guests = new GuestList();
guests.addTail(new Guest("Jennifer"));
guests.addTail(new Guest("Susan"));
guests.addTail(new Guest("Mary"));
guests.removeGuest("Jennifer");
Iterator<Guest> i = guests.iterator();
while (i.hasNext())
System.out.print(i.next().getName() + " ");
}
}정답 ④ · 해설 보기
정답 ① · 해설 보기