您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页C语言编程习题及答案

C语言编程习题及答案

来源:百家汽车网


1-1. 编写求圆的面积、周长的程序。圆的半径从键盘输入。

#include

void main()

{

float r,c,s;

scanf(\"%f\

c=2*3.1415926*r;

s=3.1415926*r*r;

printf(\"周长为:%f,面积为:%f\\n\

}

1-2.输入三个正数,计算并输出由此构成的立方体的体积。

#include

void main()

{

float a,b,c,v;

scanf(\"%f,%f,%f\

v=a*b*c;

printf(\"体积为:%f\\n\

}

1-3.输入华氏温度h,计算并输出摄氏温度s. #include

void main()

{

float h,s;

printf(\"请输入华氏温度:\");

scanf(\"%f\

转换公式:s=5 / 9(h - 30) 。()

s=5.0/9.0*(h-32);

printf(\" 摄氏温度为:%f\\n\

}

1-4.用*号输出字母C的图案。

#include

void main()

{

printf(\" **\\n\");

printf(\" *\\n\");

printf(\"*\\n\");

printf(\"*\\n\");

printf(\" *\\n\");

printf(\" **\\n\");

}

2-1.输入三个正数a,b,c,如果能构成三角形,计算并输出该三角形的面积。

面积公式: (其中:p=(a+b+c)/2)

#include

#include

#define p(a,b,c,x) sqrt(x*(x-b)*(x-c))

void main()

{

double a,b,c,x;

scanf(\"%lf,%lf,%lf\

if(a<0||b<0||c<0||a+b<=c||a+c<=b||b+c<=a)

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

else

{

x=(a+b+c)/2;

printf(\"能构成三角形,面积=%lf\\n\

}

}

2-2.分段函数。

#include

#include

void main()

{

int x,y;

scanf(\"%d\

if(x<0)

y=abs(x)-2;

else if(x==0)

y=0;

else

y=x*(x+1);

printf(\"%d\\n\

}

2-3分段函数

#include

#include

void main()

{

int x;

double y;

scanf(\"%d\

if(x<0)

y=x*x+5*x-1;

else if(x==0)

y=0;

else

y=x*x-sqrt(x)+2;

printf(\"%lf\\n\

}

2-4 运费。

#include

void main()

{

double w,s;

scanf(\"%lf,%lf\

if(s<100)

printf(\"%lf\

else if(s>=100 && s<200)

printf(\"%lf\

else

printf(\"%lf\

}

2-5 学习成绩。

#include

void main()

{

double grade;

scanf(\"%lf\

if( grade>=90)

printf(\"A\\n\

else if( grade>=60 && grade <=)

printf(\"B\\n\

else

printf(\"C\\n\

}

3-1 闰年。

#include

void main()

{

int x;

for(x=1900;x<=2010;x++)

if((x%4==0 && x%100!=0)||(x%400==0))

printf(\"%5d\

}

3-2 输出100以内的个位数为6、且能被3整除的所有数

#include

void main()

{

int n;

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

if(n%3==0&&n%10==6)

printf(\"%d\\

}

3-3 求值

#include

void main()

{

double a,n,c=0;

scanf(\"%lf\

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

c=c+a*a/(a+1);

printf(\"%lf\\n\

}

3-4 求:m= 1/1! + 1/2! + 1/3! + … 直到最后一项小于10-6。

#include

void main()

{

int i=1,m=1;

double e=1;

while(1.0/m>=1.0e-6)

{

m=m*i;

e=e+1.0/m;

i++;

}

printf(\"%lf\\n\

}

3-5 写一个函数,求一个字符串的长度,在main函数中输入。

#include

int StrLen(char a[])

{

int i;

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

return i;

}

void main()

{

char a[100];

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

scanf(\"%s\

printf(\"字符串的长度为:%d\\n\

}

3-6 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13, …求出这个数列的前20项之和。

#include

void main()

{

int i,t,n=20;

float a=2,b=1,s=0;

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

{

s=s+a/b;

t=a;

a=a+b;

b=t;

}

printf(\"sum=%9.6f\\n\

}

4-1 写出排序函数,要求将整数从大到小递减排列。在主函数中产生20个整数存入数组,然后调用排序函数对数组元素排序,并在主函数中输出排序结果。

#include

#define N 20

void sort (int a[])

{

int i,j,t;

for(i=0;ifor(j=0;jif(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

void main()

{

int a[N],i;

for(i=0;iscanf(\"%d\

sort(a);

for(i=0;iprintf(\"%5d\

printf(\"\\n\");

}

4-2字符从小到大排序

#include

#include

#define N 20

int m[N];

char a[N][10];

int Input()

{

int n=0;

while(n<=N)

{

m[n]=n+1;

printf(\"第%d个字符:\\n\

gets(a[n]);

if(a[n][0]=='\\0')

break;

++n;

}

return n;

}

void Output(int n)

{

int i;

puts(\"\\n序号\\");

for(i=0;iprintf(\"%d\%s\\n\

}

void Sort(int n)

{

int i,j;

char t[11];

for(i=0;ifor(j=i+1;jif(strcmp(a[i],a[j])>0)

{

strcpy(t,a[i]);

strcpy(a[i],a[j]);

strcpy(a[j],t);

}

}

void main()

{

int n;

n=Input();

Sort(n);

Output(n);

}

4-3 编写一个函数,判断一个数是否为水仙花数,如果是,返回1,否则返回0。在主函数中调用此函数,输出所有水仙花数。

#include

int sxh(int abc)

{

int a,b,c;

a=abc/100;

b=abc/10%10;

c=abc%10;

if(abc==a*a*a+b*b*b+c*c*c)

return 1;

else

return 0;

}

void main()

{

int i;

for (i=100;i<1000;i++)

if(sxh(i))

printf(\"%4d\

}

4-4 编写判断一个数是否为素数的函数,在主函数中输入10个数,调用该函数,输出这10个数中的所有素数

#include

int prime(int n)

{

int i;

for(i=2;iif(n%i==0)

return 0;

return 1;

}

void main()

{

int a[10]={1,3,5,7,8,9,10,20,23,25};

int i;

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

if(prime(a[i])==1)

printf(\"%5d\\n\

}

4-5 杨辉三角

#include

#define N 10

void main()

{

int a[N][N];

int i,j;

for(i=0;ia[i][0]=a[i][i]=1;

for(i=2;ifor(j=1;ja[i][j]=a[i-1][j]+a[i-1][j-1];

for(i=0;i{

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

printf(\"%3d\j]);

printf(\"\\n\");

}

}

5-1 魔方

#include

#define n 5

void main()

{

int m[n][n]={0};

int i,j,k;

i=n-1;

j=n/2;

for(k=1;k<=n*n;k++)

{

m[i][j]=k;

if(i+1>n-1&&j+1>n-1)

--i;

else

if(i+1>n-1)

{i=0;++j;}

else

if(j+1>n-1)

{j=0;++i;}

else

if(m[i+1][j+1]!=0)

--i;

else{++i;++j;}

}

for(i=0;i{

for(j=0;jprintf(\"%5d\j]);

printf(\"\\n\");

}

}

5-2.找出二维数组中的所有鞍点(行号、列号、元素值).鞍点的值是该行最小者且是该列最大者.如果没有鞍点,则输出”没有鞍点”。

#include

#define N 3

void main()

{

int i,j,t,row=0,colum=0,a[N][N],min,max,b;

printf(\"请输入一个二维数组\\n\");

for(i=0;ifor(j=0;jscanf(\"%d\j]);

for(i=0;i{

min=a[i][0];

for(j=0;j{

if(min>a[i][j])

{

min=a[i][j];

row=i;

colum=j;

}

}

max=a[i][colum];

{

for(i=0;iif(maxprintf(\"没有鞍点\");

else

b=max;

}

printf(\"鞍点是: %d\\n\

}

}

5-3 字符串排序

#include

#include

void sort(char * str[],int size)

{

int i,j;

char * tmp;

for(i=0;i{

for(j=i+1;j{

if(strcmp(str[i],str[j])>0)

{

tmp=str[i];

str[i]=str[j];

str[j]=tmp;

}

}

}

}

void main()

{

char str[10][20];

char * p[10];

int i;

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

{

scanf(\"%s\

p[i]=str[i];

}

sort(p,10);

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

printf(\"%s\\n\

}

5-4 插入数组

#include

void main()

{

int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};

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

{ p=i;q=a[i];

for(j=i+1;j<10;j++)

if(qif(p!=i)

{

s=a[i];

a[i]=a[p];

a[p]=s;

}

printf(\"%d \

}

printf(\"\\ninput number:\\n\");

scanf(\"%d\

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

if(n>a[i])

{for(s=9;s>=i;s--) a[s+1]=a[s];

break;}

a[i]=n;

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

printf(\"%d \

printf(\"\\n\");

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务