《C语言程序设计》作业答案 – 开来之家

《C语言程序设计》作业答案

1.第4题

以下程序的输出结果是______。

main()

{ int n[3][3] , i, j;

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

for( j=0;j<3;j++) n[i][j]=i+j;

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

for(j=0;j++) n[i+1][j+1]+=n[i][j];

printf (“%d \n”,n[i][j]);

}

A.14

B.0

C.6

D.值不确定

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

2.第5题

以下程序段中,变量n计算外循环体的执行次数,程序执行后n的值为_______。

main()

{ int i,j,n=0;

for(i=4;i;i–)

for(j=0;j-5;j++)

n++;

printf(“%d”,n);

}

A.20

B.24

C.25

D.30

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

3.第6题

写出下列程序的运行结果_______。

main()

{ void swap1();

void swap2();

int a=3,b=4;

swap1(a,b);

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

a=3;b=4;

swap 2(&a,&b);

printf(“%d,%d”,a,b);

}

void swap1(x,y)

int x,y;

{ int t;t=x;x=y;y=t;}

void swap2(x,y)

int *x,*y;

{ int t;t=*x;*x=*y;*y=t;}

A.3,4 (换行) 4,3

B.4,3 (换行) 3,4

C.3 4 (换行) 4 3

D.4 3 (换行) 3 4

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

4.第7题

设p为int型变量,则下面for循环语句的执行结果是______。

for (p=1;p<=10;p++)

{ if(p%3) p++;

++p; printf(“%d”,p);

}

A.35811

B.36912

C.2468

D.258

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

5.第8题

以下程序的输出结果是______。

main()

{ int i,x,a[10],b[3];

x=5;

for(i=0;i<10;i++) a[i]=i;

for(i=0;i<3;i++) b[i]=a[i*(i+1)];

for(i=0;i<3;i++) x=b[i]*2;

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

}

A.12

B.21

C.22

D.23

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

6.第9题

以下程序的运行结果是______。

# include “stdio.h”

main()

{ int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12};

int *p=a+5,*q=NULL;

*q=*(p+5);

printf(“%d %d\n”, *p,*q);

}

A.运行后报错

B.6 6

C.6 12

D.5 5

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

7.第10题

字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是_______。

# include “stdio.h”

main()

{ union

{ int i[4];

long k;

char c[6];

}a,*s=&a;

s->i[0]=0x39;

s->i[1]=0x38;

printf(“%c\n”,s->c[0]);

}

A.5

B.3

C.6

D.9

标准答案:D

您的答案:

题目分数:1.0

此题得分:0.0

8.第11题

若有以下说明,

char *str1=”copy”,str2[10],*str3=”hijkl”, *str4, *str5=”abcd”

则______不是对strcpy库函数的正确调用

A.strcpy(str2,str1);

B.strcpy(str3,str1);

C.strcpy(str4,str1);

D.strcpy(str5,str1);

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

9.第12题

下面程序运行结果是______。

main()

{ int a[6],i;

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

{ a[i]=9*(i-2+4*(i>3)%5);

printf(“%2d”, a[i]);

}

}

A.-9 0 9 5 4 3 6

B.-18 -9 0 9 54

C.-9 0 95463

D.-9095463

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

10.第13题

以下程序的输出结果是______。

main()

{ char *p=”12134211″; int z[4]={0,0,0,0}, j, i;

for(j=0;p[j];j++)

{switch ( p[j] )

{ case ‘1’: i=0;

case ‘2’:i=1;

case ‘3’: i=2;

case ‘4’: i=3;

}

z[i]++;

}

for( j=0;j<4;j++) printf(“%d”,z[j]);

}

A.4 2 1 1

B.0 0 0 8

C.4 6 7 8

D.8 8 8 8

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

11.第14题

若有定义: int a=67; char b=’A’;则表达式”a”的结果为_____。

A.0

B.1

C.任何一个非零的整数

D.两个变量不能比较

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

12.第15题

设有以下宏定义:

#define N 4

#define Y(n) ((N+1)*n)

则执行语句z=2*(N+Y(5+1));后,z的值为______。

A.出错

B.60

C.48

D.54

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

13.第16题

以下函数调用语句中含有______参数。

excc ((v1,v2),(v2,v3,v4),v6)

A.3

B.4

C.5

D.6

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

14.第17题

以下程序的输出结果是______。

main()

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1 },*p=&x[1][1];

for(i=0;i<4;i+=2) printf(“%d”,p[i]);

}

A.5 2

B.5 1

C.5 3

D.9 7

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

15.第18题

假定x,y为int类型,则执行以下程序段后x的值为______。

x=1; y=10;

while(x<6)

{ y-=x;

if ( y<x)

break;

x++;

}

A.3

B.4

C.5

D.6

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

16.第19题

若”int i=10;”,则执行下列程序后,变量i的正确结果是______。

switch(i)

{ case 8: i+=1;

case 10: i+=1;

case 1: i+=1;

default: i+=1;

}

A.10

B.11

C.12

D.13

标准答案:D

您的答案:

题目分数:1.0

此题得分:0.0

17.第20题

写出下列程序的运行结果_______。

main()

{ int a[]={2,4,6},*pr=&a[0],x=6,y,z;

for(y=0;y<4;y++)

z=(*(pr+y)<x)?*(pr+y):x;

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

}

A.6

B.0

C.4

D.2

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

18.第21题

下面程序的输出是_______。

main()

{ int j,a[ ]={1,3,5,7,9,11,13,15},*p=a+5;

for(j=5;j>0;j–)

{ switch (j)

{ case 3:

case 1: *(p++);break;

case 2:*(–p);

default:*p++;

}

}

printf(“%d”,*p);

}

A.14

B.13

C.15

D.12

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

19.第22题

写出下列程序的运行结果_______。

main()

{ int a=3,y;

y=fn(a,a++);

printf(“%d”,y);

}

int fn(x,c)

int x,c;

{int b;

if(x<c) b=1;

else if(x==c) b=0;

else b=-1;

return(b);

}

A.3

B.-1

C.1

D.0

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

20.第23题

在下列符号中,不属于转义字符的是_______。

A.\

B.\x12

C.\013

D.\05

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

21.第25题

以下程序的运行结果是______。

# include “stdio.h”

main()

{ int a=1,b=2,c;

c=max(a,b);

printf(“max is %d\n”,c);

}

max(int x,int y)

{ int z;

z=(x>y)?x:y;

return(z);

}

A.2

B.MAXIS2

C.max is 2

D.maxis2

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

22.第26题

下面程序段的输出结果为:_______。

int p=2;

main()

{ int s,j,sum( );

for(j=0;j<=5;j++)s=sum(j);

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

}

int sum(int k)

{ static int x=1;int y=1;

p++;y++;

return(x+=k+p+y);

}

A.s=67

B.s=61

C.s=63

D.s=56

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

23.第27题

如果函数定义时,形式参数是实型变量,则调用该函数时,实际参数不可以是______。

A.实型常量

B.字符型变量

C.实型表达式

D.指向实型变量的指针变量前面加“*”

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

24.第28题

以下程序的输出结果是______。

main()

{ union { char i[2]; int k ; } r;

r.i[0]=2; r.i[1]=0;

r.k=r.i[0]+r.i[1]*2;

printf (“%d\n”,r.k);

}

A.2

B.1

C.0

D.不确定

标准答案:A

您的答案:

题目分数:1.0

此题得分:0.0

25.第29题

设有下列定义

static int x,*p=&x,*q;

q=p;scanf(“%d,%d”,p,q);

若输入”3,4″则x的值为______。

A.3

B.4

C.0

D.无法确定

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

26.第30题

下列程序运行结果是______。

swap( int *pt1,int * pt2)

{ int p;

p=*pt1;*pt1=*pt2; *pt2=p;

}

main()

{ int a=5,b=7,*p1,*p2;

p1=&a; p2=&b;

swap(p1,p2);

printf(“*p1=%d, * p2=%d\n”, *p1,*p2);

printf(“a=%d,b=%d\n”,a,b);

}

A.*p1=7,*p2=5,a=5,b=7

B.*p1=7,*p2=5 a=7,b=5

C.*p1=7*p2=5 a=7b=5

D.*p1=5,*p2=7, a=7,b=5

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

27.第31题

以下程序的输出结果是______。

int a=1;

fun(int k)

{ static int a=5;

a+=k; printf(“%d”,a);

return(a);

}

main()

{ int b=3; printf(“%d\n” ,fun(b+fun(a)));}

A.6 9 9

B.6 6 9

C.6 15 15

D.6 6 15

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

28.第32题

以下程序的运行结果是______。

void prt(x,y,z)

int *x,*y,*z;

{ printf (“%d,%d,%d\n”,++*x,++*y,*(z++)); }

int a=12,b=20,c=30;

main()

{ prt(&a,&b,&c);

prt (&a,&b,&c);

}

A.21,13,30 14,21,30

B.13,21,30 14,22,30

C.13,21,30 14,21,30

D.30,21,13 14,22,30

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

29.第33题

定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是______。

for(i=0;i<3;i++) printf(“%d”,x[i][2-1]);

A.1 5 9

B.1 4 7

C.2 5 8

D.3 6 9

标准答案:C

您的答案:

题目分数:1.0

此题得分:0.0

30.第34题

如果在用户的程序中使用C语言库函数中的数学函数时,应在该源文件中使用的include命令是_______。

A.# include ” string.h”

B.# include ” math.h”

C.#include” stype.h”

D.# include” stdio.h”

标准答案:B

您的答案:

题目分数:1.0

此题得分:0.0

31.第1题

有定义 int b[7]={3,1,2},则b[5]的值为______。

标准答案:0

您的答案:

题目分数:2.0

此题得分:0.0

32.第2题

以下程序将一个名为f1.dat的文件复制到一个名为f2.dat的文件中。请填入正确答案。

# include “stdio.h”

main()

{ char c ; file *fp1, *fp2;

fp1=fopen(“f1.dat , ___________);

fp2=fopen(“f2.dat , __________);

c=getc(fp1);

while (c!=eof)

{ __________(c,fp2); c=fgetc(fp1); }

fclose (fp1);

fclose (fp2);

return;

}

标准答案:

” r”

” w”

fputc

您的答案:

题目分数:2.0

此题得分:0.0

33.第24题

设有说明 char str[20],如果想从终端上把以下字符” This is a book.” 送到数组str中,使用的完整语句为______。

标准答案:gets(str);

您的答案:

题目分数:2.0

此题得分:0.0

34.第35题

若有以下定义语句: int a[4]={0,1,2,3},*p;p=& a[1];则++(*p)的值是______。

标准答案:2

您的答案:

题目分数:2.0

此题得分:0.0

35.第38题

下列程序段的循环次数______。

n=0;i=7;

do

n=2*n+1;

while (n<=i);

标准答案:

4

您的答案:

题目分数:2.0

此题得分:0.0

36.第36题

下列程序中,函数fun()的功能是求出一下分数序列的前n项之和。

1/2,2/3,3/5,5/8,8/13,13/21,…..之和通过函数值返回main()函数。例如,若n的值为5,则应输出3.007051。

请修改程序中的错误,使它能计算出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

行1: # include”stdio.h”

行2:double fun(int t)

行3: { int i;

行4: double n,s,a,b,c;

行5: s=1;

行6: a=1;b=2;

行7: for(i=0;i

行8: { n=a/b;

行9: s=s+n;

行10: c=a+b;

行11: b=a;

行12: a=c;

行13: }

行14: return s;

行15: }

main()

{ int n;

printf(“Enter n:”);scanf(“%d”,&n);

printf(“\n The result :%f \n”,fun(n));

}

标准答案:

行11: b=a; 错,应改为 a=b;。

行12: a=c; 错,应改为 b=c;。

您的答案:

题目分数:15.0

此题得分:0.0

37.第39题

下列程序中,函数fun()的功能是:计算并输出k以内最大的10个能被13和17整除的自然数之和。K的值由主函数传入,若k的值为500,则函数值为4622.

请修改程序中的错误,使它能计算出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

行1: # include”stdio.h”

行2: # include”conio.h”

行3:int fun(int k)

行4: {int m=0,mc=0,j;

行5: while((k>=2)&&(mc<10))

行6:  { if ((k%13=0)||(k%17=0))

行7: {m=m+k;mc++;}

行8: k–;

行9: }

行10: return m

行11: }

main()

{printf (“%d\n”,fun (500));}

标准答案:

行6: if((k%13=0)||(k%17=0)) 错, 应改为 if ((k%13==0)||(k%17==0))。

行10: return m 错, 应改为 return m; 。

您的答案:

题目分数:15.0

此题得分:0.0

38.第3题

编写函数 int fun( int n),它的功能是判断整数n是否是同构数。若是同构数。函数返回1,否则返回0.

所谓“同构数”是指这样的数,它出现在它的平均数的右边。

例如:输入整数6,5的平方是25,5是25中右侧的数,所以5是同构数。

n的值由主函数从键盘输入,要求不大于100.

注意:部分源程序给出如下。

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

试题程序:

#include”conio.h”

#include”stdio.h”

int fun(int x)

{/*请在此处编程*/

}

main()

{ int x,y;

printf(“\n please enter a integer numbers:”);

scanf(“%d”,&x);

if (x>100){ printf(“data error!\n”); exit(0); }

y=fun(x);if(y) printf(“%d YES\n”,x);

else printf(“%d NO!n”,x);

标准答案:

int y;

y=x*x;

if(x==(y%10))return 1;

else return 0;

您的答案:

题目分数:15.0

此题得分:0.0

39.第37题

编写函数 int fun( int lim,int aa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。

注意:部分源程序给出如下。

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

试题程序:

#include

#include

int fun(int lim,int a[100])

{/*请在此处编程*/

}

main()

{ int limit,i,sum;

int a[100];

scanf(“%d”,&limit);sum=fun(limit,a);

for(i=0;i

{ if (i%10==0&&i!=0) printf(“\n”);

printf(“%5d”,a[i]);

}

}

标准答案:

int i,j,k=0,flag;

for(i=2;i

{flag =1;

for(j=2;j<=i/2;j++)

if(i%j==0) flag=0;

if (flag) a[k++]=i;

}

return(k);

您的答案:

题目分数:15.0

此题得分:0.0

备注 时间:2017-11-21 18:07 我的阅读日志 开来之家

更多文章请关注:开来之家,读一则小故事,悟一份人生哲理,读一年小故事,成一个人生智者。

You may also like...

发表回复