C教材习题答案新版14.docx
《C教材习题答案新版14.docx》由会员分享,可在线阅读,更多相关《C教材习题答案新版14.docx(10页珍藏版)》请在冰豆网上搜索。
![C教材习题答案新版14.docx](https://file1.bdocx.com/fileroot1/2023-2/1/0cfd8323-bb8a-4623-bf11-682092dd5954/0cfd8323-bb8a-4623-bf11-682092dd59541.gif)
C教材习题答案新版14
C教材习题答案
第1部分:
1、选择题
1
2
3
4
5
6
7
8
9
10
C
A
B
C
C
C
B
D
A
D
11
12
13
14
15
16
17
18
19
20
D
B
B
D
D
C
D
D
C
A
21
22
23
24
25
D
C
B
D
D
2、填空题
1)m的值是-1,j的值是4。
2)46,22,56。
3)2.500000(%*/是同一级)。
4)9,11,9,10。
5)200。
6) 15
7)7end。
8)6。
9)n=(int)(sales/10000);
10)break;
11)sum==k
12)j%3!
=0或j%3
13)k=1
14)2581114
15)
main()
{
intn,i;
printf("\npleaseinputanumber:
\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!
=i)
{
if(n%i==0)
{printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d",n);
}
16)
main()
{
intday,x1,x2;
day=10;
x2=1;
while(day>1)
{x1=(x2+1)*2;/*前一天的桃子数是当天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("thetotalis%d\n",x1);
}
第2部分数组
1、选择题
1
2
3
4
5
6
7
8
9
10
D
C
C
C
B
D
C
C
B
B
11
12
13
14
15
16
17
18
19
20
D
D
A
B
C
B
A
A
B
B
21
22
23
24
25
26
27
28
29
30
C
A
C
D
C
B
B
C
B
C
31
32
33
B
C
D
2、填空题
1)2,1,0。
2)357。
3)ann。
4)5
5)143258769
6)a[1,1]=2a[2,2]=3a[3,3]=2。
8)j=0
found=0
found==0
9)
#include"stdlib.h"
main()
{
inta[4][5],i,j,sum;
randomize();
clrscr();
for(i=0;i<4;i++)
{sum=0;
for(j=0;j<5;j++)
{a[i][j]=random(9)+1;
sum=sum+a[i][j];/*求各行和*/
printf("%5d",a[i][j]);
}
printf("本行和:
%3d\n",sum);
}
printf("每列和为:
\n");
for(j=0;j<5;j++)
{sum=0;
for(i=0;i<4;i++)
sum=sum+a[i][j];/*求各列和*/
printf("%5d",sum);
}
printf("\n");
}
10)
main()
{inta[16];intb[10]={0};
inti,k;
printf("input16number:
");
for(i=0;i<16;i++)
scanf("%d",&a[i]);
for(i=0;i<16;i++)
{k=a[i];
do{b[k%10]++;k=k/10;
}while(k>0);
}
for(i=0;i<10;i++)
printf("%4d",i);
printf("\n");
for(i=0;i<10;i++)
printf("%4d",b[i]);
}
第3部分函数和预处理命令
1、选择题
1
2
3
4
5
6
7
8
9
10
D
D
C
A
A
D
A
C
C
B
11
12
13
14
15
16
17
18
19
20
C
B
D
C
C
A
D
D
A
C
21
22
23
24
25
26
27
28
29
30
B
A
C
D
A
D
2、填空题
1)编译时
2)9。
3)3。
4)值
地址
5)外部变量。
6)Z(4)的值为6。
7)x=50、y=500、z=0。
8)doublemax
9)12。
10)abc+abc=defdef。
11)/i
s;
12)n<0
invert(n);
n!
=invert(n)
x=x/10
13)m<=100
m-k
yes=0
15)
longfat(intx)
{
if(x==0||x==1)return1;
else
returnx*fat(x-1);
}
main()
{
intm,n,i;
longsum=0;
scanf("%d,%d",&n,&m);
for(i=n+1;i<=n+m;i++)
{
sum=sum+fat(i);
}
printf("%ld\n",sum);
}
第4部分指针
1、选择题
1
2
3
4
5
6
7
8
9
10
B
A
B
C
D
D
D
B
D
A
11
12
13
14
15
16
17
18
19
20
D
A
C
D
B
A
A
C
D
A
21
22
23
24
25
26
27
28
29
30
D
2、填空题
1)1。
2)a=7,b=4,c=1。
3)n1=6,n2=5。
4)-503169。
5)1222。
6)n1=t,n2=u
a=tesustring,b=tesusfg
7)j-i+1;
8)____8_____
___7_____
9)___60____________。
10)
main()
{char*p,s[6];intn;
p=s;
gets(p);
n=0;
while(*(p)!
='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}
11)
#include"string.h"
#include"stdio.h"
main()
{charstr1[20],str2[20],*p1,*p2;
intsum=0;
printf("pleaseinputtwostrings\n");
scanf("%s%s",str1,str2);
p1=str1;p2=str2;
while(*p1!
='\0')
{
if(*p1==*p2)
{while(*p1==*p2&&*p2!
='\0')
{p1++;
p2++;}
}
else
p1++;
if(*p2=='\0')sum++;
p2=str2;
}
printf("%d",sum);
getch();
}
第5部分结构体、共用体和文件
1、选择题
1
2
3
4
5
6
7
8
9
10
C
D
A
B
D
D
B
D高字节在后
A
D
11
12
13
14
15
16
17
18
19
20
A
B
B
D
C
D
C
B
A
B
2、填空题
1)65,A,66,B
2)8
3)a.next=&b;
4)
structlist*next;
5)48。
6)1,2,30,41
7)0:
706,1:
908。
8)stdio.h
9)非零值。
10)__30___
11)n-1。
12)22
13)blue
14)26
15)SunDan20042
16)
#include"stdio.h"
intpalin(longm1,longm2,longx[])
{
longi,j=-1,m,s,n;
intk=0;
for(i=m1;i<=m2;i++)
{
s=0;
n=i;
do
{
s=s*10+n%10;
n=n/10;
}while(n);/*求反序数*/
if(s==i)
{
n=0;m=i;
while(m)
{
m=m/10;
if(m%10!
=i%10&&m%10!
=j)n++;/*回文数中相同数字个数*/
j=m%10;
}
if(n==2)x[k++]=i;/*只有两个相同数字时把回文数存入x数组*/
}
}
returnk;
}
main()
{
inti,n;
longm1=100000,m2=120000,x[80];
FILE*fp;
if((fp=fopen("myf2.out","w"))==NULL)
exit(0);
n=palin(m1,m2,x);
for(i=0;i{printf("%ld,",x[i]);
fprintf(fp,"%ld,",x[i]);
}
printf("\nMystudentnumberis:
08021608\n");
fprintf(fp,"\nMystudentnumberis:
08021608\n");
}