程序设计.docx

上传人:b****8 文档编号:8993730 上传时间:2023-02-02 格式:DOCX 页数:17 大小:740.31KB
下载 相关 举报
程序设计.docx_第1页
第1页 / 共17页
程序设计.docx_第2页
第2页 / 共17页
程序设计.docx_第3页
第3页 / 共17页
程序设计.docx_第4页
第4页 / 共17页
程序设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

程序设计.docx

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

程序设计.docx

程序设计

1.1题目:

请编写函数fun,该函数的功能是:

将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如:

若字符串数组中的M个字符串为{AAAA",“BBBBBB","CC"则合并后的字符串内容应

该是“AAABBBBBBCC"

注意:

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入

所编写的若干语可。

inti,j,k=0;

for(i=0;i

for(j=0;a[i][j]!

=’\0’;j++)

b[k++]=a[i][j];

b[k]=’\0’;

1.2题目:

题目:

请编写fun函数程序,从键盘输入某一年,判断该年是否为闰年。

闰年的条件是:

(1)能被4整除但不能被100整除。

(2)能被400整除。

符合任何一个条件就是闰年。

输入年份为整型

if((year%4==0&&year%100!

=0)||year%400==0)

return1;

else

return0;

1.3题目:

(待议)

题目:

编写函数fun;其功能是:

根据以下公式求的值,结果由函数值带回。

m与n为两个正整数且要求m>n.如“样张”。

P=m!

/n!

(m-n)!

例如:

m=12,n=8时,运行结果为495000000

注意请勿改动主函数main和其他函数中的任何内容。

仅在函数fun的花括号中填入你编写的若干语句。

(参考XX)

floatp;

p=1.0*jc(m)/jc(n)/jc(m-n);

returnp;

2.1功能:

对长度为8个字符的字符串,将8个字符按降序排列。

例如:

原来的字符串为CEAedcab,排序后输出为edcbaECA

inti,j;

chart;

for(i=0;i

for(j=i+1;j

if(s[i]

{t=s[i];s[i]=s[j];s[j]=t;}

2.2编写程序,实现矩阵(3行、3列)的转置(即行列互换)。

例如,若输入下面的矩阵:

100200300

400500600

700800900

则程序输出:

100400300

200500800

300600900

inti,j,t;

for(i=0;i<3;i++)

for(j=i+1;j<3;j++)

{

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

3.1题目:

编写函数fun,其功能是:

将a、b两个两位正整数合并成一个新的整数放在c中。

合并的方式是:

将a中的十位和个位数依次放在变量c的千位和十位上,b中的十

位和个位数依次放在变量c的个位和百位上。

例如:

当a=45,b=12,调用该函数后c=4251

注意:

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;

3.2题目:

编写函数fun,其功能是:

求出1~100之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

注意:

请勿改动主函教main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

inti,j=0;

for(i=1;i<=100;i++)

if((i%7==0||i%11==0)&&i%77!

=0)

a[j++]=i;

*n=j;

4.1题目:

编写通数fun,其功能是;将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。

例如:

若s所指字符串中的内容为:

“ABCDEFG12345",其中字符的ASCII码值为奇数字符1

的ASCII码值也为奇数,都应当删除,其它依此类推。

最后t所指的数组中的内容应

是:

“BDF24"

inti,j=0;

for(i=0;i

if(s[i]%2==0)

t[j++]=s[i];

t[j]=0;

4,2请编写一个函数,用来删除字符串中的所有空格。

例如,输入asdafaaz67.则输出为asdafaaz67。

inti=0;

char*p=str;

while(*p)

{

if(*p!

=’')

{

str[i]=*p;

i++;

}

p++;

}

str[i]='\0';

5,1(待议)题目:

请编fun函数写程序,从键盘输入百分制成绩,要求输出等级制成绩A、B、C、D。

 90~100分为A,80~89分为B,60~79分为C,1~59分为D。

不考虑小数,输入为整数,输出为字符。

(参考XX)

charfun(intn)

{charp;

if(n==9||n==10)

p=’A’;

elseif(n==8)

p=’B’;

elseif(n==6||n==7)

p=’C’;

elsep=’D’;

return(p);

}

5,2题目:

请编写函数fun,其功能是:

将一个数字字符串转换为一个整数不得调用c语言提供

的将字符串转换为整数的函数)。

例如:

若输入字符串“一1234",则函数把它转换为整数值一1234。

注意:

请勿改动主函教main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

longn=0;

intflag=1;

if(*p=='-')

{p++;flag=-1;}

elseif(*p==’+’)

p++;

while(*p!

=’\0’)

{n=n*10+*p-‘0’;

p++;

}

returnn*flag;

6,1请编写函数fun,函数的功能是:

移动一维数组中的内容,若数组中有n个整数,

要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容:

1,2,3,4,5,6,7,8,9,10;p的值为3。

移动后,一维

数组中的内容应为:

5,6,7,8,9,10,1,2,3,4。

inti,j,t;

for(i=p+1;i

for(j=i;j>i-p-1;j--)

{

t=w[j];

w[j]=w[j-1];

w[j-1]=t;

}

6,2功能:

编写函数求3!

+6!

+9!

+12!

+15!

+18!

+21!

inti,j;

floatt,s=0;

for(i=3;i<=n;i=i+3)

{t=1;

for(j=1:

j<=i;j++)

t=t*j;

s=s+t;}

return(s);

7,1请编写函数fun,其功能是计算并输出如下多项式的值。

Sn=1+1/1!

 +1/2!

 +1/3!

 +1/4!

 +..+1/n!

例如,若主函数从键盘给n 输入15,则输出为S=2.718282。

doublet,sn=1.0;

inti,j;

for(i=1;1<=n;i++)

{

t=1.0;

for(j=1;j<=i;j++)

t*=j;

sn+=1.0/t;

}

returnsn;

7,2已知学生的数据由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。

请编写函数fun,该函数的功能是:

找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

已给出函数的首部请完成该函数。

inti;

*s=a[0];

for(i=0;i

if(s->s

*s=a[i];

8.1功能,求1到w之间的奇数之和。

(w是大于等于100小于等

于1000的整数)

intsum=0;inti;

for(i=1;i<=w;++i)

{

if(i%2!

=0)sum+=i;

}

returnsum;

8.2功能:

找出一批正整教中的最大的偶数。

inti,amax=-1;

for(i=0;i

if(a[i]%2==0)

if(a[i]>amax)amax=a[i];

returnamax;

9.1(好像没法输出,关键字匹配100%,9分)在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。

intsum;

inti,j;

sum=1;

for(i=0;i<3;i++)

sum=sum*a[i][j];

returnsum;

9.2请编写函数fun,其功能是:

找出一维整形数组元素中最大的值及其所在的下标,并通过形参传回。

数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标,

inti;

*max=a[0];

*d=0;

for(i=0;i

if(*max

{

*max=a[i];

*d=i;

}

10,1题目:

编写的数fun,其功能是:

从字符串中删除指定的字符。

同字母的大、小写按不同字符处理。

例如:

若程序执行时输入字符串为"turbocandborlandc++*从键盘上输入字符n,则输出为"turbocadborladc++"

如果输入的字符在字符串中不存在,则字符串照原样输出。

inti=0;

char*p;

p=s;

while(*p)

{

if(*p!

=c)

{

s[i]=*p;

i++;

}

p++;

}

s[i]=’\0’;

10,2功能:

编写函数fun,求任一整数m的n次方。

longintx=1;

inti:

for(i=1;i<=n;i++)

x=x*m;

returnx;

11.1

题目:

请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。

可调用strlen函数求字符串的长度。

例如:

在键盘输入字符串’2345210’,函数返

回长整型数2345210。

longfun(char*s)

inti;sum=0,len;

len=strlen(s);

for(i=0;i

{

sum=sum*10+*s-48;

s++;

}

returnsum;

11.2题目:

请编写函数fun,该函数的功能是:

统计各年龄段的人数。

N个年龄通过调用随机函数获得,并放入主函数的age数组中。

要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。

结果在主函数中输出.

inti,n=0,fg=1;

char*p=str;

while(*P)

{

n++;

p++;

}

for(i=0;i

if(str[i]==str[n-1-i])

else

{

fg=0;

break;

}

returnfg;

12.1请编写函数fun,该函数的功能是:

求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

inti,j,s=0;

for(i=0;i

s=s+a[i][0]+a[i][N-1];

for(j=0;j

s=s+a[0][j]+a[M-1][j];

returns;

12.2功能:

对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII制降序排列。

例如:

原来的字符串为CEAede,排序后输出为CadEAa.

charch;

inti,j;

for(i=I;i<6;i++)

for(j=i+1;j<6;j++)

{

if(*(s+i)<*(s+j))

{

ch=*(s+j);

*(s+j)=*(s+i);

*(s+i)=ch;

}

}

13.1有一函数:

如样张所示。

请编fun函数,x,y均为整型,输入x值,输出y值。

inty;

if(x<0)

y=x*x+x-6;

elseif(x>=0&&x<=10)

y=x*x-5*x+6;

else

y=x*x-x-1;

returny;

13.2求Sn=a+aa+aaa+……+aa…a之值,其中,a代表1到9中的一个数字。

例如:

a代表2,则求2+22+222+2222+22222(此时n=5),a和n的值由键盘键入。

intt=a,i,s;

for(i=1,s=0;i<=n;i++)

{

t=t*10+a;

s=s+t;

}

returns;

14.1功能:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

例如:

当a=45,b=12,调用该函数后,c=2514。

*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;

14.2功能:

编写函数fun其功能是:

根据整型形参m,计算如下公式的值:

y=1+1/3+1/5+1/7+…+1/(2m+1)

例如:

若m=9,则应输出:

2.133256

doubley=0;

inti;

for(i=0;i<=m;i++)

{

y+=1.0/(2*i+1);

}

return(y);

15.1题目:

请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。

例如:

原来的字符串为"CEAedca",排序后输出为"CedcEAa"。

charch;

inti,j;

for(i=1;i<6;i++)

for(j=i+1;j<6;j++)

{

if(*(s+i)<*(s+j))

{

ch=*(s+j);

*(s+j)=*(s+i);

*(s+i)=ch;

}

}

15.2功能:

对某一正数的值保留2位小数,并对第三位进行四舍五入。

inti;

i=(int)(h*1000)%10;

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;

16.1请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。

例如:

输入如下整数:

876675896101301401980431451777则输出结果为6,980。

inti;*k=0;

for(i=0;i

if(s[*k]

*k=i;

returns[*k];

16.2功能:

从键盘输入一个大于3的整教,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。

例如:

7是素数,8不是素数。

请编写fun区擞。

素数是仅能被1和自身整除的数

inti;

for(i=2;i

if(n%i==0)

return0;

return1;

17.1题目:

规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号!

若少于或等于n个则不做任何操作,

字符串中间和前面的*号不删除。

例如:

字符串中的内容为“****A*BC*DEF*******,若n的值为4,删除后,字符串中的内容

应为"****A*BC*DEF*G****;

若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。

n的值在主函数中输入。

编写函数时,不得使用C语言提供的字符串函数。

inti=0,k=0;

char*p,*t;

p=t=a;

while(*t)

t++;

t--;

while(*t=='*')

{

k++;

t--;

}

if(k>n)

{

while(*p&&p

{

a[i]=*p;

i++;

p++;

}

a[i]='\0';

}

17.2题目:

用函数求一个n阶方阵右下三角元素的和(包括副对角线上的元素)。

inti,j,k=0;

for(i=0;i

for(j=N-1-i;j

k=k+a[i][j];

return(k);

18.1功能:

用do-while语句求1~100的累计和

inti=1,sum=0;

do

{sum=sum+i;

i++;

}

while(i<=n);

returnsum;

18.2功能:

用辗转相除法求两个整数的最大公约数。

intr,t;

if(n

r=n%m;

while(r!

=0)

{n=m;m=r;r=n%m;}

return(m);

19.1题目:

在矩阵a中选出各行最大的元素组成一个一维数组b。

如图片1所示。

for(i=0;i

{

imax=a[i][0];

for(j=1;j

if(imax

imax=a[i][j];

b[i]=imax;

}

19.2题目:

假定输入的字符串中只包含字母和*号。

请编写通数fun,其功能是:

除了尾部

的号之外将字符中的其它的*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写的函数时,不得使用c语言提供的字符串函数。

例如:

字符串中的内容为****A*BC*DEF*G*******删除后,字符串中的内容应当

是ABCDEFG*******.

char*t=a;

for(;t<=p;t++)

if(*t!

='*')

*(a++)=*t;

for(;*t!

='\0';t++)

*(a++)=*t;

*a='\0';

20.1请编写voidfun(intx,intpp[],int*n),它的功能是:

求出能整除x且不是偶数的各整数,并按从小到大的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。

例如:

 若x中的值为30,则有4个数符合要求,它们是1、3、5、15。

inti,j=0;

for(i=1;i<=x;i=i+2)

if(x%i==0)

pp[j++]=I;

*n=j;

20.2(14.1)

(动医课件)附加1:

计算并输出给定整数n的所有因子之和(不包括1与自身)

intfun(intn)

ints=0,i;

for(i=2;i

if(n%i==0)s=s+i;

returns;

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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