C学习指导参考答案
第1章 C语言概述
知识点巩固习题
一、选择题 1.B
2.D
3.C
4.C
5.A
6.B
7.D
8.C
9.A
二、基本概念填空题 1. 小写 3. 函数 5. 编译 连接 7. Alt+Enter 9. F6
2. 有且仅有
4. 执行部分 6. /* */ 8. F2 10. F10
第2章 程序的灵魂—算法
知识点巩固习题
一、基本概念填空题
1. 一个或多 3. 判断 5. 顺序结构 循环结构 7. 结构 9. 一个算法应包含有限个操作步骤 1.(1)a与b互换 (3)输出a,b,c 2.(1)N=1 (3)N=N+1
3.(1)sum=sum+n 4.(1)n被5整除
2. 流程图 N-S 4. 分支
6. 一个 一个 8. 适合 10. 略 (2)输出a,c,b (2)a>max
(2)输出sum
(2)输出n不能同时被3和5整除
二、算法填空题(第2、3题的流程图不好!C语言的循环都是条件成立时执行循环体!)
第3章 数据类型、运算符与表达式
知识点巩固习题
一、选择题 1.D 11.D 21.A
2.A
12.B 22.C
3.B 13.C 23.C
4.C 14.C 24.A
5.A
15.C 25.C
6.B 16.D 26.D
7.B
17.A 27.A
8.A
18.B 28.D
9.B 19.C
10.D 20.D
二、基本概念填空题 1. unsigned
3. 预定义标识符 用户标识符 5. 换行 7. a/(b*c)
2. #define 符号常量名 常量
4. 字母 数字 下划线 字母 下划线 6. 4.0 8.(1)5
8.(2)5 8.(3)3 9. float a1=1,a2=1; 10. 65535、0、[**************]1(16个1)、[**************]0(16个0) 11. 0、1 12. ! 、&&、|| 13. 非0 、0、1、0 14. 1、0 15. x>20&&x
提高题
一、 选择题 1.C
2.D
3.D
4.C
5.B
6.D
7.C
8.D
9.C
二、基本概念填空题 1. 4.2 4.2
2. 11 12
3. 将10赋值给s 4. \ 'A' '\0' 5. 3
6. 0.0
7. cos(3.14/3)+8*exp(x) 8. -b+b24ac
9. 20 3 10. 12 11. 145 12. 3 13. 5.5 14. 10
15. 1
16. 算术 关系 逻辑 逗号 条件 赋值
第4章 顺序结构程序设计
知识点巩固习题
一、选择题 1.B 2.D 3.B
4.C
5.A
6.D
7.D
8.C
9.B
11.A
12.D
二、填空题
1. ; 2. 花括号(“{}”) 3. 1245 4.(1)-200 2500 4.(2)i=-200, j=2500 4.(3)i=-200 j=2500
5. a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500 6. 25 21 37 三、完善程序题
1. a=b b=c 2. ch=ch-32 ch
3. scanf("%f%f",&x,&y); z
4. #define PI 3.14159 scanf("%f",&r,) v=4.0/3*PI*r*r*r
提高题
一、选择题 1.B
2.D
3.A
4.D
5.D
6.B
7.A
10.D
10.C
二、填空题 1. 0
三、完善程序题
1. a/1000 a/100%10 a%100/10 a%10 2. 方法1:a-b a-b 方法2:a/b a/b
2. 100 300 400
第5章 选择结构程序设计
知识点巩固习题
一、选择题 1.A 2.C 3.D 4.B
5.A 6.B
7.D 11.A 12.C
13.A
14.B
15.A
16.C
二、填空题
1. yes 2. -4
3. 1 4. 10 20 0
5. 5 0 3
三、完善程序题
1. a%2==1 "no\n"
2. ch>=‟A‟&&ch
5. x%3==0||x%7==0 f=1
6. (int)(score/10) default:grade='E'
提高题
一、选择题 1.C
2.A
3.D
4.B
5.B
6.A
7.C 二、填空题 1. 3
2. *# 3. m=1 m=3
三、完善程序题
1. b=1&&x
5. scanf("%ld",&i) b2+200000*0.05 b=i*0.1 8.C
9.D
10.C
8.D
9.A
10.B
printf("%d,%d,%d\n",c,b,a) b10+(i-1000000)*0.01
第6章 循环结构程序设计
知识点巩固习题
一、选择题 1.A 2.C 3.A 4.C
5.D 6.D 7.D
8.A 9.B 11.A
12.B
13.D
14.C
15.C
16.D
17.C
18.B
19.B
二、填空题 1. 1 2 3 2. 36
3. 7 4. 1 3
5. 120
6. 5 4 6 7. 0918273645 8. *#*#*#$ 9. 3,3
10. 18
三、完善程序题
1. while(i
2. amin=x x!=-1 x
3. int ok ok i++ yes no 4. r!=0 n r m%n
5. >=1e-6 xn1 (xn0+a/xn0)/2
6. #include x0=x x0-f/f1 fabs(x-x0)>=1e-5 7. 4-i 2*i-1
8. n
9, prime=1 m%n==0 prime 10. b=i+1
11. break continue
12. sn=tn=0 i
14. j=n/10%10 i*i*i+j*j*j+k*k*k==n 15. s=s+2*h h=h/2
提高题
一、选择题 1.C 2.B
3.B
4.D
5.C
6.C
7.B
8.B
9.B
11.D
二、填空题
1. m=2 求m和n的最大公约数
2. -2
3. 16,60 4. This Is Book!
5. 101,-1 三、完善程序题
1. (ch=getchar())!='#' letter++ ch>='0'&&ch
3. f1*f2
10.A 20.C
10.D
5. n=0 i%7==2
6. k*k break n/10%10
7. (a!=c&&b!=c&&a!= 'X'&&c!= 'X'&&c!= 'Z'
8. d=1 a%i==0&&b%i==0&&c%i==0 d=d*i 9. n!=0 n/10 continue i 10. s=0 m==s m%i==0
第7章 数组
知识点巩固习题
一、选择题 1.D 11.A
2.D 12.B
3.C 13.C
4.B 14.B
5.D 15.C
6.A 16.C
7.B 17.C
8.C 18.C
9.C 19.C
10.D 20.C
二、基本概念填空题 1. 首地址
3. 行列下标值相等 5. gets(str); 三、阅读程序题
1. s=1234
3. 求数组最大元素的下标 5. 0 1 2 0 1 2 0 1 2 7. 6
9. e,hello y, ,0
四、完善程序题
1. x=x/2 x!=0 i-1
2. a/100%10 aa[i]=aa[i]%10 i
4. find=1 low=mid+1 high=mid-1 5. i==j a[i][4-i]=1
6. a[m-1][0] a[m][n-1]=a[m-1][n] 7. k++ a[i][j] printf("\n") 8. " " strcmp(a,max)>0
9. i=0 a[i++]=b[j] a[i]= '\0' 10. char s[ ] j=0,k=0 s[k]= '\0' 11. a[i]!=‟\0‟ a[i]+3-26 a[i]+3
2. ***** ***** ***** ***** ***** 4. s=15 6. 0 0 0 0 1
2. 有限
4. 两个原序列同为升序或同为降序 6. 0
8. 将两个字符串合并,并输出合并串的串长 10. 将读入的十进制正整数转换成十六进制序列
提高题
一、选择题 1.C
2.C
3.D
4.B
5.A
二、阅读程序题
1. 将任意读入的整数插入有序数组后,使之依然有序 2. 2 5 8 3.SWITCH*#WaMP* 三、完善程序题
1. a[i++] b[j++] break 2. x%10 m=n
3. a[k]=k a[k]!=0 a[j]%a[k]==0
4. a[i][0]=a[i][i]=1 a[i-1][j-1]+a[i-1][j] j
8. s=0 strlen(a)
9. toupper(c)- 'A'+10 c-„0‟ d*r+cr
第8章 函数
知识点巩固习题
一、选择题 1.C 2.B 3.C 4.B
5.C
6.D 7.C 11.B 12.B 13.D 14.B 15.B 16.D 17.D 21.B
22.C
23.D
24.A
25.B
26.D
二、填空题 1. 30,20,10 2. 8
3. hlo
4. 6 7 8 5. 110…f(1) 6. 2 11
3 210…f(2) 100…main() 7. 2,5,1,2,3,-2 8. 1
5,6
4,6 9. c=0
c=-1 c=-2
三、完善程序题
1. imax max=arr[i][j] 2. ch ch=='#' i++ 3. str[num]!= '\0' num
4. float fmax(x,y) (x>y)?x:y 5. return(1) return(n+sum(n-1))
8.A
9.D 18.B
19.D 4 11
10.A
20.A
11
6. void inverse(char str[ ]) j=strlen(str) i
提高题
一、选择题 1.B
2.A
3.D
4.A
5.A
6.C
7.D
8.B
9.B
10.C
二、填空题
1. 21 3. 012345 5. 567 1
7. 1 1 1 10 12 1 2 2 9 13 1 3 3 8 14 三、完善程序题
1. str[i] word=0 num++ 2. m%k==0 prime(n-i)
3. y>x&&y>z return z j%x1==0&&j%x2==0&&j%x3==0 4. m=1 m*i m=0 fun(k) 5. s[i]=k (i+1)%5==0 sum=0
6. #include flag=0 len++ place=start 7. (i=n/10)!=0 n%10
2. 4
4. 3 1 5 6. 5,25
第9章 预处理命令
知识点巩固习题
一、选择题 1.A
2.B
3.C
4.D
5. B
6.C
7.D
二、基本概念填空题 1. 不占用 三、阅读程序题 1. 15
2. ar=9 ar=9 ar=11 2. 无
提高题
一、选择题 1.A
2.C
2. 12
二、阅读程序题 1. 8 9 三、完善程序题 #include "myf.txt"
第10章 指针
知识点巩固习题
一、选择题 1.D 11.C 21.A
2.B
12.A 22.C
3.D 13.A 23.B
4.D 14.D 24.D
5.B
15.B 25.C
6.A 16.A
7.B
17.D
8.D
18.C
9.B 19.C
10.D 20.C
二、基本概念填空题 1. NULL 合法空间的地址 3. 5
4.(2)&a[2][0] 4.(4)a[0][2] 6. ABCD A 三、阅读程序题 1. 2,5
3. xyabcABC
5. 6,6 9,9 7. 10,20 10,20
9. AD BC BB 四、完善程序题
1. p p=a *p 2. p=a p-a
3. getchar() „\0‟ ++ 4. 方法1:&a[0][0] i*4+j
方法2:i/4 i%4 &a[0][0] i*4+j 方法3:p=a p+i/4 i%4
5. t[80] strcmp(c[i],c[i+1])>0 puts 6. char a[10] strcmp(a,p[i])
7. max_value(a,10) p++ *p>m 8. t=*x *x=*y *y=t 9. *t++ str1,str2 10. p[n]!=c p+n
2. ga 4. ABCD BCD CD D
6. 调用函数求得任意输入的两整数之和 8. 48 62 65 10. 1
2. a[5]元素的地址 a[5]元素的值 4.(1)&a[1] 即数组a的第二行的首地址 4.(3)&a[1][2] 5. 12 12
7. 3 字符串“FILE2.OUT”
提高题
一、选择题 1.B 11.B
2.A 12.C
3.D 13.C
4.C 14.D
5.A
6.B
7.D
8.D
9.C
10.C
二、基本概念填空题 1. 3*i+j i j
2. nanjing i e g
3. BBBAAA123 三、阅读程序题 1. 15
3. 8retupmo puter 5. hane
四、完善程序题
1. break „\0‟ *p++ 2. s+n-1 break p2— 3. *(text+i) n++ j=0
4. fac[left] fac[right] fac[left] fac[left++] 5. j++ j++ j++ a!=0 r
7. *fun)(double) (*fun)(a+i*h) mypoly
2. 4,5
4. elpoeP anihC
第11章 结构体、共用体与枚举类型
知识点巩固习题
一、选择题 1.C 2.B 11.A 12.A
3.D
4.D
5.A
6.B
7.C
8.A
9.D
10.B
二、基本概念填空题
1.
2.
3. 5. 34
6. 20 w[0].a[3] w[1].x.c pw->a[1] (*pw).a[1] pw->x.c (*pw).x.c
三、阅读程序题 1. 9 3. 48
四、完善程序题
1. t=a[i] a[i]=a[k] a[k]=t 2. scanf("%s",name) stu[j].dps++ 3. a[i].con++ a[j].con++ 4. (d-1)
5. return h p1!=NULL p1=p1->link p1->link=h 6. p2->next head head->next p2->next=p1
2. 0:706,1:908
提高题
一、选择题 1.D
2.A
3.B
2.101 200 31 40
二、阅读程序题 1. 51 60 21 3. 2,5 5. 2,5
dime dollar 三、完善程序题
1. break Find(a,num,n) q->score.exam2 q->score.exam1 2. free(p2) NULL 3. v2=h p=v2->next
4. h!=NULL break (NP)malloc(sizeof(ND)) h=p p++
4. 4,8
第12章 位运算
知识点巩固习题
一、选择题 1.D
2.A
3.B
4.A
5.D
2. a&0 4. x|0xff00 6. ch|0x20
二、基本概念填空题 1. 11110000 3. a|07777
5. a=012500>>2
提高题
阅读程序题 a1f6
第13章 文件
知识点巩固习题
一、选择题
1.B 2.D 3.C 4.C
2. stdio.h
2. Like C 二、基本概念填空题 1. rewind 三、阅读程序题 1. 将文件z.c复制到文件s.c中
四、完善程序题
1. fgetc(fp) fclose(fp)
2. fopen(fname, "w") ch
3. w
提高题
一、选择题
1.D 2.C 3.D 4.B 5.C 6.D
二、阅读程序题
1. [1**********]7
三、完善程序题
1. int argc; char *argv[] argv[1] NULL fgetc(fp)
2. int x[ ][6],int n \\my.out fp, "%3d",a[i][j] fp
3. "a" fgetc(fp1) c,fp2
4. filename fp fp 2. The fifth record is:#,9,5.6