C语言复习2答案共5页word资料.doc
如有侵权,请联系网站删除,仅供学习与交流C语言复习2答案【精品文档】第 5 页C语言复习(2)1.阅读程序,写出程序运行结果。main() int a,b; for(a=1,b=1;a<=100;a+) if(b>=20)break; if(b%3=1)b+=3;continue; b+=5; printf("%d",a);结果:82.阅读程序,写出程序运行结果。main() int a=2,b=7,c=5; switch(a>0) case 1:switch(b<0) case 1:printf("");break; case 2:printf("!");break; case 0:switch(c=5) case 0:printf("*");break; case 1:printf("#");break; default:printf("$");break; break; default:printf("&");结果:3.阅读程序,写出程序运行结果。main() int x=0,y=5,z=3; while(z->0&&+x<5)y=y-1; printf("%d,%d,%dn",x,y,z);结果:3,2,-14以下程序的输出结果为()。main( )char s140="country",s220="side"int i=0,j=0; while(s1i!='0') i+; while(s2j!='0') s1i+=s2j+;s1i= '0' printf("%sn",s1); 结果:countryside5下列程序的输出结果为()。#include"stdio.h"void main()char s="12134211"int k,v1,v2,v3,v4;v1=v2=v3=v4=0;for(k=0;sk!='0'k+)switch(sk) default: v4+;case '1': v1+;case '2': v2+;case '3': v3+;printf("%d,%d,%d,%dn",v1,v2,v3,v4);结果:5,7,8,16.给出下列程序的运行结果:#include <stdio.h> main( ) char *p,s="ABCD" for ( p=s;p<s+4;p+) printf("%sn",p);答案:ABCD BCD CD D7.阅读程序,写出程序运行结果。int a=3,b=4; max(int a,int b) int c; c=a>b?a:b; return (c); main() int a=8; printf("%d",max(a,b);答案:88.阅读程序,写出程序运行结果。#include <stdio.h> #include <string.h> main() char *p1, *p2,str20="xyz" p1="abcd" p2="efgh" strcpy(str+1,strcat(p1+1,p2+1); printf("%s",str);答案:xbcdfgh1 试编写一个程序,输入一个3*5的整数矩阵(假设所有的数据互不相同),输出其中最大值、最小值和它们的下标。答案:#include<stdio.h>void main() int a35,i,j,max,min,rmax,cmax,rmin,cmin; for(i=0;i<3;i+) for(j=0;j<5;j+) scanf("%d",&aij); max=min=a00;rmax=cmax=rmin=cmin=0; for(i=0;i<3;i+) for(j=0;j<5;j+) if(max<aij) max=aij;rmax=i;cmax=j; else if(min>aij) min=aij;rmin=i;cmin=j; printf("max:a%d%d=%dn",rmax+1,cmax+1,max); printf("min:a%d%d=%dn",rmin+1,cmin+1,min);2.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。答案:#include "stdio.h"main()char c;int letters=0,space=0,digit=0,others=0;printf("please input some charactersn");while(c=getchar()!='n')if(c>='a'&&c<='z'|c>='A'&&c<='Z')letters+;else if(c=' ')space+;else if(c>='0'&&c<='9')digit+;elseothers+;printf("all in all:char=%d space=%d digit=%d others=%dn",letters,space,digit,others);3.编写一个函数求出任意一维数组中最大的元素值和所有元素的平均值,只能定义成自定义函数的形式。答案:float aver=0;float max(float a,int n) int i;float max1=a0; for(i=0;i<n;i+) aver+=ai; if(max1<ai)max1=ai; aver/=n; return(max1);#include<stdio.h>void main() float a100,s;int i,n; scanf("%d",&n); for(i=0;i<n;i+) scanf("%f",&ai); s=max(a,n); printf("max=%f,aver=%fn",s,aver);4.编程序求出40个整数中的最大值,并输出最大值和它的位置。要求:从键盘输入40个元素存放在数组中,并且必须用指针变量来引用数组元素,位置是指最大值在数组中的下标。答案:#include<stdio.h>void main() int a10,max,*w,*p; for(p=a;p<a+10;p+) scanf("%d",p); w=a;max=*a; for(p=a;p<a+10;p+) if(max<*p)max=*p;w=p; printf("max=%dnposition=%dn",max,w-aFG);