最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言程序设计期末考试及答案

来源:动视网 责编:小OO 时间:2025-10-01 02:12:10
文档

C语言程序设计期末考试及答案

第一次试验1.编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。其中:r的值由用户输入,用浮点型数据处理。#includevoidmain(){floatPI=3.1415;floatr,area,perim;printf("请输入圆的半径:\n");printf("r=");scanf("%f",&r);//输入半径rperim=2*PI*r;//周长=2πrarea=PI*r*r;//面积=πr^2printf("周长:%f\\n面积:%f\\n",perim,area);/
推荐度:
导读第一次试验1.编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。其中:r的值由用户输入,用浮点型数据处理。#includevoidmain(){floatPI=3.1415;floatr,area,perim;printf("请输入圆的半径:\n");printf("r=");scanf("%f",&r);//输入半径rperim=2*PI*r;//周长=2πrarea=PI*r*r;//面积=πr^2printf("周长:%f\\n面积:%f\\n",perim,area);/
   第一次试验

1.编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。其中:r的值由用户输入,用浮点型数据处理。

#include

void main( )

{

    float PI=3.1415;

    float r,area,perim;

    printf("请输入圆的半径:\n");

    printf("r=");

    scanf("%f",&r); //输入半径r

    perim=2*PI*r; //周长=2πr

    area=PI*r*r; //面积=πr^2

    printf("周长:%f\\n面积:%f\\n",perim,area); //输出周长和面积..

}

2.给一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。

#include

void main()

{

    int iNum;

    printf("请输入分数:");

    scanf("%d", &iNum);

    switch (iNum / 10)

    {

        case 10:

        case 9 : printf("学生成绩A\\n");break;

        case 8 : printf("学生成绩B\\n");break;

        case 7 : printf("学生成绩C\\n");break;

        case 6 : printf("学生成绩D\\n");break;

        default: printf("学生成绩E\\n");break;

    }

}

3.输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

