江苏省计算机二级试题汇总_第1页
江苏省计算机二级试题汇总_第2页
江苏省计算机二级试题汇总_第3页
江苏省计算机二级试题汇总_第4页
江苏省计算机二级试题汇总_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、日期:更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+324份资料员工管理企业学院67套讲座+8720份资料工厂生产管理学院52套讲座+13920份资料财务管理学院53套讲座+17945份资料销售经理学院56套讲座+14350份资料销售人员培训学院72套讲座+4879份资料选择题综合以下关于c源程序的叙述中正确的是(21)。C(10年秋21)注释只能出现在程序的开始位置或语句后面一行中不能写多条语句c.一条

2、语句可以分写在多行中D.一个源程序只能保存在一个文件中以下定义和声明中,语法均有错误的是。(09年春21)int_f(intx)intf(intf)int2x=1;structforintx;B.C.D.数据类型、运算符与表达式已有声明“intx=5,y;floatz=2;”,以下表达式语法正确的是(24)。D(10年秋24)y=x%zx0?y=x:y=-xy=x/2=zy=x=z/2已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是(25)。D(10年秋25)c=tol

3、ower(c)c=c+32c=c-A+ac=(c+A)%26-a以下选项中,()是c语言的关键字(10年春22)printfB.includeC.funD.default已知有声明“inta=3,b=4,c;”,贝I执行语句“c=1/2*(a+b);”后,c的值为()(10年春23)0B.3C.3.5D.4已知有声明“inta=3,b=4;”,下列表达式中合法的是()(10年春25)a+b=7B.a=IbIC.a=b=0D.(a+)+已知有声明“intn;floatx,y;”,贝I执行语句“y=n=x=3.89;”后,y的值为()(10年春28)3B.3.0C.3.89D.4.0以下选项中,不

4、能用作C语言标识符的是()(09年秋22)printB.FORC.&aD._00已知有声明”longx,y;”且x中整数的十进制表示有n位数字(4n0,以下选项中能正确表示该条件的C语言表达式(26)C(10年秋26)a!=0,b*b-4*a*c0a!=0|b*b-4*a*c0a&b*b-4*a*c0!a&b*b-4*a*c0已知有声明”inta=3,b=4,c=5;”,以下表达式中值为0的是()(09年秋24)a&bB.a=0)y=1;elsey=-1;B.y=x=0?1:-1;switch()D.switch(x-abs(x)casex=0:y=1;break;case0:y=1;brea

5、k;default:y=-1;丄1x0以下选项中,不能表示函数sign(x)=年春23)default:y=-1;0 x=0功能的表达式是09-1x0)?1:s=(x0)?1:(x0)?-1:0s=x0?1:0)s=x=0?-1:s=x0?1:x=0?0:-1循环结构以下关于break和continue语句的叙述中正确的是(27)B(10年秋27)break和continue语句都可以出现在switch语句中break和continue语句都可以出现在循环语句的循环体中在循环语句和switch语句之外允许出现break和continue语句执行循环语句中的break和continue语句都将立

6、即终止循环数组已知有声明“chars20=”hello”;”,在程序运行过程中,若要想使数组s中的内容修改为”Good”,贝I以下语句中能够实现此功能的是()(10年春26)A.s=”Good;B.s20=”Good”;C.strcat(s,”Good”);D.strcpy(s,”Good”);已知有声明”intm=5,4,3,2,1,i=0;”,下列对m数组元素的引用中,错误的是()(09年秋27)A.m+iB.皿C.m2*2D.mm4已知有声明”chars80;”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,贝下列语句中正确的是()(09年秋28)A.scanf(“s”,s);B

7、.scanf(“s”,s0);C.s=gets();s=getchar();设有声明“intp10=1,2,i=0;”,以下语句中与“pi=pi+1,i+;”等价的是。(09年春27)A.pi=pi+;B.p+i=pi;C.p+i=pi+1;D.i+,pi-1=pi;函数C语言规定,在一个源程序中main函数的位置()(10年春21)A.必须在最开始B.必须在在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后以下叙述中正确的是()(09年秋21)C语言系统以函数为单位编译源程序main函数必须放在程序开始用户定义的函数可以被一个或多个函数调用任意多次在一个函数体内可以定义另外一个函数

8、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()(09年秋29)实参和其对应的形参占用同一个存储单元形参不占用存储单元同名的实参和形参占用同一存储单元形参和实参占用不同的存储单元以下函数定义中正确的是。(09年春25)doublefun(doublex,doubley)doublefun(doublex;doubley)doublefun(doublex,doubley);doublefun(doublex,y)若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是。(09年春26)voidf(double*a)*a=(*a)*(*a);voidf(d

9、oublea,double*b)*b=a*a;voidf(doublea,doubleb)b=a*a;doublef(doublea)returna*a;递归预处理C源程序中的命令#include与#define是在(22)阶段被处理的。A(10年秋22)预处理编译连接执行设有定义和声明如下:(09年春22)#defined2intx=5;floaty=3.83;charc=d;以下表达式中有语法错误的是A.x+B.y+C.c+D.d+指针设指针变量占2个字节的内存空间,若有声明“char*p=”123”;intc;”,则执行语句“c=sizeof(p);”后,c的值为()(10年春24)A.

10、1B.2C.3D.4指针数组已知有声明“chara=”program”,*p=a+1;”则执行以下语句不会输出字符a的是(29)。A(10年秋29)putchar(*p+4)putchar(*(p+4);putchar(asizeof(a)-3);putchar(*(a+5);已知有声明“inta4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若需要引用值为12的数组元素,则下列选项中错误的是()(10年春27)A.*(a+2)+3B.*(*(a+2)+3)C.*(a2+3)D.a23已知有声明”inti,a10,*p=a;”,现需要将110保存到a0a中

11、,以下程序段中不能实现这一功能的是()(09年秋30)A.for(i=0;i10;i+)ai=i+1;B.for(i=0;i10;i+)pi=i+1;C.i=1;while(pa+10)*p+=i+;D.i=1;while(pprice=10;y4=100,100;以下表达式中错误的是By0.code0=2;D.(*y)-price=10;Cy-price=10;位运算文件下列叙述中,正确的是()(10年春30)C语言中的文件是流式文件,因此只能顺序存取文件中的数据。调用fopen函数时若用“r”或“r+”模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。当对文件进行了写操作后,

12、必须先关闭该文件然后再打开,才能读到该文件中的第1个数据。无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖。填空题数据类型、运算符与表达式若有声明“doublen;”则数学公式“n(4n2-1)”对应的C语言表达式正确形式是。(10年秋1)1.0/3*n*(4*n*n-1)数学式所对应的C语言表达式为pow(x,)。1.0/3(10年春1)已知有声明“charch=g;”,则表达式ch=ch-a+A的值为字符(2)的编码。G(10年春2)在C语言系统中,如果一个变量能正确存储的数据范围为整数-3276832767,贝I该变量在内存中占个字节。2(10年春3)

13、数学表达式所对应的C语言表达式为。(09年秋3)sqrt(abs(x)!=(4*a)/(b*c)若有声明“intx;”且sizeof(x)的值为2,则当x值为时“x+1x”为假。32767(09年春2)若有声明“floaty=3.14619;intx;”,则计算表达式“x=y*100+0.5,y=x/100.0”后y的值是。3.15(09年春3)顺序结构已知有声明“charch;inta;”,执行语句“scanf(“c%d”,&ch,&a);”时如果从键盘输入的数据是“123”,贝I变量a得到的值是。(10年秋2)23已知有声明和语句“inta;scanf(“a=%d”,&a);”,欲从键盘上

14、输入数据使a中的值为3,则正确的输入应是(5)。a=2(10年春5)以下程序运行时输出到屏幕的结果是(7)。2,1(10年春7)#includevoidmain()inta=1,b=2;a+=b;b=a-b;a-=b;printf(“%d,%dn”,a,b);若有声明”intr=2;”,则执行语句”printf(“d”,sizeof(2*3.14*r);”时输出。8(09年秋2)选择结构若有声明“inta=0,b=1,c=2;”,执行语句“if(a0&+b0)c+;elsec-;”,变量a、b、c的值分别是(3)。011(10年秋3)c语言中有!、&、丨丨三个逻辑运算符,其中优先级高于算术运算

15、符的是。!(09年秋1)以下程序运算时输出到屏幕的结果是。2(09年秋7)#includevoidmain()inti=1,m=0;switch(i)case1:case2:m+;case3:m+;printf(“%d”,m);解析:本题switch中没有break,所以当i=1,case1,2,3依次执行,m初值为0,自增两次,值为2以下程序运行时输出结果是。2356(09年春6)#includevoidmain()intk=5,n=0;while(k0)switch(k)case1:case3:n+=1;k-;break;default:n=0;k-;case2:case4:n+=2;k-

16、;break;printf(%3d,n);循环结构09年秋12)09年秋12)#includevoidmain()inta33=3,8,12,4,7,10,2,5,11,i,j,k,t;for(j=0;j3;j+)for(k=0;k2;k+)for(i=0;iai+1j)t=aij,aij=ai+1j,ai+1j=t;for(i=0;i3;i+)for(j=0;j3;j+)printf(“%3d”,aij);printf(“n”);25104812数组以下程序运行时输出到屏幕的结果为(6)。our(10年秋6)#includeenumA,B,C,Dx;voidmain()chars=your;

17、for(x=B;x=D;x+)putchar(sx);以下程序运行时输出到屏幕的结果为(7)。4332(10年秋7)#includevoidmain()ints12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i,j;for(i=0;i12;i+)j=si;cj+;for(i=1;i5;i+)printf(%d,ci);(14)133以下程序运行时输出到屏幕的结果第二行是(13)11(14)1331_。(10年春11)#include#defineN6voidmain()inti,j,aN+1N+1;for(i=1;i=N;i+)aii=1;ai1=1;for(i=3;i=N;i

18、+)for(j=2;ji;j+)aij=ai-1j-1+ai-1j;for(i=1;i=N;i+)for(j=1;j=i;j+)printf(“%4d”,aij);printf(“n”);以下程序运行时输出到屏幕的结果中第一行是(14),第二行是(15),第三行是(16)。算法提示:将Fibonacci数列(1,1,2,3,5,8,13,)前6个数填入a数组。(10年秋12)#include#defineN3voidmain()inti,j,aNN=1,f1=0,f2=1,temp;for(i=1;iN;i+)for(j=0;j=i;j+)if(j=i)aij=f1+f2;temp=f1;f1

19、=f2;f2=f1+temp;for(i=0;iN;i+)for(j=0;jN;j+)printf(%5d,aij);printf(n);TOC o 1-5 h z10012035809年春9)09年春9)第一行33333第三行33#include#defineN5voidmain()staticcharaNN;inti,j,t,start=0,end=N-1;charstr=123,ch;for(t=0;t=N/2;t+)ch=strt;for(i=j=start;iend;i+)aij=ch;for(j=start;jstart;i-)aij=ch;for(j=end;jstart;j-)

