C语言上机试题库_第1页
C语言上机试题库_第2页
C语言上机试题库_第3页
C语言上机试题库_第4页
C语言上机试题库_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C上机试题库

一、2002年4月

/*程序修改题1

给定程序中函数fun的功能是:先从键盘上输入一个

3行3列矩阵的各个元素的值,然后输出主对角线元素之和。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删

除,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序

的结构!

*/

#include

intfun()

(

inta[3][3],sum;

inti,j;

/*********found**********/

sum=0;

结束输入。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改

程序的结构!

****老王注:本类有输出结果的程序修改题,在评分时先看结果,如果

****结果正确,则直接给分;结果不正确或无结果,再一个错

****一个错评分。此法并不适用所有类似题。

*/

#include

intfun(char*c,intstatus)

if(*c==,')return1;

printf(n\n");

NONO();

)

NONO()

(

/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

charsl[81],ch;

inti,flag=1;

FILE*rf,*wf;

rf=fopen("n,"r");

wf=fopen("","w");

fgets(sl,80,rf);

for(i=0;i<strlen(sl);i++){

ch=sl[i];

flag二fun(&ch,flag);

sl[i]=ch;

)

fprintf(wf,"%s",si);

fclose(rf);

fclose(wf);

)

/*内容:

keysinindexesallowyouquickaccesstospecificrecordsanddefine

*/

/*内容:

KeysInIndexesAllowYouQuickAccessToSpecificRecordsAndDefine

*/

/*编程题

程序的功能是:把20个随机数存入一个数组,然后输出该数组

中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给

出该函数的定义。

注意:部分源程序在文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun

的花括号中填入你编写的若干语句。

*/

/*老王注:本题考生可以一字不动,只要按Ctrl+F9运行一下,

即可得38分,费去m牛n虎之力正确编程,不过多得

2分而已!

*/

#include

#include

#defineVSIZE20

intvector[VSIZE];

intfiin(intlist[],intsize)

(

t

*/

/*文件内容如下:

Youcanspecifyhaheprimaryindexisinrecordnumbersequence.

*/

二、2001年9月

*程序修改题13

给定程序中函数fun的功能是:将字符串中的内容按

逆序输出,但不改变字符串中的内容。

例如,若字符串为abed,则应输出:deba.

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序

的结构!

*/

#include

/************found************/

fun(char*a)

*/

/*正确程序生成的内容如下:

0

0

1

1

0

0

0

1

1

0

*/

/*编程题

请编一个函数fun(int*a,intn,int*odd,int*even),函

数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n

给出数组中数据的个数;利用指针。dd返回奇数之和,利用指针even

返回偶数之和。

例如:数组中的值依次为:1,9,2,3,11,6;则利用指针

odd返回奇数之和24;利用指针even返回偶数之和8。

注意:部分源程序存在文件文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun

的花括号中填入你编写的若干语句。

*/

#include

#include

#defineN20

fun(int*a,intn,int*odd,int*even)

{,fun(M,aa));

)

/*编程题

函数fun的功能是:将两个两位数的正整数a、b合并形成一个

整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数

的千位和十位上,b数的十位和个位数依次放在c数的个位和百位

上。

例如,当a=45,b=12.调用该函数后,c=4251。

注意:部分源程序存在文件中。数据文件中

的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun

的花括号中填入你编写的若干语句。

*/

#include

#include

voidfun(inta,intb,long*c)

{//

*c=a/10*1000+a%10*10+b/l0+b%10*100;

//

)

main()

{inta,b;longc;

clrscr();

printf("Inputa,b:n);

scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresultis:%ld\n",c);

NONO();

)

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen("H,"r");

wf=fopenC'V'w");

for(i=0;i<10;i++){

fscanf(rf,"%d,%dn,&a,&b);

fun(a,b,&c);

fprintf(wf,na=%d,b=%d,c=%ld\nn,a,b,c);

)

fclose(rf);

fclose(wf);

45,12

63,54

14,78

88,91

71,13

12,45

72,32

29,99

34,43

22,44

*/

/*

a=45,b=12,c=4251

a=63,b=54,c=6435

a=14,b=78,c=1847

a=88,b=91,c=8189

a=71,b=13,c=7311

a=12,b=45,c=1524

a=72,b=32,c=7223

a=29,b=99,c=2999

a=34,b=43,c=3344

a=22,b=44,c=2424

*/

2001年9月计算机等级考试二级C语言上机试题(1、2、3)

/*程序修改题1

给定程序中函数fun的功能是:先将在字符串s中的字符

按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

例如:当s中的字符串为:"ABCDE”时,

则t中的字符串应为:"ABCDEEDCBA"。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序

的结构!

*/

#include

#include

#include

voidfun(char*s,char*t)

{inti,si;

si=strlen(s);

/************found************/

for(i=0;i<si;i++)

//for(i=0;i<=si;i++)

t[i]=s[i];

for(i=0;i<si;i++)

t[sl+i]=s[sl-i-l];

/************found************I

t[sl+i]='\O';

//t[sl]=W;

)

main()

{chars[100],t[100];

clrscr();

printf("\nPleaseenterstrings:n);scanf("%s",s);

fun(s,t);

printf("Theresultis:%s\n,',t);

)

/*编程题

函数fun的功能是:将两个两位数的正整数a、b合并形成一个

整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数

的千位和十位上,b数的十位和个位数依次放在c数的百位和个位

上。

例如,当a=45,b=如。调用该函数后,c=4152»

注意:部分源程序存在文件中。数据文件中

的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun

的花括号中填入你编写的若干语句。

*/

#include

#include

voidfun(inta,intb,long*c)

{//

*c=a/10*1000+a%10*10+b/10*100+b%10;

/*下面的方法为另一种更通用的方法,显然要烦琐些

intd,e,n;

*c=0;n=l;

while(a>0)

{d=a%10*10;e=b%10;

*c+=(d+e)*n;

n*=100;

a=a/10;b=b/10;}

*〃/

)

main()

{inta,b;longc;

clrscr();

printf("Inputa,b:H);scanf("%d%dn,&a,&b);

fun(a,b,&c);

printf("Theresultis:%d\n",c);

NONO();

)

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen(',n,"r");

wf=fopen(“",“w“);

for(i=0;i<10;i++){

fscanf(rf,"%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf,na=%d,b=%d,c=%ld\n",a,b,c);

)

fclose(rf);

fclose(wf);

)

/*文本文件内容如下:

45,12

63,54

14,78

88,91

71,13

12,45

72,32

29,99

34,43

22,44

*/

/*正确程序输出的内容如下:

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

给定程序中函数fun的功能是:先将在字符串s中的字符

按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

例如:当s中的字符串为:"ABCDE”时,

则t中的字符串应为:"ABCDEEDCBA”。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序

的结构!

*/

#include

#include

#include

voidfun(char*s,char*t)

{inti,si;

si=strlen(s);

/************found************/

for(i=0;i<si;i++)

//for(i=0;i<=si;i++)

t[i]=s[i];

for(i=0;i<si;i++)

t[sl+i]=s[sl-i-l];

/************found************I

t[sl+i]='\O';

//t[sl]=

)

main()

{chars[100],t[100];

clrscr();

printf(n\nPleaseenterstrings:");scanf("%s",s);

fun(s,t);

printf("Theresultis:%s\nn,t);

)

/*编程题

函数fun的功能是:将两个两位数的正整数a、b合并形成一个

整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数

的千位和十位上,b数的十位和个位数依次放在c数的百位和个位

上。

例如,当a=45,b=12o调用该函数后,c=4152o

注意:部分源程序存在文件中。数据文件中

的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun

的花括号中填入你编写的若干语句。

*/

#include

#include

voidfun(inta,intb,long*c)

{//

*c=a/10*1000+a%10*10+b/10*100+b%10;

/*下面的方法为另一种更通用的方法,显然要烦琐些

intd,e,n;

*c=0;n=l;

while(a>0)

{d=a%10*10;e=b%10;

*c+=(d+e)*n;

n*=100;

a=a/10;b=b/10;}

*〃/

)

main()

{inta,b;longc;

clrscr();

printf("Inputa,b:H);scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresultis:%d\n",c);

NONO();

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen(n",nrn);

wf=fopen("'V'w");

for(i=0;i<10;i++){

fscanf(rf,"%d,%dH,&a,&b);

fun(a,b,&c);

fprintf(wf,,'a=%d,b=%d,c=%ld\nn,a,b,c);

)

fclose(rf);

fclose(wf);

)

/*文本文件内容如下:

45,12

63,54

14,78

88,91

71,13

12,45

72,32

29,99

34,43

22,44

*/

/*正确程序输出的内容如下:

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

*/

/*程序修改题3

给定程序中函数fun的功能是:从低位开始取出长整型

变量s中奇数位上的数,依次构成一个新数放在t中。

例如,当s中的数为:7654321时,t中的数为:7531。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序

的结构!

*/

#include

#include

voidfun(longs,long*t)

//voidfun(longs,longt)

{longsl=10;

*t=s%10;

while(s>0)

{s=s/100;

*t=s%10*si+*t;

/************found************I

sl=sl*10;

//si=si*100;

main()

{longs,t;

clrscr();

printf("\nPleaseenters:");scanf("%ld'*,&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

/*编程题

函数fun的功能是:将两个两位数的正整数a、b合并形成一个

整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数

的个位和百位上,b数的十位和个位数依次放在c数的千位和十位

±o

例如,当a=45,b=12o调用该函数后,c=1524o

注意:部分源程序存在文件中。数据文件中

的数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论