《C语言程序设计》第2版教材习题参考答案

Similar documents
《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A

没有幻灯片标题

B4C2

Microsoft Word _1-2.doc


网C试题(08上).doc

untitled


Microsoft Word - temp71.doc


6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word 生物02.doc

校园之星

2006..,1..,2.,.,2..,3..,3 22..,4..,4 :..,5..,5 :..,5..,6..,6..,8..,10 :..,12..,1..,6..,6.., ,5,:..,1 :..,1 :..,1 :..,2..,2..,3 :..,1 :..,1..,1.

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

5. 閱 讀 下 文, 推 斷 內 最 適 合 填 入 的 詞 語 依 序 為 何? 人 也 真 是 一 個 絕 字, 一 邊 向 左, 一 邊 向 右, 一 副 的 樣 子, 偏 又 相 連 著, 各 說 各 話 各 走 各 路, 卻 又 人, 這 麼 一 個 簡 單 的 字, 竟 包 含 如 此

<4D F736F F D20C1E3B5E3CFC2D4D8C4A3B0E52E646F63>

untitled

Microsoft Word 年9月二级C真卷.doc

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

CC213

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

2012年新闻出版产业分析报告


<4D F736F F D20C9CFBAA3B2C6BEADB4F3D1A C4EAC9CFB5B3D1B5B0E0BDE1D2B5C0EDC2DBCCE2BFE2A3A8746F20D1A7D4B1A3A92E646F6378>

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

( ) A B C D ( ) A B C D A B C D A B C D A 8750 B C 6250 D 5000 A B C D A B C D

C 1

Ps22Pdf


福 建 福 州 市 长 乐 市 电 视 机 影 音 及 配 件 产 品 小 家 电 产 品 长 乐 市 吴 航 洪 鸣 家 用 电 器 维 修 店 长 乐 市 西 洋 北 路 69 号 福 建 福 州 市 平 潭 县 电 视 机 影 音 及 配 件

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

(Microsoft Word - 4\244\353.doc)

untitled

5. 10(1) 10(2) A-1 17(2) 7. A-2 18A B

Ps22Pdf

鼠年运程

新・解きながら学ぶC言語

untitled

chap07.key

zyk00168ZW.PDF

Ps22Pdf

《C语言程序设计》教材习题参考答案

!""# $!""%!"&" #

<453A5CC2EDC0F6C5C5B0E6CEC4BCFE5CC3F1B7A8A1A4C9CCB7A8A1A4C3F1CAC2CBDFCBCFB7A8D3EBD6D9B2C3D6C6B6C8D5AACEC4BCFE574F52445CB9D9B7BDD0DEB6A9B5E7D7D3B7FECEF1A3A8A1B6C3F1CBDFBDE2CACDA1B7BACDA1B6C1A2B7A8B7A8A1B7A3A92E646F63>

untitled

Microsoft Word - 第5-7章

Ps22Pdf

E. (A) (B) (C) (D). () () () (A) (B) (C) (D) (E). () () () (A) (B) (C) (D) (E). (A)(B)(C) (D) (E) (A) (B) (C) (D) (E) (A) (B)(C) (D) (E). (A) (B) (C)

第5章修改稿

新・明解C言語入門編『索引』

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3.


试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

Microsoft Word - 功医检测问&答

untitled

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

2008年4月全国计算机等级考试二级C语言真题(含答案)

untitled

untitled

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

标题

(Microsoft Word - \265\332\276\305\306\332)

Ps22Pdf

* P3-5 招 募 2016 年 度 關 愛 大 使 (P3-5) 陳 淑 儀 26/4/ * P6 學 生 沖 印 畢 業 照 片 (P6) 朱 筱 玲 26/4/ * P4-6 招 募 學 生 及 家 長

《C语言程序设计》第2版教材习题参考答案

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

期中考试试题讲解

: : : ( CIP ) : ( ) /. :, ISBN :. G7. 4 CIP ( 00 ) 005 : : ( ) : : ( 0 : 0004) : : : / 6 : 7 ( ) : 408 () : 00

B3C1

钢铁金相图谱

2001年(下)局域网技术与组网工程试卷答案

(Microsoft Word A-C\244W\270\374\272\364\255\266.doc)

untitled

保母人員丙級應檢資料第二部份 doc


FY.DOC

( CIP ) /. - :, ( ) ISBN , -. K CIP ( 1999 ) * ( 6 ) : * ISBN :

untitled

<3935BCC6A5D2C1CDB6D52E747066>

