码迷,mamicode.com
首页 > 编程语言 > 详细

C语言基础考试题

时间:2015-05-21 15:34:59      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:c语言试题   ios开发基础   

//

//  main.m

//  C语言考试题库

//

//  Created by MRBean on 15/5/20.

//  Copyright (c) 2015 MRBean. All rights reserved.

//


#import <Foundation/Foundation.h>


/** 5  , 12

 *  判断一个数是否是质数

 *

 *  @param x 要判断的数

 *

 *  @return 返回0代表不是质数,1代表质数

 */

int isZhiShu(int x)

{

    int count = 0;

    for (int i=1; i<=x; i++) {

        if (x%i==0) {

            count++;

        }

    }

    if (count==2) {

        return 1;

    }

    return 0;

}


//=============================================================


/**

 *  6.

 *  写出一个计算三角形面积的函数

 */

typedef struct SanJiaoXing

{

    double a;//三角形的一条边长度

    double b;

    double c;

    

}SanJiaoXing;//定义一个结构体变量,变量类型是 SanJiaoXing


double mianJi(SanJiaoXing s)//6题计算三角形的面积

{

    

    double area = 0;//三角形的面积

    if (s.a +s.b >s.c  && s.a +s.c >s.b  && s.b +s.c >s.a )//能构成三角形的条件是任意两边之和大于第三边

    {

        double r = (s.a + s.b + s.c)/2;

        area = sqrt(r*(r-s.a)*(r-s.b)*(r-s.c));//使用海伦公式来计算面积

        printf("三角形的面积是 %g",area);

        return area;

    }

    else

    {

        printf("不能构成三角形!");

        return area;

        

    }


    

}

//===============================================


/**

 *  7.判断圆是否重叠

 *

 */


//定义一个圆结构体

typedef struct Circle

{

    double x;//圆心的x坐标

    double y;//圆心的y坐标

    double r;//圆的半径

}Circle;


int chongDie(Circle a,Circle b)

{

    double distance = sqrt(pow(a.x-b.x, 2)+pow(a.y-b.y, 2));//圆心之间的距离

    double radiusSum = a.r+b.r;

    if(distance<radiusSum)//圆心之间的距离小于半径之和

    {

        printf("两个圆之间重叠!\n");

        return 1;//重叠

    }

    else {

        printf("两个圆不重叠!\n");

        return 0;//不重叠

 

    }

}


//====================================

/**

 *  8.字符串加密

 *

  */


char *JiaMi(char str[])

{

    for (int i=0; str[i]; i++) {

        if (str[i]==‘z‘) {

            str[i]=‘a‘;

        }

        else if (str[i]==‘Z‘)

        {

            str[i]=‘Z‘;

        }

        else if ((str[i]>=‘A‘ && str[i]<=‘Y‘) || (str[i]>=‘a‘&&str[i]<=‘y‘))

        {

            str[i]++;

        }

        

    }

    printf("加密之后的字符串是  %s",str);

    return str;

}


//===============================================

/**

 *  11.定义一个3个顶点(使用结构体),判断该3个点是否可以构成三角形,如果可以构成三角形,计算三角形的面积(海伦公式);否则打印不能构成三角形”.

 *

 */


//定义就一个点结构体类型

typedef struct

{

    double x;

    double y;

}MPoint;


//根据三角形的三个顶点计算其面积

double mianJi2(MPoint a,MPoint b,MPoint c)

{

    double len1 = sqrt(pow(a.x-b.x, 2)+pow(a.y-b.y, 2));//ab之间的距离

    double len2 = sqrt(pow(a.x-c.x, 2)+pow(a.y-c.y, 2));//ac之间的距离

    double len3 = sqrt(pow(c.x-b.x, 2)+pow(c.y-b.y, 2));//cb之间的距离

    double area = 0;//三角形的面积

    if (len1+len2>len3 && len1+len3>len2 && len2+len3>len1)

    {

        double r = (len1 + len2 +len3)/2;

        area = sqrt(r*(r-len1)*(r-len2)*(r-len3));

        printf("三角形的面积是%g",area);

        return area;

    }

    

    else

    {

        printf("这三个点不能构成三角形!");

        return area;

    }

    

}



