最新文章专题视频专题问答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-09-29 19:47:20
文档

C语言程序设计习题

1.有3个数a、b、c,要求按大小顺序把它们输出。2.字符串和字符常量有什么区别?解:字符常量是一个字符,在程序中字符是用单引号括起来的。字符串变量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’。3.求下面算数表达式的值。(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7结果:2.5(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5结果:3.54.
推荐度:
导读1.有3个数a、b、c,要求按大小顺序把它们输出。2.字符串和字符常量有什么区别?解:字符常量是一个字符,在程序中字符是用单引号括起来的。字符串变量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’。3.求下面算数表达式的值。(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7结果:2.5(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5结果:3.54.
1.有3个数a、b、c,要求按大小顺序把它们输出。

2.字符串和字符常量有什么区别?

解:字符常量是一个字符,在程序中字符是用单引号括起来的。字符串变量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’。

3.求下面算数表达式的值。

(1)x+a%3*(int)(x+y)%2/4  设x=2.5,a=7,y=4.7      结果:2.5

(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5  结果:3.5

4.写出程序运行的结果。

#include

void main()

{int i,j,m,n;

  i=8;j=10;

m=++i;n=j++;

printf(“%d,%d,%d,%d\\n”,i,j,m,n); 

}

解:运行结果为:9,11,9,10

5.输入一个华氏温度,要求输出摄氏温度。公式为C=5/9(F-32),输出要有文字说明,取2位小数。

运行结果为:

请输入一个华氏温度:78

摄氏温度为:25.56

解:#include

void main()

{ float c,f;

  printf(”请输入一个华氏温度:”);

scanf(“%f”,&f);

c=(5.0/9.0)*(f-32);

printf(“摄氏温度为:,%5.2f\n”,c); 

}

6.写出下面各逻辑表达式的值。设a=3,b=4,c=5。

(1)a+b>c & & b= =c 结果:0   (2)a || b+c & & b- c 结果:1

(3)!(a>b)&&!c ||1 结果:1  (4)!(x=a) &&(y=b) && 0 结果:0

(5)!(a+b)+c-1 && b+c/2  结果:1

7.有一函数

写一程序,输入x值,输出y值。

解:     #include

            void main()

            {    int x,y;

                printf("输入x:");

                scanf("%d",&x);

                if (x<1) /*若x<1 */

                {    y=x;

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

                }

                else if(x<10) /*若1≤x<10 */  

                {  y=2*x-1;

                    printf("x=%3d,  y=2*x-1=%d\\n",x,y);

                }

                else     /*若x≥10 */

                {   y=3*x-11;

                    printf("x=%3d,  y=3*x-11=%d\\n",x,y);

                }

            }

        运行结果:①输入x:4

                 x=  4,  y=2*x-1=7

②输入x:-1

                 x=-1,  y=x=-1

③输入x:20

                 x= 20,  y=3*x-11=49

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

解:#include

            void main()

            { float score;

                char grade;

                printf("请输入学生成绩:");

                scanf("%f",&score);

                while(score>100||score<0)

                {    printf("\\n输入有误,请重输");

                    scanf("%f",&score); 

                }

                switch((int)(score/10))

                {    case 10:

                    case 9:grade='A';break;

                    case 8:grade='B';break;

                    case 7:grade='C';break;

                    case 6:grade='D';break;

                    case 5:

                    case 4:

                    case 3:

                    case 2:

                    case 1:

                    case 0:grade='E';

                }

                printf("成绩是%5.1f,相应的等级是%c。\\n",score,grade);

            }

①请输入学生成绩:90.5

  成绩是90.5,相应的等级是A。

②请输入学生成绩:59

   成绩是59.0,相应的等级是E。

运行结果:

9.求(即求1+2+3+4+…+20)。

解:#include

   void main()

{float s=0,t=1;

 int n;

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

{t=t*n;

s=s+t;

}

printf(“1+2+3+4+…+20=%e\\n”,s);

}

运行结果为:1+2+3+4+…+20=2.561327e+18

10.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘多少桃子。

解:#include

 void main()

{int day,x1,x2;

day=9;

x2=1;

while(day>0)

{x1=(x2+1)*2 ;/*第1天的桃子数是第2天桃子数加1后的2倍*/

 x2= x1;

 day--;

}

printf(“total=%d\\n”,x1);

}

运行结果:total=1534

11.用牛顿迭代法求方程在1.5附近的根。

#include

#include

void main()

{float x1,x0,f,f1;

x1=1.5;

do

{x0=x1;

f=((2*x0-4)*x0+3)*x0-6;

f1=(6*x0-8)*x0+3;

x1=x0-f/f1;

}while(fabs(x1-x0)>=1e-5);

printf(“The root of equation is %5.2f\\n”,x1);

}

运行结果:

  The root of equation is 2.00

12.求方程的根,用3个函数分别求当大于零、等于零和小于零时的根,并输出结果。从主函数输入a、b、c的值。

解:程序如下:

#include

#include

float x1,x2,disc,p,q;

void main()

{void greater_than_zero(float,float);

 void equal_to_zero(float,float);

 void smaller_than_zero(float,float);

 float a,b,c;

 printf(“\ninput a,b,c:”);

 scanf(“%f,%f,%f”,&a,&b,&c);

 printf(“equation:%5.2f*x*x+%5.2f*x+%5.2f=0\\n”,a,b,c);

 disc=b*b-4*a*c;

 printf(“root:\\n”);

if (disc>0)

{greater_than_zero(a,b);

printf(“x1=%f\\x2=%f\\n”,x1,x2);

}

else if (disc==0)

{equal_to_zero(a,b);

printf(“x1=%f\\x2=%f\\n”,x1,x2);

}

else

{smaller_than_zero(a,b);

printf(“x1=%f+%fi\x2=%f-%fi\n”,p,q,p,q);

}

}

void greater_than_zero(float a,float b) 

/* 定义一个函数,用来求disc>0时方程的根 */

{x1=(-b+sqrt(disc))/(2*a);

 X2=(-b-sqrt(disc))/(2*a);

}

void equal_to_zero(float a,float b) 

/* 定义一个函数,用来求disc=0时方程的根 */

{x1=x2=(-b)/(2*a);

}

void smaller_than_zero(float a,float b) 

/* 定义一个函数,用来求disc<0时方程的根 */

{p=(-b)/(2*a);

 q=sqrt(-disc)/(2*a);

}

运行结果:

①input  a,b,c:2,4,1

  equation:2.00*x*x+4.00*x+1.00=0

  root:

   x1=-0.28231    x2=-1.707107

②input  a,b,c:1,2,1   

  equation:1.00*x*x+2.00*x+1.00=0

  root:

   x1=-1.000000    x2=-1.000000

③input  a,b,c:2,4,3

  equation:2.00*x*x+4.00*x+3.00=0

  root:

   x1=-1.000000+0.701071i    x2=-1.000000-0.701071i

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

解: #include

#include

     void main()

     {void inverse(char str[]);

      char str[100]; 

      printf(“input string:”);

      scanf(“%s”,str);

      inverse(str);

      printf(“inverse string: %s\\n”,str);

}

void inverse(char str[])

{char t;

 int i,j;

for (i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)

{ t=str[i];

  str[i]=str[j-1];

  str[j-1]=t;

}

}

运行结果:

   input string:abcdefg

   inverse string:gfedcba

14.编写一个函数,连接两个字符串。

解:#include

  void main()

 {void concatenate(char string1[],char string2[],char string[]);

  char s1[100],s2[100],s[100];

  printf(“\ninput string1:”);

  scanf(“%s”,s1);

  printf(“\ninput string2:”);

  scanf(“%s”,s2);

  concatenate(s1,s2,s);

  printf(“The new string is %s\\n”,s);

}

 void concatenate(char string1[],char string2[],char string[])

{int i,j;

  for (i=0;string1[i]!=’\0’;i++)

    string[i]=string1[i];

for (j=0;string2[j]!=’\0’;j++)

    string[i+j]=string2[j];

  string[i+j]=’\0’;

}

运行结果:

  intput string1:country

  intput string2:side

  The new string is countryside

15.输入两个整数,求它们相除的余数。用带参的宏来实现编程序。

解:#include

#define SUPPLUS(a,b)((a)%(b))

void main()

{int a,b;

printf(“input two integer a,b:”);

scanf(“%d,%d”,&a,&b);

printf(“remainder is %d\\n”, SUPPLUS(a,b));

}

运行结果:

 input two integer a,b:60,13

 remainder is 8

16.给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可定义为LEAP_YEAR,形参为y,即定义宏的形式为

#define LEAP_YEAR (y) (读者设计的字符串)

   在程序中用以下语句输出结果:

If (LEAP_YEAR(year)) printf(“%d is a leap year.”,year);

else printf(“%d is not a leap year.”,year);

解:#include

#define LEAP_YEAR(y)((y%4==0)&&(y%100!=0)||y%400==0))

void main()

{int year;

 printf(“\ninput year:”);

 scanf(“%d”,&year);

 if (LEAP_YEAR(year))

   printf(“%d is a leap year.\n”,year);

 else

   printf(“%d is not a leap year.\n”,year);

}

运行结果:

①input year:2006

     2006 is not a leap year.

②input year:2000

     2000 is a leap year.

17.一个C程序是由若干函数构成的,其中有且只能有一个main函数。

文档

C语言程序设计习题

1.有3个数a、b、c,要求按大小顺序把它们输出。2.字符串和字符常量有什么区别?解:字符常量是一个字符,在程序中字符是用单引号括起来的。字符串变量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’。3.求下面算数表达式的值。(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7结果:2.5(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5结果:3.54.
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top