《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