论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

2001年9月计算机等级考试二级C语言上机试题(13、49、50)

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:47:26

/*程序修改题13
给定程序MODI1.C中函数 fun 的功能是:将字符串中的内容按
逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注重:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include

/************found************/
fun(char *a)
//fun (char a)
{ if ( *a )
{ fun(a+1) ;
/************found************/
printf("%c",*a);
// printf("%c" *a) ;
}
}

main( )
{ char s[10]="abcd";
printf("处理前字符串=%s\n处理后字符串=", s);
fun(s); printf("\n") ;
}

/* 编程题
请编写一个函数fun,它的功能是:比较两个字符串的长度,
(不得调用C语言提供的求字符串长度的函数),函数返回较长的字
符串。若两个字符串长度相同,则返回第一个字符串。
例如,输入beijing shanghai (为回车键),
函数将返回shanghai。
注重: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
char *fun ( char *s, char *t)
{//
char *ss=s, *tt=t;
while((*ss)&&(*tt))
{ ss++; tt++; }
if(*tt) return(t);
else return(s);
//
}

main( )
{ char a[20],b[10],*p,*q;
int i;
printf("Input 1th string:") ;
gets( a);
printf("Input 2th string:") ;
gets( b);
printf("%s\n",fun (a, b ));
NONO ();
}

NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char a[20], b[20] ;

fp = fopen("bc03.in","r") ;
if(fp == NULL) {
printf("数据文件bc03.in不存在!") ;
return ;
}
wf = fopen("bc03.out","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s %s", a, b) ;
fprintf(wf, "%s\n", fun(a, b)) ;
}
fclose(fp) ;
fclose(wf) ;
}

/* bc03.in 内容如下:
alskdf fdslkfjds
dksfjf dssdd
jkfdf sdlkfjds
lksdjflksd flkdsjf
lksdjf fslkdjf
fsdlj fsdlkff
flsdjk fsdklfad
fslkj flsjfslkd
flksjflksdfjk nlfksdn
lkjfs fsfsfsd
*/
/*  bc03.out 内容应当如下:
fdslkfjds
dksfjf
sdlkfjds
lksdjflksd
fslkdjf
fsdlkff
fsdklfad
flsjfslkd
flksjflksdfjk
fsfsfsd
*/


/*程序修改题49

代码:--------------------------------------------------------------------------------/*
给定程序MODI1.C中 fun 函数的功能是:判定两个指针所
指存储单元中的值的符号是否相同;若相同函数返回1,否则返
回0。这两个存储单元中的值都不为0。
请改正程序中的错误,使它能得出正确的结果。
注重:不要改动 main 函数,不得增行或删行,也不得更改
程序的结构!
*/
#include
#include
/**********found**********/
fun ( double *a, double *b )
//fun ( double *a, *b )
{
/**********found**********/
if ( *a * *b > 0.0 )
// if ( a * b > 0.0 )
return 1;
else return 0;
}

main( )
{ double n , m;
clrscr( );
printf ("Enter n , m : "); scanf ("%lf%lf", &n, &m );
printf( "\nThe value of function is: %d\n", fun ( &n, &m ) );
NONO( );
}

NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
double n, m ;
FILE *rf, *wf ;

rf = fopen("gc8.in", "r") ;
wf = fopen("gc8.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf (rf, "%lf%lf", &n, &m );
fprintf(wf, "%d\n", fun(&n, &m)) ;
}
fclose(rf) ;
fclose(wf) ;
}
/* gc8.in 内容如下:
-22.993612 84.57629812
101.434234 -999.888432
-454.78678 -987.7856786
67987.798989 7878.564564564
-47238.312312 87212.212121
-8989.3424345 7899.9897897
2121.212121 -6767.2121298
-4324.5454 -32132.3232
899.9898312 7878.231212
21210.2121 -12332.2332
*/
/* 正确程序生成的 gc8.out 内容如下:
0
0
1
1
0
0
0
1
1
0
*/


