2012国家C语言改错模拟题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012国家C语言改错模拟题

1.下列给定程序中函数fun的功能是:求出如下分数列的前n项之和,和值通过函数值返回。 #include stdio.h /************found************/ double fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k = n; k++ ) { /************found************/ s = s + (double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( \nThe value of function is: %lf\n, fun ( n ) ); } 2.统计substr所指的字符串在str所指的字符串中出现的次数 #include stdio.h int fun (char *str,char *substr) { int i,j,k,num=0; /************found************/ for(i = 0;str[i];i++) for(j=i,k=0;substr[k]==str[j];k++,j++) /************found************/ if(substr[k+1]==\0) { num++; break; } return num; } main() { char str[80],substr[80]; printf(Input a string:) ; gets(str); printf(Input a substring:) ; gets(substr); printf(%d\n,fun(str,substr)); } 3.实现两个变量值的交换,规定不允许增加语句和表达式。 #include stdio.h int fun(int *x,int y) { int t ; /**************found**************/ t = *x ; *x = y ; /**************found**************/ return(t) ; } main() { int a = 3, b = 8 ; printf(%d %d\n, a, b) ; b = fun(a, b) ; printf(%d %d\n, a, b) ; } 4.求两个非零正整数的最大公约数,并作为函数值返回。 #include stdio.h int fun(int a,int b) { int r,t; if(ab) { /************found************/ t=a; a=b; b=t; } r=a%b; while(r!=0) { a=b; b=r; r=a%b; } /************found************/ return(b); } main() { int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,num1,num2); printf(num1= %d num2= %d\n\n,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %d\n\n,a); } 5.将长整型数中各位上为奇数的数依次输出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 #include stdio.h void fun (long s, long *t) { int d; long sl=1; /************found************/ *t = 0; while ( s 0) { d = s%10; /************found************/ if (d%2!= 0) { *t = d * sl + *t; sl *= 10; } s /= 10; } } main() { long s, t; printf(\nPlease enter s:); sca

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档