K
@kimjiyeon
94쪽 3번
#include <stdio.h>
//배열a의 시작 주소는 22935239이다.
//int = 4byte
int main() {
int a[3][4] = {{10, 15, 20, 25},
{30, 35, 40, 45},
{50, 55, 60, 65}};
printf("a+1 = %d, ", a+1); //a+1 = 22935239 + 4*4yte=22935
93쪽 2번
#include <stdio.h>
void main() {
int A=10, B;
int *C = &B;
B=A--; //B=10
B += 20; //B=10+20
printf("%d", *C); //*C=&B 니까, 30 출력
}
93쪽 1번
#include <stdio.h>
void main(){
int a=10;
int b;
int *c=&b;
b = a++;
b += 10;
printf("a=%d\n", a); //a=10 출력
printf("b=%d\n", b); //b=a++=10, b+=10=10+10=20 b=20 출력
printf("c=%d\n", *c); //*c=&b니까, c=20 출력
78쪽 3번
#include <stdio.h>
void printtest(int *p, int size);
int main(int argc, char* argv[]){
int a[5]={10,20,30,40,50};
int size=sizeof(a)/sizeof(a[0]); // size=(5*int_4byte)/4=5
printtest(a, size/2); // size/2=5/2=2, printtest(a, 2);
ret
77쪽 2번
#include <stdio.h>
int hap(int);
void main(void){
int i, tot=0;
for(i=0; i<3; i++) tot = tot + hap(i);
printf("%d\n", tot);
}
int hap(int i){
static int a[3][4]={{1,2,3,0}, {4,5,6,0}, {7,8,9,0}};
77쪽 1번
#include <stdio.h>
#define SIZE 20
int mapping(int);
void main(void){
int group[] = {0,1,2,3,4,5,6,7,8,9};
int loc[] = {61, 127, 21};
int i;
for(i=0; i<sizeof(loc)/sizeof(int); i++) //loc 크기:3 int크기:4
printf("%d ", group[map
68쪽 4번
#include <stdio.h>
int main() {
int i, j, sum=0;
for(i=1; i<10; i++){ //i=1~9 -> 2~10
for (j=1; j<10; j++){ //j=1~9 -> 2~10
if(j%3 == 0) continue; //3배수(3,6,9)이면 continue하고 sum++
if(i%4 == 0) break; //4배수(
68쪽 3번
#include <stdio.h>
void main(){
int i, j, n=0;
for(i=0; i<10; i++){ //i=0~9
for(j=0; j<10; j++){ //j=0~9
if(j>5) continue; //j=6~9라면 continue
n++; //j=0~5라면 n++; n=6
}
if(i>6) brea
67쪽 2번
#include <stdio.h>
void main(){
int i, total=0;
for(i=0; i<10; i++){
if(!(i%2)) continue;
//i=0일때 i%2=0, 1(참)이니까 continue
//i=1일때 i%2=1, 0(거짓)이니까 total+=1
//i=2일때 i%2=0, 1(참)이니까 continue
//i=3일때 i%2=1,
2020B-10
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int sID;
struct node *next; } Node;
Node *findLast (Node *start){ //연결리스트의 마지막 노드 주소 반환
Node *p;
if(start == NULL)
return NULL;
p=ㄱ;
67쪽 1번
#include <stdio.h>
void main(){
int i, j, s=0;
for(i=1; i<10; i++){ //i=1~9
for (j=1; j<10; j++){ //j=1~9
if(j%2==0) continue; //j=1,3,5,7,9 s++ 5회
if(i%3==0) continue; //i=3,6,9
if(i%4==0) break
64쪽 3번
#include <stdio.h>
void main(){
int a=2, b;
while(a-- > 0) //2>0
printf("a = %d\n", a); //a = 2-1 = 1출력
for(b=0; b<2; b++) //b=0~1 (2번)
printf("a = %d\n", a++); //a = 1출력, a = 2출력
}
64쪽 2번
#include <stdio.h>
int getnext(int a){ //a=0~9
return (a*2+1); //1, 3, 5, 7 ... 19
}
void main(){
int i, j, k=0;
for(i=1; i<10; i++) //i=0~9
for(j=1; j<getnext(i); j++) //0, 2, 4, 6 ... 18
k++; //2+4+6+8+10+12+14+16
63쪽 1번
#include <stdio.h>
int cal_first(void){
int k=0, p=0;
do {
p = p+k;
k++;
} while(k<10);
return p;
}
int cal_second(void){
54쪽 2번
#include <stdio.h>
int main(void){
int score[10]={1, 2, 3, 4, 5}; //score[5~9]=0
int i, op =2, sum=0;
switch(op){ //switch(2)
case 1:
for(i=0; i<10; i++)
sum+=score[i];
printf("%d\n", sum)
45쪽 7번
#include <stdio.h>
int main() {
int a=1, b, c, d;
d = (b = a++, c=b+2);
//b=1, c=3
//d=3 (맨 끝 오른쪽 값)
printf("a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);
//a=2, b=1, c=3, d=3
return 0;
44쪽 6번
#include <stdio.h>
void main() {
int a, b, c, r;
a=4; b=2; c=3;
r=a++ - ++b * (c<<2);
//a++ = 4, ++b=3, c=3=011, 011<<2=01100=4+8=12
//r=4-3*12=4-36=-32
printf("%d\n", r);
44쪽 5번
#include <stdio.h>
unsigned int getbits(unsigned x, int p, int n) { //x=312, p=8, n=4
return (x >> (p-n)) & ~(~0 << n);
//312=100111000
//100111000>>4 = 10011
//1<<4 = 10000
//~10000=01111
//10011 & 01111 = 00011 = 3
}
43쪽 3번
#include <stdio.h>
void main() {
float a = 3/2; //a=1.0 (1.5가 아님!!)
float b = 3.0 / 2; //b=1.5
int c = (int) b; // c=1
printf("%7.3f %7.3f %3d\n", a, b, c); //1.000 1.500 1
}
43쪽 2번
#include <stdio.h>
int f(int a){ //a=3
return (a + 1.5); //a=4.5 -> 4
}
void main() {
float x = 3.5;
int y = 2;
float z = 1.0; //z=1.0
z += x + y * 12.5 + f(x); //z= 1 + 3.5 + 25 + 4 = 32.5
printf("%.1f\n", z);