上机考试答案完整版Word文件下载.docx
- 文档编号:16059237
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:20
- 大小:20.42KB
上机考试答案完整版Word文件下载.docx
《上机考试答案完整版Word文件下载.docx》由会员分享,可在线阅读,更多相关《上机考试答案完整版Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
%ld"
&
a);
b=fun(a);
b=%ld\n"
b);
2.编写函数voidfun(char*s,char*t,char*p)将未在字符串s中出现、而在字符串t中出现的字符,形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。
例如:
当s为"
12345"
t为"
8624677"
时,p中的字符为:
"
867"
;
当s为”goodluck”,t为”thankyouverymuch”时,输出:
”thanyverm”
inttest(char*s,intn,charch)
{inti;
for(i=0;
i<
n;
i++)
if(s[i]==ch)return1;
return0;
voidfun(char*s,char*t,char*p)
{inti,j;
for(i=j=0;
t[i]!
=0;
if(test(s,strlen(s),t[i])==0&
&
test(t,i,t[i])==0)
{p[j]=t[i];
j++;
}
p[j]=0;
{chars1[50],s2[50],s3[50];
gets(s1);
gets(s2);
fun(s1,s2,s3);
puts(s3);
3.编写函数intfun(intm),计算并返回满足表达式:
1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<
=m最大的n。
例如,当m=10000时,程序输出:
n=38。
intfun(intm)
{inta,i,s;
for(a=1,s=0;
s<
=m;
a++)
for(i=1;
=a;
s+=i;
returna-2;
{intx;
%d"
x);
n=%d\n"
fun(x));
4.编写函数voidfun(int*x,intn),它的功能是:
删除有n个数据的数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。
n为数组长度,规定x中数据都为正数。
如程序运行时若输入:
12214616234161166391126713816
删除后输出:
12211911381-1-1-1-1-1-1
#defineN10
voidfun(int*x,intn)
inti,j=0,k,t;
for(i=0;
k=x[i];
while(k!
=0)
t=k%10;
if(t==6)
break;
else
k=k/10;
}
if(k==0)
x[j++]=x[i];
for(;
j<
j++)
x[j]=-1;
return;
{inta[N],i;
N;
a+i);
fun(a,N);
%d"
a[i]);
\n"
5.编写函数longfun(inthigh,intn),功能是:
计算并返回high以内(不包含high)最大的n个素数之和。
若不足n个,则到最小素数2为止。
例如:
若high=100,n=10,则函数的返回值为:
732;
若high=11,n=10,则函数返回:
17。
longsushu(longm)
inti;
for(i=2;
m;
if(m%i==0)
if(i>
=m)return1;
elsereturn0;
longfun(inthigh,intn)
inti,j=0;
longs=0;
if(high<
=2)return0;
for(i=high-1;
i>
1;
i--)
if(sushu(i))
{
j++;
if(j>
=n)
returns;
{intk,n;
%d%d"
k,&
n);
sum=%ld\n"
fun(k,n));
6.请编写函数intfun(int*a,intn),它的功能是:
把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志。
例:
若输入:
123456789101112131415,输出:
2468101214n=7
intfun(int*a,intn)
inti,j;
for(i=0,j=0;
if(*(a+i)%2==0)
a[j]=a[i];
a[j]=-1;
returnj;
{intx[15],i,n;
15;
x+i);
n=fun(x,15);
x[i]!
=-1;
x[i]);
n);
7.给定程序中,函数fun的功能是:
有M×
N二维数组,分别将每一行的最大值与本行的最后一个数据(第N-1列数据)对调,其余数据保持不变。
然后按每一行的最大值对二维数据各行降序排序。
例如,有右侧数组数据:
11524342522求最大值并对调后:
11224342552
223346581647223346471658
8342542647004254264783
456789456789
4596171839245217183996
排序后最终输出:
45217183996
04254264783
223346471658
456789
#defineN6
#defineM5
voidfun(inta[M][N])
{inti,j,k,m,t;
M;
k=0;
for(j=1;
if(a[i][k]<
a[i][j])
k=j;
t=a[i][k];
a[i][k]=a[i][N-1];
a[i][N-1]=t;
M-1;
k=i;
for(j=i+1;
if(a[k][N-1]<
a[j][N-1])
if(i!
=k)
for(m=0;
m<
m++)
t=a[k][m];
a[k][m]=a[i][m];
a[i][m]=t;
{intx[M][N]={{11,52,43,4,25,22},{22,33,46,58,16,47},{83,42,54,26,47,0},
{4,5,6,7,8,9},{45,96,17,18,39,2}},i,j;
fun(x);
for(i=0;
{for(j=0;
printf("
%3d"
x[i][j]);
8.函数voidfun(intx,char*p)实现十进制整数x到二进制的转换。
转换后的二进制数以字符串的方式放置于p所指向的数组中。
如输入13,输出1101,输入-13,输出-1101。
#include"
voidfun(intx,char*p)
char*q,t;
if(x<
0){*p++='
-'
x=-x;
if(x==0)
*p++='
0'
*p=0;
q=p;
x!
x/=2)
*p++=x%2+'
for(p--;
q<
p;
q++,p--)
t=*q;
*q=*p;
*p=t;
{inta;
charc[18];
fun(a,c);
%d'
SBINARYIS:
%s\n"
a,c);
9.编写函数intfun(char(*ss)[N],intm,char*s),功能是:
形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。
求出最大的字符串,复制到s所指的字符数组中,然后返回此最大字符串的长度。
#defineN30
intfun(char(*ss)[N],intm,char*s)
inti,max;
max=0;
if(strcmp(ss[i],ss[max])>
0)max=i;
strcpy(s,ss[max]);
returnstrlen(ss[max]);
{chara[8][N],b[N];
inti,len;
8;
gets(a[i]);
len=fun(a,8,b);
printf("
len=%d,str=%s\n"
len,b);
10.给定程序中,函数voidfun(char*s)的功能是:
在形参s所指字符串中的每个数字字符之后插入一个*号。
例如,形参s所指的字符串为:
def35adh3kjsdf7。
执行结果为:
def3*5*adh3*kjsdf7*。
voidfun(char*s)
chara[100];
*(s+i)!
='
\0'
i++,j++)
a[j]=*(s+i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 考试 答案 完整版