程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言基礎考試題

C語言基礎考試題

編輯:關於C語言

C語言基礎考試題


//

// main.m

// C語言考試題庫

//

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

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

//

 

#import

 

/** 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

{

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.輸入兩個正整數m,n。輸出其最大公約數和最小公倍數

* 使用輾轉相除法求兩個數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和n 程序輸出 a+aa+aaa+...(a...a)(n個a)的值

*/

 

// 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

// {

// 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

// {

// 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

// 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.輸入正整數n 程序輸出 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;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved