第七章练习题及答案Word文档格式.docx

上传人:b****3 文档编号:16715320 上传时间:2022-11-25 格式:DOCX 页数:18 大小:21.55KB
下载 相关 举报
第七章练习题及答案Word文档格式.docx_第1页
第1页 / 共18页
第七章练习题及答案Word文档格式.docx_第2页
第2页 / 共18页
第七章练习题及答案Word文档格式.docx_第3页
第3页 / 共18页
第七章练习题及答案Word文档格式.docx_第4页
第4页 / 共18页
第七章练习题及答案Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第七章练习题及答案Word文档格式.docx

《第七章练习题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《第七章练习题及答案Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

第七章练习题及答案Word文档格式.docx

doublea=0,b=0;

a=fun1(x);

b=fun1(y);

return(int)(a+b);

{doublew;

w=fun2(1.1,2.0);

程序执行后变量w中的值是C

A)5.21 

B)5 

C)5.0 

D)0.0

(9)有以下程序:

fun(intx,inty){return(x+y);

}

main()

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

printf("

%d\n"

sum);

执行后的输出结果是()。

C

A)6B)7C)8D)9

(10)有以下程序:

voidfun2(chara,charb){printf("

%c,%c"

a,b);

chara='

A'

b='

B'

;

voidfun1(){a='

C'

b='

D'

{fun1();

%c%c"

fun2('

E'

'

F'

);

程序的运行结果是()。

A

A)CDEFB)ABEFC)ABCDD)CDAB

*(11)有以下程序

main(intargc,char*argv[])

{intn=0,i;

for(i=1;

i<

argc;

i++)n=n*10+*argv[i]-‘0’;

printf(“%d\n”,n);

编译连接后生成可执行文件tt.exe,若运行时输入以下命令行

tt12345678

程序运行后的输出结果是D

A)12 

B)12345 

C)12345678 

D)136

(12)有如下程序:

#include<

stdio.h>

voidfun(inta,intb)

{

intt;

t=a;

a=b;

b=t;

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

for(i=0;

k<

10;

i+=2)fun(c[i],c[i+1]);

for(i=0;

i++)printf("

%d"

c[i]);

printf("

\n"

程序的运行结果是A

A)1,2,3,4,5,6,7,8,9,0, 

B)2,1,4,3,6,5,8,7,0,9, 

C)0,9,8,7,6,5,4,3,2,1, 

D)0,1,2,3,4,5,6,7,8,9,

(13)有以下程序

#include <

int f(int x,int y)

{ return ((y-x)*x);

{ int a=3,b=4,c=5,d;

  d=f(f(a,b),f(a,c));

  printf("

d);

程序运行后的输出结果是B

A)10

B)9

C)8

D)7

(14)有以下程序

int fun(int x,int y)

{ if(x==y) return (x);

  else return((x+y)/2);

{ int a=4,b=5,c=6;

fun(2*a,fun(b,c)));

A)3

B)6

D)12

(15)有以下程序

void fun(int p)

{  int d=2;

   p=d++;

 

   printf("

p);

{  int a=1;

   fun(a);

a);

程序运行后的输出结果是C

A)32

B)12

C)21

D)22

(16)有以下程序

  #include<stdio.h>

  int 

f(int 

x);

  main()

 {int 

n=1,m;

  m=f(f(f(n)));

printf(”%d\n”,m);

 }

x)

 {return 

x*2;

A)1 

  B)2 

  C)4 

  D)8

(17)有以下程序

intfun(intn)

{

if(n==1)return1;

else

return(n+fun(n-1));

{intx;

scanf(“%d”,&

x);

x=fun(x);

printf(“%d\n”,x);

程序执行时,给变量x输入10,程序的输出结果是A

A)55 

B)54 

C)65 

D)45

(18)有以下程序:

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

{printf("

fun(7));

A)7B)3C)2D)0

(19)有以下程序

#include<

intf(intx)

{inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

{intz;

z=f(3);

printf(“%d\n”,z);

程序的运行结果是C

A)0B)9C)6D)8

(20)有以下程序

int 

fun(inta,intb)

{if(b==0)return 

a;

else 

return(fun(--a,--b));

printf(“%d\n”,fun(4,2);

程序的运行结果是B

B)2 

C)3 

D)4

(21)有以下程序

#include<

intf(intt[],intn);

{inta[4]={1,2,3,4},s;

s=f{a,4};

printf("%d\n",s);

intf(intt[],intn)

{if(n>

0)returnt[n-1]+f(t,n-1);

elsereturn0;

A)4B)10C)14D)6

(22)有以下程序

  void 

fun(intx)

  {if(x/2>1)fun(x/2);

  printf(”%d”,x);

  }

  {fun(7);

printf(”\n”);

A)137  B)731  C)73  D)37

(23)有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

isum+=x[i];

returnsum;

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);

printf(“%d\n”,s);

程序执行后的输出结果是C

A)45 

B)50 

C)60 

D)55

(24)有以下程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm;

{intj=1,m=1,k;

k=fun(j,m);

k);

B

A)5,5B)5,11C)11,11D)11,5

(25)有以下程序

inta=4;

intf(intn)

{intt=0;

staticinta=5;

if(n%2){inta=6;

t+=a++;

else{inta=7;

returnt+a++;

{ints=a,i=0;

for(;

i<

2;

i++)s+=f(i);

printf(“%d\n”,s);

A)24 

B)28 

C)32 

D)36

(26)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是C

A)auto

B)register

C)static

D)auto或register

(27)有以下程序

int f(int n);

{  int a=3,s;

   s=f(a);

s=s+f(a);

s);

int f(int n)

{ static int a=1;

  n+=a++;

  return n;

A)7

B)8

C)9

D)10

(28)有以下程序

intfun()

{staticintx=1;

x*=2;

returnx;

{inti,s=1;

for(i=1;

=2;

i++)s=fun();

printf("%d\n",s);

A)0B)1C)4D)8

(29)有以下程序

  #include<stdio.h>

  intfun()

  {staticintx=1;

  x+=1;

returnx;

  {inti;

s=1;

  for(i=1;

=5;

i++)s+=fun();

  printf(”%d\n”,s);

A)11  B)21  C)6  D)120

(30)有以下程序:

#defineN5

#defineMN+1

#definef(x)(x*M)

{inti1,i2;

i1=f

(2);

i2=f(1+1);

%d%d\n"

i1,i2);

A)1212B)117C)1111D)127

(31)若程序中有宏定义行:

#define 

100 

则以下叙述中正确的是B

A)宏定义行中定义了标识符N的值为整数100

B)在编译程序对C源程序进行预处理时用100替换标识符N

C)对C源程序进行编译时用100替换标识符N

D)在运行时用100替换标识符N

(32)以下叙述中错误的是D

A)在程序中凡是以“#”开始的语句行都是预处理命令行

B)预处理命令行的最后不能以分号表示结束

C)#defineMAX是合法的宏定义命令行

D)C程序对预处理命令行的处理是在程序执行的过程中进行的

(33)以下关于宏的叙述中正确的是()C

A)宏名必须用大写字母表示

B)宏定义必须位于源程序中所有语句之前

C)宏替换没有数据类型限制

D)宏调用比函数调用耗费时间

(34)有以下程序

#define PT 3.5 ;

#define S(x) PT*x*x ;

{ int a=1,b=2 ;

%4.1f\n"

S(a+b));

A)14.0

B)31.5

C)7.5

D)程序有错无输出结果

(35)有以下程序

#define f(x) x*x*x

{  int a=3,s,t;

   s=f(a+1);

t=f((a+1));

%d,%d\n"

s,t);

程序运行后的输出结果是A

A)10,64

B)10,10

C)64,10

D)64,64

(36)以下程序

#defineSUB(a)(a)-(a)

{inta=2,b=3,c=5,d;

d=SUB(a+b)*c;

printf("%d\n",d);

程序运行后的结果是C

A)0B)-12C)-20D)10

二填空题

(1)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空

intisprime(inta)

{inti;

for(i=2;

=a/2;

i++)

if(a%i==0)__[]___;

//return0

__[]___;

//return1

(2)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"

math.h"

doublefun(doublex){return(x*x-2*x+6);

doublex,y1,y2;

Enterx:

"

scanf("

%lf"

&

y1=fun(【】);

//x+8

y2=fun(【】);

//sin(x)

y1=%lf,y2=%lf\n"

y1,y2);

(3)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.

#include 

<

viod 

x[],int 

n)

int 

p0,p1,i,j,t,m;

i=j=x[0];

p0=p1=0;

for(m=0;

m<

n;

m++)

if(x[m]>

i) 

{i=x[m];

p0=m;

if(x[m]<

j) 

{j=x[m];

p1=m;

t=x[p0];

x[p0]=x[n-1];

x[n-1]=t;

t=x[p1];

x[p1]=_[]_______;

_[]_______=t;

//x[0],x[0]

a[10],u;

for(u=0;

u<

u++) 

a[u]);

f(a,10);

for(u=0;

a[u]);

(4)请将以下程序中的函数声明语句补充完整。

int 【】;

//max(int,int)

{ int x,y,(*p)();

  scanf("

%d%d"

x,&

y);

  p=max;

(*p)(x,y));

int max(int a,int b)

{ return (a>

b?

a:

b);

(5)以下fun函数的功能是:

找出具有N个元素的一维数组中的最小值,并作为函数值返回。

(设N已定义)i

  intfun(intx[N])

  {inti,k=0;

  for(i=0;

N;

i++)

if(x[i]<

x[k])k=【】;

returnx[k];

  }

(6)以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。

(设M,.N已定义)a[row][col]

  intfun(inta[N][M])

  {inti,j,row=0,col=0;

  for(i=0;

  for(j=0;

j<

M;

j++)

  if(a[i][j]>a[row][col]){row=i;

col=j;

  return(【】):

(7)以下程序的运行结果是:

__[]____11

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

if(n>

=2){m=fun(t,n-1);

inta[]={11,4,6,3,8,2,3,5,9,2};

printf(“%d\n”,fun(a,10));

(8)下面程序的运行结果是【】。

18

intf(inta[],intn)

{if(n>

1)

returna[0]+f(a+1,n-1);

else

returna[0];

{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;

s=f(aa+2,4);

(9)以下程序的输出结果是【】。

13

voidfun(intx)

{if(x/2>

0)fun(x/2);

printf(“%d”,x);

{fun(3);

printf(“\n”);

(10)以下程序的功能是:

通过函数func输入

字符并统计输入字符的个数。

输入时用字符@作为输入标志。

long【】;

longn;

 

n=func();

n=%ld\n"

n);

longfunc()

longm;

for(m=0;

getchar()!

='

@'

【】);

答案:

func();

m++

(11)有以下程序

fun(int x)

{  if(x/2>

0) fun(x/2);

%d "

x);

{ fun(6);

程序运行后的输出结果是【】136

(12)以下程序的运行结果是m=4k=4i=5k=5。

intk=0;

voidfun(intm)

{m+=k;

k+=m;

printf(“m=%d\nk=%d”,m,k++);

{inti=4;

fun(i++);

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

当前位置:首页 > 高等教育 > 农学

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

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