20、aij=ch;if(start=end)astartend=ch;for(i=0;iN;i+)for(j=0;jN;j+)printf(%c,aij);printf(n);以下程序中函数floatfun(intm)的功能是计算s=s1+s2+s3+s4的值,其中si、s2、S3、s4用下列公式计算。请完善程序以达到要求的功能。(10年秋14)S1=1+.+S2=1+.S3=1+.+S4=1+.+算法提示:S=1+1+1+1+.+#includefloatfun(intm)inti,n;floats=0,t;for(n=1;n=m;n+)t=(19);1.0for(i=1;i5;i+)t=(20

21、);t/ns+=t;returns;main()printf(%f,fun(50);函数声明局部变量时若缺省存储类别,该变量的存储类别。auto(09年秋5)在一个c语言源程序中,必不可少的。主函数(09年春1)以下程序运行时输出到屏幕的结果为。131112(10年春8)#includevoidswap(inta,intb)intt;if(ab)t=a,a=b,b=t;voidmain()intx=13,y=11,z=12;if(xy)swap(x,y);if(xz)swap(x,z);if(yz)swap(y,z);printf(“%dt%dt%dn”,x,y,z);以下程序运行时输出到屏幕

22、的结果第一行是(9)5,第二行是(10)7,第三行是(11)8。(10年春9)#includeintg(intx,inty)returnx+y;intf(intx,inty)staticintx=2;if(y2)x=x*x;y=x;elsey=x+1;returnx+y;voidmain()inta=3;printf(“%dn”,g(a,2);printf(“%dn”,f(a,3);printf(“%dn”,f(a,2);以下程序运行时输出结果是。7(09年春8)#includeintf(intx,inty)returnx+y;voidmain()doublea=5.5,b=2.5;voidm

23、ain()voidmain()printf(%d,f(a,b);以下程序运算时输出到屏幕的结果是o(09年秋10)#includelongf(intn)staticlongs;if(n=1)returns=2;elsereturn+s;voidmain()longi,sum=0;for(i=1;i4;i+)sum+=f(i);printf(“%ld”,sum);解析:本题考点static,s为静态局部变量,函数调用结束后不消失保留原值,第一次f(1),s值为2,第二次f(2),s=3,第三次f(3),s=3,sum=2+3+4=9以下程序运行时输出到屏幕的结果为(8)。13(10年秋8)#in

24、cludeintfun(intx)staticintc,y;if(c=0)y=1;elsey=y+x;c+;returny;voidmain()inti;for(i=0;i2;i+)printf(%d,fun(2);以下程序将同时出现在数组a和b中的数据复制到数组c中。例如,如果数组a中的数据是8,5,7,1,6,4,9,数组b中的数据是2,9,3,7,4,5,10,则数组c中的结果数据位5,7,4,9。以下程序中,in函数判断x中存储的整数是否在a指向的数组前n个元素中出现,如果出现则函数返回1,否则返回0。请完善程序以达到要求的功能。(10年秋15)#includeintin(inta,i

25、ntn,intx)inti;for(i=0;in;i+)if(21)return1;x=aireturn0;inta7=8,5,7,1,6,4,9,b7=2,9,3,7,4,5,10,c7=0,i,j=0;for(i=0;i7;i+)if(22)in(b,6,ai)cj+=ai;for(i=0;(23);i+)ijprintf(%dt,ci);递归以下程序运行时输出到屏幕的结果为(11)。6(10年秋10)#includeintf(intx)if(x=0|x=1)return3;returnx*x-f(x-2);voidmain()printf(%dn,f(3);以下程序运行时输出到屏幕的结果

26、是(12)。221(10年春10)#includevoidfun(intm,intn)if(mn)printf(“%d”,m);elsefun(m+1,n);printf(“%d”,m);voidmain()fun(1,2);以下程序运算时输出到屏幕的结果是o(09年秋9)#includeintfun(int*x,intn)if(n=0)returnx0;elsereturnx0+fun(x+1,n-1);inta=1,2,3,4,5,6,7;printf(“%dn”,fun(a,2);解析:本题为递归,解决递归分两步递推+回推递推:fun(a,2)Ia0+fun(a+1,1)Ja1+fun(

27、a+1+1,0)注意此时指针的地址不a,而是a+1,返回的是a1+fun(a+1+1,0)而不是a0+fun(a+1+1,0),当n=0时fun(a+1+1,0)值为a,再依次回推a2+a1+a0=6以下程序在350范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。例如,3和5是相邻素数,3252之间有素数11、13、17、19、23。试完善程序以达到要求的功能。(09年秋16)#include#include#includeintprime(intn)inti;for(i=2;i=sqrt(n);i+)if(_n%i=0)return0;return1;voidmain()int

28、i,j,k=0,m,n,c,a30=0;for(i=3;i50;i+)if(prime(i)ak+=for(i=0;ik-1;i+)m=ai*ai;n=ai+1*ai+1;c=0;for(j=m+1;j=4)if(prime(j)if(prime(j)c+;printf(“n%d*%d-%d*%d:%d”,ai,ai,ai+1,ai+1,c);elseprintf(“Error”);exit(0);预处理若有以下宏定义:#defineM(a,b)-a/b则执行语句“printf(%d”,M(4+3,2+1);”后输出结果为。-2(10年秋4)以下程序运行时输出到屏幕的结果为(6)。10(10年

29、春6)#include#defineMAX(A,B)AB?2*A:2*Bvoidmain()inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);printf(“%dn”,t);以下程序运算时输出到屏幕的结果中第一行是,第二行是_o(09年秋11)#include#definef(x,y)y=x*xvoidg(intx,inty)y=x*x;voidmain()inta=2,b=0,c=2,d=0;f(a,b);g(c,d);printf(“%dn%d”,b,d);40解析:f(a,b)为宏替换,b值为4,g(c,d)为函数调用,但是函数中没有返回值,所以d保持原值0执行以下

30、程序段中的语句“k=M*M+1;”后k的值是o6(09年春4)#defineN2#defineMN+1k=M*M+1;指针若有以下声明:(09年秋4)char*p=”%d,%dn”;inta=1,b=2;则执行语句”printf(p,a,b);”时输出。1,2指针数组已知有声明“inta32=1,2,3,4,5,6,*p=a0;”,则执行语句“printf(“dn”,*(p+4);”后的输出结果为(4)。5(10年春4)以下程序运算时输出到屏幕的结果是o(09年秋13)#include#includevoidmain()inti=0,n=0;chars80,*p;strcpy(s,”Itisa

31、book.”);for(p=s;*p!=0;p+)if(*p=)i=0;elseif(i=0)n+;i=1;printf(“%dn”,n);4解析:本题功能是求一句英文中单词的个数。当i=0,表示新单词开始,同时i变为1,n来统计单词个数,遇到空格表示单词结束,又表示下一个单词的开始,i置0。指针函数以下程序运行时输出到屏幕的结果中第一行是(9)6,第二行是(10)3o(10年秋9)#includevoidfun(int*a,intb)while(b0)*a+=b;b-;voidmain()intx=0,y=3;fun(&x,y);printf(%dn%dn,x,y);以下程序运行时输出到屏幕

32、的结果中第一行是(12)1,第二行是(13)19o(10年秋11)#include#includevoidcompute(char*s)intt,r;charop;for(r=0;isdigit(*s);s+)/*isdigit(*s)判断s指向的字符是否为数字字符*/r=r*10+*s-0;while(*s)op=*s+;for(t=0;isdigit(*s);s+)t=t*10+*s-0;switch(op)case+:r=r+t;break;case-:r=r-t;break;case*:r=r*t;break;case/:if(t)r=r/t;elseputs(devideerror)

33、;return;printf(%dn,r);voidmain()compute(12+6-19+2);compute(12/6*19/2);以下程序运行时输出结果。x=18,y=27,z=18(09年春7)#includevoidchange(intx,inty,int*z)intt;t=x;x=y;y=*z;*z=t;voidmain()intx=18,y=27,z=63;change(x,y,&z);printf(x=%d,y=%d,z=%dn,x,y,z);(16)14以下程序运行时输出到屏幕的结果第一行是(15)321(16)14325,(10年春12)#includevoidfun(

34、char*p1,char*p2);voidmain()inti;chara=”54321”;puts(a+2);fun(a,a+4);puts(a);voidfun(char*p1,char*p2)chart;while(p1p2)t=*p1;*p1=*p2;*p2=t;p1+=2,p2-=2;以下程序运行时输出结果中第一行是,第二行是_第一行139第二行3#includevoidfun(intx,intp,int*n)inti,j=0;for(i=1;ix/2;i+)if(x%i=0)pj+=i;*n=j;voidmain()intx,a10,n,i;fun(27,a,&n);for(i=0

35、;in;i+)printf(%5d,ai);printf(n%5d,n);以下程序运行时输出结果是。4(09年春11#include#includeintcount(chars)inti=0;if(si=0)return0;while(isalpha(si)i+;while(!isalpha(si)&si!=0)i+;return1+count(&si);voidmain()charline=oneworld,onedream.;printf(%d,count(line);以下程序运行时输出结果中第一行是,第二行是_09年春10)09年春10)09年春12)第二行yesno#includein

36、tfun(char*a,char*b)intm=0,n=0;while(*(a+m)!=0)m+;while(bn)*(a+m)=bn;m+;n+;*(a+m)=0;returnm;voidmain()chars120=yes,s25=no;printf(%dn,fun(s1,s2);puts(s1);以下程序运行时输出结果中第一行是,第二行是,第三行是(09年春13)第一行1,2第二行2,3第三行2,4#includetypedefstructintx;inty;S;voidfun(Spp,intn)inti,j,k;St;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j

37、+)if(ppj.xppk.x)|(ppj.x=ppk.x&ppj.yppk.y)k=j;if(k!=i)t=ppi;ppi=ppk;ppk=t;voidmain()Sa5=3,2,3,1,1,2,2,4,2,3;inti,n=5;fun(a,n);for(i=0;in;i+)printf(%d,%dn,ai.x,ai.y);以下程序求一组整数的最大公约数。试完善程序以达到要求的功能。(09年春14)#includeintgcd(inta,intb)intr;while()r!=0r=a%b;a=b;b=rreturna;voidmain()intx,i,a6=12,56,48,32,16,2

38、4;x=;a0for(i=1;i6;i+)x=gcd(,ai);gcd(x,ai)printf(%d,a0);for(i=1;i5;i+)printf(%d,ai);printf(%d)=%dn,a5,x);以下程序的功能是:统计一个字符串中数字字符“0”到“9”各自出现的次数,统计结果保存在数组count中。例如,如果字符串为“1enterschar4543123564879ffgh,则统计结果为:1:22:13:24:35:26:17:18:19:1。试完善程序以达到要求的功能。(10年春14)#includevoidfun(char*t,intcount)char*p=t;while(1

39、9)*p!=0if(*p=O&*p=9)count(20)+;*p-Op+;voidmain()chars80=1enterschar4543123564879ffgh;intcount10=0,i;fun(s,count);for(i=0;i10;i+)if(counti)printf(“%d:%d,i,counti);以下程序运算时输出到屏幕的结果中第一行是,第二行是_o(09年秋8)#includevoidfun(inta,intb,int*x)inti,j=0;for(i=0;ai;i+)if(i%2=0)continue;if(ai10)bj+=ai;*x=j;voidmain()i

40、nta10=3,15,32,23,11,4,5,9,b10;inti=0,x=0;fun(a,b,&x);for(i=0;ix;i+)printf(“%dt”,bi);printf(“n%d”,x);15232解析:本题的含义是当a数组元素下标为奇数而且元素值大于10,将元素值赋给数组b,x用来记录b中数组元素个数,要注意的是打印bi时格式是t制表符,要隔8位。下列程序的功能是对a数组a0an-1中存储的n个整数从小到大排序。排序算法是:第一趟通过比较将n个整数中的最小值放在a0中,最大值放在an-1中;第二趟通过比较将n个整数中的次小值放在a1中,次大值放在an-2中;,依次类推,直到待排序

41、序列为递增序列。试完善程序以达到要求的功能。(10年春15)#include#defineN7voidsort(inta,intn)inti,j,min,max,t;for(i=0;i(21);i+)n/2(22);min=i,max=n-i-1for(j=i+1;jn-i;j+)if(ajamax)max=j;if(min!=i)t=amin;amin=ai;ai=t;if(max!=n-i-1)if(max=i)t=amin;amin=an-i-1;an-i-1=t;elset=amax;amax=an-i-1;an-i-1=t;voidmain()intaN=8,4,9,3,2,1,5,

