📄 2001年9月计算机等级考试二级c语言上机试题(13、49、50).htm
字号:
<P><FONT
color=#ff0000>/*程序修改题13</FONT><BR>给定程序MODI1.C中函数
fun
的功能是:将字符串中的内容按<BR>逆序输出,但不改变字符串中的内容。<BR>例如,若字符串为abcd,则应输出:dcba。<BR>请改正程序中的错误,使它能计算出正确的结果。<BR>注意:不要改动main函数,不得增行或删行,也不得更改程序<BR>的结构!<BR><FONT
color=#ff0000>*/</FONT><BR><FONT
color=#009900>#include <STDIO.H></FONT></P>
<P><FONT
color=#009900>/************found************/<BR>fun(char
*a)<BR>//fun (char a)<BR>{ if ( *a )<BR>{ fun(a+1)
;<BR>/************found************/<BR>printf("%c",*a);<BR>//
printf("%c" *a) ;<BR>}<BR>}</FONT></P>
<P><FONT color=#009900>main( )<BR>{ char
s[10]="abcd";<BR>printf("处理前字符串=%s\n处理后字符串=",
s);<BR>fun(s); printf("\n")
;<BR>}<BR><BR></FONT></P>
<P><FONT color=#ff0000>/*
编程题</FONT><BR>请编写一个函数fun,它的功能是:比较两个字符串的长度,<BR>(不得调用C语言提供的求字符串长度的函数),函数返回较长的字<BR>符串。若两个字符串长度相同,则返回第一个字符串。<BR>例如,输入beijing
shanghai (为回车键),<BR>函数将返回shanghai。<BR>注意:
部分源程序存在文件PROG1.C文件中。<BR>请勿改动主函数main和其它函数中的任何内容,仅在函数fun<BR>的花括号中填入你编写的若干语句。<BR><FONT
color=#ff0000>*/</FONT><BR><FONT
color=#009900>#include <STDIO.H><BR>char *fun (
char *s, char *t)<BR>{//<BR>char *ss=s,
*tt=t;<BR>while((*ss)&&(*tt))<BR>{ ss++;
tt++; }<BR>if(*tt) return(t);<BR>else
return(s);<BR>//<BR>}</FONT></P>
<P><FONT color=#009900>main( )<BR>{ char
a[20],b[10],*p,*q;<BR>int i;<BR>printf("Input 1th
string:") ;<BR>gets( a);<BR>printf("Input 2th
string:") ;<BR>gets( b);<BR>printf("%s\n",fun (a,
b ));<BR>NONO ();<BR>}</FONT></P>
<P><FONT color=#009900>NONO ( )<BR>{/*
本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */<BR>FILE *fp, *wf
;<BR>int i ;<BR>char a[20], b[20] ;</FONT></P>
<P><FONT color=#009900>fp = fopen("bc03.in","r")
;<BR>if(fp == NULL) {<BR>printf("数据文件bc03.in不存在!")
;<BR>return ;<BR>}<BR>wf = fopen("bc03.out","w")
;<BR>for(i = 0 ; i < 10 ; i++) {<BR>fscanf(fp,
"%s %s", a, b) ;<BR>fprintf(wf, "%s\n", fun(a, b))
;<BR>}<BR>fclose(fp) ;<BR>fclose(wf)
;<BR>}</FONT></P>
<P><FONT color=#009900>/* bc03.in 内容如下:<BR>alskdf
fdslkfjds<BR>dksfjf dssdd<BR>jkfdf
sdlkfjds<BR>lksdjflksd flkdsjf<BR>lksdjf
fslkdjf<BR>fsdlj fsdlkff<BR>flsdjk
fsdklfad<BR>fslkj flsjfslkd<BR>flksjflksdfjk
nlfksdn<BR>lkjfs fsfsfsd<BR>*/<BR>/* bc03.out
内容应当如下:<BR>fdslkfjds<BR>dksfjf<BR>sdlkfjds<BR>lksdjflksd<BR>fslkdjf<BR>fsdlkff<BR>fsdklfad<BR>flsjfslkd<BR>flksjflksdfjk<BR>fsfsfsd<BR>*/</FONT></P>
<P><BR></P>
<P><FONT color=#ff0000>/*程序修改题49 </FONT></P>
<P>代码:--------------------------------------------------------------------------------/*<BR>给定程序MODI1.C中
fun
函数的功能是:判断两个指针所<BR>指存储单元中的值的符号是否相同;若相同函数返回1,否则返<BR>回0。这两个存储单元中的值都不为0。<BR>请改正程序中的错误,使它能得出正确的结果。<BR>注意:不要改动
main 函数,不得增行或删行,也不得更改<BR>程序的结构!<BR><FONT
color=#ff0000>*/</FONT><BR><FONT
color=#009900>#include <STDIO.H><BR>#include
<CONIO.H><BR>/**********found**********/<BR>fun (
double *a, double *b )<BR>//fun ( double *a, *b
)<BR>{<BR>/**********found**********/<BR>if ( *a *
*b > 0.0 )<BR>// if ( a * b > 0.0
)<BR>return 1;<BR>else return 0;<BR>}</FONT></P>
<P><FONT color=#009900>main( )<BR>{ double n ,
m;<BR>clrscr( );<BR>printf ("Enter n , m : ");
scanf ("%lf%lf", &n, &m );<BR>printf(
"\nThe value of function is: %d\n", fun ( &n,
&m ) );<BR>NONO( );<BR>}</FONT></P>
<P><FONT color=#009900>NONO( )<BR>{/*
请在此函数内打开文件,输入测试数据,调用 fun 函数,<BR>输出数据,关闭文件。
*/<BR>int i ;<BR>double n, m ;<BR>FILE *rf, *wf
;</FONT></P>
<P><FONT color=#009900>rf = fopen("gc8.in", "r")
;<BR>wf = fopen("gc8.out", "w") ;<BR>for(i = 0 ; i
< 10 ; i++) {<BR>fscanf (rf, "%lf%lf", &n,
&m );<BR>fprintf(wf, "%d\n", fun(&n,
&m)) ;<BR>}<BR>fclose(rf) ;<BR>fclose(wf)
;<BR>}<BR>/* gc8.in 内容如下:<BR>-22.993612
84.57629812<BR>101.434234
-999.888432<BR>-454.78678
-987.7856786<BR>67987.798989
7878.564564564<BR>-47238.312312
87212.212121<BR>-8989.3424345
7899.9897897<BR>2121.212121
-6767.2121298<BR>-4324.5454
-32132.3232<BR>899.9898312
7878.231212<BR>21210.2121 -12332.2332<BR>*/<BR>/*
正确程序生成的 gc8.out
内容如下:<BR>0<BR>0<BR>1<BR>1<BR>0<BR>0<BR>0<BR>1<BR>1<BR>0<BR>*/</FONT><BR><BR><BR><FONT
color=#ff0000>/*编程题</FONT><BR>请编一个函数fun(int *a,
int n, int *odd, int
*even),函<BR>数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n<BR>给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even<BR>返回偶数之和。<BR>例如:数组中的值依次为:
1,9,2,3,11,6;则利用指针<BR>odd返回奇数之和24;利用指针even 返回偶数之和
8。<BR>注意:
部分源程序存在文件PROG1.C文件中。<BR>请勿改动主函数main和其它函数中的任何内容,仅在函数fun<BR>的花括号中填入你编写的若干语句。<BR><FONT
color=#ff0000>*/</FONT><BR><FONT
color=#009900>#include <STDIO.H><BR>#include
<CONIO.H><BR>#define N 20<BR>fun ( int *a, int n,
int *odd, int *even )<BR>{//<BR>int i;<BR>*odd=0;
*even=0;<BR>for(i=0; i<N; i++)<br> if(a[ i ]%2)
*odd += a[ i ];<BR>else *even += a[ i
];<BR>//<BR>}<BR>main( )<BR>{ int
a[N]={1,9,2,3,11,6}, i, n=6, odd, even;<BR>clrscr(
);<BR>printf ( "The original data is : \n"
);<BR>for ( i = 0; i < n; i ++ ) printf (
"%5d", *(a+i) );<BR>printf("\n\n");<BR>fun ( a, n,
&odd, &even );<BR>printf ( "The sum of odd
numbers: %d\n", odd );<BR>printf ( "The sum of
even numbers: %d\n", even );<BR>NONO(
);<BR>}</FONT></P>
<P><FONT color=#009900>NONO( )<BR>{/*
请在此函数内打开文件,输入测试数据,调用 fun 函数,<BR>输出数据,关闭文件。
*/<BR>int i, j, odd, even, n, a[N] ;<BR>FILE *rf,
*wf ;</FONT></P>
<P><FONT color=#009900>rf = fopen("bc7.in", "r")
;<BR>wf = fopen("bc7.out", "w") ;<BR>for(i = 0 ; i
< 10 ; i++) {<BR>fscanf(rf, "%d", &n)
;<BR>for(j = 0 ; j < n ; j++) fscanf(rf, "%d",
a+j) ;<BR>fun(a, n, &odd, &even)
;<BR>fprintf(wf, "odd=%d,even=%d\n", odd, even)
;<BR>}<BR>fclose(rf) ;<BR>fclose(wf) ;<BR>}<BR>/*
bc7.in 内容如下:<BR>5 12 13 14 15 16<BR>7 101 201 100
200 32 77 11<BR>3 12 89 101<BR>6 101 201 301 401
501 601<BR>4 200 202 204 206<BR>7 899 999 780 762
890 101 786<BR>8 101 87 102 89 101 697 891
999<BR>3 899 102 901<BR>4 901 902 1001 888<BR>10
101 201 899 202 896 109 899 1098 566
846<BR>*/<BR>/* 正确程序生成的 bc7.out
内容如下:<BR>odd=28,even=42<BR>odd=390,even=332<BR>odd=190,even=12<BR>odd=2106,even=0<BR>odd=0,even=812<BR>odd=1999,even=3218<BR>odd=2965,even=102<BR>odd=1800,even=102<BR>odd=1902,even=1790<BR>odd=2209,even=3608<BR>*/<BR></FONT></P><BR><BR>
<P><FONT color=#ff0000>/*程序修改题50</FONT></P>
<P>代码:--------------------------------------------------------------------------------/*<BR>给定程序MODI1.C中函数
fun 的功能是:判断字符ch是否与str<BR>所指串中的某个字符相同;
若相同,什么也不做,若不同,则将其<BR>插在串的最后。<BR>请改正程序中的错误,使它能进行正确的操作。<BR>注意:不要改动
main 函数,不得增行或删行,也不得更改程<BR>序的结构!<BR><FONT
color=#ff0000>*/</FONT><FONT
color=#009900><BR>#include <CONIO.H><BR>#include
<STDIO.H><BR>#include
<STRING.H><BR>/**********found**********/<BR>void
fun(char *str, char ch )<BR>//void fun(char str,
char ch )<BR>{ while ( *str && *str != ch
) str++;<BR>/**********found**********/<BR>if (
*str == '\0' )<BR>// if ( *str == ch )<BR>{ str [
0 ] = ch;<BR>/**********found**********/<BR>str[1]
= '\0';<BR>// str[1] = '0';<BR>}<BR>}</FONT></P>
<P><FONT color=#009900>main( )<BR>{ char s[81], c
;<BR>clrscr();<BR>printf( "\nPlease enter a
string:\n" ); gets ( s );<BR>printf ("\n Please
enter the character to search : " );<BR>c =
getchar();<BR>fun(s, c) ;<BR>printf( "\nThe result
is %s\n", s);<BR>NONO( );<BR>}</FONT></P>
<P><FONT color=#009900>NONO( )<BR>{/*
请在此函数内打开文件,输入测试数据,调用 fun 函数,<BR>输出数据,关闭文件。
*/<BR>int i ;<BR>char s[81], t[81], c ;<BR>FILE
*rf, *wf ;</FONT></P>
<P><FONT color=#009900>rf = fopen("gc9.in", "r")
;<BR>wf = fopen("gc9.out", "w") ;<BR>for(i = 0 ; i
< 10 ; i++) {<BR>fscanf (rf, "%s%s", s, t
);<BR>c = t[0] ;<BR>fun(s, c) ;<BR>fprintf(wf,
"%s\n", s) ;<BR>}<BR>fclose(rf) ;<BR>fclose(wf)
;<BR>}</FONT></P>
<P><FONT color=#009900>/* 文本文件 gc9.in
内容如下:<BR>fhdjskfhdstierwtmfvnsdkgsdjkweitrgf
z<BR>faskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdkl
f<BR>fsdjkfhsdjkfsdjkfhweiotrweufmewre
d<BR>fhsdfdfjkdsfsrweiotewiotueld
m<BR>fdsfjksdhsdffdshfdsjkfkjdskf
9<BR>fsdfhsdjkfdsfjkwerdsfdmsdfjkd
a<BR>fjsdkfjsdkfksdljfdksltrwt
6<BR>fsdjkfhsdjkfsdkffksdj
n<BR>fdskfhsdjkfhjsdkhfdudrnmcvmgsjkgf
x<BR>sjfhsdjkfhsdjfhfjdhsjkfhsdj
m<BR>*/<BR>/* 程序全部修改正确生成的 gc9.out
内容如下:<BR>fhdjskfhdstierwtmfvnsdkgsdjkweitrgfz<BR>faskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdkl<BR>fsdjkfhsdjkfsdjkfhweiotrweufmewre<BR>fhsdfdfjkdsfsrweiotewiotueldm<BR>fdsfjksdhsdffdshfdsjkfkjdskf9<BR>fsdfhsdjkfdsfjkwerdsfdmsdfjkda<BR>fjsdkfjsdkfksdljfdksltrwt6<BR>fsdjkfhsdjkfsdkffksdjn<BR>fdskfhsdjkfhjsdkhfdudrnmcvmgsjkgfx<BR>sjfhsdjkfhsdjfhfjdhsjkfhsdjm<BR>*/</FONT></P>
<P><BR><FONT
color=#ff0000>/*编程题</FONT><BR>请编一个函数fun(char
*s),函数的功能是把字符串中的内容<BR>逆置。<BR>例如:字符串中原有的字符串为:abcdefg,<BR>则调用该函数后,
串中的内容为:gfedcba。<BR>注意:
部分源程序存在文件PROG1.C文件中。<BR>请勿改动主函数main和其它函数中的任何内容,仅在函数fun<BR>的花括号中填入你编写的若干语句。<BR><FONT
color=#ff0000>*/</FONT><BR><FONT
color=#009900>#include <STRING.H><BR>#include
<CONIO.H><BR>#include <STDIO.H><BR>#define N
81<BR>fun ( char *s
)<BR>{//<BR>strrev(s);</FONT></P>
<P><FONT color=#009900>//<BR>}<BR>main( )<BR>{
char a[N];<BR>clrscr( );<BR>printf ( "Enter a
string : " ); gets ( a );<BR>printf ( "The
original string is : " ); puts( a );<BR>fun ( a
);<BR>printf("\n");<BR>printf ( "The string after
modified : ");<BR>puts ( a );<BR>NONO(
);<BR>}</FONT></P>
<P><FONT color=#009900>NONO( )<BR>{/*
请在此函数内打开文件,输入测试数据,调用 fun 函数,<BR>输出数据,关闭文件。
*/<BR>int i ;<BR>char a[N] ;<BR>FILE *rf, *wf
;</FONT></P>
<P><FONT color=#009900>rf = fopen("bc8.in", "r")
;<BR>wf = fopen("bc8.out", "w") ;<BR>for(i = 0 ; i
< 10 ; i++) {<BR>fscanf(rf, "%s", a)
;<BR>fun(a) ;<BR>fprintf(wf, "%s\n", a)
;<BR>}<BR>fclose(rf) ;<BR>fclose(wf)
;<BR>}</FONT></P>
<P><FONT color=#009900>/* 文本文件 bc8.in
内容如下:<BR>fjkdshjksdfhjksdfhsdjkfhsdjkfhsdjkfhsdafsdgdfklreiotertre<BR>sdjklfhsdjkfhsdjkfhjrwerioweruiopfzxcfnweorfjsdkfhsdjkfhsdjkfhsdjkfhsd<BR>fdslkfjklfsdkljfsdklfsdfsmfsdfsdjklfsdjfklsdfjsdfjsdkfjsdklfjsdklfjsdk<BR>dsfhjsdkhfsdjkfhsdjfhsdjkfsfrweioruwelfsdfknsdr238945<BR>fsdkljfdsklfjdskfjsdkjfksdfjdksfjsdkfjsdkfjsdkjfsdkfjsdkfjsd<BR>fsdjfklsdfjksdfjsdlkfjsdlkrjeiowpriwpeoriwepxczmcmzxfmifjs<BR>fsdlfkfjsdlkfjsdklfjsdkljfsdkfjsdkfjsdklwe9rweiopfjsdcvmsfewiorweioc<BR>fsdlkfjsdkljfklsdfjsdklfjsdkljfsdkjfsdklfjsdkljfsdklfjdskfjsdklfjsdklfjsd<BR>全国计算机等级考试二级C语言数据由国家教委考试中心承办<BR>djashdjasdhjkashdjasdhasjkdhasjkdhasjkdhasjkdhasjkdhasjkdhas<BR>*/<BR>/* 正确程序生成的
bc8.out
文件内容应当如下:<BR>ertretoierlkfdgdsfadshfkjdshfkjdshfkjdshfdskjhfdskjhsdkjf<BR>dshfkjdshfkjdshfkjdshfkdsjfroewnfcxzfpoiurewoirewrjhfkjdshfkjdshflkjds<BR>kdsjflkdsjflkdsjfkdsjfdsjfdslkfjdsflkjdsfdsfmsfdsflkdsfjlkdsflkjfklsdf<BR>549832rdsnkfdsflewuroiewrfsfkjdshfjdshfkjdsfhkdsjhfsd<BR>dsjfkdsjfkdsfjkdsjfkdsjfkdsjfskdjfdskfjkdsjfksdjflksdfjlkdsf<BR>sjfimfxzmcmzcxpewiroepwirpwoiejrkldsjfkldsjfdskjfdslkfjdsf<BR>coiewroiwefsmvcdsjfpoiewr9ewlkdsjfkdsjfkdsfjlkdsjflkdsjfkldsjfkfldsf<BR>dsjflkdsjflkdsjfksdjflkdsfjlkdsjflkdsfjkdsfjlkdsjflkdsjfdslkfjlkdsjfkldsf<BR>彀谐男兄允伎
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -