用c语言输出倒直角梯形,编程题(C/C++程序设计,同济大学mooc)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2

3 using namespacestd;4

5 intmain( )6

7 {8

9 intx,y;10

11 t=x;12

13 x=y;14

15 t=y;16

17 cin>>x>>y>>endl;18

19 cout<

21 system("pause");22

23 return 0;24

25 }

View Code

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain( )5 {6 int x,y,t;//1.先定义后使用,t没有定义

7

8 cin>>x>>y;//2.先赋值再交换,endl将换行符写入输出流9

10 //3.交换算法,是x放到临时变量,y赋值给x,再把临时变量里的x的值赋值给y

11 t=x;12 x=y;13 y=t;14

15 cout<

16 system("pause");17 return 0;18 }

View Code

2、编写一个计算梯形面积的程序。要求梯形的上底、下底和高在定义变量时直接赋值

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain( )5 {6 double a = 12,b = 15, h = 10;//初始化,即上底、下底和高在定义变量时直接赋值

7 cout<

8 system("pause");9 return 0;10 }

View Code

3、编写计算一个学生三门课平均成绩的程序,要求学生成绩从键盘输入

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain( )5 {6 double a1,a2,a3; //定义3门课的成绩double变量

7 cin>>a1>>a2>>a3;8 cout<

9 system("pause");10 return 0;11 }

View Code

4、输入直角坐标系中点P的坐标(x,y),若P点落在图中的阴影区域内,输出阴影部分面积,否则输出数据0

24c3f1a8f152fef65c1dccf663cd381e.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3 #include

4

