c语言初级练习题

发布于:2022-10-29 ⋅ 阅读:(518) ⋅ 点赞:(0)

2022 10 29

1【程序题】

输出两行固定的句子。 要求: 在屏幕上输出如下两行:

If you want to see one thousand miles, even the wider,

you need to climb one more storey, still the higher.

我的答案:

#include<stdio.h>

int main()

{

printf("If you want to see one thousand miles, even the wider,\nyou need to climb one more storey, still the higher.");

return 0;

}

2【程序题】

输出两个变量的加法与乘法算式。要求:运行程序后,在屏幕上输出如下信息:

x=

ü  用户输入一个数,如23,然后打回车:

x=23↙

ü  屏幕上又出现提示,要求用户再输入一个数:

x=23↙

y=

ü  用户输入第二个数,如56,然后打回车:

x=23↙

y=56↙

ü  屏幕呈现如下信息后结束:

x=23↙

y=56↙

23+56=79

23*56=1288

我的答案:

#include<stdio.h>

int main()

{

int a,b,c,d;

printf("x=");

scanf("%d",&a);

printf("y=");

scanf("%d",&b);

c=a+b;

d=a*b;

printf("%d+%d=%d\n",a,b,c);

printf("%d*%d=%d",a,b,d);

return 0;

}

3【程序题】

判断三角形。在提示符“a,b,c:”下输入3个边长a、b、c,判断它们构成的三角形类别:无法构成三角形(no triangle),等边三角形(equilateral),等腰三角形(isosceles),直角三角形(right),三角形(triangle)。

注意:①判断要遵循“唯一性”原理:一个三角性只能得出唯一的判断。例如:如果判断是“等边三角形”,就不能再判断为“等腰三角形”;如果判断是“直角三角形”,就不能再判断为“三角形”。②3个边长a、b、c均为int型。③输出用英文。

我的答案:

#include<stdio.h>

int main()

{

int a,b,c;

printf("a,b,c:");

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

if(a+b>c&&a+c>b&&c+b>a)

{

if(a==b&&b==c)

printf("equilateral\n");

else if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&c!=a))

printf("isosceles\n");

else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)

printf("right\n");

else

printf("triangle\n");

}

else

printf("no triangle\n");

return 0;

}

4【程序题】

译密码。在“character:”提示符下,用户输入任一字符,程序将该字符变为相应的“密码”。 明码变为密码的规则:①大写字母A~V分别对应变换为ASCII码表上其后的第4个字符,即E~Z;而W~Z对应变换为A~D。②小写字母a~v分别对应变换为ASCII码表上其后的第4个字符,即e~z;而w~z对应变换为a~d。③非字母字符不变,原样输出。

我的答案:

#include<stdio.h>

int main()

{

char a;

printf("character:");

scanf("%c",&a);

if(('A'<=a&&a<='V')||('a'<=a&&a<='v'))

printf("%c\n",a+4);

else if(('W'<=a&&a<='Z')||('w'<=a&&a<='z'))

printf("%c\n",a-22);

else

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

return 0;

}

5【程序题】

计算运费。运输公司对用户计算运费。运输距离s越远,给的折扣越大。标准如下 :⑴s<250,没有折扣;⑵250≤s<500,2%折扣;⑶500≤s<1000,5%折扣;⑷1000≤s<2000,8%折扣;⑸2000≤s<3000,10%折扣;⑹3000≤s,15%折扣

编程实现:①用户在提示符“weight,price,distance:”后面输入货物重量、单价和运输距离;②程序以“freight=A.XY”形式输出运费。

说明:①运费=货物重量*单价*运输距离*(1-折扣);②运输距离是int数,货物重量、单价和运费都是double数,输出时运费保留2位小数。

我的答案:

#include<stdio.h>

int main()

{
double a,b,d;

int c;

printf("weight,price,distance:");

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

if(c<250)

d=a*b*c;

if(250<=c&&c<500)

d=a*b*c*0.98;

if(500<=c&&c<1000)

d=a*b*c*0.95;

if(1000<=c&&c<2000)

d=a*b*c*0.92;

if(2000<=c&&c<3000)

d=a*b*c*0.9;

if(3000<=c)

d=a*b*c*0.85;

printf("freight=%.2f",d);

return 0;

}

6【程序题】

计算累加和。用户在提示符“n:”后输入一个整数:如果n是奇数,⑴n>0时,输出1+2+…+n的值;⑵n<0时,输出-1-2-…-n的值。如果n是偶数,⑴n>0时,输出2+4+…+n的值;⑵n<0时,输出-2-4-…-n的值。如果n是0程序结束。

要求:程序运行在循环中,每次以sum=XYZ(XYZ是算出的累加和)的形式输出计算结果后,再次显示提示符“n:”等待下次输入,直到用户输入0为止。

我的答案:

#include<stdio.h>

int main()

{

int a,i,j,x,y,sum=0;

do

{

sum=0;

printf("n:");

scanf("%d",&a);

if(a==0)

return 0;

    if(a>0)

{



if(a%2==0)

   for(i=1;2*i<=a;i++)

  sum+=2*i;

else if(a%2!=0)

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

  sum+=j;

}

    if(a<0)

{

if(-a%2==0)

   for(x=-1;2*x>=a;x--)

 sum+=2*x;

else if(a%2!=0)

   for(y=-1;y>=a;y--)

 sum+=y;

}

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

}while(a!=0);

return 0;

}


网站公告

今日签到

点亮在社区的每一天
去签到