42、i;sort(a,N);printf(“sorted:n”);for(i=0;iN;i+)printf(“%dt”,ai);printf(”n”);16.下列程序中函数find_replace的功能是:在s1指向的字符串中查找s2指向的字符串,并用s3指向的字符串替换在s1中找到的所有s2字符串。若s1字符串中没有出现s2字符串,贝怀作替换并使函数返回0,否则函数返回1是完善程序以达到要求的功能。(10年春6)#include#includeintfind_replace(chars1,chars2,chars3)inti,j,k,t=0;chartemp80;if(s10=0|s20=0)r

43、eturnt;for(i=0;s1i!=0;i+)k=0;j=i;while(s1j=s2k&s2k!=0)j+;k+if(s2k=0)strcpy(temp,&s1j);strcpy(&s1i,s3)i=i+strlen(s3);strcpy(&s1i,temp)t=1;returnt;voidmain()charline80=”Thisisatestprogramandatestdata.”;charsubstr110=”test”,substr210=”actual”;intk;k=find_replace(line,substr1,substr2);if(26)kputs(line);

44、elseprintf(“notfoundn”);以下程序求方程的一个近似根。root函数采用二分法计算并返回方程f(x)=0在a,b内的一个近似根,main函数调用root函数求方程cos(x)=0在0,3.14内的一个近似根。试完善程序以达到要求的功能。(09年秋15)#include#includeInt(*p)(intint);P=max;(*p)(3,5);doubleroot(doublea,doubleb,double(*f)(double)doublex,y;迁(_f(a)*f(b)=0)printf(“Thereisnorootbetween%fand%f,a,b);retur

