C习题集(6)

2019-01-27 14:22

29.磁盘文件a1和a2,各自存放一个已按字母顺序排好的字符串,编程合并二个文件到a3文件中,合并后仍保持字母顺序(如a1中存放:“accel”,a2中存放“ilrz”,则a3中为“acceillrz”)。 30.已知顺序文件C.DAT 存放着程序设计基础的考试成绩,每个记录包含学号(8位字符)和成绩(三位整数)两个数据项。编制程序,从文件中读入学生成绩,将大于或等于60分的学生成绩再形成一个新的文件SCORE60.DAT保存在A盘上,并显示出学生总人数(少于1000)、平均成绩和及格人数。

语言程序设计习题答案

1 单项选择题

1. B 2. D 3. C 4. D 5. B 6. B 7. D 8. A 9. C 10. D 11. B 12. C 13. D 14. A 15. A 16. D 17. C 18. B 19. B 20. A 21. C 22. B 23. D 24. B 25. D 26. C 27. C 28. A 29. A 30. C 31. C 32. D 33. C 34. C 35. A 36. D 37. B 38. D 39. A 40. C 41. B 42. C 43. A 44. C 45. D 46. C 47. A 48. B 49. B 50. A 51. D 52. D 53. C 54. D 55. B 56. B

2 填空题

1. 2.5 2. 16 3. 2 4. 0 5.0 6.sqrt(s*(s-a)*(s-b)*(s-c)) 7. (-b+sqrt(b*b-4*a*c))/2/a

8. p*pow(1+r,5) 9.(x+1)*exp(2*x) 10.ch>=?A?&&ch<=?Z? 11. abs(n)>9&&abs(n)<100 12. a!=0&&b!=0 13. a==-b 14. a==0&&b!=0||b==0&&a!=0 15. m%2==1&&m/10%2==0

16. 11、11、6 17. 4、4、10、6 18. 18、3、3 19. 20、15 20. (a>b)?a:b 21. –17 22. ?D? 23. 31 24. m=1b 25. small 26. 0 27.2 28. 30、0 29. s未定义初值0 30. jc存放10!字长不够

31. static int a[10]; 32. char a[10]=”continue”; 33. int a[5],*p=a; 34. int a[4][5],*p=a[0]; 35. windows 95 36. windows 95 37. 5 38. 7 39. windows 40. 8

41. printf(”%d\\n”,m); 42. fopen(”a.txt”,”rw”); 43. x[i]>=?A?&&x[i]<=?Z? 44.1、7、1 45.0、707、-1 46.1、0、56 47. 值传递 48. 值传递 49. 地址传递 50. 值传递 51.7 52.17 53. 10、5 54. p=(int*)malloc(n*sizeof(int)); 55.free(p); 56.fseek(fp,25l,1);

25

3 写输出结果题

1. A C E G 2. K=8 3. 4 25 27 16 4. 1 0 2 2 5 7 13 20 5. SUM=2468 6. x|y&z=3 、x^y&~z=1、x&y&z=0、!x|x=1、~x|x=-1 7. 2 4 6 9

8. 9.

- - - - - - * * * * * * * | | * * * * * | | * * * | | * - - - - - -

10. 11. 12.

7 7 7 7 7 7 7 g a b c d e f b c d e f g a 5 5 5 5 5 f g a b c d e c d e f g a b 3 3 3 d e f g a b c e f g a b c d 1

13. 14. 3 15.

* 5,-7,3 1 4 2 * * * 1 1 4 * * * * * 3 2 1 # # # # # #

16. 2 3 5 7 17. 1 5 3 8 4 9 –4 6 18. afternoon 19. $ evening $ $ $ $ $ $ $ $ morning

$ $ $ $ $ $ $ night

20. 1 21. 256.000000 22. U=32.000v=18.000 23.a,d 24. 0 25. All=abcdefghijklmnop abc,def e seek1 ch=a ghi,mno 1 seek2 ch=l hi,no i seek3 ch=n

4 程序填空题

1. ⑴ ”%d%d”,&m,&n ⑵ gbs%n!=0

⑶ m*n/gbs; ⑷ printf(”%d %d\\n”,gbs,gys); 2. ⑴ int i,n; float nox; ⑵ nmin=no1;

⑶ &nox ⑷ else if(nox

3. ⑴ #include ⑵ for(i=0;i<20;i++) scanf(”%f”,&a[i]); ⑶ pjz/=20; t=a[0]; ⑷ printf(”%f %f\\n”,pjz,t);

26

4. ⑴ int s1=0,s2=0; ⑵ ch=getchar()

⑶ ||ch>=’A’&&ch<=’Z’ ⑷ prnitf(”%d %d\\n”,s1,s2);

5. ⑴ #include ⑵ m,n,jc=1 ⑶ ”%d”,&m ⑷ n-2 6. ⑴ int i1,i2,i3 ⑵ i2=-45;i2<=45;i2++ ⑶ i1*i1+i2*i2+i3*i3==1989 ⑷ ”%d %d %d\\n”

7. ⑴ scanf(”%d”,&n); ⑵ (int*)malloc(n*sizeof(int)) ⑶ gbs%*(p+i)!=0 ⑷ goto l1;

8. ⑴ printf(”%f\\n”,s); ⑵ s=find(a,7,-1); “-1”也可以改为其它负数 ⑶ t=*p; ⑷ return t;

9. ⑴ sort(a,7); ⑵ float *p,int n ⑶ *(p+j)>*(p+k) ⑷ t=*(p+i); 10. ⑴ &time.hour,&time.minute,&time.second

⑵ time.second ⑶ time.minute++; ⑷ time.hour==24 11. ⑴ ip-=11; ⑵ jg=3; ⑶ m[i]!=m[1] ⑷ i==12 ⑸ num-1

12. ⑴ float t; ⑵ else fh=1 ⑶ j

2n

15. 下列函数求任意阶多项式 a0+a1X+a2X+...+anX的值并返回多项式的值。

⑴ flaot *a,int n,float x ⑵ int i; ⑶ t=t*x; ⑷ return y; 16. ⑴ *p,*max,*min ⑵ float t; ⑶ *min=*p; ⑷ t>*max 17. ⑴ flaot *a,int n ⑵ j=i+1;j ⑵ name[k]=ch[k]; ⑶ sort(name,6); 19. ⑴ goto end ⑵ p1->next!=NULL ⑶ p2->next=p1->next 20. ⑴ struct student *p; ⑵ p=p->next; ⑶ p!=NULL 21. ⑴ int i=0 ⑵ p=head ⑶ p=p->next 22. ⑴ int x=0; ⑵ p=head; ⑶ p->num<60 23. ⑴ p1->next!=NULL ⑵ p0->next=p1 ⑶ p0->next=NULL

24. ⑴ FILE *fp; ⑵ int m,e,c,i,n; ⑶ fp=fopen(”student.dat”,”W”); ⑷ fclose(fp);

25. ⑴ f3=fopen(\⑵ fprintf(f3,”%d\\n”,y);

⑶ fprintf(f3,”%d\\n”,y); ⑷ ”%d\\n”,x ⑸ fscanf(f1,\

5 编程题参考答案

1.编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 #include \ #define N 50 void main()

27

{ float x; unsigned int s1,s2,s3,i; s1=s2=s3=0;

for(i=1;i<=N;i++) { scanf(\

if(x<0) s1++; else if(x==0) s2++; else s3++; }

printf(\负数%u个,零%u个,正数%u个\\n\ }

22

2. 编程,计算并输出方程 X+Y=1989 的所有整数解。 #include \ void main() { int x,y;

for(x=-45;x<=45;x++) { y=-45;

while(y<=45) {

if(x*x+y*y==1989) printf(\ y++; } } }

3.编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。 #include \ void main()

{ unsigned int x;

printf(\请输入一个十进制正整数:\ printf(\八进制数 %o=十六进制数%x\\n\ }

4.编程,找出1000以内的所有完数,并输出其因子。

#include \ void main() { int i,j,s=1;

for(i=1;i<=1000;i++,s=1) {

for(j=2;j<=i/2;j++) if(i%j==0) s+=j; // 求 i的因子和 if(s==i) {

printf(\如果i 是完数则输出其各因子 for(j=2;j<=i/2;j++)

if(i%j==0) printf(\ printf(\ }

28

} }

5. 输入一个正整数,输出它的所有质数因子。 #include \ void main() { int m,i=2;

printf(\请输入一个整数:\

while(m!=1) if(m%i==0){ printf(\ printf(\ }

6. 输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。 #include \ #define N 20 void main()

{ int a[N],i,j;

for(i=0;i

if(a[i]%a[j]==0&&i!=j) { printf(\ }

7. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素。 #include \ #define NA 6

#define NB 8 void main()

{ float a[NA],b[NB]; int i,j;

for(i=0;i

if(a[i]==b[j]) { printf(\ }

8. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素。 #include \ #define NA 6 #define NB 8 void main()

{ float a[NA],b[NB]; int i,j;

for(i=0;i

29


C习题集(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十二五”教师继续教育个人达标学习计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: