复习资料程序设计设计部分.docx
- 文档编号:12866280
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:16
- 大小:18.31KB
复习资料程序设计设计部分.docx
《复习资料程序设计设计部分.docx》由会员分享,可在线阅读,更多相关《复习资料程序设计设计部分.docx(16页珍藏版)》请在冰点文库上搜索。
复习资料程序设计设计部分
复习资料
程序设计部分主要包括程序设计的三大结构、及数组、指针的应用及函数等。
1、求和问题:
功能:
求给定正整数m以内的素数之和。
例如:
当m=20时,函数值为77。
#include
intfun(intm)
{/**********Program**********/
inti,k,s=0;
for(i=2;i<=m;i++)
{for(k=2;k
if(i%k==0)break;
if(k==i)s=s+i;
}
returns;
/**********End**********/
}
main()
{inty;
y=fun(20);
printf("y=%d\n",y);
}
2.矩阵计算(二维数组)功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。
#include
main()
{inti,j,s,a[3][3];;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf("Sum=%d\n",s);
}
intfun(inta[3][3])
{/**********Program**********/
intsum;
inti;
sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]*a[i][i];
returnsum;
/**********End**********/
}
3.题目:
用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
------------------------------------------------*/
#include
#include
#defineN3
intsum(inta[][N])
{
/**********Program**********/
inti,j,k=0;
for(i=0;i for(j=N-1-i;j k=k+a[i][j]; return(k); /**********End**********/ } main() { inta[N][N],i,j; for(i=0;i { for(j=0;j { a[i][j]=random(10)+10; printf("%3d",a[i][j]); } printf("\n"); } printf("===================\n"); printf("sum=%5d\n",sum(a)); } 4.计数问题 功能: 求小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。 ------------------------------------------------*/ #include #include #defineMAX100 intfun(intlim,intaa[MAX]) { /**********Program**********/ intn=0; inti,j; for(i=2;i<=lim;i++) {for(j=2;j if(i%j==0)break; if(j==i)aa[n++]=i; } returnn; /**********End**********/ } main() { intlimit,i,sum; intaa[MAX]; printf("Pleaseinputainteger: "); scanf("%d",&limit); sum=fun(limit,aa); for(i=0;i if(i%10==0&&i! =0)printf("\n"); printf("%5d",aa[i]); } } 5.功能: 求一组数中大于平均值的数的个数。 例如: 给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 #include intfun(inta[],intn) { /**********Program**********/ inti,k=0; floats=0,ave; for(i=0;i s+=a[i]; ave=s/n; printf("%f",ave); for(i=0;i if(a[i]>ave)k++; returnk; /**********End**********/ } main() {inta[10]={1,3,6,9,4,23,35,67,12,88}; inty; y=fun(a,10); printf("y=%d\n",y); } 6.字符串排序——题目: 任输入十个国家的名字,按由小到大排序。 #include #include voidmain() { chara[10][20],b[20];//用来保存国家的名字b表示中间变量 inti,j;//循环变量 /**********Program**********/ for(i=0;i<10;i++) gets(a[i]); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(strcmp(a[i],a[j])>0) {strcpy(b,a[i]); strcpy(a[i],a[j]); strcpy(a[j],b); } /**********End**********/ for(i=0;i<10;i++)printf("%s\n",a[i]); } 7.最大值问题: 功能: 把20个随机数存入一个数组,然后输出该数组中的最小值。 其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义 #include #defineVSIZE20 intvector[VSIZE]; intfun(intlist[],intsize) {/**********Program**********/ inti,min=0; for(i=1;i if(list[min]>list[i]) min=i; returnmin; /**********End**********/ } main() {inti; for(i=0;i {vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]);} i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); } 9.字符串处理——功能: 从字符串中删除指定的字符。 同一字母的大、小写按不同字符处理。 例如: 若程序执行时输入字符串为: turbocandborlandc++,从键盘上输入字符: n,则输出后变为: turbocadborladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出。 #include intfun(chars[],intc) {/**********Program**********/ char*q=s; for(;*q;q++) if(*q! =c)*(s++)=*q; *s=0; /**********End**********/ } main() {staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str);} 9.功能: 把20个随机数存入一个数组,然后输出该数组中的最大值。 #include #defineVSIZE20 intvector[VSIZE]; intfun(intlist[],intsize) {/**********Program**********/ inti,max=0; for(i=1;i if(list[max] max=i; returnmax; /**********End**********/ } main() {inti; for(i=0;i {vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]);} i=fun(vector,VSIZE); printf("\nMaxnum: Vector[%d]=%6d\n",i,vector[i]); } 10.排序问题——功能: 对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。 例如: 原来的字符串为CEAedca,排序后输出为CedcEAa。 #include #include #include voidfun(char*s,intnum) {/**********Program**********/ inti,j; chart; for(i=1;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} /**********End**********/ } main() {chars[10]; printf("输入7个字符的字符串: "); gets(s); fun(s,7); printf("\n%s",s); } 11.二维数组计算 功能: 请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 ------------------------------------------------*/ #include #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) { /**********Program**********/ inti,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j]; } /**********End**********/ } main() { intt[M][N]={{22,45,56,30}, {19,33,45,38}, {20,22,66,40}}; intp[N],i,j,k; printf("Theoriginaldatais: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("\n"); } 12.功能: 编写程序,求矩阵(3行3列)与2的乘积 例如: 输入下面的矩阵: 100200300 400500600 700800900 程序输出: 200400600 80010001200 140016001800 ------------------------------------------------*/ #include voidfun(intarray[3][3]) { /**********Program**********/ inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) array[i][j]=array[i][j]*2; /**********End**********/ } main() { inti,j; intarray[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Convertedarray: \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } } 13.函数 功能: 编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。 调用该函数找出100~200之间满足条件的所有数。 #include intsub(intm) { /**********Program**********/ intk,s=0; do {s=s+m%10; m=m/10; }while(m! =0); if(s%7==0)k=1; elsek=0; return(k); /**********End**********/ } main() {inti; for(i=100;i<=200;i++) if(sub(i)==1) printf("%4d",i); } 14.分段函数 功能: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。 例如: 当a=45,b=12。 调用该函数后,c=4251。 #include voidfun(inta,intb,long*c) { /**********Program**********/ *c=a/10*1000+a%10*10+b/10+b%10*100; /**********End**********/ } main() {inta,b; longc; printf("inputa,b: "); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); } 15.与正整数的各位数字分离相关的问题 功能: 从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。 例如: 当s中的数为: 7654321时,t中的数为: 642。 #include longfun(longs,longt) {/**********Program**********/ longsl=10; s/=10; t=s%10; while(s>0) {s=s/100; t=s%10*sl+t; sl=sl*10; } /**********End**********/ returnt; } main() {longs,t=0,m; printf("\nPleaseenters: ");scanf("%ld",&s); m=fun(s,t); printf("Theresultis: %ld\n",m); } 16.题目: 已知某班5名学生的三门课成绩。 试编写程序,输入这5个学生的三门课成绩a[5][3],输出每门课成绩的平均分vag[3]。 #include voidmain() {/**********Program**********/ floata[5][3],vag[]={0,0,0}; inti,j; printf("每人一行的输入5名学生的三种成绩\n"); for(i=0;i<5;i++) for(j=0;j<3;j++) scanf("%f",&a[i][j]); for(j=0;j<3;j++) for(i=0;i<5;i++) vag[j]=vag[j]+a[i][j]; for(j=0;j<3;j++) vag[j]=vag[j]/5; printf("课程一的平均分=%f\n课程二的平均分=%f\n课程三的平均分=%f\n",vag[0],vag[1],vag[2]); /**********End**********/ }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习资料 程序设计 设计 部分