c语言编程大题

c语言编程大题
c语言编程大题

三、编程题

1.输入一个半径值,分别计算圆周长、圆面积和球的体积。要求使用符号常量定义圆周率。#include

int main()

{

printf("计算圆周长面积求面积\n");

floatr,c,s,v;

scanf("%f",&r);

# define PI 3.14159265

c=2*PI*r;

s=4*PI*r*r;

v=4/3*PI*r*r*r;

printf("周长是%.2f\n",c);

printf("表面积是%.2f\n",s);

printf("体积是%.2f\n",v);

return 0;

}

2.假设今天是星期三,编程求20天之后是星期几?

#include

int main()

{

printf("今天是星期三,20天后是星期几?\n");

int i;

i=23%7;

printf("20天后是星期%d\n",i);

return 0;

}

3.从键盘输入一个字符,然后将其按字符和整数这两种形式输出。

#include

int main()

{

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

char i;

scanf("%c",&i);

printf("整数形式是%d\n",i);

printf("字母形式是%c\n",i);

return 0;

}

4.输入一个大写英文字母,将它转化为小写输出。

#include

int main()

{

printf("请输入一个大写英文字母\n");

charch;

scanf("%c",&ch);

printf("%c\n",ch+32);

return 0;

}

5.求一元二次方程ax^2+bx+c=0方程的两个实根。a、b、c由键盘输入。(默认b*b-4*a*c>=0)#include

#include

int main()

{

printf("求两个实数根\n");

float x1,x2,a,b,c;

scanf("%f%f%f",&a,&b,&c);

x1=((-b)+sqrt(b*b-4*a*c))/2;

x2=((-b)-sqrt(b*b-4*a*c))/2;

printf("%.2f\n",x1);

printf("%.2f\n",x2);

return 0;

}

6.输入长方形的长和宽,编程求该长方形的周长和面积

#include

int main()

{

printf("输入长和宽\n");

inta,b,c,s;

scanf("%d%d",&a,&b);

c=2*(a+b);

s=a*b;

printf("周长是%d\n",c);

printf("面积是%d\n",s);

return 0;

}

7.要将“China”译成密码,译码规律是:用原来字母后面的第5个字母代替原来的字母。例如,字母“A”后面第5个字母是“F”,用“F”代替“A”。因此,“China”应译为“Hmnsf”。请编写程序,用赋初值的方法使c1、c2、c3、c4、c5 5个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘H’、‘m’、‘n’、‘s’、‘f’并输出。

#include

int main()

{

printf("China到Hmnst\n");

char a[5]={'C','h','i','n','a'};

for(int i=0;i<=5;i++)

a[i]=a[i]+5;

for(int j=0;j<=5;j++)

printf("%c",a[j]);

printf("\n");

return 0;

}

8.有人用温度计测量出用华氏法表示的温度,现输入华氏温度f,要求把它转换为以摄氏法表示的温度c并输出。(c=5/9(f-32))

#include

int main()

{

printf("把华氏温度转换为摄氏温度\n");

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

floati,j;

scanf("%f",&i);

j=5*(i-32)/9;

printf("%.1f\n",j);

return 0;

}

9.编写程序,输入两个实数,按代数值由大到小的顺序输出这两个实数。

#include

int main()

{

printf("将两个实数从大到小排列\n");

floati,j;

scanf("%f%f",&i,&j);

if(i>j)

printf("输出%f %f\n",i,j);

else

printf("输出%f %f\n",j,i);

return 0;

}

10.编写程序,从键盘输入两个整数,输出其中较小的数。

#include

int main()