竞赛报名与报名审核

*33*!!! "!! #$! %#! "& "! #! %! # ( ) * # +, # -, # +., $ /# ( ) 0 $ +# ( ) 0 $.# ( ) 0 $ # $! % "" " % 1 % & ( * ) * % " " %.! % 2!!"+# ( "&! " ( "#

B4C3

试卷

一、审计的分类

新版 明解C言語入門編

C/C++ - 文件IO

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

䥄 ‱‰⁝‍਀㙁㡂㕄㡃䉂㔾w)

2012年国家公务员考试行测真题及参考解析

90~94學測『地理科考題』

FZUBRIDGE

bingdian001.com

,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80


Transcription:

教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p = &a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x A. *&x B.&*x C.*&p D. &*p 3. 若已定义 int a=1,*b=&a;, 则 printf( %d \n,*b); 的输出结果为 :A) a 的值 A. a 的值 B. a 的地址 C.b 的值 D. b 的地址 4. 设已定义 int x,*p,*pl=&x,*p2=&x;, 则下列表达式中错误的是 :C)p=p1+p2. A. *p1 + *p2 B. p = p1 C.p = p1 + p2 D. x = p1 - p2 5. 设有函数定义 void p(int *x)printf( %d\n,*x); 和变量定义 int a=3;, 则正确的 函数调用是 :C)p(&a) A. p(a) B.p(*a) C.p(&a) D. p(int *a) 6. 函数 int fun(char * x)char * y=x; while(*y)y++;return(y-x); 的功能是 A) 求字符串的长度 A. 求字符串的长度 B. 比较两个字符串的大小 C. 将字符串 x 复制到字符串 y D. 将字符串 x 连接到字符串 y 后面 7. 运行一下程序, 输出结果为 :B)5 6 int fun (int a,int *b) a++;(*b)++; return a+*b; void main() int x=1,y=2; printf( %d,fun(x,&y)); printf( %d,fun(x,&y)); A. 5 5 B.5 6 C.6 5 D.6 6 8. 运行以下程序, 输出结果为 :C)58 #include<stdio.h> Int * fun(int a,int *b) a++;(*b)++; 第 1 页 / 共 9 页

*b=a+*b; return b; void main() int x = 1, y = 2, *z; z = fun(x, &y ); printf( %d, *z ); z = fun(x, &y ); printf( %d, *z); A. 56 B.5 7 C.5 8 D.6 8 9. 若已定义 int a[]=1,2,3,4,*p=a;, 则下面表达式中值不等于 2 的是 C)*(++a) A. *( a + 1 ) B. *( p + 1 ) C.*( ++ a ) D. *( ++p ) 10. 若已定义 int a[]=1,2,3,4,*p=a+1;, 则 p[2] 的值为 C)4 A. 2 B.3 C.4 D. 无意义 11. 设已定义 int x[4][10],*p=x[0];, 则下列表达式中的值为整形的是 B)*(p+1) A. &x[1][2] B.*( p + 1 ) C.x[1] D. p + 1 12. 设已定义 char s[]= ABCD ;, printf( %s,s+1) 的值为 C)BCD A. ABCD1 B.B C.BCD D. ABCD 13. 设已定义 char str[]= abcd,*ptr=str;, 则 *(prt+4) 的值为 B)0 A. d B.0 C.'0' D. 字符 d 的地址 14. 下面对字符串变量的初始化或赋值操作中, 错误的是 C)char a[10];a= OK ; A. char a[] = "OK"; B. char *a = "OK"; C. char a[10] =; a = "OK"; D. char *a; a = "OK"; 15. 设已定义 char *ps[2]= abc, 1234 ;, 则以下叙述中错误的是 A)ps 为指针变量, 它指向一个长度为 2 的字符串数组 A. ps 为指针变量, 它指向一个长度为 2 的字符串数组 B. ps 为指针数组, 其两个元素分别存储字符串 abc 和 1234 的地址 C. ps[1][2] 的值为 3 D. *(ps[ 0 ] + 1 ) 16. 设已定义 struct int a,b; s,*ps=&s;, 则错误的结构体成员引用是 C)*ps.a A. s.a B.ps->a C.*ps.a D. (*ps).a 17. 设已有以下定义, 则表达式的值为 2 的是 A)k=++p->data struct st 第 2 页 / 共 9 页

