您的位置:首页 > 编程语言

大一的一些题目

2007-05-25 20:11 281 查看

// sl.cpp : Defines the entry point for the console application.


//




#include <stdio.h>






void getInput(int* _out_n)




...{


    printf("Please enter n:");


    scanf("%d",_out_n);


    printf(" ");


}




//1 画个空心的梯形吧


//编程,输入 n ,输出如下例( n=5 )所示的 高和上底均为 n 的等腰空心梯形。 


//       * * * * * 


//     *           * 


//   *                * 


// *                    * 


//* * * * * * * * * * * * * 


void f1(int n)




...{


    int i = 0;


    int j = 0;




    for (j = 1; j <= n-1; j++ )




    ...{


        printf(" ");


    }




    for (j = 1; j <= n; j++ )




    ...{


        printf("*");


    }




    printf(" ");




    for (i = 1; i < n-1; i++)




    ...{


        for (j = 1; j <= 2*n+i-1; j++)




        ...{


            if (j == n-i || j == 2*n+i-1)




            ...{


                printf("*");


            }


            else




            ...{


                printf(" ");


            }


        }


        printf(" ");


    }




    for (j = 1; j <= 3*n-2; j++ )




    ...{


        printf("*");


    }


    printf(" ");


}


//


//2 小明被罚


//七岁的小明在家中呆着无聊,东跑西窜,招猫逗狗,老爹很生气,后果很严重!被老爸罚去码砖头,要求码成等腰三角形的形状。小明不知道什么是“等腰三角形”,老爸也不解释,只好去问叔叔。


//叔叔用数学语言讲了半天等腰三角形,小明还是不明白,没办法,叔叔只好为小明编写一个程序,在屏幕上显示出等腰三角形的形状,然后再让小明按照显示的形状去码砖头。你就是小明的叔叔,你来编写这个程序吧。输入:     输入等腰三角形的高h。输出:    等腰三角形。


// ps:这道题有问题,只有高h可以任意发挥;




void f2(int h)




...{




    for (int i = 1; i < h; i++)




    ...{


        for (int j = 1; j < h+i-1; j++)




        ...{


            if (j < h-i)




            ...{


                printf(" ");


            }


            else




            ...{


                printf("*");


            }


        }


        printf(" ");


    }


}




//3 编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和,例如 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是一个完数。


void f3()




...{


    for (int i = 6; i <=1000; i++)




    ...{


        int temp = 0; 


        for (int j = 1; j <= i/2; j++)




        ...{


            if (0 == i%j)




            ...{


                temp += j;


            }


        }


        if (temp == i)




        ...{




            printf("%d=",i);




            //for (int j = 1; j <= i/2; j++)


            //{


            //    if (0 == i%j)


            //    {


            //        printf("%d ", j);


            //    }


            //}




            printf(" ");


        }


    }


    printf("hello kitty ");


    getchar();


}    




//4 一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。编程,输入总人数 n ,输出满足要求的男人、女人和小孩人数的全部方案。 , 若 n 人无法满足条件,则输出 "No output"( 双引号内的部分为输出部分 ) 。 


//输入:人数 n输出:男人、女人和小孩人数 




// test


//for (int i = 0; i < 100; i++)


//{


//    if (f4(i));


//}


bool f4(int n)




...{


    int i = 0;


    int j = 0;


    int k = 0;


    bool b = false;


    for (i = 0; i <= n; i++)




    ...{


        for (j = 0; j<= n-i; j++)




        ...{


            for (k = 0; k<= n-i-j; k++)




            ...{


                if (1200 == (i*50 + j*20 + k*1))




                ...{


                    printf("i:%d, j:%d, k:%d ", i, j, k);


                    b = true;


                }


            }


        }


    }




    if (!b)




    ...{


        printf("No output ");


    }


    return b;


}




//5 黑色星期五 在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的 13 日又恰逢星期五就叫 “ 黑色星期五 ” 。输入某年年号和该年的元旦是星期几( 1-7 ),输出该年所有的 “ 黑色星期五 ” 的日期(年 / 月 / 日) 输入: 4 位年号和该年元旦是星期几输出:所有的 “ 黑色星期五 ” 的日期(年 / 月 / 日)


int isLeapYear(int year) 




...{ 


    int leap = 0; 


    if(year%100 == 0 && year%400 ==0) 


        leap = 1; 


    else if(year%100 != 0 &&year%4 ==0) 


        leap = 1; 


    return leap; 


}     




void f5()