/*编程题
请编一个函数fun(int *a, int n, int *odd, int *even),函
数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n
给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even
返回偶数之和。
例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针
odd返回奇数之和24;利用指针even 返回偶数之和 8。
注重: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
#define N 20
fun ( int *a, int n, int *odd, int *even )
{//
int i;
*odd=0; *even=0;
for(i=0; i
if(a[ i ]%2) *odd += a[ i ];
else *even += a[ i ];
//
}
main( )
{ int a[N]={1,9,2,3,11,6}, i, n=6, odd, even;
clrscr( );
printf ( "The original data is : \n" );
for ( i = 0; i < n; i ++ ) printf ( "%5d", *(a+i) );
printf("\n\n");
fun ( a, n, &odd, &even );
printf ( "The sum of odd numbers: %d\n", odd );
printf ( "The sum of even numbers: %d\n", even );
NONO( );
}

NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数 ,
输出数据,关闭文件。 */
int i, j, odd, even, n, a[N] ;
FILE *rf, *wf ;

rf = fopen("bc7.in", "r") ;
wf = fopen("bc7.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
for(j = 0 ; j < n ; j++) fscanf(rf, "%d", a+j) ;
fun(a, n, &odd, &even) ;
fprintf(wf, "odd=%d,even=%d\n", odd, even) ;
}
fclose(rf) ;
fclose(wf) ;
}
/* bc7.in 内容如下:
5 12 13 14 15 16
7 101 201 100 200 32 77 11
3 12 89 101
6 101 201 301 401 501 601
4 200 202 204 206
7 899 999 780 762 890 101 786
8 101 87 102 89 101 697 891 999
3 899 102 901
4 901 902 1001 888
10 101 201 899 202 896 109 899 1098 566 846
*/
/* 正确程序生成的 bc7.out 内容如下:
odd=28,even=42
odd=390,even=332
odd=190,even=12
odd=2106,even=0
odd=0,even=812
odd=1999,even=3218
odd=2965,even=102
odd=1800,even=102
odd=1902,even=1790
odd=2209,even=3608
*/


/*程序修改题50

代码:--------------------------------------------------------------------------------/*
给定程序MODI1.C中函数 fun 的功能是:判定字符ch是否与str
所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其
插在串的最后。
请改正程序中的错误,使它能进行正确的操作。
注重:不要改动 main 函数,不得增行或删行,也不得更改程
序的结构!
*/
#include
#include
#include
/**********found**********/
void fun(char *str, char ch )
//void fun(char str, char ch )
{ while ( *str && *str != ch ) str++;
/**********found**********/
if ( *str == '\0' )
// if ( *str == ch )
{ str [ 0 ] = ch;
/**********found**********/
str[1] = '\0';
// str[1] = '0';
}
}

main( )
{ char s[81], c ;
clrscr();
printf( "\nPlease enter a string:\n" ); gets ( s );
printf ("\n Please enter the character to search : " );
c = getchar();
fun(s, c) ;
printf( "\nThe result is %s\n", s);
NONO( );
}

NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
char s[81], t[81], c ;
FILE *rf, *wf ;

rf = fopen("gc9.in", "r") ;
wf = fopen("gc9.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf (rf, "%s%s", s, t );
c = t[0] ;
fun(s, c) ;
fprintf(wf, "%s\n", s) ;
}
fclose(rf) ;
fclose(wf) ;
}

/* 文本文件 gc9.in 内容如下:
fhdjskfhdstierwtmfvnsdkgsdjkweitrgf z
faskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdkl f
fsdjkfhsdjkfsdjkfhweiotrweufmewre d
fhsdfdfjkdsfsrweiotewiotueld m
fdsfjksdhsdffdshfdsjkfkjdskf 9
fsdfhsdjkfdsfjkwerdsfdmsdfjkd a
fjsdkfjsdkfksdljfdksltrwt 6
fsdjkfhsdjkfsdkffksdj n
fdskfhsdjkfhjsdkhfdudrnmcvmgsjkgf x
sjfhsdjkfhsdjfhfjdhsjkfhsdj m
*/
/*   程序全部修改正确生成的 gc9.out 内容如下:
fhdjskfhdstierwtmfvnsdkgsdjkweitrgfz
faskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdkl
fsdjkfhsdjkfsdjkfhweiotrweufmewre
fhsdfdfjkdsfsrweiotewiotueldm
fdsfjksdhsdffdshfdsjkfkjdskf9
fsdfhsdjkfdsfjkwerdsfdmsdfjkda
fjsdkfjsdkfksdljfdksltrwt6
fsdjkfhsdjkfsdkffksdjn
fdskfhsdjkfhjsdkhfdudrnmcvmgsjkgfx
sjfhsdjkfhsdjfhfjdhsjkfhsdjm
*/