{

printf("输出较小的数\n");

inti,j;

scanf("%d%d",&i,&j);

if(i

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

else

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

return 0;

}

11.编写程序,输入一个不多于5位的正整数,输出该正整数是几位数。

#include

int main()

{

printf("输入一个不多于5位数的正整数\n");

int i;

scanf("%d",&i);

if(i>0&&i<10)

printf("%d是一位数\n",i);

if(i>=10&&i<100)

printf("%d是二位数\n",i);

if(i>=100&&i<1000)

printf("%d是三位数\n",i);

if(i>=1000&&i<10000)

printf("%d是四位数\n",i);

return 0;

}

12.编写程序,不使用系统提供的数学函数,编写程序求一个实数的绝对值。

#include

int main()

{

printf("求一个实数的绝对值\n");

int i;

scanf("%d",&i);

if(i>=0)

printf("绝对值是%d\n",i);

if(i<0)

printf("绝对值是%d\n",-i);

return 0;

}

13.编写程序,编写程序实现如下分段函数。当x<-5时,f(x)=|x|+5;当-5≤x≤5时,f(x)=x*x;当x>5时,f(x)=6x-10。(x定义成实型数据)

#include

int main()

{

int i;

scanf("%d",&i);

if(i<-5)

printf("%d\n",-i+5);

if(-5<=i&&i<=5)

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

else

printf("%d\n",6*i-10);

return 0;

}

14.编写程序,输入2015年的一个月份,输出该月有多少天。(使用switch语句实现)

#include

int main()

{

printf("输入月份\n");

intmonth,day;

scanf("%d",&month);

switch(month)

{

case 2: day=28; printf("%d\n",day);break;

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: day=31; printf("%d\n",day);break;

case 4:

case 6:

case 9:

case 11: day=30; printf("%d\n",day);break;

}

return 0;

}

15.编写程序,判断某一年是否是闰年。

#include

int main()

{

printf("判断某一年是否为闰年\n");

int i;

scanf("%d",&i);

if(i%4==0)

printf("%d是闰年\n",i);

if(i%4!=0)

printf("%d是平年\n",i);

return 0;

}

16.编写程序,编写程序,根据输入的学生成绩输出相应的等级。90分以上(包括90分)为A等,80~89分为B等,70~79分为C等,60~69分为D等,60分以下为E等。

#include

int main()

{

printf("求学生成绩相应的等级\n");

int i;

scanf("%d",&i);

if(i>=90)

printf("%d是A\n",i);

else if(i<90&&i>=80)

printf("%d是B\n",i);

else if(i<80&&i>=70)

printf("%d是C\n",i);

else if(i<70&&i>=60)

printf("%d是D\n",i);

else

printf("%d是E\n",i);

return 0;

}

17编写程序,输入一个百分制成绩,若大于等于60,则输出“恭喜!您的成绩通过了!”,若小于60,则输出“抱歉!您的成绩未通过!”

(要求成绩只能是整数)

#include

int main()

{

printf("请输入您的成绩\n");

int i;

scanf("%d",&i);

if(i>=60)

printf("您通过了\n");

else

printf("您没通过\n");

return 0;

}

18.编写程序,输入3个整数x、y、z,输出其中最小值。

#include

int main()

{

printf("输出最小值\n");

int x,y,z,min1,min;

scanf("%d%d%d",&x,&y,&z);

min1=x

min=min1

printf("最小值是%d\n",min);

return 0;

}

19.编写程序,输入三角形的3条边a、b、c,判断它们能否构成三角形。若能构成三角形,求出三角形面积。

(s=(a+b+c)/2,三角形面积area=sqrt(s(s-a)(s-b)(s-c)))

#include

#include

int main()

{

printf("判断能否构成三角形若能求面积\n");

floata,b,c,d,s;

scanf("%f%f%f",&a,&b,&c);

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

if(a>=c+b||b>=a+c||c>=a+b)

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

else

{

s=sqrt(d*(d-a)*(d-b)*(d-c));

printf("面积是%.2f\n",s);

}

return 0;

}

20.编写程序,试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no。

#include

int main()

{

printf("判断一个正整数是否既是5又是7的倍数\n");

int i;

scanf("%d",&i);

if(i%35==0)

printf("yes\n");

else

printf("no\n");

return 0;

}

21.编写程序,编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,?,*,/(执行除法运算时假设data2不为0,用switch语句实现)。

#include

int main()

{

char op;

float data1,data2;

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

scanf("%f%c%f",&data1,&op,&data2);

switch(op)

{

case'+':printf("%f+%f=%.2f\n",data1,data2,data1+data2);break;

case'-':printf("%f-%f=%.2f\n",data1,data2,data1-data2);break;

case'*':printf("%f*%f=%.2f\n",data1,data2,data1*data2);break;

case'/':printf("%f/%f=%.2f\n",data1,data2,data1/data2);break;

}

return 0;

}

22.编写程序,编写程序,输入任意一个1~7之间的整数,将他们转换成对应的表示星期几的英文单词。例如:1转换成Monday,7转换成Sunday。(使用switch语句实现)

#include

int main()

{

printf("请输入1至7之间任意整数\n");

int i;

scanf("%d",&i);

switch(i)

{

case 1:printf("Monday\n");break;

case 2:printf("Tuesday\n");break;

case 3:printf("Wednesday\n");break;

case 4:printf("Thursday\n");break;

case 5:printf("Friday\n");break;

case 6:printf("Saturday\n");break;

case 7:printf("Sunday\n");break;

}

return 0;

}

23.输出小写字母的ascii码对照表。

#include

int main()

{

printf("输出小写字母的ascii码\n");

charch;

ch='a';

for(int i=0;i<=25;i++)

printf("%c:%d\t",ch+i,ch+i);

printf("\n");

return 0;

}

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

#include

main()

{

int a=0,b=0,c=0,d=0,i=0;

char s[10];

printf("请输入一行不超过十个字的字符串:\n");

gets(s);

while(i<10)

{

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

{

a++;

}

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

b++;

}

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

{

c++;

}

else

{

d++;

}

i++;

}

printf("数字的个数是%d\n",a);

printf("字母的个数是%d\n",b);

printf("空格的个数是%d\n",c);

printf("其他符号的个数是%d\n",d);

return 0;

}

25.输出图形

$

$$$

$$$$$

$$$$$$$

#include

#include

int main()

{

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

{

for(int j=1;j<=7;j++)

{

if(j>=fabs(4-i)&&j<=fabs(4+i))

printf("$");

else

printf(" ");

}

printf("\n");

}

return 0;

}

26.求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n),要求n从键盘输入。

#include

main()

{

int sum=0,n,i,a=1;

printf("计算1+(1+2)+(1+2+3)+……(1+2+3+n)=?\n");

scanf("%d",&n);

while(a<=n)

{

i=(1+a)*a/2;

sum=sum+i;

a++;

}

printf("输出sum=%d\n",sum);

return 0;

}

27.计算10!

#include

int main()

{

int i=1,a=1;

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

a=a*i;

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

return 0;

}

28.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3。

#include

int main()

{

printf("输出所有的水下花数\n");

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

{

for(int j=0;j<=9;j++)

{

for(int k=0;k<=9;k++)

{

if(100*i+10*j+k==i*i*i+j*j*j+k*k*k)

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

}

}

}

printf("\n");

return 0;

}

29.鸡兔同笼,上数共有35个头,下有94只脚,鸡、兔各有几只? #include

int main()

{

for(int x=0;x<=35;x++)

{

for(int y=0;y<=35;y++)

{

if((x+y==35)&&(2*x+4*y==94))

printf("鸡有%d只,兔子有%d只\n",x,y);

}

}

return 0;

}

30.编程找10个数中的最大数以及该数在数组中的位置。

#include

int main()