45、n0;dox=(a+b)/2;y=f(x);if(fabs(y)1e-6|fabs(b-a)1e-6)break;迁(_f(a)*y=0;i-)ci=(ai-0)+(bi-0)+k;k=;ci/10ci=ci%10+0;if(k)for(i=n+1;i0;i-)ci=;ci=ci-1;ci=k+0;voidmain()charp180=1000000001,p280=9000000009,p380;inti,x=strlen(p1),y=strlen(p2);if(x=0;i-)p1i+y-x=p1i;p1i=0;x=y;if(xy)for(i=y;i=0;i-)p2i+x-y=p2i;p2i

46、=0;add(p1,p2,p3,x);puts(p3);结构体以下程序运行时输出到屏幕的结果中第一行是_(17,第二行是(18)。(1o年秋13)#includetypedefstructintdm;/*产品代码*/char*me;/*产品名称*/longje;/*金额*/PRO;voidmain()inti,j,k,n=3;PROsell1o=1o1,apple,1oo,3o1,orange,1oo,1o1,apple,2oo,xy;for(i=o;in-1;i+)k=i;for(j=i+1;jn;j+)if(sellk.dmsellj.dm|sellk.dm=sellj.dm&sellk.

47、jesellj.je)k=j;if(k!=i)xy=selli;selli=sellk;sellk=xy;for(i=o;in;i+)printf(%15d%1os%5dn,selli.dm,selli.me,selli.je);301orange100101apple200以下程序根据输入的年份及该年中的第几天,计算并输出这一天的“年/月/日”。例如,若输入“2010,100”则输出“2010/4/10(表示2010年的第100天是4月10日)”。试完善程序以达到要求的功能。(10年秋16)提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份是平年。#in

