论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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语言上机试题(1、2、3)

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

/*程序修改题1

给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符
按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:当s中的字符串为:"ABCDE"时,
则t中的字符串应为:"ABCDEEDCBA"。
请改正程序中的错误,使它能得出正确的结果。
注重:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/

#include
#include
#include

void fun (char *s, char *t)
{ int i, sl;
sl = strlen(s);
/************found************/
for(i=0; i < sl; i++)
// for( i=0; i <= s1; i ++)
t[i] = s[i];
for (i=0; i < sl; i++)
t[sl+i] = s[sl-i-1];
/************found************/
t[sl+i]='\0';
// t[sl] = '\0';
}

main()
{ char s[100], t[100];
clrscr();
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}

/* 编程题
函数fun的功能是:将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数
的千位和十位上, b数的十位和个位数依次放在c数的百位和个位
上。
例如,当a=45,b=12。调用该函数后,c=4152。
注重: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10*1000+a%10*10+b/10*100+b%10;
/* 下面的方法为另一种更通用的方法, 显然要烦琐些
int d,e,n;
*c=0; n=1;
while(a > 0)
{ d=a%10*10; e=b%10;
*c+=(d+e)*n;
n*=100;
a=a/10; b=b/10;}
*///
}
main()
{ int a,b; long c;
clrscr();
printf("Input a, b:"); scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %d\n", c);
NONO();
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ; long c ;

rf = fopen("in1.dat", "r") ;
wf = fopen("bc01.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}

/* 文本文件 in1.dat 内容如下:
45,12
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/* 正确程序输出的 bc01.dat 内容如下:
a=45,b=12,c=4152
a=63,b=54,c=6534
a=14,b=78,c=1748
a=88,b=91,c=8981
a=71,b=13,c=7113
a=12,b=45,c=1425
a=72,b=32,c=7322
a=29,b=99,c=2999
a=34,b=43,c=3443
a=22,b=44,c=2424
*/


/*程序修改题2

给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符
按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:当s中的字符串为:"ABCDE"时,
则t中的字符串应为:"ABCDEEDCBA"。
请改正程序中的错误,使它能得出正确的结果。
注重:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/

#include
#include
#include

void fun (char *s, char *t)
{ int i, sl;
sl = strlen(s);
/************found************/
for(i=0; i < sl; i++)
// for( i=0; i <= s1; i ++)
t[i] = s[i];
for (i=0; i < sl; i++)
t[sl+i] = s[sl-i-1];
/************found************/
t[sl+i]='\0';
// t[sl] = '\0';
}

main()
{ char s[100], t[100];
clrscr();
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}

/* 编程题
函数fun的功能是:将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数
的千位和十位上, b数的十位和个位数依次放在c数的百位和个位
上。
例如,当a=45,b=12。调用该函数后,c=4152。
注重: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10*1000+a%10*10+b/10*100+b%10;
/* 下面的方法为另一种更通用的方法, 显然要烦琐些
int d,e,n;
*c=0; n=1;
while(a > 0)
{ d=a%10*10; e=b%10;
*c+=(d+e)*n;
n*=100;
a=a/10; b=b/10;}
*///
}
main()
{ int a,b; long c;
clrscr();
printf("Input a, b:"); scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %d\n", c);
NONO();
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ; long c ;

rf = fopen("in1.dat", "r") ;
wf = fopen("bc01.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}

/* 文本文件 in1.dat 内容如下:
45,12
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/* 正确程序输出的 bc01.dat 内容如下:
a=45,b=12,c=4152
a=63,b=54,c=6534
a=14,b=78,c=1748
a=88,b=91,c=8981
a=71,b=13,c=7113
a=12,b=45,c=14 25
a=72,b=32,c=7322
a=29,b=99,c=2999
a=34,b=43,c=3443
a=22,b=44,c=2424
*/

/*程序修改题3
给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型
变量s中奇数位上的数,依次构成一个新数放在t中。
例如,当s中的数为:7654321时,t中的数为:7531。
请改正程序中的错误,使它能得出正确的结果。
注重:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/

#include
#include

/************found************/
void fun (long s, long *t)
//void fun (long s, long t)
{ long sl=10;
*t = s % 10;
while ( s > 0)
{ s = s/100;
*t = s%10 * sl + *t;
/************found************/
sl=sl*10;
// sl = sl*100;
}
}

main()
{ long s, t;
clrscr();
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}


/* 编程题
函数fun的功能是:将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数
的个位和百位上, b数的十位和个位数依次放在c数的千位和十位
上。
例如,当a=45,b=12。调用该函数后,c=1524。
注重: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/

#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10+a%10*100+b/10*1000+b%10*10;

//
}
main()
{ int a,b; long c;
clrscr();
printf("Input a, b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %ld\n", c);
NONO();
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ; long c ;
rf = fopen("in1.dat", "r") ;
wf = fopen("bc03.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}

/* 文本文件 in1.dat 内容如下:
45,12
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/* 正确程序生成的 bc03.dat 内容应当如下:
a=45,b=12,c=1524
a=63,b=54,c=5346
a=14,b=78,c=7481
a=88,b=91,c=9818
a=71,b=13,c=1137
a=12,b=45,c=4251
a=72,b=32,c=3227
a=29,b=99,c=9992
a=34,b=43,c=4433
a=22,b=44,c=4242
*/

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