程序设计Word文档下载推荐.docx
《程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序设计Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
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;
mum;
i++)
for(j=i+1;
j<
num;
if(s[i]<
s[j])
{t=s[i];
s[i]=s[j];
s[j]=t;
}
2.2编写程序,实现矩阵(3行、3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100200300
400500600
700800900
则程序输出:
100400300
200500800
300600900
inti,j,t;
3;
i++)
for(j=i+1;
{
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题目:
求出1~100之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
请勿改动主函教main和其它函数中的任何内容,仅在函数fun的花括号中填入
inti,j=0;
for(i=1;
=100;
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"
strlen(s);
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。
longn=0;
intflag=1;
if(*p=='
-'
)
{p++;
flag=-1;
elseif(*p==’+’)
p++;
while(*p!
=’\0’)
{n=n*10+*p-‘0’;
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。
for(i=p+1;
n;
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:
=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;
for(i=1;
1<
t=1.0;
for(j=1;
t*=j;
sn+=1.0/t;
returnsn;
7,2已知学生的数据由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。
找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
已给出函数的首部请完成该函数。
inti;
*s=a[0];
N;
if(s->
s<
a[i].s)
*s=a[i];
8.1功能,求1到w之间的奇数之和。
(w是大于等于100小于等
于1000的整数)
intsum=0;
=w;
++i)
if(i%2!
=0)sum+=i;
returnsum;
8.2功能:
找出一批正整教中的最大的偶数。
inti,amax=-1;
if(a[i]%2==0)
if(a[i]>
amax)amax=a[i];
returnamax;
9.1(好像没法输出,关键字匹配100%,9分)在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。
intsum;
sum=1;
sum=sum*a[i][j];
9.2请编写函数fun,其功能是:
找出一维整形数组元素中最大的值及其所在的下标,并通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标,
*max=a[0];
*d=0;
if(*max<
a[i])
*max=a[i];
*d=i;
10,1题目:
编写的数fun,其功能是:
从字符串中删除指定的字符。
同字母的大、小写按不同字符处理。
若程序执行时输入字符串为"
turbocandborlandc++*从键盘上输入字符n,则输出为"
turbocadborladc++"
如果输入的字符在字符串中不存在,则字符串照原样输出。
char*p;
p=s;
while(*p)
if(*p!
=c)
s[i]=*p;
s[i]=’\0’;
10,2功能:
编写函数fun,求任一整数m的n次方。
longintx=1;
inti:
x=x*m;
returnx;
11.1
题目:
请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。
可调用strlen函数求字符串的长度。
例如:
在键盘输入字符串’2345210’,函数返
回长整型数2345210。
longfun(char*s)
sum=0,len;
len=strlen(s);
len;
sum=sum*10+*s-48;
s++;
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;
while(*P)
n++;
n/2;
if(str[i]==str[n-1-i])
fg=0;
break;
returnfg;
12.1请编写函数fun,该函数的功能是:
求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
inti,j,s=0;
s=s+a[i][0]+a[i][N-1];
for(j=0;
N-1;
s=s+a[0][j]+a[M-1][j];
returns;
12.2功能:
对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII制降序排列。
原来的字符串为CEAede,排序后输出为CadEAa.
charch;
for(i=I;
6;
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;
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;
t=t*10+a;
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;
=m;
y+=1.0/(2*i+1);
return(y);
15.1题目:
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
原来的字符串为"
CEAedca"
,排序后输出为"
CedcEAa"
。
charch;
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;
return(int)(h*100)/100.0;
16.1请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。
输入如下整数:
876675896101301401980431451777则输出结果为6,980。
*k=0;
t;
if(s[*k]<
s[i])
*k=i;
returns[*k];
16.2功能:
从键盘输入一个大于3的整教,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。
7是素数,8不是素数。
请编写fun区擞。
素数是仅能被1和自身整除的数
for(i=2;
if(n%i==0)
return0;
17.1题目:
规定输入的字符串中只包含字母和*号。
使字符串中尾部的*号不多于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++;
if(k>
n)
while(*p&
p<
t+n+1)
a[i]=*p;
a[i]='
;
17.2题目:
用函数求一个n阶方阵右下三角元素的和(包括副对角线上的元素)。
inti,j,k=0;
for(j=N-1-i;
k=k+a[i][j];
return(k);
18.1功能:
用do-while语句求1~100的累计和
inti=1,sum=0;
do
{sum=sum+i;
while(i<
=n);
returnsum;
18.2功能:
用辗转相除法求两个整数的最大公约数。
intr,t;
if(n<
m){t=n;
n=m;
m=t;
r=n%m;
while(r!
{n=m;
m=r;
r=n%m;
return(m);
19.1题目:
在矩阵a中选出各行最大的元素组成一个一维数组b。
如图片1所示。
for(i=0;
R;
i++)
imax=a[i][0];
for(j=1;
C;
j++)
if(imax<
a[i][j])
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;
*t!
t++)
*(a++)=*t;
*a='
20.1请编写voidfun(intx,intpp[],int*n),它的功能是:
求出能整除x且不是偶数的各整数,并按从小到大的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。
若x中的值为30,则有4个数符合要求,它们是1、3、5、15。
=x;
i=i+2)
if(x%i==0)
pp[j++]=I;
20.2(14.1)
(动医课件)附加1:
计算并输出给定整数n的所有因子之和(不包括1与自身)
intfun(intn)
ints=0,i;
for(i=2;
if(n%i==0)s=s+i;
returns;