48、cludeintleap(intyear)inty;y=year%4=0&year%100!=0|year%400=0;returny;voidmonth_day(intyear,intyearday,int*month,int*day)intk,p;inttab213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31;p=leap(year);for(k=1;yearday(24);k+)yeardaytabpk+1yearday=yearday-tabpk;*month=k;*day=(2

49、5);yeardayvoidmain()intyear,days,month,day;printf(Inputyearandyears!n);scanf(%d,%d,&year,&days);if(leap(year)=1&days=366|leap(year)=0&days=365)month_day(year,days,(26);&month,&dayprintf(n%d%d%d,year,month,day);elseputs(daysiswrong!);以下程序运行时输出到屏幕的结果第一行是(17)-1,第二行是(18)invisible。(10年春13)#includetypedef

50、structintx,y;direction;intvisible(directions,directionA,directionB,directionC)directionp1,p2;intd;p1.x=B.x-A.x;p1.y=B.y-A.y;p2.x=C.x-A.x;p2.y=C.y-A.y;d=s.x*p1.x*p2.x+s.y*p1.y*p2.y;printf(“%4dn”,d);returnd0;voidmain()char*ss=“invisible”,”visible”;directions=1,1,T=1,1,A=0,0,B=2,1;puts(ssvisible(s,T,A,

51、B);以下程序运算时输出到屏幕的结果中第一行是,第二行是_o(09年秋14)#includetypedefstructfactintm,z;FACT;FACTfun1(FACTt1,FACTt2)FACTt3;t3.m=t1.m*t2.m;t3.z=t1.z*t2.m+t2.z*t1.m;returnt3;FACTfun2(FACTt)intm,n,k;m=t.m;n=t.z;while(k=m%n)m=n;n=k;t.m=t.m/n;t.z=t.z/n;returnt;voidmain()FACTs,s1=8,4,s2=6,5;s=fun1(s1,s2);printf(“%d,%dn”,s.

52、z,s.m);s=fun2(s);printf(“%d,%d”,s.z,s.m);64,484,3解析:本题要注意的是FACT是结构体类型,结构体变量可以赋值给另一个结构体变funl的作用是计算t3的m和z值并赋给s,t3.m=6*8=48,t3.z=4*6+5*8=64,所以s.z=64,s.m=48;fun2的功能同样是计算t的值并赋给s,并包含了求最大公约数的算法,64,48的最大公约数是16,t.m=48/16=3,t.z=64/16=4,s.z=4,s.m=3.以下程序创建一个链表并实现数据统计功能。函数WORD*create(chara20,intn)创建一个包含n个结点的单向链表

53、,结点数据来自a指向的数组中存储的n个单词(字符串)。函数voidcount(WORD*h)统计h指向的单向链表中不同单词各自出现的次数,将统计结果保存到局部数组c中并输出。程序运行时输出结果为“red:1green:2blue:3”。试完善程序以达到要求的功能。(09年春16)#includestdio.h#includestring.h#includestdlib.htypedefstructwcharword20;structw*next;WORD;WORD*create(chara20,intn)WORD*p1,*p2,*h=0;inti;for(i=0;iwordif(h=0)h=p

54、2=p1;elsep2-next=p1;p2=p1;p2-next=;0returnh;voidcount(WORD*h)structcharword20;intnum;c6=0;intm=0,i;while(h)if(m=0)strcpy(c0.word,h-word);c0.num=1;m+;elsefor(i=0;iword)=0);ci.num+;break;if(i=m)strcpy(cm.word,h-word);cm+.num=1;h=h-next;for(i=0;idata=s-data&q&s)q=q-next;s=(28);s_nextif(s!=NULL)ph=p;p=q

55、=q-next;s=(29);h2elseif(ph=NULL)h1=q;elseph-next=q;(30);returnhlfun函数的功能是删除s指向的链表中满足以下条件的结点:该结点的编号值是奇数且存放的字母ASCII编码值也为奇数(提示:a的ASCII编码是97);将删除的结点添加到t所指向的链表尾部。试完善fun函数以达到要求的功能。(09年秋17)例如,若删除前的s链表为:则删除厚的s链表为:#includestructnodeinti;/*存放结点的编号*/charc;/*存放一个字母的ASCII编号*/structnode*next;structnode*t=NULL;structnode*fun(structnode*s)structnode*p,*q;structnode

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论