C语言程序设计学习指导第二版 答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计2答案”。
第一章
一、1.C 2.B 3.C 4.C 5.D 6.A 7.B 8.C 9.A 10.D 11.B 12.C 13.A 14.D 15.B 16.B
第二章
一、1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.B
第三章
一、1.D 2.C 3.A 4.C 5.A 6.C 7.C 8.D 9.A 10.D 11.A13.C 14.C 15.A 16.B 17.A 18.A 19.C 20.A 21.B 22.D 23.B 24.B 25.D 26.D 27.C 28.C
第四章
一、1.B 2.C 3.D 4.D 5.D 6.C 7.B 8.D 9.C 10.D 11.B 12.A 13.C 14.C 15.B 16.AB 17.D
二、1.double fun(int m){ double y=0;y=sin(m)*10;return(y);} 2.float fun(float h){return(long)(h * 100 + 0.5)/ 100.0;}
3.double fun(double m){ float n;n=(5.0/9.0)*(m-32);return n;}
4.char fun(char c){c=c+32;return c;}
(14 6f)12.B 第五章
一、1.D 2.C 3.C 4.C 5.A 6.A 7.C 8.A 9.B 10.B 11.A 12.B 13.C 14.C 15.D 16.A 17.D 18.A 19.A 20.A 21.B 22.D 23.C 24.B 25.D
二、1.int fun(int n){ int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return 1;else return 0;} 2.float fun(float x){float y;if(x=0 && x10)z=exp(x);else if(x>-3)z=log(x+3);else z=sin(x)/(cos(x)+4);return(z);} 4.int fun(int x){ int k;k=x*x;if((k%10==x)||(k%100==x))return 1;else return 0;}
第六章
一、1.C 2.C 3.D 4.B 5.C 6.A 7.A 8.A 9.D 10.A 11.D 12.C 13.C 14.C 15.C 16.A 17.A 18.B 19.A 20.D 21.B 22.C 23.C 24.D 25.B 26.B 27.C 28.A
二、1.位置 1:r!=0 【或】 0!=r 【或】 r 位置 2:r=m%n 【或】 r=m-m/n*n 位置 3:n 位置 4:gcd,lcm 【或】 n,lcm 2.位置 1:k=0 位置 2:n%10 【或】 n-n/10*10 【或】 n-10*(n/10)位置 3:while(n>0)【或】 while(0=i 【或】 300>i 位置 3:i%7==0||i%17==0 【或】!(i%7)||!(i%17)【或】!(i%17)||!(i%7)【或】!(i%7&&i%17)【或】 i%17==0||i%7==0 位置 4:n%5==0 【或】!(n%5)【或】 n/5*5==n 5.位置 1:s=0 位置 2:i+=2 【或】 i=i+2 【或】 i=2+i 【或】 i++,i++ 位置 3:j=j 【或】 jj 【或】 jj 位置 4:f=f*j 【或】 f=j*f
三、1.位置 1:#include “math.h” 【或】 #include 位置 2:float s=0,t=1,p=1;【或】 float s=0,p=1,t=1;【或】 float p=1,s=0,t=1;【或】 float p=1,t=1,s=0;【或】 float t=1,p=1,s=0;【或】 float t=1,s=0,p=1;位置 3:while(fabs(t)>1e-4)【或】 while(0.00010.0001)位置 4:printf(“pi=%fn”,s*4);【或】 printf(“pi=%fn”,4*s);2.位置 1:printf(“%8.0f”,f1);【或】 printf(“%f”,f1);【或】 printf(“%8f”,f1);位置 2:for(i=1;ii;i++)【或】 for(i=2;i=i;i++)【或】 for(i=1;i=i;i++)位置 3:f1=f2;位置 4:f2=f3;3.位置 1:long k=1;位置 2: scanf(“%ld”,&n);位置 3: n/=10;【或】 n=n/10;4.位置 1:scanf(“%d”,&n);位置 2:for(i=1;i=i;i++)【或】 for(i=1;ii;i++)位置 3:s+=1.0/t;【或】 s=s+1.0/(float)t;【或】 s=1.0/(float)t+s;【或】 s=s+1.0/t;【或】 s=1.0/t+s;【或】 s+=1.0/(float)t;【或】 s+=1.0/(double)t;【或】 s=s+1.0/(double)t;【或】 s=1.0/(double)t+s;5.位置 1:sum=1.0;【或】 sum=1;位置 2:s2=1.0;【或】 s2=1;位置 3:for(k=4;k=k;k++)【或】 for(k=4;kk;k++)【或】 for(k=4;1+n>k;k++)6.位置 1:t=1;【或】 t=1.0;位置 2:t=t*j;【或】 t=j*t;【或】 t*=j;位置 3:s=s+t;【或】 s=t+s;【或】 s+=t;位置 4:printf(“jiecheng=%fn”,s);
四、1.int fun(int n){ int d,s=0;while(n>0){d=n%10;s+=d*d*d;n/=10;} return s;} 2.int fun(int n){ int i,s=0;for(i=2;i 0){ s = s/100;t = s%10*sl + t;sl = sl * 10;} } 8.double fun(int n){ double m=1.0;int i;double p=1.0;for(i=1;im){ m=x1+x2;x1=x2;x2=m;} return m;}
第七章
一、1.A 2.D 3.C 4.B 5.B 6.D 7.B 8.C 9.B 10.B 11.D 12.B 13.B 14.A 15.C 16.A 17.C 18.A 19.B 20.C 21.D 22.A 23.A 24.D 25.A 26.D 27.A 28.D 29.B 30.C 31.A 32.D 33.D 34.C 35.A 36.B 37.C 38.A 39.A 40.B 41.D 42.B 43.A 44.C 45.A
二、1.位置 1: break;位置2:i-1;位置3:c;2.位置1:sqrt(n)【或】n/2【或】n-1 位置2:n%i==0 位置3:k/10 位置4:prime_pal(j)3.位置1:nn 位置2:sqrt(high)【或】high/2 位置3:high%j == 0【或】!(high%j)位置4:return sum【或】return(sum)4.位置 1:k=0 位置 2:j=m%10 【或】 j=m-m/10*10 【或】 j=m-10*(m/10)位置 3:return(1)位置 4:fun(i)
三、1.位置1:scanf(“%d”,&n);位置2:double fun(int n)位置3:for(i=1;i=i;i++)【或】for(i=1;ii;i++)位置4:s+=1.0/t;【或】s= s + 1.0 /(float)t;【或】s= s + 1.0 /t;【或】s+=1.0/(float)t【或】s+=1.0/(double)t;【或】s= s + 1.0 /(double)t;2.位置1:for(k=2;kk;k++)【或】for(k=2;kk;k++)【或】for(k=2;k=k;k++)位置2:if(i%k == 0)break;【或】if(!(i%k))break;位置3:if(i=i)【或】if(k == i)【或】if(k>=i/2)【或】if(k=i/2)【或】if(k>sqrt(i))位置4:return i;【或】return(i);3.位置1:printf(“%8.0f”,f1);【或】printf(“%f”,f1);【或】printf(“%8f”,f1);位置2:for(i=1;ii;i++)【或】for(i=2;i=i;i++)【或】for(i=1;i=i;i++)位置3:f1=f2;位置4:f2=f3;4.位置 1:void fun(int *a,int *b)【或】 fun(int *a,int *b)位置 2:t=*a;位置 3:*a=*b;位置 4:*b=t;5.位置 1:for(i=1;i=i;i++)【或】 for(i=1;ii;i++)位置 2:s=s+fac(i);【或】 s=fac(i)+s;【或】 s+=fac(i);位置 3:float y=1.0;【或】 float y=1;位置 4:return y;【或】 return(y);6.位置 1:int fun(int m)【或】 fun(int m)位置 2:for(i=2;ii;i++)【或】 for(i=2;i=i;i++)位置 3:if(m%i==0)k=0;【或】 if(0==m%i)k=0;位置 4:return k;7.位置 1:for(i=2;i=i;i++)【或】 for(i=2;ii;i++)【或】 for(i=2;1+m>i;i++)位置 2:y-=1.0/(i*i);【或】 y=y-1.0/(i*i);【或】 y-=1.0/(float)(i*i);【或】 y=y-1.0/(float)(i*i);【或】 y=y-1.0/i/i;【或】 y=y-1.0/(float)i/(float)i;【或】 y=y-1/(double)(i*i);【或】 y-=1/(double)(i*i);位置 3:return y;【或】 return(y);8.位置 1:while((2=2)&&(mcmc))【或】 while((k>=2)&&(10>mc))【或】 while((mc=2))【或】 while((10>mc)&&(2mc)&&(k>=2))位置 2:if(!(k%17!=0||k%13!=0))【或】 if(!(k%13!=0||k%17!=0))【或】 if(k%13==0||k%17==0)【或】 if(k%17==0||k%13==0)位置 3:k--;【或】 k=k-1;【或】 k-=1;位置 4:return m;【或】 return(m);
四、1.int fun(int n){ int i,k;for(i=n+1;;i++){ for(k=2;k0.000001){x0=x1;x1=cos(x0);} return((float)x0);}
第八章
一、1.B 2.D 3.D 4.A 5.B 6.A 7.C 8.B 9.D 10.A 11.A 12.C 13.AB 14.D 15.A 16.B 17.D 18.B 19.D 20.A 21.D 22.B 23.B 24.D 25.D 26.C 27.D 28.D
二、1.位置1:t=a[5];【或】t=a[5] 位置2:a[i]=a[i-1];【或】a[i]=a[i-1] 2.位置1:i+1【或】1+i 位置2:a[j]a[j]【或】a[min_loc]>=a[j] 位置3:i!=min_loc【或】min_loc!=i 3.位置1:max=a[0] 位置2:max=a[j] 4.位置1:&a[i]【或】a+i 位置2:a[i]==x【或】x==a[i] 位置3:!=【或】a[j+1]【或】a[j+1]x[0] 7.位置1:high=mid-1: 位置2:low=mid+1: 位置3:a,m 8.位置 1:a[i][i]=1 位置 2:i 位置 3:a[i-1][j]+a[i-1][j-1] 【或】 a[i-1][j-1]+a[i-1][j] 位置 4:j=j 【或】 jj 【或】 j-1j-1 9.位置 1:i==j||i+j==6 【或】 j==i||i+j==6 【或】 i==j||j+i==6 【或】 j==i||j+i==6 【或】 i==j||6==i+j 【或】 j==i||6==i+j 【或】 i==j||6==j+i 【或】 j==i||6==j+i 位置 2:a[i][j]=2 位置 3:i6 【或】 j>i&&i+j>6 【或】 i6 【或】 j>i&&j+i>6 【或】 ii&&6i&&6
三、1.位置1:#include 位置2:printf(“%3d”,*(num+i));位置3:while(low=0;i--)【或】for(i=N-2;0x[j+1])位置3:sort(a,n);位置4:for(i=0;i
四、1.void fun(int n,int a[]){ int i=3;while(n!=0){ a[i--]=n%10;n=n/10;} } 2.int fun(int a[M][M]){ int s=0;int i,j;for(i=0;iamax)amax=a[i];return amax;} 9.void fun(int array[3][3]){ int i,j;int b[3][3];for(i=0;i
for(i=0;i
a[i][j]*=n;} 11.void fun(int arr[],int n){int i,t;for(i=0;i
w[j-1]=w[j];} w[n-1]=ch;}} 15.double fun(int w[][N]){ int i,j,count=0;double average,sum=0.0;for(i=0;i
第九章
一、1.B 2.A 3.C 4.D 5.A 6.B 7.B 8.D 9.D 10.C 11.A 12.C 13.C 14.D 15.A 16.B 17.C 18.D 19.B 20.A 21.C 22.D 23.D 24.D 25.D(题目修改为能进行交换)26.A 27.A 28.B 29.B 30.B 31.B 32.B 33.C 34.A 35.C 36.B 37.A
二、1.位置 1:fun(char *p)【或】 fun(char p[])【或】 void fun(char p[])【或】 void fun(char *p)位置 2:while(*p!=' ')【或】 while(*p)位置 3:k=1;位置 4:p++;【或】 p=1+p;【或】 ++p;【或】 p=p+1;【或】 p+=1;2.位置 1:int fun(int *a,int *b,int n)位置 2:*b=c-a;位置 3:scanf(“%d”,&a[i]);【或】 scanf(“%d”, a + i);位置 4:max=fun(a,&p,N);3.位置 1:scanf(“%d”,p★++);【或】 scanf(“%d”,arr[i]);【或】 scanf(“%d”,p+i);【或】 scanf(“%d”,arr+i);位置 2:if(*p>*max)【或】 if(*maxi;i++)【或】 for(p=arr;p=i;i++)【或】 for(p=arr;p=p;)
三、1.int fun(int *s, int t, int *k){ int max_integer=0;int i=0;max_integer = s[0];for(i=0;i
if(max_integer
max_integer=s[i];
*k=i;
}
} return *k;} 2.float fun(float *a,int n){ int i;float average;double sum=0;for(i=0;ipp[k]){x=pp[i];pp[i]=pp[j];pp[j]=x;} } 4.void fun(char(*s)[N], char *b)
{ int x,y;for(x=0;x
b[x*M+y]=*(s[y]+x);}
第十章
一、1.B 2.B 3.C 4.C 5.A 6.B 7.C 8.D 9.B 10.C 11.C 12.A 13.C 14.C 15.D 16.B 17.D 18.C 19.B 20.B 21.B 22.B 23.C 24.C 25.D 26.B 27.C 28.C 29.D 30.D 31.A 32.D 33.D 34.A 35.C 36.C 37.C
二、1.位置1:!(*p==' '&& *q==' ')【或】*p!=' '|| *q!=' '【或】!(*p==0&& *q==0)【或】*p!=0|| *q!=0【或】*p|| *q【或】!(*p&& *q')位置2:*p*p【或】*q>=*p 位置3:k++【或】++k【或】k=k+1 2.位置 1:p1=str1+m 【或】 p1=m+str1 位置 2:*p2++=*p1++ 【或】 *(p2++)=*(p1++)【或】 *p2=*p1,p2++,p1++ 【或】*p2=*p1++,p2++ 【或】 *p2++=*p1,p1++ 位置 3:*p2=' ' 【或】 *p2=0 【或】 *p2=NULL 位置 4:strcopy(str1,str2,m)3.位置 1:j=strlen(s1)【或】 for(j=0;s1[j]!='10';j++);【或】 for(j=0;s1[j];j++);位置 2:s2[i]!= 【或】 *(s2+i)!= 【或】 *(i+s2)!= 位置 3:' ' 【或】 NULL 【或】 0 位置 4:JOIN(str1,str2)4.位置 1:str1 位置 2:ii【或】 i=i 位置 3:str2[i]=str1[i]【或】*(str2+i)=*(str1+i)【或】*(str2+i)=str1[i]【或】str2[i]=*(str1+i)位置 4:str2[n]=' '【或】str2[i]=' '【或】str2[n]=0【或】str2[i]=0【或】 *(str2+n)=' ' 【或】*(str2+i)=' '【或】*(str+n)=0【或】*(str2+i)=0 5.位置 1:str 位置 2:str[i]!=' '【或】str[i]!=NULL【或】str[i]!=0【或】str[i] 位置 3:str[k]=str[i]【或】 *(str+k)=*(str+i)【或】str[k]=*(str+i)【或】*(str+k)=str[i] 位置 4:str[k]=' '【或】*(str+k)=' '【或】 str[k]=NULL 【或】 str[k]=0 【或】 *(str+k)=0 【或】 *(str+k)=NULL
三、1.位置1:void fun(char s[],char t[])【或】void fun(char *s,char *t)位置2:d = strlen(s);位置3:for(i = 0;ii;i++)【或】for(i = 0;i=i;i++)位置4:t[ 2 * d ] = ' ';【或】t[ i + d ] = ' ';【或】t[ i + d ] =NULL;【或】t[ 2 * d ] = NULL;【或】t[ 2 * d ] = 0;【或】t[ i + d ] = 0;2.位置1:#include “stdio.h” 位置2:char s[6]={' '};【或】char s[6]=“ ”;【或】char s[6]={0};位置3:s[i]=n%10+48;【或】s[i]=n%10+'0';位置4:changdg(n);3.位置 1:char fun(char *c)位置 2:return *c;【或】 return(*c);【或】 return(*c);位置 3:char s[81],*p=s;位置 4:putchar(*p);【或】 printf(“%c”,*p);
四、1.int i;for(i=0;str[i]!=' ';i++)if(str[i]>='a' && str[i]='A'&&c[i]='a'&&c[i]='0'&&c[i]
num=num+1;else if(c[i]==' ')
b=b+1;
else
other=other+1;} 8.int fun(char *str,char *substr){int i,n=0;for(i=0;i0;i--){ s[2*i]=s[i];s[2*i-1]=' ';} len=strlen(s);s[len]=' ';} 10.long fun(char *p){long n=0;int flag=0;while(*p!=' '){ if(*p=='-')flag=1;else if(*p=='+')flag=0;else n=n*10+(*p-'0');p++;} if(flag==1)n=-n;return n;} 11.void fun(char *s,char t[]){ int i,slenth,n=0;slenth=strlen(s);for(i=1;i
for(j=0;*(a[i]+j);j++)
{
*(b+d)=*(a[i]+j);
d++;
} } 14.int fun(char *s){int i=1,j=0;while(*s){ if((i==1)&&(*s!=32)){j++;i=0;} if(*s==32)i=1;s++;} return j;} 15.int fun(char *ptr){int i,j;for(i=0,j=0;*(ptr+i)!=' ';i++)if(*(ptr+i)='a'||*(ptr+i)='A'){*(ptr+j)=*(ptr+i);j++;} *(ptr+j)=' ';return(j);} 16.void fun(char(*a)[81],int num,char **max){int i;*max=a[0];for(i=1;istrlen(*max))*max=a[i];}
第十一章
一、1.C 2.D 3.C 4.B 5.B 6.A 7.C 8.B 9.C 10.B 11.A 12.C 13.A 14.C 15.A 16.B 17.A 18.C 19.A 20.D 21.C 22.C 23.C 24.D 25.D 26.B 27.C 28.B 29.D 30.C 31.A 32.D 33.C 34.A(基于sizeof(int)=2)35.C 36.A
二、1.位置1:ipu[k].grade 3.位置1:NULL 位置2:i++ 位置3:p2->next 位置4:p1 4.位置1:q->next 位置2:head->next 5.位置1: m->data!=x 位置2:m==NULL 位置3:free(m)6.位置1:q->next 位置2:new
三、1.int fun(STREC *a,STREC *b){ int i,j=0,max,k,f=0;max=(*a).s;for(i=1;imax)max=a[i].s;/*从所有的学生数据中找出最高的分值*/ for(i=0;inext;max=c->s;while(c->next!=0){c=c->next;if(maxs)max=c->s;} return max;} 6.double fun(STREC *h){ STREC *p;double aver=0;p=h->next;while(p!=0){aver=aver+p->s;p=p->next;} aver=aver/N;return aver;} 第十二章
一、1.D 2.A 3.D 4.B 5.A 6.B 7.D 8.C 9.A 10.D 11.C 12.D 13.D 14.A 15.D 16.B 17.B 18.C 19.D 20.C 21.D 22.C 23.D 24.C 25.B 26.A 27.D 28.D 29.C
二、1.位置 1:n=strlen(str)【或】 for(n=0;str[n]!=' ';n++)【或】 for(n=0;str[n];n++)【或】 for(n=0;str[n]!=0;n++)位置 2:ii 【或】 ii 【或】-1+n>i 【或】 i=i 【或】-1+n>=i 位置 3:str[j]>str[j+1]【或】str[j]>str[1+j]【或】 str[j+1]