/*编程题
请编一个函数fun(char *s),函数的功能是把字符串中的内容
逆置。
例如:字符串中原有的字符串为:abcdefg,
则调用该函数后, 串中的内容为:gfedcba。
注重: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
#include
#define N 81
fun ( char *s )
{//
strrev(s);

//
}
main( )
{ char a[N];
clrscr( );
printf ( "Enter a string : " ); gets ( a );
printf ( "The original string is : " ); puts( a );
fun ( a );
printf("\n");
printf ( "The string after modified : ");
puts ( a );
NONO( );
}

NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
char a[N] ;
FILE *rf, *wf ;

rf = fopen("bc8.in", "r") ;
wf = fopen("bc8.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", a) ;
fun(a) ;
fprintf(wf, "%s\n", a) ;
}
fclose(rf) ;
fclose(wf) ;
}

/*  文本文件 bc8.in 内容如下:
fjkdshjksdfhjksdfhsdjkfhsdjkfhsdjkfhsdafsdgdfklreiotertre
sdjklfhsdjkfhsdjkfhjrwerioweruiopfzxcfnweorfjsdkfhsdjkfhsdjkfhsdjkfhsd
fdslkfjklfsdkljfsdklfsdfsmfsdfsdjklfsdjfklsdfjsdfjsdkfjsdklfjsdklfjsdk
dsfhjsdkhfsdjkfhsdjfhsdjkfsfrweioruwelfsdfknsdr238945
fsdkljfdsklfjdskfjsdkjfksdfjdksfjsdkfjsdkfjsdkjfsdkfjsdkfjsd
fsdjfklsdfjksdfjsdlkfjsdlkrjeiowpriwpeoriwepxczmcmzxfmifjs
fsdlfkfjsdlkfjsdklfjsdkljfsdkfjsdkfjsdklwe9rweiopfjsdcvmsfewiorweioc
fsdlkfjsdkljfklsdfjsdklfjsdkljfsdkjfsdklfjsdkljfsdklfjdskfjsdklfjsdklfjsd
全国计算机等级考试二级C语言数据由国家教委考试中心承办
djashdjasdhjkashdjasdhasjkdhasjkdhasjkdhasjkdhasjkdhasjkdhas
*/
/*  正确程序生成的 bc8.out 文件内容应当如下:
ert retoierlkfdgdsfadshfkjdshfkjdshfkjdshfdskjhfdskjhsdkjf
dshfkjdshfkjdshfkjdshfkdsjfroewnfcxzfpoiurewoirewrjhfkjdshfkjdshflkjds
kdsjflkdsjflkdsjfkdsjfdsjfdslkfjdsflkjdsfdsfmsfdsflkdsfjlkdsflkjfklsdf
549832rdsnkfdsflewuroiewrfsfkjdshfjdshfkjdsfhkdsjhfsd
dsjfkdsjfkdsfjkdsjfkdsjfkdsjfskdjfdskfjkdsjfksdjflksdfjlkdsf
sjfimfxzmcmzcxpewiroepwirpwoiejrkldsjfkldsjfdskjfdslkfjdsf
coiewroiwefsmvcdsjfpoiewr9ewlkdsjfkdsjfkdsfjlkdsjflkdsjfkldsjfkfldsf
dsjflkdsjflkdsjfksdjflkdsfjlkdsjflkdsfjkdsfjlkdsjflkdsjfdslkfjlkdsjfkldsf
彀谐男兄允伎探壹捎菥匝镉C都允伎都鹊闼萍
sahdkjsahdkjsahdkjsahdkjsahdkjsahdkjsahdsajdhsakjhdsajdhsajd
*/

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058