5 intmain( )6 {7 const double PI = 3.1415926;8 doublex,y;9 double s = PI*(4*4 - 2*2); //阴影部分的面积

10 cin>>x>>y;11 //如果p的坐标x,y在阴影内,直接输出阴影面积

12 if(fabs(x)>=2 && fabs(x)<=4 && fabs(y)>=2 && fabs(y)<=4)13 cout<

15 cout<

View Code

5、任意输入3个整数数据,输出它们中最小的一个数

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain( )5 {6 inta,b,c;7 cin>>a>>b>>c;8 int min = (a

View Code

6、将"fly"译成密码"iob"。编码规律:将字母a变成字母d,即变成其后的第3个字母,x变成a,y变成b, z变成c。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain( )5 {6 char c1 = 'f',c2 = 'l',c3 = 'y'; //fly

7

8 c1 = (c1+3-'a')%26 + 'a' ; //i

9 c2 = (c2+3-'a')%26 + 'a' ; //o

10 c3 = (c3+3-'a')%26 + 'a' ; //b

11

12 cout<

13 system("pause");14 return 0;15 }

View Code

7、以下程序的功能是求两个非0整数相除的商和余数。程序有几处错误,试找出它们加以修改,并上机验证修改结果

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2

3 using namespacestd;4

5 intmain()6

7 {intx,y,r1,r2;8

9 cin>>x>>y;10

11 if(x=0||y=0)12

13 cout<

15 else

16

17 { if(x>y)18

19 r1=x/y;20

21 r2=x%y;22

23 else

24

25 r1=y/x;26

27 r2=y%x;28

29 }30

31 cout<

33 system("pause");34

35 return 0;36

37 }

View Code

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3

4 intmain()5 {6 intx,y,r1,r2;7 cin>>x>>y;8

9 if(x==0||y==0)//比较运算不是赋值

10 cout<

11 else

12 {13 if(x>y){14 r1=x/y;15 r2=x%y;16 }17 else{18 r1=y/x;19 r2=y%x;20 }21 cout<

22 }23

24 system("pause");25 return 0;26 }

View Code

8、某商场购物时,若所选商品价值x在下述范围内,则实付金额y按如下折扣支付:用switch语句实现已知x求y

202d0f0c56343db97e47bb53d1151610.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 using namespacestd;3

4 intmain()5 {6 doublex, y;7 intn;8 cin>>x;9

10 if(x<1000) n = 10;11 else if(x>=1000 && x<2000) n = 9;12 else if(x>=2000 && x<3000) n = 8;13 else n = 7;14

15 switch(n)16 {17 case 10:18 y = x;break;19 case 9:20 y = 0.9*x;break;21 case 8:22 y = 0.8*x;break;23 case 7:24 y = 0.7*x;break;25 };26

27 cout<

View Code

9、编一模拟袖珍计算器的完整程序,运行结果见图。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算

6484af075f86455c1b3e9f922bb6c83d.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 using namespacestd;3 #include

4

5 intmain()6 {7 charch;8 doublex,y,result;9 cout<>x>>ch>>y;11

12 switch(ch)13 {14 case '+':15 result = x+y; break;16 case '-':17 result = x-y; break;18 case '*':19 result = x*y; break;20 case '/':21 if(fabs(y)<1e-6){22 cout<

26 result = x/y;27 break;28 };29

30 cout<

View Code

10、以下程序求20以内的奇数和。程序有几处错误,试找出它们加以修改,并上机验证修改结果

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3 intmain()4 {5 intn,sum;6 for(n=1; ;n+=2);7 sum=sum+n;8 if(n==20) break;9 cout<

View Code

11、编写程序将一个十进制整数按倒序形式输出。即若输入156,则输出651

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3 intmain()4 {5 intn;6 cin>>n;7

8 /*

9 //这段可以去掉尾部的0,比如120,输出2110 while(n%10==0)11 {12 n/=10;13 }*/

14

15 while(n)16 {17 cout<

21 system("pause");22 return 0;23 }

View Code

12、编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3 intmain()4 {5 for(int i = 100; i<=999; ++i )6 {7 int a = i%10, b = i/10%10, c = i/100;8 if(a*a*a + b*b*b + c*c*c ==i)9 cout<

12 system("pause");13 return 0;14 }

View Code

13、

b57506e0bda6c37048b925e0d72b54f9.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include "iostream"

2 using namespacestd;3 #include

4 intmain()5 {6 srand((unsigned)time(NULL)); //种子

7

8 int a = rand()%9 + 1; //随机产生1~9的数字 a

9 int n = 5 + rand()%5; //随机产生 5~9的数字 n10 //cout<

11

12 long temp=0,sum = 0; //数据类型 long

13 for(int i=1; i<=n; ++i)//计算sum

14 {15 temp = temp*10+a;16 sum +=temp;17 }18

19 cout<

20

21 system("pause");22 return 0;23 }

View Code

14、随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 #include

3 #include

4 intmain()5 {6 srand(time(NULL));7 int max=30,min=100,sum=0;8 int arr[10] = {0};9 for(int i=0; i<10; ++i){10 arr[i] = rand()%70 + 30;11 sum +=arr[i];12 if(arr[i]>max)13 max =arr[i];14 if(arr[i]

18 printf("max=%d,min=%d,ave=%.2f",max,min,sum/10.0);19

20 for(int j=0; j<10; ++j)21 printf("%d",arr[j]);22

23 return 0;24 }

View Code

15、随机产生20个学生的计算机课程的成绩(0~100),按照从大到小的顺序排序,分别显示排序前和排序后的结果

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 #include

3 #include

4

5 void SelectionSort(int *a,int left, intright);6 intmain()7 {8 srand(time(NULL));9

10 int arr[20] = {0};11 for(int i=0; i<20; ++i){12 arr[i] = rand()%100;13 }14

15 printf("排序前:");16 for(int j=0; j<20; ++j)17 printf("%d",arr[j]);18

19 SelectionSort(arr,0,19);20

21 printf("排序后:");22 for(int j=0; j<20; ++j)23 printf("%d",arr[j]);24

25 return 0;26 }27 /*选择排序--递归*/

28 void SelectionSort(int *a,int left, intright)29 {30 if(left

34 t=a[left],a[left]=a[j],a[j]=t;35 }36 SelectionSort(a,j+1,right);/*递归*/

37 }38 }

View Code

16、随机产生10个数,输入1~10之间的正整数m,使数组元素右移m位,移出的元素再从左移入。如,假设原来的数组元素依次为:1  2  3  4  5  6  7  8  9  10,假设m为2,则右移2位后的数组元素依次为:9  10  1  2  3  4  5  6  7  8

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 #include

3 #include

4 intmain()5 {6 srand(time(NULL));7

8 //1.随机产生1~10十个数

9 int arr1[10] = {0};10 for(int i=0; i<10; ++i){11 arr1[i] = rand()%10+1;12 }13

14 //2.输出产生的数组

15 printf("移动前:");16 for(int j=0; j<10; ++j)17 printf("%d",arr1[j]);18 printf("");19

20 //3.输入移动的数据m

21 printf("请输入移动数据(1~10):");22 int arr2[10] = {0};23 intm;24 scanf("%d",&m);25

26 //4.复制移动覆盖的数

27 for(int i=0,j=10-m; j<10; ++i,++j)28 arr2[i] =arr1[j];29

30 //5.原数组向右移动m位

31 for(int j=10-m; j>=0; --j)32 arr1[j+m] =arr1[j];33

34 //6.保存的数拷贝回数组

35 for(int j=0; j

38 //7.打印移动后的数组

39 printf("移动后:");40 for(int j=0; j<10; ++j)41 printf("%d",arr1[j]);42

43 return 0;44 }

View Code

17、按由大到小的顺序输入10个int类型的数据将其存放在一个一维数组中,再输入一个整数到变量x,用二分法查找x是否是数组中的元素,若是,输出其在数组中的位置,否则输出不在数组中的提示。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2

3 int fun(int *arr,int left,int right,intx);4 intmain()5 {6 //输入数组数据

7 printf("请输入10个int型数据(从大到小有序输入):");8 int arr[10] = {0};9 for(int i=0; i<10; ++i){10 scanf("%d",&arr[i]);11 }12

13 //输入要查找的数据

14 printf("请输入要查找的数据:");15 intx;16 scanf("%d",&x);17

18 //查找x

19 int y = fun(arr,0,9,x);20 if(y==-1){21 printf("x不在数组中");22 }23 else{24 printf("x是数据的第%d元素",y+1);25 }26

27 return 0;28 }29

30 int fun(int *arr,int left,int right,intx)31 {32 while(left<=right)33 {34 int mid = (left + right)/2;35 //int mid = left + (right - left)/2;//防止溢出

36 if(arr[mid]>x)37 left = mid+1;38 else if(arr[mid]

41 returnmid;42 }43 return -1;44 }

View Code

18、输入一个小于10的正整数n,显示具有如下形式的n行杨辉三角形。图中n=6

bd7977efc0994afe6974344a086902e0.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 #include

3 using namespacestd;4 #define N 100

5

6 intmain()7 {8 int a[N][N] = {0};9 int i, j, n = 6;10 cin>>n;11

12 for(i=1;i<=n;i++){13 a[i][1] = a[i][i] = 1; /*1.第一列和对角线的数都是1*/

14 }15

16 for(i=3;i<=n;i++)17 {18 for(j=2;j<=i-1;j++){19 a[i][j]=a[i-1][j-1]+a[i-1][j]; /*2.除两边的数, 等于左上/上两数之和*/

20 }21 }22

23 for(i=1;i<=n;i++)24 {25 cout<

27 for(j=1;j<=i;j++)28 {29 cout<

32 cout<

35 return 0;36 }

View Code

19、编写程序,将某一指定字符从一个已知的字符串中删除。假设已知字符串为“aaaasdfga”,将其中出现的'a'字母删除,删除后的字符串为“sdfg”

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 using namespacestd;3 #define N 100

4

5 intmain()6 {7 char arr[N] = "aaaasdfga";8 char *p = arr, *q =arr;9 char ch = 'a';10

11 while(*p)12 {13 if(*p!=ch){14 *q++ = *p;15 }16 p++;17 }18 *q = '

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值