{

printf("找10个数中最大数极其所在位置\n");

int a[10],max;

for(int i=0;i<=9;i++)

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

max=a[0];

for(int j=1,int k=0;j<=9;j++)

{

if(max

{

max=a[j];

k=j+1;

}

}

printf("第%d位\n",k);

printf("最小是%d\n",max);

return 0;

}

31.编程找10个数中的最小数以及该数在数组中的位置。

#include

int main()

{

printf("找10个数中最小数极其所在位置\n");

int a[10],min;

for(int i=0;i<=9;i++)

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

min=a[0];

for(int j=1,int k=0;j<=9;j++)

{

if(min>a[j])

{

min=a[j];

k=j+1;

}

}

printf("第%d位\n",k);

printf("最小是%d\n",min);

return 0;

}

32.编程将一个数组中的元素按逆序存放。

#include

int main()

{

printf("一个数组按照逆序存放\n");

int a[10],b[10];

for(int i=0;i<=9;i++)

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

for(int j=0;j<=9;j++)

{

b[j]=a[9-j];

printf("%d ",b[j]);

}

printf("\n");

return 0;

}

33.编程计算Fibonacci数列的前50项,并把结果存放在一个数组中。(Fibonacci数列前两项的值是1。从第3项开始,其值为前两项之和。) #include

intmain()

{

int a[50]={0,1};

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

{

a[i]=a[i-1]+a[i-2];

}

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

{

printf("%f\t",a[i]);

}

printf("\n");

return 0;

}

34.编写程序,将两个字符串连接起来(不使用strcat函数)。

#include

int main()

{

int i=0,j=0;

printf("将两个字符串连接起来\n");

char ch1[100],ch2[100];

printf("输入第一个字符串:");

gets(ch1);

printf("输入第二个字符串:");

gets(ch2);

while(ch1[i]!='\0')

i++;

while(ch1[j]!='\0')

j++;

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

{

ch1[k]=ch2[k-i];

}

printf("连接后为:");

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

printf("%c",ch1[l]);

printf("\n");

return 0;

}

35.有一个2行3列的矩阵,编程找出值最小的元素的值以及它所在的行列号。#include

int main()

{

printf("找到最小元素的值极其位置\n");

int a[2][3],min,x,y;

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

{

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

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

}

min=a[0][0];

for(int m=0;m<=1;m++)

{

for(int l=0;l<=2;l++)

{

if(min>a[m][l])

{

min=a[m][l];

x=m+1;

y=l+1;

}

}

}

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

printf("第%d行,第%d列\n",x,y);

return 0;

}

36.一个学习小组有3个人,每人有4门课的成绩。计算每个人的平均成绩。

#include

int main()

{

printf("分别计算每个人的平均数\n");

float a[3][4],v[3],s=0;

for(int m=0;m<=2;m++)

{

for(int l=0;l<=3;l++)

{

scanf("%f",&a[m][l]);

s=s+a[m][l];

}

v[m]=s/4;

s=0;

}

printf("第一个人平均分是%.2f\n第二个人平均分是%.2f\n第三个人平均分是%.2f\n",v[0],v[1],v[2]);

return 0;

}

37.编程输出杨辉三角中的前10行。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

......

#include

int main()

{

printf("\n");

int a[10][10]={{1},{1,1}},i,j;

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

a[i][0]=1;

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

{

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

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

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

{

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

{

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

}

printf("\n");

}

printf("\n");

return 0;

}

38.编写一个函数,输入立方体的长、宽、高,输出立方体的体积。#include

int V(inti,intj,int k);

int main()

{

inta,b,c;

printf("输入长方体的长宽高\n");

scanf("%d%d%d",&a,&b,&c);

printf("体积是%d\n",V(a,b,c));

return 0;

}

int V(inti,intj,int k)

{

int v=i*j*k;

return v;

}

39.输入两个整数,要求输出其中值较大者。用函数实现找大数。#include

int MAX(inti,int j);

int main()

{

inta,b;

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

scanf("%d%d",&a,&b);

printf("最大数是%d\n",MAX(a,b));

return 0;

}

int MAX(inti,int j)

{

int v=i>j?i:j;

return v;

}

40.编写一个函数,用递归方法求n!,调用该函数求m!/(n!*(m-n)!)的值并输出。#include

float X(int n);

int main()

{

intm,n;

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

printf("result is %.3f\n",X(m)/X(n)/X(m-n));

return 0;

}

float X(int n)

{

int i=1,a=1;

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

a=a*i;

return a;

}

41.编写一个函数,实现用选择法对数组中10个整数按由小到大排序。

#include

intpailie(int a[10],int n);

int main()

{

for(int i=0;i<=9;i++)

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

return 0;

}

intpailie(int a[10],int n)

{

(不会)

}

42.编写一个函数,求一个3×4的矩阵所有元素之和。

43.编写求圆的面积的函数,并调用该函数求出圆的面积。#include

float S(int r);

int main()

{

printf("计算圆的面积\n");

int i;

scanf("%d",&i);

printf("面积是%.2f\n",S(i));

return 0;

}

float S(int r)

{

float s;

#define PI 3.14159265

s=r*r*PI;

return s;

}

44.编写一个函数,该函数的功能是判断一个整数是不是素数(所谓素数是指除了1和它本身以外,不能被任何整数整除的数),在main函数中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”,否则输出“no”。

#include

int j();

int main()

{

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

j();

return 0;

}

int j()

{

int n;

scanf("%d",&n);

if(n==1&&n==2)

printf("%d是素数\n",n);

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

{

if(n%i==0)

break;

}

if(i

printf("%d是合数\n",n);

else

printf("%d是素数\n",n);

return 0;

}

45.编写判定闰年的函数,并调用此函数求出公元2000年到公元2100年之间的所有闰年。#include

int RUN(int i);

int main()

{

printf("输出2000至2100之间的闰年:\n");

for(int a=2000;a<=2100;a++)

{

RUN(a);

}

printf("\n");

return 0;

}

int RUN(int i)

{

int j;

if(i%4==0)

printf("%d ",i);

return 0;

}

46.编写两函数分别求两个个整数的最大公约数和最小公倍数,用主函数调用两个函数并输出结果,两个整数由键盘输入。

#include

int MAX(inta,int b);

int MIN(inta,int b);

int main()

{

printf("请输入两个数求最大公约数和最小公倍数\n");

intx,y;

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

printf("最大公约数是%d,最小公倍数是%d\n",MAX(x,y),MIN(x,y));

return 0;

}

int MAX(inta,int b)

{

for(int i=(a=1;i--)

{

if(a%i==0&&b%i==0)

break;

}

return i;

}

int MIN(inta,int b)

{

for(int j=(a>b?a:b);j<=a*b;j++)

{

if(j%a==0&&j%b==0)

break;

}

return j;

}

47.编写判断回文的函数,并调用此函数判定一个字符串是否为回文。

(回文字符串是指该字符串从左到右读和从右到左读完全一样。)

#include

#include

int PANDUAN(char b[10]);

int main()

{

char a[10];

gets(a);

PANDUAN(a);

return 0;

}

int PANDUAN(char b[])

{

int j=strlen(b),i=0;

while(b[i]==b[j-1-i])

{

i++;

}

if(i==j)

printf("是回文字符串\n");

else

printf("不是回文字符串\n");

return 0;

}

48.编写一个函数,在一个有序的数列中插入一个数。插入后,数列仍然维持有序。如果有相同的数,要插入在相同的数的后面。

#include

#include

#include

int CHARU(int b[100],int n);

int main()

{

int a[]={1,2,3,4,5,6};

int x;

printf("请输入插入数字\n");

scanf("%d",&x);

CHARU(a,x);

return 0;

}

int CHARU(int b[100],int n)

{

int j=sizeof(b)/sizeof(int),i;

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

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

{

if(n>=b[i]&&n<=b[i+1])

{

for(int k=j+1;k>=i+2;k--)

b[k]=b[k-1];

b[i+1]=n;

}

else if(n>=b[j])

b[j+1]=n;

}

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

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

printf("\n");

return 0;

}

(不会)

49.编写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。#include

int ZHIHUAN(int b[3][3]);

int main()

{

printf("请输入一个3*3方阵\n");

int a[3][3];

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

{

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

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

}

ZHIHUAN(a);

return 0;

}

int ZHIHUAN(int b[3][3])

{

相关主题
相关文档
最新文档