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
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、编写一个计算梯形面积的程序。要求梯形的上底、下底和高在定义变量时直接赋值
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、编写计算一个学生三门课平均成绩的程序,要求学生成绩从键盘输入
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
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个整数数据,输出它们中最小的一个数
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。
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整数相除的商和余数。程序有几处错误,试找出它们加以修改,并上机验证修改结果
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
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
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、编一模拟袖珍计算器的完整程序,运行结果见图。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算
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以内的奇数和。程序有几处错误,试找出它们加以修改,并上机验证修改结果
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
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位数,其各位数字立方和等于该数字本身。
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、
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)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。
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),按照从大到小的顺序排序,分别显示排序前和排序后的结果
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
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是否是数组中的元素,若是,输出其在数组中的位置,否则输出不在数组中的提示。
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
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”
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 = '