C、C++编程题目和代码2 - 图文
更新时间:2024-05-05 05:21:01 阅读量: 综合文库 文档下载
- scratch编程题目推荐度:
- 相关推荐
目 录
节 1.01 数组应用:矩阵乘法 ................................................................................................ 2 节 1.02 输出指定范围内的同时是素数与回文数的数 ........................................................ 3 节 1.03 求平均值 .................................................................................................................... 4 节 1.04 统计大于等于0的元素 ............................................................................................ 5 节 1.05 斐波那契数列(不用函数) .................................................................................... 5 节 1.06 兑换零钱 .................................................................................................................... 6 节 1.07 输出杨辉三角形 ...................................................................................................... 11 节 1.08 鞍点 .......................................................................................................................... 12 节 1.09 求矩阵每一列的最大值与和 .................................................................................. 15 节 1.10 求矩阵中主对角线与副对角线的和 ...................................................................... 16 节 1.11 字符串大小的比较 .................................................................................................. 17 节 1.12 字符串排序 .............................................................................................................. 18 节 1.13 插入一个数 .............................................................................................................. 20 节 1.14 按绝对值大小顺序输出 .......................................................................................... 21 节 1.15 发工资 ...................................................................................................................... 22 节 1.16 成绩处理 .................................................................................................................. 24 节 1.17 复制字符串(函数) .............................................................................................. 27 节 1.18 矩阵的转置(使用函数) ...................................................................................... 28 节 1.19 复制元音字母,顺序输出 ...................................................................................... 29 节 1.20 判断素数(函数) .................................................................................................. 30 节 1.21 连接字符串 .............................................................................................................. 31 节 1.22 字符统计(函数,由实参传递字符串)(字符串=字符数组) .......................... 32 节 1.23 求最大公约数与最小公倍数 .................................................................................. 32 节 1.24 截取字符串 .............................................................................................................. 34 节 1.25 用函数i将数字转换成字符串,再比较 ............................................................... 35
=======================================================================================================================
=======================================================================================================================
节 1.01 数组应用:矩阵乘法
#include
int i,j,n=0;
int a[3][4]={{5,7,8,2},{-2,4,1,4},{1,2,3,4}};
int b[4][5]={{4,-2,3,3,9},{4,3,8,-1,2},{2,3,5,2,7},{1,0,6,3,4}}; int c[3][5]={0}; for(i=0;i<3;i++) {
for(j=0;j<5;j++) {
}
}
for(n=0;n<4;n++)
c[i][j]=a[i][n]*b[n][j]+c[i][j];
for(i=0;i<3;i++) { } }
=======================================================================================================================
for(j=0;j<5;j++)
cout< 节 1.02 输出指定范围内的同时是素数与回文数的数 Description 输出指定范围内的同时是素数与回文数的数据,如果没有,输出“Not found” Input 测试数据的组数n 第一组指定数据范围的起始值与终止值 第二组指定数据范围的起始值与终止值 .......... 第n组指定数据范围的起始值与终止值 Output 输出该范围内同时是素数与回文数的数据,如果没有,输出\ #include int a,b,c,d,i,j,m,n,k,t,flag; cin>>t; while(t--) {flag=0; cin>>m>>n; if(m>n) break; for(i=m;i<=n;i++) { k=1; for(j=1;j } { } if(i%j==0) continue; else k++; if(i==(k+1)) { } b=0; c=i; while(c!=0) { } if(b==i) {cout< a=c; b=b*10+a; c=c/10; if(flag==0) cout<<\ } } ======================================================================================================================= 节 1.03 求平均值 题目描述 建立一个10个元素的数组,从键盘输入数据,输出该数组的平均值,结果保留两位小数。 输入 10个测试数据 输出 平均值 #include double a[10]; int i; double he=0; for(i=0;i<10;i++) cin>>a[i]; for(i=0;i<10;i++) he+=a[i]; cout.setf(ios::fixed); cout< ======================================================================================================================= 节 1.04 统计大于等于0的元素 题目描述 定义一个大小为10的整型数组,从键盘输入10个数据存入数组,统计大于等于0的元素的个数,并输出。 输入 10个测试数据 输出 大于等于0的数组元素的个数 #include int a[10]; int i,k=0; for(i=0;i<10;i++) cin>>a[i]; for(i=0;i<10;i++) { if(a[i]>=0) k++; } cout< ======================================================================================================================= 节 1.05 斐波那契数列(不用函数) 题目描述 形如1,1,2,3,5,8,13,21,34,55,89......的数列称为斐波那契数列,其特点是,除了第一、第二项值为1外,从第三项开始,每一项都是其前面两项之和。给出n(本题中,n的值小于等于20),输出斐波那契数列第n项的值。 输入 n 输出 斐波那契第n项的值 #include int main() { int a[20]; int i,n; } ======================================================================================================================= cin>>n; a[0]=1,a[1]=1; a[i]=a[i-1]+a[i-2]; for(i=2;i<20;i++) cout< 节 1.06 兑换零钱 题目描述 对于给出的一个整数值的金额,可以兑换为由10元、20元、50元组成的零钱,要求每样面值的钱币至少有一张,找出并输出满足这样条件的组合。 输入 一个整数的金额值 输出 10元的张数 20元的张数 50元的张数 #include int x,y,z,n; cin>>n; for(x=1;x<10;x++) } ======================================================================================================================= for(y=1;y<5;y++) for(z=1;z<2;z++) if(10*x+20*y+50*z==n) { } cout< 题目描述 从键盘输入10个整数(10个整数均不相同), 然后再从键盘中输入一个整数a,如果该整数a为奇数, 且与这10个整数中的任一个数相同,则删掉与a相同的 这个数,并将剩下的9个数按升序排序输出;若a为偶数, 且与这10个数都不同,则加入a,并将这11个数降序排 序输出;否则,则将这10个数奇数在前,偶数在后, 降序排列输出。例如,10个数分别为6,89,34,12, 0,-8,78,15,9,3.若a为9,则输出为:-8,0,3, 6, 12,15,34,78,89.若a为2,则输出为:89,78, 34,15,12,9,6,3,2,0,-8.若a为7或者12,则 输出为:89,15,9,3,78,34,12,6,0,-8. 非函数方法 #include { for(i=0;i<10;i++) if(a[i]%2==0) l++; for(i=9;i>=0;i--) if(a[i]%2!=0)cout<=0;i--) { if(a[i]%2==0 && l>1) {cout< 函数方法 #include void sort(int a[],int n); int find(int a[],int n); void display(int a[],int n); void reverse(int a[],int n); void clear(int a[],int b); void cha_ru(int a[],int b); int tong_ji(int a[],int m); int main() { int i,b,t; int a[11]; cin>>t; while(t--) { for(i=0;i<10;i++) cin>>a[i]; cin>>b; sort(a,10); if(find(a,b)!=-1 && b%2!=0) { clear(a,b); display(a,9); } else if(find(a,b)==-1 && b%2==0) { cha_ru(a,b); reverse(a,11); display(a,11); } else { reverse(a,10); int j=1,k=tong_ji(a,10); for(i=0;i<10;i++) if(a[i]%2!=0) cout< void sort(int a[],int n) { int i,j,b; for(i=1;i } int find(int a[10],int b) { int i; for(i=0;i<10;i++) if(a[i]==b) return i; return -1; } void display(int a[],int n) { int i; for(i=0;i void clear(int a[10],int b) { int i; for(i=0;i<10;i++) if(a[i]==b) while(i+1<10) { a[i]=a[i+1]; i++; } } void cha_ru(int a[11],int b) { int i,j,flag=0; for(i=0;i<10;i++) if(b { for(j=10;j>i;j--) a[j]=a[j-1]; a[i]=b; } else a[10]=b; } int tong_ji(int a[],int n) { int i,k=0; for(i=0;i ======================================================================================================================= 节 1.07 输出杨辉三角形 #include int i,j,n; int a[100][100]; cin>>n; a[0][0]=1,a[1][0]=1,a[1][1]=1; for(i=2;i for(j=1;j cout<<\ cout< a[i][0]=1,a[i][i]=1; for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i } cout< ======================================================================================================================= return 1; ======================================================================================================================= 节 1.08 鞍点 题目描述 在一个二维矩阵中,如果某个位置的数值是该行最大值,同时也是该列最小值,我们则称该位置是矩阵的鞍点。鞍点可能有多个,也可能没有。请编写程序找出一个3*3矩阵的鞍点。 输入 第一行:输入T表示有T个测试实例 第二行:输入3*3矩阵数据,假定数据都是正整数 以此类推输入下个实例 输出 输出鞍点所在的行号、列号、鞍点值 如果鞍点不存在则输出-1 设定行号和列号是从0开始编号,无需考虑存在多个鞍点的情况,假设如果有鞍点则只有唯一个 #include int i,j,n,max,min,flag,t; int a[3][3],b[3],c[3]; cin>>t; while(t--) { { } for(j=0;j<3;j++) { } for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(b[i]==c[j]) { min=a[0][j]; for(i=0;i<3;i++) if(a[i][j] if(a[i][j]>max) max=a[i][j]; b[i]=max; flag=0; for(j=0;j<3;j++) cin>>a[i][j]; for(i=0;i<3;i++) for(i=0;i<3;i++) } } } cout< if(flag==0) cout<<\ } } 函数方法 #include void input(int a[10][10],int n); void an_dian(int a[10][10],int n); int main() { int t; cin>>t; while(t--) { int a[10][10]; input(a,3); an_dian(a,3); } } void input(int a[10][10],int n) { int i,j; for(i=0;i void an_dian(int a[10][10],int n) { int i,j,flag=0; for(i=0;i for(j=0;j if(a[i][j]>a[i][(j+1)%3] && a[i][j]>a[i][(j+2)%3] && a[i][j] cin>>a[i][j]; a[i][j] if(flag==0) cout<<\ } ======================================================================================================================= 节 1.09 求矩阵每一列的最大值与和 题目描述 定义一个二维数组(不超过10*10),输入方阵的大小n,然后输入数组的数据,求该矩阵每列的最大值与和 输入 测试数据的组数t 第一个矩阵的大小n 第一个矩阵的元素 第二个矩阵的大小n 第二个矩阵的元素 ........... 输出 第一个矩阵的每一列最大值、和 第二个矩阵的每一列最大值、和 #include int n,i,j,he,max,t,k; int a[10][10]; cin>>k; while(k--) { cin>>n; for(i=0;i he=0; max=a[0][i]; for(j=0;j cout< he+=a[j][i]; if(a[j][i]>max){t=a[j][i];a[j][i]=max;max=t;} for(j=0;j cin>>a[i][j]; for(i=0;i } } } ======================================================================================================================= 节 1.10 求矩阵中主对角线与副对角线的和 题目描述 求一个矩阵的主对角线与副对角线的和。在本题中假设处理的矩阵都是方阵,就是行数与列数相同的矩阵。 定义一个二维数组(不超过10*10),输入方阵的大小n,然后输入数组的数据,求该数组主对角线与副对角线的数据的和。 输入 测试数据的组数t 第一个矩阵的大小n 第一个矩阵的数据 第‘二个矩阵的大小n 第二个矩阵的数据 ........ 输出 第一个矩阵主对角线之和 第一个矩阵副对角线之和 第二个矩阵主对角线之和 第二个矩阵副对角线之和 #include int n,i,j,he1,he2,k; int a[10][10]; cin>>k; while(k--) { he1=0; he2=0; cin>>n; for(i=0;i ======================================================================================================================= for(j=0;j cin>>a[i][j]; for(i=0;i he1+=a[i][i]; he2+=a[n-1-i][i]; for(i=0;i cout< 节 1.11 字符串大小的比较 题目描述 不使用字符串函数strcmp,比较两个字符串 (字符串的长度不超过20,字符串中不包含空格 )的大小,如果第一个字符串大于第二个字符串,输出1;如果两个字符串相同,输出0;如果第一个字符串小于第二个字符串,输出-1。 输入 测试数据的组数t 第一组测试数据的两个字符串 第二组测试数据的两个字符串 ......... 输出 第一组比较结果 第二组比较结果 #include char a[20],b[20]; int i=0,flag,j=0,n; cin>>n; while(n--) { flag=0; scanf(\ scanf(\ i=0; while(a[i]!='\\0' && b[i]!='\\0') { } cout< ======================================================================================================================= if(a[i]==b[i])i++; if(a[i]>b[i]){ flag=1;break;} if(a[i] 节 1.12 字符串排序 题目描述 对于给出的若干个(不超过10个)字符串(每个字符串的长度不超过20),按ASCII的顺序降序排序,然后输出。 输入 测试数据的组数t 第一组测试数据的个数 第一组测试数据的若干个字符串 第二组测试数据的个数 第二组测试数据的若干个字符串 ........ 输出 第一组数据降序输出 第二组数据降序输出 #include int i,n,t,j; char a[20][20],b[20][20]; cin>>t; while(t--) { cin>>n; for(i=0;i for(j=0;j for(i=0;i cout< for(i=0;i if((strcmp(a[i],a[i+1])<0)) { strcpy(b[i],a[i]); strcpy(a[i],a[i+1]); strcpy(a[i+1],b[i]); } cin>>a[i]; (函数方法) #include int complain(char a[30],char b[30]); void change(char a[30],char b[30]); int main() { int i,j,n; char a[30][30],b[30][30]; cin>>n; for(i=0;i int complain(char a[30],char b[30]) { int i,j; i=0,j=0; while(a[i]!='\\0' || b[i]!='\\0') { if(a[i]>b[i]) return 1; else if(a[i] void change(char a[30],char b[30]) { char c[30]; int i,j,x,y; for(i=0;a[i]!='\\0';i++) c[i]=a[i]; c[i]='\\0'; for(i=0;b[i]!='\\0';i++) a[i]=b[i]; a[i]='\\0'; for(i=0;c[i]!='\\0';i++) b[i]=c[i]; b[i]='\\0'; } ======================================================================================================================= 节 1.13 插入一个数 Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。 Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。 Output 对于每个测试实例,输出插入新的元素后的数列。 #include int a[101]; int i,j,m,n; while(1) { cin>>n; cin>>m; if(n==0 && m==0) break; for(i=0;i for(i=0;i ======================================================================================================================= 节 1.14 按绝对值大小顺序输出 Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。 #include using namespace std; int main() { int a[100]; int i,n,d,j,k; while(cin>>n) { if(n==0) break; for(i=0;i k=a[i]; d=abs(a[i]); j=i-1; while(j>=0 && d>abs(a[j])) { a[j+1]=a[j]; a[j]=k; j--; } } for(i=0;i ======================================================================================================================= 节 1.15 发工资 Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。 Input 输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。 n=0表示输入的结束,不做处理。 Output 对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。 Sample Input 3 1 2 3 0 Sample Output 4 #include int i,n,zhang,a; int b[100]; } while(1) { zhang=0; cin>>n; if(n==0) break; for(i=0;i a=b[i]; zhang=a/100+zhang; a=a0; zhang=a/50+zhang; a=aP; zhang=a/10+zhang; a=a; zhang=a/5+zhang; a=a%5; zhang=a/2+zhang; a=a%2; zhang=a/1+zhang; } cout< ======================================================================================================================= 节 1.16 成绩处理 Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。 Input 输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。 Output 对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。 每个测试实例后面跟一个空行 这题未解决 我的(格式错误) #include int i,j,n,m,k; double he1,he2; double **a; double *b; while( cin>>n>>m) { if(n==0 || m==0) break; k=0; a=new double*[n]; for(i=0;i a[i]=new double[m]; b=new double[m]; for(i=0;i } cout.setf(ios::fixed); cout< cout< for(i=0;i he2=0; for(j=0;j cout.setf(ios::fixed); cout< cout< for(i=0;i for(j=0;j if(a[i][j] cout< 大神的(完美通过) #include int main() { double cj[50][5],sp[50],kp[5]; int n,m,num,flag; while(cin>>n>>m) { for(int i=0;i for(int j=0;j cin>>cj[i][j]; sp[i]+=cj[i][j]; } } return kp[j]+=cj[i][j]; } sp[i]/=m; } for(int i=0;i for(int i=0;i flag=1; for(int j=0;j if(cj[i][j] flag=0; break; } } if(flag==1) num++; } for(int i=0;i for(int i=0;i ======================================================================================================================= 节 1.17 复制字符串(函数) 题目描述 编写一个函数int substr(char str1[],char str2[],int index),其作用是,将从字符串str1 (长度超过30) 的第index个字符开始的所有字符复制,生成新的字符串str2,如果成功生成,函数返回1,如果不能成功生成,返回0 输入 测试数据的组数n 第一组数据 第二组数据 ........ 输出 成功生成就输出子串,不成功生成,输出\ #include using namespace std; #include int substr(char str1[],char str2[],int n); int main() { int t; cin>>t; while(t--) { char str1[100],str2[100]; int n; getchar(); gets(str1); cin>>n; if((substr(str1,str2,n))==0) cout<<\ else { int i=0; while(str2[i]!='\\0') { cout< } cout< int substr(char str1[100],char str2[100],int n) { int j,i; int l=strlen(str1); if(l for(j=0,i=n;str1[i]!='\\0';j++,i++) str2[j]=str1[i]; str2[j]='\\0'; return 1; } ======================================================================================================================= 节 1.18 矩阵的转置(使用函数) #include void input(int a[20][20],int m,int n); void output(int a[20][20],int m,int n); void change(int a[20][20],int m,int n); int main() { int a[20][20]; int m,n; cin>>m>>n; input(a,m,n); cout< void input(int a[20][20],int m,int n) { int i,j; for(i=0;i void output(int a[20][20],int m,int n) { int i,j; for(i=0;i for(j=0;j cout< void change(int a[20][20],int m,int n) { int i,j,t; for(i=0;i {t=a[i][j],a[i][j]=a[j][i],a[j][i]=t;} } ======================================================================================================================= 节 1.19 复制元音字母,顺序输出 题目描述 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。 输入 一行字符串 输出 顺序输出其中的元音字母(aeiuo) #include void connect(char a[100]); int main() { char a[100]; cin>>a; connect(a); } void connect(char a[100]) { char b[30]; int i,j=0; for(i=0;a[i]!='\\0';i++) if(a[i]=='a' || a[i]=='e' ||a[i]=='i' || a[i]=='o' || a[i]=='u' ) { b[j]=a[i]; j++; } b[j]='\\0'; int t,l=strlen(b); for(i=0;i for(j=0;j {t=b[j],b[j]=b[j+1],b[j+1]=t;} for(i=0;b[i]!='\\0';i++) cout< ======================================================================================================================= 节 1.20 判断素数(函数) #include 第一组数据的字符串 第二组数据的正整数 第二组数据的字符串 ......... Output 比较的结果 Sample Input 3 123 12a 1234567 1234567 123456789 12 Sample Output smaller equal bigger
正在阅读:
C、C++编程题目和代码2 - 图文05-05
国庆节活动策划方案05-20
呼吁02-17
visual studio2012快捷键08-16
浅谈版式设计中网格系统的构建方法09-19
集中供暖的可行性实践评估04-28
古币五十珍 - 图文06-23
TEM的三种像衬度06-06
对党的认识范文02-17
共青团团课教案08-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 题目
- 编程
- 代码
- 图文