...{




    int daysOfMonth[] =...{31,28,31,30,31,30,31,31,30,31,30,31}; 


    int y,w; 


    int i; 


    int offset[12]; 


    scanf("%d %d",&y,&w); 


    if(isLeapYear(y)) 


        daysOfMonth[1] = 29; 


    offset[0] = 12; 


    for(i = 1;i < 12;i++) 




    ...{ 


        offset[i] = offset[i-1] + daysOfMonth[i-1]; 


        if((w+offset[i])%7 == 5) 


            printf("%d/%d/%d ",y,i+1,13); 


    }


}




//6猴子吃桃子 


//有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第 2 天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一半加 5 个)。到第 n 天早上再想吃的时候,就只剩下一个桃子了。 


//输入:天数 n输出:第一天的桃子个数


//int n = 0;


//getInput(&n);


//printf("%d",f6(n));


int f6(int n)




...{


    if (n == 1)




    ...{


        return 1;


    }


    else


        return 2*(f6(n-1)+n-1);


}




//7 若正整数A的全部约数(包括1,不包括A本身)之和等于B ; 且整数B的全部约数(包括1,不包括B本身)之和等于A,则 A 、 B 为亲密数。编程,输入正整数A,输出亲密数 A , B(A<=B) ,若不存在亲密数,则输出 No output 。 


//输入:正整数 A     输出:形如 A-B 的 亲密数对 


//for (int i = 1; i < 1000; i++)


//{


//    f7(i);


//}


void f7(int a)




...{


    int t1 = 0;


    for (int i = 1; i <= a/2; i++)




    ...{


        if (a%i ==0)




        ...{


            t1 += i;


        }


    }


    int t2 = 0;


    for (int j = 1; j <= t1/2; j++)




    ...{


        if (t1%j == 0)




        ...{


            t2 += j;


        }


    }




    if (t2 == a)




    ...{


        printf("%d-%d ",a,t1);


    }


    //else


    //{


    //    printf("No output ");


    //}


}


//8 输出一个字母K吧


//输入 n 值,输出如图所示图形 (当 n=4)


//*      * 


//*    * 


//*  * 


//*  


//*  * 


//*    *


//*      *


//int n = 0; 


//getInput(&n);


//f8(n);


void f8(int n)




...{


    for (int i = 1; i < n; i++)




    ...{


        printf("*");


        for (int j = 2; j <= n-i+1; j++)




        ...{


            if (j == n-i+1)




            ...{


                printf("*");


            }


            else




            ...{


                printf(" ");


            }


        }


        printf(" ");


    }


    printf("* ");


    for (int i = 2; i <= n; i++)




    ...{


        printf("*");


        for (int j = 2; j <= i; j++)




        ...{


            if (j == i)




            ...{


                printf("*");


            }


            else




            ...{


                printf(" ");


            }


        }


        printf(" ");


    }    


}




//9 画一个字母组成的菱形  输入顶行字符和图形的高,输出如图所示图形。


//例如顶行字符为 ' A ' ,图形的高为 5 


//        A 


//      B   B 


//    C       C 


//  D           D 


//E               E 


//  D           D 


//    C       C 


//      B   B 


//        A 


//int n = 0;


//


//getInput(&n);


//


//f9(n);


void f9(int n)




...{


    char t='A';


    for (int i = 1; i <= n; i++)




    ...{


        for (int j = 1; j <= n+i-1; j++)




        ...{    


            if (j == n-i+1 || j == n+i-1)




            ...{




                printf("%c",t);


            }


            else




            ...{


                printf(" ");


            }


        }    


        t++;


        printf(" ");


    }


    t -= 2;


    for (int i = 2; i <= n; i++)




    ...{


        for (int j = 1; j <= 2*n-i; j++)




        ...{    


            if (j == i || j == 2*n-i)




            ...{


                printf("%c",t);


            }    


            else




            ...{


                printf(" ");


            }


        }


        t--;


        printf(" ");


    }


}




//10 输入 n 值,输出如图回型方阵 ,例如:当 n=5 时 : 


//3 3 3 3 3                      


//3 2 2 2 3                     


//3 2 1 2 3                  


//3 2 2 2 3                        


//3 3 3 3 3


//int n = 0;


//


//getInput(&n);


//


//f10(n);


void f10(int n)




...{


    int m = n/2+n%2;


    int i,j;


    int k,a,b;


    for( i = 1; i <= n; i++)




    ...{ 


        b = i;


        a = n+1-i;     


        if( b > a) k=b,b=a,a=k;


        


        k = m ;


        


        for(j = 1; j <= n; j++)




        ...{ 


            printf("%d",k);


            if (j< b) k--;


            else if(j>=a) k++;


        }


        printf(" ");


    }    


    printf("   -- 回 型 方 阵 -- "); 


}




int main(int argc, char* argv[])




...{


    int n = 0;




    getInput(&n);




    f10(n);




    return 0;


}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图形 编程 语言 c