C程序设计上机模拟题.docx

上传人:b****5 文档编号:12692865 上传时间:2023-04-21 格式:DOCX 页数:41 大小:30.93KB
下载 相关 举报
C程序设计上机模拟题.docx_第1页
第1页 / 共41页
C程序设计上机模拟题.docx_第2页
第2页 / 共41页
C程序设计上机模拟题.docx_第3页
第3页 / 共41页
C程序设计上机模拟题.docx_第4页
第4页 / 共41页
C程序设计上机模拟题.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

C程序设计上机模拟题.docx

《C程序设计上机模拟题.docx》由会员分享,可在线阅读,更多相关《C程序设计上机模拟题.docx(41页珍藏版)》请在冰豆网上搜索。

C程序设计上机模拟题.docx

C程序设计上机模拟题

第三部分C程序设计上机模拟题

 

(一)

(一) 上机修改题

1.在考生目录下,有Modify.c程序,该程序中”/******N******/”的下一行中

有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入m、n(要求输入数均大于0),输出它们的最小公倍数

/*findtheleasecommonmultipleofmandn*/

#include

voidmain()

{intm,n,k;

/****1*****/

while(scanf("%d%d",&m,&n),m<0&&n<0);//m<0||n<0

for(k=m;k%n!

=0;)

/*****2****/

k=k+m%n;//k=k+m

printf("%d\n",k);

}

2.2.      在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下一行中有错误,

请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时若输入a、n分别为3、6,则输出下列表达式的值:

3+33+333+3333+33333+333333

#include

voidmain()

{inti,a,n,t=0;

/*****1*****/

s=0;//ints=0;

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

for(i=1;i<=n;i++){

/*******2******/

t=t*10+i;//t=t*10+1;

s=s+t;

}

s=s*a;

printf("%d\n",s);

}

3.3.      在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下一行中有错误,

请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204

则输出9)。

#include

#include

voidmain()

{intn,s=0;

scanf("%d",&n);

n=fabs(n);

/********1*******/

while(n>1){//n

s=s+n%10;

/********2******/

n=n%10;//n=n/10;

}

printf("%d\n",s);

}

4.4.      在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下一行中有错误,

请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入1个字符串,输出其中所出现过的大写英文字母。

如运行时

输入字符串"FONTNAMEandFILENAME",应输出"FONTAMEIL"。

#include

voidmain()

{charx[80],y[26];inti,j,ny=0;

gets(x);

for(i=0;x[i]!

='\0';i++)

if(x[i]>='A'&&x[i]<='Z'){

for(j=0;j

/*****1*****/

if(y[i]==x[j])continue;//if(y[j]==x[i])break;

if(j==ny){y[ny]=x[i];ny++;}

}

/*****2*****/

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

printf("%c",y[i]);

printf("\n");

}

5.5.      在考生目录下,有Modify.c程序,该程序中"/*****N****/"的下一行

中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入x、eps,计算多项式1-x+x*x/2!

-x*x*x/3!

+...的和直到末项的

绝对值小于eps为止。

#include

#include

voidmain()

{floatx,eps,s=1,t=1,i=1;

scanf("%f%f",&x,&eps);

do{/*****1****/

t=-t*x/++i;//t=-t*x/i++;

s+=t;

/*****2****/

}while(fabs(t)>=eps)//少;

printf("%f\n",s);

}

6.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下

一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

分别统计字符串中所有英文字母中的各元音字母个数。

#include

#include

voidmain()

{chara[80];intn[5]={0},i;

gets(a);

for(i=0;a[i]!

=’\0’;i++)

/*****1*****/

switch(tolower(a+i)){//switch(tolower(a[i]))

case'a':

n[0]++;break;

case'e':

n[1]++;break;

case'i':

n[2]++;break;

case'o':

n[3]++;break;

/*****2*****/

case'U':

n[4]++;break;//‘u’

}

for(i=0;i<5;i++)printf("%d\n",n[i]);

}

7.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下

一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)

该程序功能:

输入n(0

如输入n为4,

则输出:

1

222

33333

4444444

#include

voidmain()

{inti,j,n;

/*****1*****/

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

for(i=1;i<=n;i++){

for(j=1;j<=n+1-i;j++)

putchar('');

for(j=1;j<=2*i-1;j++)

putchar((char)(i+48));

/******2*****/

putchar(\n);//‘\n’

}

}

8.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下一行中

有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输入10个数,然后分别输出其中的最大值、最小值。

#include

voidmain()

{floatx,max,min;

/********1*******/

for(inti=1;i<=10;i++){//C中不能这样用,改为:

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

scanf("%f",&x);

/*******2********/

if(i=1){max=x;min=x;}//i==1

if(x>max)max=x;

if(x

}

printf("%f,%f\n",max,min);

}

9.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下一行中有错误,

请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、

5、7、11)。

#include

voidmain()

{intn,i;

scanf("%d",&n);

/******1******/

i=1;//i=2;

while(n>1)

if(n%i==0)

{printf("%d\t",i);n/=i;}

else

/********2*******/

n--;//i++;

}

10.在考生目录下,有Modify.c程序,该程序中“/*****N*****/”的下一行中有错误,

请改正(注意:

不得加行、减//行、加句、减句,否则后果自负)。

该程序功能:

输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的

大写字母后,输出该字符串。

#include

#include

#include

voidmain()

{intn,i;

/*****1*****/

charstr;//char*str

scanf("%d\n",&n);str=(char*)malloc(n);gets(str);

/*****2*****/

for(i=1;i

if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-32;

puts(str);

}

 

(二)

(二) 上机填充题

1.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要

填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入m、n(要求输入数均大于0),输出它们的最大公约数。

#include

voidmain()

{intm,n,k;

while(scanf("%d%d",&m,&n);____1___);//m<0||n<0

for(____2____;n%k!

=0||m%k!

=0;k--);//k=m

m:

n

printf("%d\n",k);

}

2.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

函数f将1个整数首尾倒置,程序输出结果应为"54321-76543"。

#include

#include

intf(intn)

{intm,y=0;m=fabs(n);

while(m!

=0){

y=y*10+m%10;

1;//m=m/10

}

if(n>=0)returny;

else2;//return(-y);

}

voidmain()

{printf("%d\t",f(12345));printf("%d\n",f(-34567));}

3.3.      在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入1个整数后,输出该数的位数若输入3214则输出4,输入-23156

则输出5)。

#include

voidmain()

{intn,k=0;

scanf("%d",&n);

while

(1){//n%10

k++;

2;//n=n/10

}

printf("%d\n",k);

}

4.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输出下列结果。

abcdefg

abcde

abc

a

#include

voidmain()

{inti,j;chark;

for(i=1;i<=4;i++){

for(j=1;j

1;//k=’a’

for(j=9-2*i;j>0;j--){

k=(char)k++;

printf(“%c”,2);//k-1

}

putchar('\n');

}

}

5.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入整数n(n>0)求m,使得2的m次方小于或等于n、2的m+1次方大于或等于n。

#include

voidmain()

{inti=0,t=1,n;

while(_____1________);//scanf(“%d”,&n),n<=0

while(!

(t<=n&&t*2>=n)){

_____2_____//t=t*2;

i++;

}

printf("%d\n",i);

}

 

6.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include

#include

#definef(x)x*x-5*x+sin(x)

voidmain()//运行结果:

49.455978

{inti;floatmax;

_____1_____//max=f

(1);

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

______2______//if(f(i)>max)max=f(i);

printf("%f\n",max);

}

7.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

函数f除去数组中的负数,输出结果为:

1346

#include

voidf(int*a,int*m)

{inti,j;

for(i=0;i<*m;i++)

if(a[i]<0){

for(j=i--;j<*m-1;j++)a[j]=a[j+1];

_____1_____;//*m=*m-1;

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______;//f(x,&n);

for(i=0;i

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

printf("\n");

}

 

8.8.      在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入n和平面上n个点的坐标,计算各点间距离的总和。

#include

#include

#definef(x1,y1,x2,y2)sqrt(pow(x2-x1,2)+pow(y2-y1,2))

1//#include或#include

voidmain()

{float*x,*y,s=0;inti,j,n;

scanf("%d",&n);

x=(float*)malloc(sizeof(float)*n*2);

y=x+2;//n

for(i=0;i

for(i=0;i

for(j=i+1;j

s+=f(x[i],y[i],x[j],y[j]);

printf("%.2f\n",s);

}

9.9.      在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f,求二维数组a中全体元素之和。

#include

floatf

(1)//float**x,intm,intn//运行结果:

78.00

{floaty=0;inti,j;

for(i=0;i

y=y+*(*(x+i)+j);

returny;

}

voidmain()

{floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];

inti;

for(i=0;i<3;i++)b[i]=2;//&a[i][0]或a[i]

printf("%.2f\n",f(b,3,4));

}

10.10.  在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f,求a数组中最大值与b数组中最小值之差。

#include

floatf(float*x,intn,intflag)//运行结果:

11

{floaty;inti;

1;//y=x[0]

for(i=1;i

if(flag*x[i]>flag*y)

y=x[i];

returny;

}

voidmain()

{floata[6]={3,5,9,4,2.5,1},b[5]={3,-2,6,9,1};

printf("%.2f\n",f(a,6,1)-2));//f(b,5,-1)

}

11.11.  在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f计算代数多项式

1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

#include

floatf(float,float*,int);//运行结果:

81.930756

voidmain()

{floatb[5]={1.1,2.2,3.3,4.4,5.5};

printf("%f\n",f(1.7,b,5));

}

floatf

(1)//floatx,floata[],intn

{floaty=a[0],t=1;inti;

for(i=1;i

t=t*x;y=y+a[i]*t;

}

2;//returny

}

12.12.  在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f用以求1元2次方程x*x+5*x-2=0的实根。

#include

#include//运行结果:

0.37-5.37

intf(floata,floatb,floatc,float*x1,float*x2)

{if(b*b-4*a*c<0)1;//return1;

*x1=(-b+sqrt(b*b-4*a*c))/2/a;

*x2=(-b-sqrt(b*b-4*a*c))/2/a;

return0;

}

voidmain()

{floatu1,u2;floata=1,b=5,c=-2;

if(f

(2))printf("实数范围内无解\n");//f(a,b,c,&u1,&u2)

elseprintf("%.2f%.2f\n",u1,u2);

}

13.13.  在考生目录下,有Modify2.c程序,该程序中"____N____"是根据程序功能需要填充

部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

函数f将数组循环左移k个元素,输出结果为:

4567123

#include

voidf(int*a,intn,intk)

{inti,j,t;

for(i=0;i

1;//t=a[0]

for

(2)//j=1;j

a[j-1]=a[j];

a[n-1]=t;

}

}

voidmain()

{inti,x[7]={1,2,3,4,5,6,7};

f(x,7,3);

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

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

printf("\n");

}

14.14.  在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f,将字符串中的所有字符逆序存放,然后输出。

例如,

输入字符串为"123456",则程序的输出结果为"654321"。

#include<

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

当前位置:首页 > 成人教育 > 成考

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

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