C语言参考答案.doc_第1页
C语言参考答案.doc_第2页
C语言参考答案.doc_第3页
C语言参考答案.doc_第4页
C语言参考答案.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计教程课后题参考答案习题121-1 填空题21-2 思考题21-3 编程题2习题232-1 单选题32-2 思考题3习题343-1单选题43-2填空题43-3 编程题4习题464-1单选题64-2填空题64-3 编程题6习题595-1单选题95-2填空题95-3 编程题9习题6126-1单选题126-2填空题126-3 编程题12习题7147-1单选题147-2填空题147-3 编程题14习题8158-1单选题158-2填空题158-3 编程题15习题9189-1单选题189-2填空题189-3 编程题18习题102210-1单选题2210-2填空题2210-3 编程题22习题112411-1单选题2411-2填空题24习题122512-1单选题2512-2 填空题25习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5., 6.顺序结构,选择结构,循环结构7.c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.略1-3 编程题1. #include “stdio.h”ain() float a=10, b=20, h=5, s; s=(a+b)*h/2; printf(“s=%f ” , s ); 2. #include “stdio.h”main() printf(“*”);printf(“* hello world *”);printf(“*”);习题22-1 单选题15 DBDCA 610 DCABA 1112 CA2-2 思考题12.00000021,0.539,2465100,d6(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1单选题1-5BDABC 6-10ADCAC 11-12BB3-2填空题1.32.02613.0x104.2, 1 互换a,b的值5.6.66.0037.5.0,4,c=38.i=10,j=209.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432 (6) 5.86400e+02 (7) 3.14160e+00 (8) 3.1416 (9) 8765 (10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. #include “stdio.h”main() int x, y ; scanf(“%d%d” , &x, &y); printf(“x yn”); printf(“%4d%4dn”, x, y ); printf(“%4o%4on”, x, y ); printf(“%4x%4xn”, x, y );2. #include “stdio.h”main() char c; scanf(“%c”, &c ); printf(“%c, %c, %cn”, c-1, c, c+1 ); 3.#include “stdio.h”main() int a, a1, a2, a3; scanf(“%d”, &a ); a1=a%10 ; a=a/10; a2=a%10; a=a/10; a3=a%10; printf(“%d%d%dn”, a1, a2, a3); 4.#include “stdio.h”main() double a, b, c, ave; scanf(“%lf%lf%lf”, &a, &b, &c ); ave=(a+b+c)/3 ; printf(“%8.2fn”, ave); 5.#include “stdio.h”main() int a, b, c, t; scanf(“%d%d%d”, &a, &b, &c ); t=a; a=c; c=b ; b=t ; printf(“a=%d, b=%d, c=%dn”, a, b, c ); 习题44-1单选题15 BADAD 610 ACBBB 1112 BA4-2填空题1. 12. (1) a0 | b0 (2) x0 & x=10 (3) a=1.5 & b=1.5 & c=1.5 (4)pa | pb | pb?a:b)c?max:c 5-46175,0,38. (1) (a=0) (2) (b=0)(3) (discc & a+cb & b+ca) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“%f”,area); 2#include “stdio.h”main() int x,y; scanf(“%d,%d”,&x,&y); if (x*x+y*y1000) printf(“%dn”,(x*x+y*y)/100); else printf(“%dn”,x+y);3.#include “stdio.h”main() int x, scanf(“%d”,&x); if(x%3=0 & x%5=0 & x%7=0) printf(“yesn”); else printf(“non”);4#include “stdio.h”#include “math.h” main() float x,y; scanf(“%f”,&x); if(x-2) y=x*x-sin(x); else if (x3000) d=0.15 else if( s=2000) d=0.1; else if(s=1000) d=0.08; else if(s=500) d=0.05; else if(s=250) d=0.02; else d=0 f=p*w*s*(1-d); printf(“%f”,f);习题55-1单选题15 CDABA 610 ABDDB 1114 DBCB5-2填空题12 02333 3(1) i10 (2) j%3!=04. (1) flag*(float)k/(k+1) (2) flag=-flag5(1) max=x (2) x!=-1 (3) scanf(%d, &x)5-3 编程题1. (1).for循环,其他略#include “stdio.h”main() int i; lont s=0; for(i=1;i1e-6)printf(“%f”,s);2.#include “stdio.h”main()int m,n,t,a,b;scanf(“%d,%d”,&m,&n);if (m0;y-)s*=x; printf(”%d,%d,%dn”,s%10,s/10%10,s/100%10);4.#include “stdio.h”main() int x,y,z; for( x=1; x20;x+)for( y=1;y=0 & (5*x+3*y+z/3)-1001e-5) printf(”x=%d,y=%d,z=%dn”,x,y,z);6. (a)#include “stdio.h”main()int j,k; for( j=1;j=4;j+)for(k=1;k=4-j;k+;)printf(” ”);printf(”*”); printf(”n”);(b)#include “stdio.h”main()int j,k; for( j=1;j=4;j+)for(k=1;k=4-j;k+;)printf(” ”); for(k=1;k=2*j-1;k+) printf(”*”); printf(”n”); 6. 例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。main()int i,j,k,n;printf(water flowernumber is:);for(n=100;n=a & ch=z) ch=ch-32;putchar(ch); 2. float expp(int n) int k, fac=1; float sum=0; for(k=1; k=n; k+) fac*=k;sum+=1.0/fac ; return(sum); 3. int xy3( int x, int y) int k, num=1; for(k=1;kaj3(1) r+bk (2) *x8-3 编程题1#define N 10 #include “stdio.h” main() int aN=1,2,3,4,5,6,7,8,9,0,osum=0, qsum=0, j; for(j=0;j10;j+)if( j%2) qsum+=aj;else osum+=aj; printf(“osum=%d,qsum=%dn”, osum,qsum);2. #define N 10#include “stdio.h” main() int aN=10,20,30,40,50,60,70,80,90, j, k, x; scanf(“%d”,&x); for(j=0;jN;j+) if (xj; k-)ak=ak-1; aj=x;for(j=0;jN;j+) printf(“%d”,aj); 3#include “stdio.h”#define M 3main()int aMM=1,2,3,4,5,6,7,8,9,j,sum1=0,sum2=0; for( j=0;jM;j+)sum1+=ajj; sum2+=ajM-(j+1);printf(“%d,%dn”,sum1,sum2);4. #define M 3#include “stdio.h”main()int aMM=1,2,3,2,4,5,3,5,6,j,k,flag=1; for( j=0;jM;j+)for(k=0;kM;k+)if (ajk!=akj) flag=0; break;if (flag) printf(“ok”);else printf(”NO”);5#include “stdio.h”#include “string.h”main() char c110,c210,j; gets(c1);gets(c2); for(j=0; (c1j=c2j) & c1j & c2j; j+);printf(“%dn”,c1j-c2j);6.#include “stdio.h” #include ”string.h” #define M 3 #define N 80 main() char aMN,j,k,n5=0; for( j=0;jM;j+) gets(aj); for(j=0;j=A & ajk=a & ajk=0 & ajk=9) n3+; else if (ajk= ) n4+; elsen5+;for(j=0;jn2) swap(pointer1,pointer2);if(n1n3) swap(pointer1,pointer3);if(n2n3) swap(pointer2,pointer3);printf(the sorted numbers are:%d,%d,%dn,n1,n2,n3);swap(p1,p2)int *p1,*p2;int p;p=*p1;*p1=*p2;*p2=p;2. 编写函数,得到两个整数相除的商和余数。要求通过指针在函数间传递商和余数这两个数据。 #include “stdio.h”main() int a,b,d;float c;void fun(int a,int b,float *c, int *d) scanf(“%d,%d“,&a,&b); fun(a,b,&c,&d);printf(“%f%d”,c,d);void fun(int a,int b,float *c, int *d) if (b) *c=(float)a/b; *d=a%b;3. 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。编写三个函数:输入10个数;进行处理;输出10个数。#include “stdio.h”main()void input (int *); void output (int *); void chuli (int *); int a10; input(a); chuli(a); output(a);void input(int *a) int j; for(j=0;j10;j+) scanf(”%d”, a+j); void chuli(int *a)int j,minl=0,maxl=0; for(j=0;j10;j+) if(amaxl*(a+j) minl=j; j=a0; a0=aminl;aminl=j; j=a9;a9=amaxl;amaxl=j; void output(int *a)int j; for(j=0;j10;j+)printf(”%d”, *(a+i);4按下列要求输入和输出下列数据阵列: 输入阵列如下: 1 2 3 4 5 6 7 8 9 10 11 12 输出阵列如下: 12 11 10 9 8 7 6 5 4 3 2 1# define M 3#define N 4#include “stdio.h”main() int aMN=1,2,3,4,5,6,7,8,9,10,11,12,k,j,*p=a,t; for(k=0,j=M*N-1;kj;k+,j-) t=*(p+k); *(p+k)=*(p+j); *(p+j)=t;for (k=0;kM;k+)for(j=0;jN;j+) printf(%4d ,akj);printf(“n”);5.写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。#include “stdio.h”#include “string.h”main()int len;char *str20;printf(please input a string:n);scanf(%s,str);len=length(str);printf(the string has %d characters.,len);length(p)char *p;int n;n=0;while(*p!=0)n+;p+;return n;6. 请编写一个程序,运行时输出命令行参数的个数及参数名。#include “stdio.h”main(int argc,char *argv) int k; printf(“argc=%d”,argc); for (k=1;kargc; k+) printf(“%s”,argvk);7. 用指针数组操作将输入的八个字符串按由小到大的顺序。#include “string.h”#include “stdio.h”main()char *str18,ch820,k; void sort(char *);for(k=0;k8;k+)str1k=chk;gets(str1k);sort(str1);for(k=0;k8;k+)puts(str1k);void sort(char *str1) int k,j,t;char *c;for(k=0;k7;k+) t=k; for(j=k+1;j0) t=j; c=*(str1+t); *(str1+t)=*(str1+k); *(str1+k)=c; 习题1010-1单选题1-5CDBBB 6-10BBBAD 11-15CCBDC 10-2填空题1.所有结构体成员所占存储空间的总和2.与占用存储空间最大的那个成员相等3. (1) 结构体(2) 3(3) sa.a(4) 9(5) psa=&sa4.805.struct node6.010-3 编程题1.#include “stdio.h”struct student long num; char name20; char sex; float score;main

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论