复习资料程序设计设计部分.docx

上传人:b****9 文档编号:25461006 上传时间:2023-06-09 格式:DOCX 页数:16 大小:18.31KB
下载 相关 举报
复习资料程序设计设计部分.docx_第1页
第1页 / 共16页
复习资料程序设计设计部分.docx_第2页
第2页 / 共16页
复习资料程序设计设计部分.docx_第3页
第3页 / 共16页
复习资料程序设计设计部分.docx_第4页
第4页 / 共16页
复习资料程序设计设计部分.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

复习资料程序设计设计部分.docx

《复习资料程序设计设计部分.docx》由会员分享,可在线阅读,更多相关《复习资料程序设计设计部分.docx(16页珍藏版)》请在冰豆网上搜索。

复习资料程序设计设计部分.docx

复习资料程序设计设计部分

复习资料

程序设计部分主要包括程序设计的三大结构、及数组、指针的应用及函数等。

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**********/

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1