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