国家二级C语言机试.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《国家二级C语言机试.docx》由会员分享,可在线阅读,更多相关《国家二级C语言机试.docx(227页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第01套: 给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入个*号。例如,形参s所指的字符串为:def35adh3kjsdf7o执行结果为:def3*5*adh3*kjsdf7*。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include void fun(char *s) int i, j, n;for(i=0; si!=0; i+)/* /* f o und* j if(si=0_1sii; j-) / * * * * * * * *
2、* * f u n d * * * * * * /Sj+1=3 i=i+l;)main() char s80=ba3a54cd23a;printf(nThe original string is : %sn,s);fun(s);printf(nThe result is : %sn,s);解题思路:第一处:判断是数字,应该使用与,所以应填:&。第二处:判断字符串是否是字符串结束符,所以应填:0。第三处:如果当前字符是数字字符,则把当前字符以后的所有字符往后一个位置,所以应 填:Sj.给定程序M0DI1.C中函数fun的功能是:根据整型形参m,计算如卜.公式的值。111 1y = 1 + +2*
3、2 3*3 4*4 m*m例如,若m中的值为:5,则应输出:1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include double fun ( int m ) double y = 1.0 ;int i;for(i = 2 ; i m ; i+) / * * * * * * * f 0 u n d * * * * * * * * * * / y += l/(i * i);return( y );main() printf( nThe result is %lfn, fun ( n );解题思路:第
4、一处:使用for循环计算公式,必须计算到m,所以应改为for(i=2; i=m; i+)。第二处:在除法运算中,如果除数和被除数都是整数,所以所除结果也是整数,因此应改为 y+ = l./(i*i)。请编写函数fun,函数的功能是:实现B=A+A,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为:123147456258789369程序输出:2 6 106 10 14注意:部分源程序在文件PR0G1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include void f
5、un ( int a33, int b33)main( ) /* 主程序 */ int a33 = 1, 2, 3, 4, 5, 6, 7, 8, 9, t33;int i, j ;fun(a, t);for (i = 0 ; i 3 ; i+) for (j = 0 ; j 3 ; j+)printf(%7d, tij);printf(n);?NONO ();)解题思路:本题考察考生如何实现矩阵的转置,然后执行两个矩阵中的元素值相加生成一个新的矩阵。矩阵转置实现上就是原行元素值变为列元素值,原列元素值变为行元素值。参考答案:void fun ( int a33, int b33) int c
6、33;int i, j ;for(i = 0 ; i 3 ; i+)for(j = 0 ; j 3 ; j+) cij = aUi ; /* 矩阵的转置 */bij = aiU + ciU;第02套:给定程序中,函数fun的功能是:找出100999之间(含100和999)所有整数中各位上数字之和为x (x为正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当X值为27时,各位数字之和为27的
7、整数是:999o只有1个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include fun(int x) int n, si, s2, s3, t;n=0;t=100;while(t =_1_) /* found*/ sl=t%10; s2=(2_)%10; s3=t/100;/* fo und* / if(sl+s2+s3=3) printf(%d ,t);n+;t+;return n;?main() int x=-l;while(x0): ); scanf(%
8、d,&x); printf(nThe result is: %dn,fun(x);)解题思路: 第一处:使用while循环找出100999之间所有整数,所以应填:999。第二处:S2是求十位数字,所以应填:t/10。第三处:各位数字之和为X,所以应填:Xo给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:642。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include void
9、 fun (long s, long t) long sl = 10;s/= 10;*t = s % 10;while ( s 0,所以应改为:while(s0)o学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include #define N 16typedef struct char num10;int s; STREC;int fun( STREC
10、 a)main() STREC sN = GA005,85,GA003,76,GA002,69,GA004,85),TAB TAB GA001,91,GA007,72,GA008,64,GA006,87),TAB TAB (GA015,85,GA013,91,GA012,64,GA014,91,TAB TAB GA011,66,GA017,64,GA018,64,GA016,72;int i;FILE *out ;fun( s );printf(The data after sorted :n);for(i=0;iN; i+) if( (i)%4=0 )printf(n);printf(%s
11、%4d ,si.num,si.s);printf(n);out = fopen(c:testout.dat,w);for(i=0;iN; i+) if( (i)%4=0 & I) fprintf(out, n);fprintf(out, %4d ,si.s);fprintf(out,n);fclose(out);解题思路:本题是按结构体中成绩s进行降序排列,其结果仍存入当前结构体中。参考答案:#include #define N 16typedef struct char num10;int s; STREC;int fun( STREC a)STREC tmp;int ij;for(i =
12、0; i N; i+)for(j = i+1; j N; j+)if(ai.s aj.s) tmp = ai;ai = aj;aj = tmp;第03套:给定程序中,函数fun的功能是:找出100至x (x999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有 26 个。请在程序的下划线处填入正确的
13、内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include fun(int x) int n, si, s2, s3, t;n= 1 t=100;/* found*/ while(t999| |x0) printf(Please input(0x=999): ); scanf(%dz&x); printf(HnThe result is: %dnzfun(x);解题思路: 第一处:符合条件的整数个数n,必须进行初始化,所以应填:0。第二处:找出XS999,所以应填:X。第三处:循环控制变量t每
14、循环一次t要加1,所以应填:t+ +。给定程序M0DI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。例如:当s所指的字符串为:ABCDE时,则t所指的字符串应为:EDCBAABCDE。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include #include void fun (char *s, char *t)int i;si = strlen(s);for (i=0; isl; i+)ti = ssl-i;for (i=0; i
15、sl; i+)TAB tsl+i = si;t2*sl = *0;main() char s100z t100;printf(MnPlease enter string s:n); scanf(H%sz s);fun(s, t);printf(The result is: %sn, t);解题思路:第一处:变量si没有定义。第二处:在C语言中,字符串开始位置从0开始的,所以应改为:ti = ssl-i-l;函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。例
16、如,当a=45, b=12o调用该函数后,c=1425o注意:部分源程序存在文件PR0G1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include void fun(int a, int b, long *c)main()/* 主函数 */ int a,b; long c;printf(Input a, b:);scanf(%d%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();解题思路:本题是给出两个两位数的
17、正整数分别取出各位上的数字,再按条件组成一个新数。取a十位数字的方法:a/10取a个位数字的方法:a%10参考答案:void fun(int a, int b, long *c)(*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);)第04套:函数fun的功能是:从三个形参a, b, c中找出中间的那个数,作为函数值返回。例如,当a=3, b=5, c=4时,中数为4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include in
18、t fun(int a, int b, int c)(int t;/* fo und* jt = (ab) ? (bc? b :(ac?c:1) : (ac)?2:(bc)?c:-3);return t;main() int al=3, a2=5, a3=4, r;r = fun(al, a2, a3);printf(nThe middle number is : %dn, r);解题思路:第一处:给三个数进行比较大小,所以应填:a。第二处:给三个数进行比较大小,所以应填:a。第三处:给三个数进行比较大小,所以应填:b。给定程序M0DI1.C中函数fun的功能是:首先将大写字母转换为对应小写字
19、母; 若小写字母为au,则将其转换为其后的第5个字母;若小写字母为vz,使其值减 21o转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母 f;若形参是字母W,则转换为小写字母bo请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include #include char fun(char c) if( o=A, & c=a &cv = iT) c=c-5;else if(o=v,&c=,z)c=c-21;return c;main() char cl,c2;printf(nEnter a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 二级 语言
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内