[c언어] 기초프로그래밍 중간고사 대비 실습문제 (1~7번)
2022년 판 중간 대비 실습문제를 주셔따..
1
#include <stdio.h>
int main(void){
int cnt=0;
for(int a=1;a<=100;a++){
for(int b=1;b<=100;b++){
for(int c=1;c<=100;c++){
if(cnt==2)
break;
if((a*a+b*b)==c*c)
{
printf("%d %d %d \n",a,b,c);
cnt++;
}
}
if(cnt==2)
break;
}
if(cnt==2)
break;
}
return 0;
}
![](https://velog.velcdn.com/images/seochan99/post/33f7374c-2aa9-469a-8ec0-a24995fbeed5/image.png)
그냥 단순한 중첩반복문 문제이다.
2
//코드 1 (2개의 주사위)
#include <stdio.h>
int main(void){
for(int i=1;i<=6;i++)
{
for(int j=1;j<=6;j++)
{
if(i+j==6){
printf("(%d,%d) ",i,j);
}
}
}
return 0;
}
//코드 2 (3개의 주사위)
#include <stdio.h>
int main(void){
for(int i=1;i<=6;i++)
{
for(int j=1;j<=6;j++)
{
for(int k=1;k<=6;k++){
if(i+j+k==10){
printf("(%d,%d,%d) ",i,j,k);
}
}
}
}
return 0;
}
이 또한 단순 중첩반복문 문제이다.
3
#include <stdio.h>
int main(void){
double a,b,c;
double result=0;
char op1,op2;
printf("정수 3개와 operator 2개를 입력하세요 : ");
scanf("%lf %lf %lf %c %c",&a,&b,&c,&op1,&op2);
if(op1 == '+' || op1 == '-'){
if(op1 == '+'){
result = a+b;
}
else{ // op1 minus
result = a-b;
}
printf("< %.2f %c %.2f > %c %.2f =",a,op1,b,op2,c);
}
else{
if(op1=='*')
result=a*b;
else
result= a/b;
printf("%.2f %c %.2f %c %.2f =",a,op1,b,op2,c);
}
if(op2=='+')
result+=c;
else if(op2=='-')
result-=c;
else if(op2=='*')
result*=c;
else
result/=c;
printf(" %.2f\n",result);
return 0;
}
계산기 만드는 문제인데... 예외처리를 완벽하게 해주어야할것같다.
그냥 둔순히 사칙연산만 넣어서 이렇게 작성했는데, 사용자가 잘못된 값을 입력했을때의 예외처리를 해주고싶지만
그정도로 엄밀히 채점하지않을것같아서 그냥 단순하게 접근했다.
4
#include <stdio.h>
int main(void){
int gongcha,gongbi,want,result=1;
printf("공차와 공비, 출력항목을 입력 : ");
scanf("%d %d %d",&gongcha,&gongbi,&want);
printf("등차수열 : ");
for(int i=1;i<want;i++)
{
printf("%d ",result);
result+=gongcha;
}
result=1;
printf("\n등비수열 : ");
for(int i=1;i<want;i++)
{
printf("%d ",result);
result*=gongbi;
}
return 0;
}
이 문제는 단순 반복문 활용 문제이다.
5
#include <stdio.h>
#include <stdlib.h>
int main(void){
int num;
double n1,n2,n3,n4,n5,n6,n7,n8,n9;
n1=n2=n3=n4=n5=n6=n7=n8=n9=0;
printf("임의의 숫자 20개 출력\n");
srand(30);
for(int i=0;i<20;i++){
num = rand()%9+1;// 1~9
printf("%d ",num);
switch (num) {
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
break;
case 4:
n4++;
break;
case 5:
n5++;
break;
case 6:
n6++;
break;
case 7:
n7++;
break;
case 8:
n8++;
break;
case 9:
n9++;
break;
}
}
printf("\n");
printf("1 횟수 : %.f 확률 : %.2f\n",n1,n1/20*100);
printf("2 횟수 : %.f 확률 : %.2f\n",n2,n2/20*100);
printf("3 횟수 : %.f 확률 : %.2f\n",n3,n3/20*100);
printf("4 횟수 : %.f 확률 : %.2f\n",n4,n4/20*100);
printf("5 횟수 : %.f 확률 : %.2f\n",n5,n5/20*100);
printf("6 횟수 : %.f 확률 : %.2f\n",n6,n6/20*100);
printf("7 횟수 : %.f 확률 : %.2f\n",n7,n7/20*100);
printf("8 횟수 : %.f 확률 : %.2f\n",n8,n8/20*100);
printf("9 횟수 : %.f 확률 : %.2f\n",n9,n9/20*100);
return 0;
}
작년 기출이랑 비슷한 문제이다.
6
#include <stdio.h>
int main(void){
int sum1,sum2,sum3;
int cnt=1;
sum1=sum2=sum3=0;
//while문
while(cnt<100){
if(cnt%3==0){
sum1+=cnt;
}
cnt++;
}
//for문
for(int i = 1;i<100;i++){
//3의 배수
if(i%3==0){
sum2+=i;
}
}
//Do while
cnt=1;
do{
if(cnt%3==0){
sum3+=cnt;
}
cnt++;
}while(cnt<100);
printf("While : %o(8)\n",sum1);
printf("For : %d(10)\n",sum2);
printf("Do..While: %x(16)\n",sum3);
return 0;
}
![](https://velog.velcdn.com/images/seochan99/post/4ffaf6d9-4ee4-453f-b994-e08026491f7f/image.png)
8진수 출력 : %o
10진수 출력 : %d
16진수 출력 : %x
인것만을 유의하면 쉽게 해결할 수 있는 문제이다.
7
#include <stdio.h>
#include <time.h>
//difftim()
int main(void){
int i=0;
time_t start,end;
printf("1,000,000,000 실행 결과\n");
start = time(NULL);
while (i<1000000000) {
i+=1;
}
end=time(NULL);
printf("i+=1 time : %.3fs\n",difftime(end, start));
i=0;
start = time(NULL);
while (i<1000000000) {
i++;
}
end=time(NULL);
printf("i++ time : %.3fs\n",difftime(end, start));
return 0;
}
초의 소수점까지 출력해야한다.
그렇기에 difftim()을 사용해주면 값을 뺀값을 실수형까지 출력해준다.
difftim(start,end) = start - end 초를 출력한다.
Author And Source
이 문제에 관하여([c언어] 기초프로그래밍 중간고사 대비 실습문제 (1~7번)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seochan99/c언어-기초프로그래밍-중간고사-대비-실습문제-17번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)