int main()

 {

  int  p,r,n,m,temp;

  printf("请输入两个正整数n,m:");//请用空格隔开

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

if (n   {

    temp=n;

    n=m;

    m=temp;

   }

  p=n*m;

  while(m!=0)

   {

    r=n%m;

    n=m;

    m=r;

   }

  printf("它们的最大公约数为:%d\\n",n);

  printf("它们的最小公约数为:%d\\n",p/n);

  return 0;

 }

4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include

#include

#include

int i,a[4];

char t;

int main()      

{       

    printf("请输入字符串");

   for(i=0;;i++) 

   {

   scanf("%c",&t);

   if(t=='\\n')break;

else if(t>='A'&&t<='Z') a[0]++;

else if(t>='a'&&t<='z')a[0]++;

             else if(t==' ')a[1]++;  

else if(t>='0'&&t<='9')a[2]++;

                       else a[3]++;

                

   }

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

  {

     if(i==0)

         printf("字母的个数是");

         else if(i==1)

             printf("空格的个数是");

         else if(i==2)

             printf("数字的个数是");

             else if(i==3)

             printf("其它字符的个数是");

      printf("%d\\n",a[i]);

  }

system("pause");   

return 0;

}

5.求sn=a+aa+aaa+…+aa...a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。

#include

int main(void)

{

 int sum = 0;

 int sun = 0;

 int a;

 int n;

 int i = 0;

printf("请入入a值(整数):\\n");

printf("a = ");

scanf("%d", &a);

printf("请入入n值:\\n");

printf("n = ");

scanf("%d", &n);

 

while (i{

 sum = a + sum * 10;

 sun += sum;

 ++i;

}

printf("sun = %d \\n", sun );

return 0; 

 

 }

           第二次试验

1.有一分数序列:求出这个数列的前20项之和。

#include

main()

{ int i,x,y,a;

 float sum=0;

 x=2;

 y=1;

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

 {

  sum+=(float)(x)/y;

 // printf("%d/%d\\n",x,y);

  a=x;

  x=x+y;

  y=a;

   }

 printf("%7.5f\\n",sum);

 }

2.求一个33矩阵对角线元素之和。

#include

void main() 

int a[3][3]; 

int i,j; 

int sum=0; 

int sum1=0; 

// input 

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

for( j=0; j<=2; j++)

printf ("a[%d][%d]:", i+1, j+1); 

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

printf("\\n"); 

// sum

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

for( j=0; j<=2; j++)

if(i==j) 

sum = sum+a[i][j]; 

if(i+j==2) 

sum1= sum1+a[i][j]; 

//output

printf ("DuiJIao 1: %d\\n",sum); 

printf("DuiJIao 2: %d\\n",sum1); 

//output matrix

printf("\\n"); 

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

for( j=0; j<=2; j++)

printf("%d ",a[i][j]); 

printf("\\n"); 

}

依次输入9个数

输出两对角线和

3.将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。

#include

void main() 

{ int i,b[10];

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

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

for(i=9;i>-1;i--)

     printf("%5d", b[i]); 

 printf("\\n");

}

4.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其他字符的个数。

#include

int main()

 {int i,j,upp,low,dig,spa,oth;

  char text[3][80];

  upp=low=dig=spa=oth=0;

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

   { printf("please input line %d:\\n",i+1);

     gets(text[i]);

for (j=0;j<80 && text[i][j]!='\\0';j++)

{if (text[i][j]>='A'&& text[i][j]<='Z')

         upp++;

else if (text[i][j]>='a' && text[i][j]<='z')

         low++;

else if (text[i][j]>='0' && text[i][j]<='9')

         dig++;

       else if (text[i][j]==' ')

         spa++;

       else

         oth++;

     }

   }

     printf("\\nupper case: %d\\n",upp);

     printf("lower case: %d\\n",low);

     printf("digit     : %d\\n",dig);

     printf("space     : %d\\n",spa);

     printf("other     : %d\\n",oth);

 return 0;

}

           第三次实验

1.将字符串computer赋给一个字符数组,然后从第一个字母开始输出该串。请用指针实现。

#include

#include

#define MAX_LENGTH 32

int main()

{

    char str[MAX_LENGTH] = {0};

    char *pStr = (char*)&str;

    //1.  将字符串computer赋给一个字符数组

    strcpy(str, "computer");

    //2. 然后从第一个字母开始间隔地输出该串

    while(*pStr != '\\0' )

    {

        printf("%c\\n", *pStr);

        pStr++;

    }

    return 1;

}

2.将无符号八进制数字字符串转换为十进制整数。例如,输入的字符串为556,则输出十进制整数366。用指针实现。

#include

void main()

{ char *p, s[6];

int n=0;

p=s;

gets(p);

while(*p!='\\0')

{n=n*8;

n=n+(*p-'0');

p++;

}

printf("%d \\n",n);

}

3.编程输入一行文字,找出其中的大写字母,小写字母,空格,数字,及其他字符的个数,用指针实现。

#include

#include

#include

int main()

{

char str[100];

int num1,num2,num3,num4;

num1=num2=num3=num4=0;

gets(str);

for(int i=0;i{

if(islower(str[i]))

num1++;

else if(isupper(str[i]))

num2++;

else if(isdigit(str[i]))

num3++;

else if(str[i]==' ')

num4++;

}

printf("小写字母:%d\\n",num1);

printf("大写字母:%d\\n",num2); 

printf("数字:%d\\n",num3);

printf("空格:%d\\n",num4); 

return 0;

}

            第四次实验

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

#include

#include

int prime(int x)

{

 int temp,i,k;

 

 temp=(int)(sqrt(x));

 

for(i=2;i<=temp;++i)

      if(x%i==0)

    { k=0; break; }

if(i>temp)

      k=1;

return k;   

 

}

void main()

{    

    int x;

    int k;

    scanf("%d",&x);

    k=prime(x);

   if(k)

   printf("%d is  prime\\n",x);

 else

   printf("%d is not prime\\n",x);

}

2.写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

# include

#include

char *fanxu(char str1[100])   //返回类型

{

int i,j,t;

char str2[100];

strcpy(str2,str1);

t=strlen(str1);

for(i=0,j=t-1;j>-1;i++,j--)

str1[i]=str2[j];

return  str2;

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

{

 char str0[100];

gets(str0);

fanxu(str0);

puts(str0);

 return 0;

}

3.写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串及输出上述的结果。

#include

#include

int alph,digit,space,others;

void count(char str[]);

void main(void)

{

  char text[80];

  printf("\\n输入字符串:\\n");

  gets(text);

  printf("字符串是:");

  puts(text);

  strcat(text,"\\n");

  alph=0;

  digit=0;

  space=0;

  others=0;

  count(text);

  printf("\\n%d字母,%d数字,%d空格,%d其它字符\\n",alph,digit,space,others);

}

void count(char str[])

{

     int i;

     for(i=0;str[i]!='\\n';i++)

     {

if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))

         alph++;

else if(str[i]>='0'&&str[i]<='9')

         digit++;

      else if(str[i]==' ')

         space++;

      else

         others++;

     }

}

4.写一函数,使给定的一个二维数组(3×3)转置,即行列互换。

#include

void x(int a[3][3])//x是行列互换的函数名

{

int i,j;

printf("行列互换后:\\n");

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

{

for(j=0;j<3;j++)

   {

    printf("%d\",a[j][i]);

   }

   printf("\\n");

}

}

void main()

{

int sum[3][3],i,j;

printf("请输入3*3的矩阵数:");

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

{

for(j=0;j<3;j++)

   {

    scanf("%d",&sum[i][j]);

   }

}

x(sum);

}

文档

C语言程序设计期末考试及答案

第一次试验1.编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。其中:r的值由用户输入,用浮点型数据处理。#includevoidmain(){floatPI=3.1415;floatr,area,perim;printf("请输入圆的半径:\n");printf("r=");scanf("%f",&r);//输入半径rperim=2*PI*r;//周长=2πrarea=PI*r*r;//面积=πr^2printf("周长:%f\\n面积:%f\\n",perim,area);/
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top