函数40Word格式.docx
《函数40Word格式.docx》由会员分享,可在线阅读,更多相关《函数40Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
return(c);
inta=8;
printf(“%d”,max(a,b));
(5分)[4]以下程序的运行结果是_______。
inta=5;
intb=7;
inta=4,b=5,c;
c=plus(a,b);
printf(“A+B=%d\n”,c);
plus(intx,inty)
intz;
z=x+y;
return(z);
(5分)[5]以下程序的运行结果是_______。
inti=0;
inti=5;
reset(i/2);
printf(“i=%d\n”,i);
reset(i=i/2);
workover(i);
workover(inti)
i=(i%i)*((i*i)/(2*i)+4);
printf(“i=%d\n”,i);
return(i);
reset(inti)
i=i<
=2?
5:
0;
(5分)[6]以下程序的运行结果是_______。
intx1=30,x2=40;
intx3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);
sub(intx,inty)
x1=x;
x=y;
y=x1;
(5分)[7]以下程序的运行结果是_______。
#include<
stdio.h>
intk=1;
inti=4;
fun(i);
printf(“
(1)%d,%d\n”,i,k);
fun(intm)
m+=k;
k+=m;
chark=‘B’;
printf(“
(2)%d\n”,k-‘A’);
printf(“(3)%d,%d\n”,m,k);
(5分)[8]以下程序的运行结果是_______。
func(intarray[][4],intm)
inti,j,k;
k=0;
for(i=0;
i<
3;
i++)
for(j=0;
j<
4;
j++)
if(array[i][j]<
m)
k=k+array[i][j];
return(k);
staticinta[3][4]={{1,13,5,7},{2,4,26,8},{10,1,3,12}};
inti,j,m;
j++)printf(“%4d”,a[i][j]);
printf(“\n”);
m=10;
printf(“\nthevalueis%d\n”,func(a,m));
(5分)[9]以下程序运行结果是_______。
inta=1,b=2,c=3;
++a;
c+=++b;
intb=4,c;
c=b*3;
a+=c;
printf(“first:
%d,%d,%d\n”,a,b,c);
printf(“second:
printf(“third:
(5分)[10]以下程序的运行结果是_______。
increment();
increment()
staticintx=0;
x+=1;
printf(“%d”,x);
(5分)[11]以下程序的运行结果是_______。
intn=1;
staticintx=5;
inty;
y=n;
printf(“MAIN:
x=%2dy=%2dn=%2d\n”,x,y,n);
func();
func()
staticintx=4;
inty=10;
x=x+2;
n=n+10;
y=y+n;
printf(“FUNC:
(10分)[12]以下程序的运行结果是_______。
inta[3][3]={1,3,5,7,9,11,13,15,17};
intsum;
sum=func(a);
printf(“\nsum=%d\n”,sum);
func(inta[][3])
inti,j,sum=0;
a[i][j]=i+j;
if(i==j)sum=sum+a[i][j];
return(sum);
(5分)[13]以下程序的运行结果是_______。
inta=1,b=2,c;
c=max(a,b);
printf(“maxis%d\n”,c);
max(intx,inty)
z=(x>
y)?
x:
y;
(5分)[14]以下程序的运行结果是_______。
(5分)[15]以下程序的运行结果是_______。
inti=2,x=5,j=7;
fun(j,6);
printf(“i=%d;
j=%d;
x=%d\n”,i,j,x);
fun(inti,intj)
intx=7;
(5分)[16]若输入的值是-125,以下程序的运行结果是_______。
math.h>
intn;
scanf(“%d”,&
n);
printf(“%d=”,n);
if(n<
0)printf(“-”);
n=fabs(n);
fun(n);
fun(intn)
intk,r;
for(k=2;
k<
=sqrt(n);
k++)
r=n%k;
while(r==0)
printf(“%d”,k);
n=n/k;
if(n>
1)printf(“*”);
if(n!
=1)printf(“%d\n”,n);
(5分)[17]以下程序的运行结果是_______。
f(inta[])
while(a[i]<
=10)
printf(“%d”,a[i]);
i++;
inta[]={1,5,10,9,11,7};
f(a+1);
(5分)[18]以下程序的运行结果是_______。
printf(“%d\n”,sub(i));
sub(intn)
inta;
if(n==1)return1;
a=n+sub(n-1);
return(a);
(5分)[19]以下程序的运行结果是_______。
printf(“FACT(5):
%d\n”,fact(5));
printf(“FACT
(1):
%d\n”,fact
(1));
fact(-5);
fact(intvalue)
if(value<
0){printf(“FACT(-1):
Error!
\n”);
return(-1);
}
elseif(value==||value==0)return
(1);
elsereturn(value*fact(value-1));
(10分)[20]阅读下面程序,完成下列问题中的填空。
问题
(1)此程序在调用函数f后运行结果是【1】。
(2)若将函数f中的for(j=i+1;
j++)改为for(j=0;
3-i;
j++),则
程序的运行结果是【2】。
f(ints[][4])
for(j=i+1;
{k=s[i][j];
s[i][j]=s[j][i];
s[j][i]=k;
ints[4][4],i,j;
s[i][j]=i-j;
f(s);
printf(“%4d”,s[i][j]);
(10分)[21]以下程序的运行结果是_______。
intx=2,y=3,z=0;
printf(“
(1)x=%dy=%dz=%d\n”,x,y,z);
add(x,y,z);
printf(“(3)x=%dy=%dz=%d\n”,x,y,z);
add(intx,inty,intz)
x=x*x;
y=y*y;
printf(“
(2)x=%dy=%dz=%d\n”,x,y,z);
(5分)[22]若输入一个整数10,以下程序的运行结果是_______。
inta,e[10],c,i=0;
printf(“输入一整数\n”);
a);
while(a!
=0)
c=sub(a);
a=a/2;
e[i]=c;
for(;
i>
i--)printf(“%d”,e[i-1]);
sub(inta)
c=a%2;
returnc;
(5分)[23]函数f中的形参a为一个10×
10的二维数组,n的值为5,以下程序段的运行结果是_______。
f(inta[10][10],intn)
j=n/2+1;
a[1][j]=1;
i=1;
=n*n;
i=i-1;
j=j+1;
if((i<
1)&
&
(j>
n)){i=i+2;
j=j-1;
else
if(i<
1)i=n;
if(j>
n)j=1;
if(a[i][j]==0)a[i][j]=k;
else{i=i+2;
a[i][j]=k;
(5分)[24]下列程序的输出结果是_______________。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,D、;
printf("
%d%d\n"
c,D、;
(5分)[25]以下程序的运行结果是_______________。
{intk=4,m=1,p;
p=func(k,m);
printf("
%d,"
p);
%d\n"
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
returnm;
====================答案====================
答案部分,(卷面共有40题,234.0分,各大题标有题量和总分)
(10分)[1][答案]
printf("
Pleaseenterastring:
"
);
gets(str);
letter=space=num=other=0;
for(i=0;
str[i]!
='
\0'
;
i++)
c=str[i];
if((c>
='
A'
c<
Z'
)||(c>
a'
c<
z'
))
letter++;
elseif(c>
0'
&
9'
)
num++;
elseif(c=='
'
space++;
elseother++;
(9分)[2][答案]
提示:
一维字符数组用来存放字符串,并且将它传递到函数,在函数中通过元素值交换来完成反序存放。
(10分)[3][答案]
最大公约数可以采用“辗转相除法”,最小公倍数将两数乘积除于最大公约数。
“辗转相除法”:
设两个数分别用m,n表示且m>
n,临时变量t,t=m%n;
m=n;
n=t;
直到n等于0。
(12分)[4][答案]
#include<
longfun(intk)
{if(k>
0)
return(k*fun(k-1));
elseif(k==0)
return1l;
{intk;
scanf("
%d"
&
k);
clrscr();
%d!
=%ld"
k,fun(k));
(15分)[5][答案]
#include“stdio.h”
#defineN10
voidSelSort(inta[N])/*选择排序函数*/
{inti,j,minj,t;
N-1;
{minj=i;
N;
j++)if(a[j]<
a[minj])minj=j;
if(minj!
=i){t=a[i];
a[i]=a[minj];
a[minj]=t;
voidmain()
{inta[N],i;
i++)scanf(“%d”,a+i);
SelSort(a);
i++)printf(“%6d”,a[i]);
(12分)[6][答案]
intfun(intw)
{intn=0,i=1;
while(w>
10)
{n=n+i*(w%10);
w/=10;
i*=10;
retrunn;
{intx;
Enterainteger:
"
x);
Theoriginaldatais:
x);
if(x<
10)printf("
Dataerror!
elseprintf("
Theresult:
fun(x));
(10分)[7][答案]
intsunmmary(intk)
{intsum=0,count=0,j;
while((k>
=2)&
(conut<
10))
{if((k%13==0)||k%17==0)
{sum=sum+k,count++;
k--;
retrunsum;
summary(x));
(2分)[1][答案]
错
(2分)[2][答案]
(2分)[3][答案]
对
(2分)[4][答案]
(2分)[5][答案]
(2分)[6][答案]
(2分)[7][答案]
(2分)[8][答案]
(5分)[1][答案]
x=1
y=1
x=1
y=2
y=3
(5分)[2][答案]
125
(5分)[3][答案]
8
(5分)[4][答案]
A+B=9
(5分)[5][答案]
i=5
i=2
i=0
(5分)[6][答案]
10,20,40,40
(5分)[7][答案]
(2)1
(3)5,6
(1)4,6
(5分)[8][答案]
11357
24268
101312
thevalueis31
(5分)[9][答案]
first:
14,4,12
second:
26,4,12
third:
26,3,6
(5分)[10][答案]
123
(5分)[11][答案]
MAIN:
x=5y=1n=1
FANC:
x=6y=21n=11
MAIN:
x=5y=1n=11
x=8y=31n=21
(10分)[12][答案]
sum=6
(5分)[13][答案]
maxis2
(5分)[14][答案]
111
(5分)[15][答案]
i=7;
j=6;
x=7
i=2;
j=7;
x=5
(5分)[16][答案]
-125=-5*5*5
(5分)[17][答案]
5109
(5分)[18][答案]
15
(5分)[19][答案]
FACT(5):
120
FACT
(1):
1
FACT(-1):
(10分)[20][答案]
【1】0123
-1012
-2-101
-3-2-10
【2】0-1-2-3
10-1-2
210-1
3210
(10分)[21][答案]
(1)x=2y=3z=0
(2)x=4y=9z=5(3)x=2y=3z=0
(5分)[22][答案]
1010
(5分)[23][答案]
打印5阶幻方:
17241815
23571416
46132022
101219213
11182529
(5分)[24][答案]
56
(5分)[25][答案]
8,17