//=================================================










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


//==========================================

    /**

     *  1.输入两个正整数mn。输出其最大公约数和最小公倍数

     *  使用辗转相除法求两个数a,b的最大公约数c

     */

    

//    int m;

//    int n;

//    printf("请输入两个数:\n");

//    scanf("%d%d",&m,&n);

//    int temp = m*n;//暂存m*n乘积,以便来计算最小公倍数

//    int c = m%n;

//    while (c!=0) {

//        m = n;//除数作为被除数

//        n = c;//余数作为除数

//        c = m%n;

//    }

//    printf("最大公约数:%d,最小公倍数%d\n",n,temp/n);

    

 // ==============================================

    /**

     *  2,输入一行字符串,分别统计大写字母和小写字母的个数

     */

    

//    char str[1000];

//    int count1 = 0;//小写个数个数

//    int count2 = 0;//大写

//    printf("请输入一个字符串\n");

//    gets(str);

//    for (int i=0; str[i]!=‘\0‘; i++) {

//        if (str[i]>=‘a‘ && str[i]<=‘z‘) {

//            count1++;

//        }

//       else if (str[i]>=‘A‘ && str[i]<=‘Z‘) {

//           count2++;

//        }

//    }

//    printf("大写字母的个数是  %d,小写字母的个数是%d",count1,count2);

    

    //================================================

    

    /**

     *  3,输入两个正整数,a程序输出 a+aa+aaa+...(a...a)(na)的值

     */

    

//    printf("请输入两个整数\n");

//    int a;

//    int n;

//    int fac = 0;//形式如  a,aa,aaa...的表达式

//    int sum = 0;//计算和

//    scanf("%d%d",&a,&n);

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

//    {

//        fac = fac*10+a;// aa = a*10+a,后一个等于前一个数*10+a

//        sum +=fac;

//        

//    }

//    printf("a+aa+aaa.... = %d\n",sum);

    

    //=======================================================

    

    

    /**

     *  4,输入一个正整数n,求 1!+2!+...n!的值(n!表示n的阶乘)

     */

    

//    int sum = 0;//记录阶乘之和

//    int fac = 1;//记录  一个数的阶乘

//    int n;//个数限制

//    printf("请输入一个不大于10的整数\n");

//    scanf("%d",&n);

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

//        fac *=i;

//        sum +=fac;

//    }

//    

//    printf("1!+2!+...+n! = %d",sum);

    

    

    //==================================================

    

    /**

     *  5,写一个判断质数的函数,在主函数中输入一个整数,输出是否为质数的信息

     */

    

//    int n;

//    printf("请输入一个整数");

//    scanf("%d",&n);

//    if (isZhiShu(n)==1) {

//        printf("是质数!\n");

//    }

//    else

//    {

//        printf("不是质数!");

//    }


    //==================================================

    

    

    /**

     *  6,定义一个结构体包含三角形三边长度,写一个函数,输入这个结构体变量,返回此三角形面积(注意三角形是否有效问题)

     */

    

//    SanJiaoXing s ;

//    printf("请输入三角形的三边\n");

//    scanf("%lf%lf%lf",&s.a,&s.b,&s.c);

//    mianJi(s);//计算三角形的面积

//    

    

    

    //=================================================================

    

    

    /**

     *  7,定义一个结构体包含圆心和半径,写一个函数,输入两个结构体变量,返回两个圆是否有重叠部分

     */

    

    

//    Circle a;//第一个圆

//    Circle b;//第二个圆

//    printf("请输入第一个圆的圆心和半径\n");

//    scanf("%lf%lf%lf",&a.x,&a.y,&a.r);

//    printf("请输入第二个圆的圆心和半径\n");

//    scanf("%lf%lf%lf",&b.x,&b.y,&b.r);

//    chongDie(a, b);

    

    //================================================================

    

    /**

     *  8,写一个函数,将字符串加密,加密规则为,a->b  z->a 以此类推。

     */

    

//    char s[1000];

//    gets(s);

//    JiaMi(s);

    

    //================================================================

    

    /**

     *  9,用户输入10个数,返回最大和最小值

     */

    

//    int a[10];

//    int max = 0;

//    int min = 0;

//    printf("输入10个数\n");

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

//    {

//        scanf("%d",&a[i]);

//        if(i==0)

//        {

//            max = a[0];

//            min = a[0];

//        }

//        

//        if (max<a[i])

//        {

//            max=a[i];

//        }

//        

//        if (min>a[i])

//        {

//            min =a[i];

//        }

//        

//    }

//    printf("最大值为%d\n最小值为%d\n",max,min);

//

//    printf("请输入十个数\n");

//    int a[10];

//    for (int i=0; i<10; i++) {

//        scanf("%d",&a[i]);

//    }

//    int max = a[0];//最大值

//    int min = a[0];//最小值

//    for (int i=1; i<10; i++) {

//        if (max<a[i]) {

//            max = a[i];

//        }

//        if (min>a[i]) {

//            min = a[i];

//        }

//    }

//    

//    printf("最大值是  %d,最小值是  %d",max,min);

//    

      //===================================================================

    

    /**

     *      

     

     10,下列代码有和问题,请指出

     

     int * p;

     {

     int a;//a出括号后会被释放

     p = &a;

     }

     *p = 3;//  问题是: 野指针异常

     

     */

  //===================================================================

    

    /**

     *  11.定义一个3个顶点(使用结构体),判断该3个点是否可以构成三角形,如果可以构成三角形,计算三角形的面积(海伦公式);否则打印不能构成三角形”.

     */

    

//    MPoint a;//三角形的顶点

//    MPoint b;

//    MPoint c;

//    printf("请依次输入3个点!\n");

//    scanf("%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y);

//    mianJi2(a, b, c);

    

    

    //===================================================================

    

    /**

     *  12.打印100个质数

     */

    

//    int count = 0;//已经打印的质数的个数

//    for (int i=1; count<=100; i++)//循环条件是在 count<=100也就是没有找到100个质数就循环下去

//    {

//        if (isZhiShu(i)==1) {//遇到一个质数

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

//            count++;

//        }

//        

//    }

    

    //===================================================================

    

    /**

     *  13.用户输入10个数,计算平均值

     */

    

//    double a[10];//用来保存10个数

//    double avg;//平均值

//    double sum = 0.0;

//    printf("请输入十个数\n");

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

//    {

//        scanf("%lf",&a[i]);

//        sum+=a[i];

//    }

//    

//    avg = sum/10;

//    printf("平均值是  %g",avg);

    

    //==================================================

    

    /**

     *  14.计算 1-2+3-4+5-6+...100的结果

     */

    

//    int sum = 0;

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

//    {

//        if (i%2==0)

//        {

//            sum-=i;

//        }

//        else

//        {

//            sum+=i;

//        }

//    }

//    

//    printf("和是   %d",sum);

    

    //=======================================================

    

    

    /**

     *  15.输入正整数程序输出 1/2+2/3+...n/n+1的值

     */

    

    

//    int sum = 0;

//    int n;

//    printf("请输入一个正整数!\n");

//    scanf("%d",&n);

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

//    {

//        sum+=i/(i+1);

//    }

//    printf("计算之和是   %d",sum);

    

    //===================================================================

    return 0;

}

C语言基础考试题

标签:c语言试题   ios开发基础   

原文地址:http://blog.csdn.net/yangbingbinga/article/details/45892147

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!