C语言上机编程题完整版.docx

上传人:b****4 文档编号:12288080 上传时间:2023-04-17 格式:DOCX 页数:47 大小:23.23KB
下载 相关 举报
C语言上机编程题完整版.docx_第1页
第1页 / 共47页
C语言上机编程题完整版.docx_第2页
第2页 / 共47页
C语言上机编程题完整版.docx_第3页
第3页 / 共47页
C语言上机编程题完整版.docx_第4页
第4页 / 共47页
C语言上机编程题完整版.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

C语言上机编程题完整版.docx

《C语言上机编程题完整版.docx》由会员分享,可在线阅读,更多相关《C语言上机编程题完整版.docx(47页珍藏版)》请在冰豆网上搜索。

C语言上机编程题完整版.docx

C语言上机编程题完整版

include

#include

voidmain()

{inta[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;

//clrscr();

max=a[0];

pos=0;

for(i=1;i<10;i++)

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

if(max

{

max=a[i];

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

pos=i;

}

printf("Themaxis:

%d,posis:

%d",max,pos);

}

两个位置全部正确

标准答案第一个位置:

if(maxif(max<=a[i])

if(a[i]>max)

if(a[i]>=max)

第二个位置:

pos=i;

二、程序填空题(30分,得分:

30分)

 在考生文件夹下,给定程序FILL.C的功能是:

从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符

串转换成一个十进制数。

例如:

从键盘上输入12345,则程序运行的结果应当为:

n=12345。

请填空,并运行该程序,然后将源程序文件FILL.C提交。

程序有两个空

(1)、

(2)需要补充完整。

并将程序调试出所需的结果。

注意:

不要随意改动程序,不得增行或删行,也不得更改程序的结构!

做题情况源程序文件

#include"stdio.h"

#include"string.h"

voidmain()

{chars[10];inti;

longintn;

//clrscr();

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

n=0;

scanf("%s",s);

for(i=0;i

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

n=n*10+(s[i]-48);

printf("n=%ld",n);

}

两个位置全部正确

标准答案第一个位置:

n=0;

第二个位置:

n=n*10+s[i]-’0’;

n=n*10+*(s+i)-’0’;

n=n*10+*(i+s)-’0’;

n=n*10-’0’+s[i];

n=n*10-’0’+*(s+i);

n=n*10-’0’+*(i+s);

n=n*10+(s[i]-’0’);

n=n*10+(*(s+i)-’0’);

n=n*10+(*(i+s)-’0’);

n=n*10+(s[i]-48);

n=n*10+(*(s+i)-48);

n=n*10+(*(i+s)-48);

n=n*10-(’0’-*(i+s));

n=n*10-(’0’-s[i]);

n=n*10-(’0’-*(s+i));

n=n*10+s[i]-48;

n=n*10+*(s+i)-48;

n=n*10+*(i+s)-48;

n=n*10-48+s[i];

n=n*10-48+*(s+i);

三、程序设计题(40分,得分:

40分)

 在考生文件夹下,要求程序PROG.C的功能是:

将一个4位的整数m拆开,然后按相反顺序输出,每输出一位数其后留

2个空格。

例如,如果m=1234,则程序的输出结果应为:

m=1234,4321。

部分源程序存在文件PROG.C中。

请在main()函数中的/*******begin********/与/********end*********/

之间填入你编写的若干语句,存盘并运行,直到得出正确结果。

请勿改动其它位置的任何内容。

注意:

main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。

运行并调试程序,然后将源程序文件PROG.C提交。

特别提示:

必须将计算结果存入变量sum中。

做题情况源程序文件

#include"stdio.h"

#include"math.h"

#include"conio.h"

#include"stdlib.h"

voidmain()

{intm=1234,a,b,c,d;

/***********begin***********/

a=m%1230;b=(m%100)/10;

c=(m/100)%10;d=m/1000;

/************end************/

printf("m=%d,%d%d%d%d",m,a,b,c,d);

NONO(m,a,b,c,d);

}

NONO(x,a,b,c,d)

intx,a,b,c,d;

{FILE*f;

f=fopen("D:

\exam\11200112\PROGOUT.DAT","w");

fprintf(f,"x=%d:

%3d%3d%3d%3d####",x,a,b,c,d);

fclose(f);

}

结果文件

x=1234:

4321####

结果文件正确

标准答案结果文件包含:

x=1234:

4321####

辅助判分源文件包含:

%``比例:

20

/10``比例:

20

/100``比例:

10

c=``比例:

20

1

求二维数组a中的最大值。

例如,当二维数组a中的元素为:

4434

7312

565

程序的输出应为:

Themaxis:

34。

请修改并运行该程序,然后将源程序文件MODI.C提交。

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行,请考生注意。

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

注意:

程序中的其它地方请考生不要随意改动,不得增行

或删行,也不得更改程序的结构!

做题情况源程序文件

#include

#include

voidmain()

{inta[3][3]={4,4,34,7,3,12,5,6,5},i,j,max;

max=a[0][0];

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

for(j=0;j<3;j++)

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

if(max

{

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

max=a[i][j];

}

printf("Themaxis:

%d",max);

}

两个位置全部正确

标准答案第一个位置:

if(maxif(max<=a[i][j])

if(a[i][j]>max)

if(a[i][j]>=max)

第二个位置:

max=a[i][j];

二、程序填空题(30分,得分:

30分)

 在考生文件夹下,给定程序FILL.C的功能是:

m!

求Cmn=——————之值。

n!

*(m-n)!

例如,当m=12,n=2时,程序的输出应为:

Cmnis:

66。

请填空,并运行该程序,

然后将源程序文件FILL.C提交。

程序有两个空

(1)、

(2)需要补充完整。

并将程序调试出所需的结果。

注意:

不要随意改动程序,不得增行或删行,也不得更改程序的结构!

做题情况源程序文件

#include

#include

#include

longintfun(intx)

{longints=1;inti;

for(i=1;i<=x;i++)

s*=i;

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

returns;

}

voidmain()

{longintm=12,n=2,s1,s2,s3;

//clrscr();

s1=fun(m);

s2=fun(n);

s3=fun(m-n);

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

printf("Cmnis:

%ld",s1/(s2*s3));

}

两个位置全部正确

标准答案第一个位置:

returns;

return(s);

第二个位置:

printf("Cmnis:

%ld",s1/s2/s3);

printf("Cmnis:

%ld",s1/s3/s2);

printf("Cmnis:

%ld",s1/(s2*s3));

printf("Cmnis:

%ld",s1/(s3*s2));

printf("Cmnis:

%ld",(s1/(s2*s3)));

printf("Cmnis:

%ld",(s1/s3/s2));

printf("Cmnis:

%ld",(s1/(s3*s2)));

printf("Cmnis:

%ld",(s1/s2/s3));

三、程序设计题(40分,得分:

20分)

 在考生文件夹下,要求程序PROG.C的功能是:

求3*3矩阵的最大值并输出。

例如,当矩阵为:

123

495

786

则最大值为:

9

部分源程序存在文件PROG.C中。

请在fun()函数中的/*******begin********/与/********end*********/

之间填入你编写的若干语句,存盘并运行,直到得出正确结果。

请勿改动其它位置的任何内容。

注意:

main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。

运行并调试程序,然后将源程序文件PROG.C提交。

做题情况源程序文件

#include

#include

intfun(inta[3][3])

{

/***********begin***********/

inti,j,max;

for(i=1;i<=3;i++)

for(j=1;j<=3;j++)

if(a[i][j]>max)

max=a[i][j];

/************end************/

}

voidmain()

{inta[3][3]={1,2,3,4,9,5,7,8,6};

inti,j,max;

//clrscr();

printf("arrayis:

");

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

{

for(j=0;j<3;j++)

printf("%5d",a[i][j]);

printf("");

}

max=fun(a);

printf("Resultis:

%d",max);

NONO();

}

NONO()

{FILE*fr,*fw;

inti,j,k,m,a[3][3];

fr=fopen("D:

\exam\11300117\PROGIN.DAT","r");

fw=fopen("D:

\exam\11300117\PROGOUT.DAT","w");

for(i=1;i<=5;i++)

{for(j=0;j<3;j++)

for(k=0;k<3;k++)

{fscanf(fr,"%d",&a[j][k]);

fprintf(fw,"%4d",a[j][k]);}

fprintf(fw,"Max=%d",fun(a));}

fclose(fr);

fclose(fw);

}

结果文件

1213121871610171Max=4

15192835161Max=4

61092451541Max=4

116721814866Max=4

851091451348Max=4

由于结果文件不正确,辅助判分。

源代码中未含return或

标准答案结果文件包含:

1213121871610171Max=18

15192835161Max=19

61092451541Max=15

116721814866Max=18

851091451348Max=14

辅助判分源文件包含:

=a[``比例:

20

for``比例:

20

if``比例:

10

return``比例:

20

9

胡健16:

57:

06

#include

#include

voidmain()

{longs,t,sl=1;

intd;

//clrscr();

printf("Pleaseenters:

");scanf("%ld",&s);

t=0;

while(s>0)

{d=s%10;

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

if(d%2==0)

{t=d*sl+t;

sl*=10;

}

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

s=s/10;

}

printf("Theresultis:

%ld",t);

}

两个位置全部正确

标准答案第一个位置:

if(d%2==0)

if(!

(d%2))

if(0==d%2)

if(!

(d%2==1))

if(!

(1==d%2))

if(0==(d%2))

if(!

((d%2)==1))

if(!

(1==(d%2)))

第二个位置:

s/=10;

s=s/10;

二、程序填空题(30分,得分:

15分)

 在考生文件夹下,给定程序FILL.C的功能是:

求两个正整数[m,n]之间所有既能被3整除也能被7整除的整数

之和。

例如:

m=1,n=2000,则程序的输出结果应为:

Sumis:

95760。

请填空,并运行该程序,然后将源程序文件FILL.C提交。

程序有两个空

(1)、

(2)需要补充完整。

并将程序调试出

所需的结果。

注意:

不要随意改动程序,不得增行或删行,也不得更

改程序的结构!

做题情况源程序文件

#include

#include

#include

main()

{intm,n,i,t;

longints=0;

//clrscr();

scanf("%d,%d",&m,&n);

if(m>n)

{t=m;m=n;n=t;}

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

for(i=m;i<=n;i++)

if(i%3==0&&i%7==0)

s+=i;

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

printf("Sumis:

%d",s);

}

第二个位置错

标准答案第一个位置:

for(i=m;i<=n;i++)

for(i=m;i

第二个位置:

printf("Sumis:

%ld",s);

printf("Sumis:

%6ld",s);

三、程序设计题(40分,得分:

40分)

 在考生目录下,要求程序PROG.C的功能是:

求一个三位整数m的每位数之和,m的值由键盘输入。

例如,当m=256时,程序的输出结果应为:

Resultis:

13。

部分源程序存在文件PROG.C中。

请在fun()函数中的/*******begin********/与/********end*********/

之间填入你编写的若干语句,存盘并运行,直到得出正确结果。

请勿改动其它位置的任何内容。

注意:

main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。

运行并调试程序,然后将源程序文件PROG.C提交。

做题情况源程序文件

#include

#include

intfun(intm)

{

/***********begin***********/

intm1,m2,m3,s;

m1=m%10;

m2=m/10%10;

m3=m/100;

s=m1+m2+m3;

returns;

/************end************/

}

voidmain()

{intm,s;

//clrscr();

printf("Enterm:

");

scanf("%d",&m);

s=fun(m);

printf("Resultis:

%d",s);

NONO();

}

NONO()

{FILE*fr,*fw;

inti,j,k,m;

fr=fopen("D:

\exam\11300121\PROGIN.DAT","r");

fw=fopen("D:

\exam\11300121\PROGOUT.DAT","w");

for(i=1;i<=5;i++)

{fscanf(fr,"%d",&m);

fprintf(fw,"Sum=%d",fun(m));}

fclose(fr);

fclose(fw);

}

结果文件

Sum=8

Sum=18

Sum=8

Sum=14

Sum=10

结果文件正确

标准答案结果文件包含:

Sum=8

Sum=18

Sum=8

Sum=14

Sum=10

辅助判分源文件包含:

%10``比例:

20

/10``比例:

20

/100``比例:

10

return``比例:

20

``

8

胡健16:

57:

29

例如,当二维数组a中的元素为:

4434

7312

565

程序的输出应为:

Themaxis:

34。

请修改并运行该程序,然后将源程序文件MODI.C提交。

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行,请考生注意。

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

注意:

程序中的其它地方请考生不要随意改动,不得增行

或删行,也不得更改程序的结构!

做题情况源程序文件

#include

#include

voidmain()

{inta[3][3]={4,4,34,7,3,12,5,6,5},i,j,max;

max=a[0][0];

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

for(j=0;j<3;j++)

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

if(max

{

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

max=a[i][j];

}

printf("Themaxis:

%d",max);

}

两个位置全部正确

标准答案第一个位置:

if(maxif(max<=a[i][j])

if(a[i][j]>max)

if(a[i][j]>=max)

第二个位置:

max=a[i][j];

二、程序填空题(30分,得分:

15分)

 在考生文件夹下,给定程序FILL.C的功能是:

在第一个循环中从键盘上给a数组的前M(M<100)个数组元素依次赋值;在

第二个循环中使a数组前M个元素中的值对称折叠;在最后一个循环中输出

折叠以后的a数组的前M个元素。

例如:

当M为5时,如果从键盘上输入的5个数分别为:

1、2、3、4、5时,

输出应为:

12321。

当M为10时,如果从键盘上输入的10个数分别为:

1、2、3、4、5、6、7、8、9、10时,

输出应为:

1234554321。

请填空,并运行该程序,然后将源程序文件FILL.C提交。

程序有两个空

(1)、

(2)需要补充完整。

并将程序调试出

所需的结果。

注意:

不要随意改动程序,不得增行或删行,也不得更

改程序的结构!

做题情况源程序文件

#defineM5

voidmain()

{inti,a[100],t;

//clrscr();

for(i=0;i

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

a[i]=i

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

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

a[M-i-1]=a[i];

for(i=0;i

printf("%5d",a[i]);

printf("");

}

第一个位置错

标准答案第一个位置:

scanf("%d",&a[i]);

scanf("%d",a+i);

第二个位置:

for(i=0;ifor(i=0;i<=M/2-1;i++)

for(i=0;i<=(M-1)/2;i++)

for(i=0;i<5/2;i++)

for(i=0;i<=5/2-1;i++)

for(i=0;i<=(5-1)/2;i++)

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

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

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

for(i=0;i<=M/2;i++)

三、程序设计题(40分,得分:

40分)

 在考生文件夹下,要求程序PROG.C的功能是:

求两个整数m和n的最大公约数,将求出的最大公约数存入变量t中。

部分源程序存在文件PROG.C中。

请在main()函数中的/*******begin********/与/********end*********/

之间填入你编写的若干语句,存盘并运行,直到得出正确结果。

请勿改动其它位置的任何内容。

注意:

main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。

运行并调试程序,然后将源程序文件PROG.C提交。

特别提示:

必须将结果存入变量t中。

做题情况源程序文件

#include"stdio.h"

#include"math.h"

#

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1