c语言程序设计(何钦铭颜晖著)课后习题答案浙江科学技术出版社.doc

c语言程序设计(何钦铭颜晖著)课后习题答案浙江科学技术出版社.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题参考答案 习题一 1. /*在C 语言中,下列标识符中哪些是合法的,哪些不合法?”*/ 合法:total, _debug, Counter1, begin_ 不合法:LargeTall 2. /*写出流程图,求1~100 中能被6 整除的所有整数之和*/ 3. /*写出源程序,求1~100 中能被6 整除的所有整数之和”。*/ #includestdio.h void main() { int sum=0, i; for(i=1; i=100; i++) if( i%6==0) sum =sum+i; printf(“sum=%d”, sum); } 4. /*画流程图,判别整数 n 是否是素数*/ 习题参考答案 习题十 1. 选择题 (1) A (2) C( 由于p 指向x, 等式 p≡x, *p≡x 成立. 故*p≡x≡p) (3) B(int c[]={1, 7, 12}; ? c[0]=1, c[1]=7, c[2]=12. 而k=c, 即k 指向数组c 的首元素c[0]。printf(“…”, *++k); 输 出参数*(++k)的值是*(k+1), 即c[1] ) (4) D (对字符数组只能在定义的同时赋初值,但不能在定义之后再用‘=’赋值 ) (5) D (*p[3]是由3 个整型指针组成的数组,p 是数组名,代表该数组的基地址,是地址常量,不能对p 赋值,故 A,C 错。*p 代表p[0]这个指针,a[0]是普通整型变量,两者不应互相赋值,故B 错。p[0]=a[0]或p[0]=a,都是正确 的,作用是令p[0]这个指针指向数组a 的首元素a[0]) (6) D ( 指针数组元素 p[3] 是一个指针,指向 a[3*3]=a[9], 即*p[3]==a[9] 而二维数组元素 p[3][2]= *(p[3]+2)=*(a[9]+2)=*(a[11])=a[11]) 2. /*写输出结果*/ (1) 3,2,5 # 3,3,4 # 注: z 是全局变量,它 在p()中有效,但在main()中另有与它同名的局部变量,所以在main()中无效。 main()和p()中分 别定义了各自的局部变量x,y。在void p( int *x, int y)中x 是指针形式,表示按地址传递,则p 中的 *x 就是main()中的 x;另一形参y 是普通变量形式,p 对y 的修改不影响main()中的y 的值。 变量 在函数p()中的取值 在main()中的取值 x 2?3 (++*x) 3(受p()影响) y 3?2(y--) 3 (不受p()影响) z 4?5 (z=*x+y=3+2) 4(不受p()影响) (2) udent 注:s+2=s[2], 当作为printf()中对应“%s”的输出参数时,表示从s[2]开始输出,直到字符串结束) (3) HappyNewYear 注: 1. for(s=pa, n=0; *s!=\0; ++s, ++n); //求字符串pa 的有效长度n, 相当于: n=0; for( s=pa; *s!=’\0’; ++s) ++n; // n=12 2. for(s=pa, i=0; in; putchar(*s++), ++i); // 逐个输出指针s 所指向字符串pa 的各字符,相当于 s=pa; for( i=0; in; i++) { putchar( *s ); s++; //指针后移一位 } (4) our 注: char *st[]={one, two, three,four}; 定义了长度为4 的字符指针数组,如下: s[][0] st[][1] st[][2] st[][3] st[][4] s[][5] st[0] o n e \0 st[1] t w o \0 st[2] t h r e e \0 st[3] f o u r \0 st[3]+1 表达式:*(st+3)+1= st[3]+1, 这是一个地址值,即指向 st[3]字符串”four”的第 1 号字符’o’ 由于输出格式是字符串‘%s’, 所以输出的字符串是从 st[3]+1 这个地址开始,到遇见’\0’为止 (5)略,不做要求 3. /*填空题*/ (1) for (i=0; s[i]!=’\0’; i++) (2) void f( char *s 或 char s[] ) { int i=0; while(s[i]) i++; //令 i 指向字符串的最后一个有效字符, 即 while( s[i]!=’\0’) i++; for( ; i=0; i- -) printf(%c, s[i]); //逆序输出 } 4. 定义函数 search(int list[], int n, int x), 在长度为

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档