int data; st *link; a[3]=1,a+1,3,a+2,5,0,*p=a; A. k = ++p->data B. k = p++->data C. k = p->data++ D. k = (++p)->data 二 编程题 1. 输入 3 个字符串, 输出其中最大的字符串 ( 用字符指针 ) #define str_count 3 #define str_length 100 char a[str_count][str_length],*p; printf(" 请输入 3 个字符串 :"); for(i=0;i<str_count;i++) scanf("%s",a[i]); p=a[0]; for(i=1;i<str_count;i++) if(strcmp(p,a[i])<0) p=a[i]; printf(" 最大的字符串为 :%s",p); 2. 定义一个函数, 函数的功能是求已知半径的圆的周长和面积 要求把半径 周长和面积设置成函数参数 #define pi 3.1415926 第 3 页 / 共 9 页

double r; printf(" 请输入半径 :"); scanf("%lf",&r); double c,s; void circle(double r, double *,double *); circle(r,&c,&s); printf(" 圆的周长和半径分别为 :%lf,%lf",c,s); void circle(double r,double *c,double *s) *c=2*pi*r; *s=pi*r*r; 3. 定义函数 max, 函数参数为 3 个字符串, 函数返回值最大的字符串 #define str_length 100 #define str_count 3 char a[str_count][str_length]; printf(" 请输入三个字符串 :\n"); for(i=0;i<str_count;i++) scanf("%s",a[i]); char * max(char * a1,char *a2,char *a3); printf(" 最大的字符串是 :%s",max(a[0],a[1],a[2])); char * max(char * a1,char *a2,char *a3) char * p; p=a1; 第 4 页 / 共 9 页

if(strcmp(p,a2)<0) p=a2; if(strcmp(p,a3)<0) p=a3; return p; 4. 自己定义字符串复制函数 strcpy, 然后调用该函数 char *s="test"; char *o; char * str_copy_self(char *s); o=str_copy_self(s); printf("%s",o); char * str_copy_self(char *s) int str_length=strlen(s); char *o=(char *)malloc((str_length+1)*sizeof(char)); for(i=0;i<str_length;i++) o[i]=s[i]; o[i]='\0'; return o; 5. 定义一个函数, 函数参数为一维数组 ( 用指针表示 ), 函数返回数组元素的平均值 第 5 页 / 共 9 页

double arr[]=1,2,3,4,5,6,7,8,9,10; double ave(double arr[],int arr_len); printf("%lf",ave(arr,10)); double ave(double arr[],int arr_len) double res=0; for(i=0;i<arr_len;i++) res+=arr[i]; res=res/arr_len; return res; 6. 定义一个函数, 删除字符串中第 k 个字符开始的 m 个字符, 例如删除字符串 abcde 第 2 个字符开始的 3 个字符, 则删除后结果为 ae; 又如删除字符串 abcde 第 4 个字 符开始的 5 个字符, 则删除后结果为 abc; char str[]="abcde"; void str_pruning(char * str,int begin_pos,int pruning_count); str_pruning(str,4,5); printf("%s",str); void str_pruning(char * str,int begin_pos,int pruning_count) 第 6 页 / 共 9 页

int str_len=strlen(str); if(begin_pos>=str_len) str[0]='\0'; else if((begin_pos-1+pruning_count)>=str_len) str[begin_pos-1]='\0'; else int i=0; while(1) str[begin_pos+i-1]=str[begin_pos+pruning_count+i-1]; if(str[begin_pos+pruning_count+i-1]=='\0') break; i++; 7. 在字符串中删除所有指定字符 ( 如把字符串 teacher 中的 e 字符删除, 得到 tachr), 使用子函数和字符指针 char str[]="teacher"; void char_punching(char * str, char l); char_punching(str,'e'); printf("%s",str); 第 7 页 / 共 9 页

void char_punching(char * str, char l) int c=0; int str_len=strlen(str); for(i=0;i<str_len;i++) if(str[i]==l) c++; else str[i-c]=str[i]; str[str_len-c]='\0'; 8. 求二维数组的最大元素值及最大元素的位置 ( 用指针法引用数组元素 ) int a[3][3]=1,2,333,4,15,6,7,8,9; int x=3,y=3,i,j; int px=0,py=0; int *p,*p_max; p_max=a[0]; for(i=0;i<x;i++) p=a[i]; for(j=0;j<y;j++) printf("%d\n",*p); if(*p_max<*p) px=i; py=j; p_max=p; 第 8 页 / 共 9 页

p++; printf("%d\n",*p_max); ================ 此后无内容 ================ 第 9 页 / 共 9 页