期中测验1.docx

上传人:b****5 文档编号:7666532 上传时间:2023-01-25 格式:DOCX 页数:15 大小:18.27KB
下载 相关 举报
期中测验1.docx_第1页
第1页 / 共15页
期中测验1.docx_第2页
第2页 / 共15页
期中测验1.docx_第3页
第3页 / 共15页
期中测验1.docx_第4页
第4页 / 共15页
期中测验1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

期中测验1.docx

《期中测验1.docx》由会员分享,可在线阅读,更多相关《期中测验1.docx(15页珍藏版)》请在冰豆网上搜索。

期中测验1.docx

期中测验1

单项选择

==================================================

题号:

6172

若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是().

A、1

B、2

C、2.0

D、2.5

答案:

C

 

题号:

6124

已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c='A'+'6'-'3';后,c中的值为:

().

A、不确定的值

B、D

C、d

D、c

答案:

B

 

题号:

6214

有以下程序:

#include

main(){intx;

scanf("%d",&x);

if(x<=3);else

if(x!

=10)printf("%d\n",x);

}

程序运行时,输入的值在哪个范围才会有输出结果.

A、大于3且不等10的整数

B、小于3的整数

C、大于3或等于10的整数

D、不等于10的整数

答案:

A

 

题号:

6280

已定义floatx=1.25,y=3.37;

根据下面的输出结果,正确的输出语句是().

y+x=4.62,y-x=2.12

A、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);

B、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);

C、printf("y+x=%f,y-x=%f\n",y+x,y-x);

D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);

答案:

B

 

题号:

7799

有以下程序

#include

main()

{

charc1="1",c2="2";

c1=getchar;c2=getchar;putcharc1;putcharc2;

}

当运行时输入:

a<回车>后,以下叙述正确的是().

A、变量c1被赋予字符a,c2中,仍是原有字符2

B、变量c1被赋予字符a,c2中,将无确定值

C、程序将等待用户输入第2个字符

D、变量c1被赋予字符a,c2被赋予回车符

答案:

D

 

题号:

7439

对以下说明语句inta[10]={6,7,8,9,10};的正确理解是().

A、将5个初值依次赋给a[6]至a[10]

B、将5个初值依次赋给a[0]至a[4]

C、因为数组长度与初值的个数不相同,所以此语句不正确

D、将5个初值依次赋给a[1]至a[5]

答案:

B

 

题号:

8001

已知a,b,c,d为int型变量,若从键盘输入:

1,3,5,7<回车>,使a的值为1,b的值为3,c的值为5,d的值为7,以下选项中正确的输入语句是().

A、scanf("%2d%2d%2d%2d",&a,&b,&c,&d);

B、scanf(""%d%d%d%d",&a,&b,&c,&d);

C、scanf("%d,%d,%d,%d",&,&j,&k,&d);

D、scanf("a=%d,b=%d,c=%d,d=%d",&a,&b,&c,&d);

答案:

C

 

题号:

7836

假定有以下变量定义:

intk=7,x=12;

则能使值为3的表达式是:

()

A、x%=(k%=5)

B、x%=k-k%5

C、x%=(k-k%5)

D、(x%=k)-(k%=5)

答案:

D

 

程序设计

==================================================

题号:

6838

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

判断m是否为素数。

------------------------------------------------*/

#include"stdio.h"

voidbky();

intfun(intm)

{

/**********Begin**********/

 

/**********End**********/

}

main()

{

intm,k=0;

for(m=100;m<200;m++)

if(fun(m))

{

printf("%4d",m);

k++;

if(k%5==0)

printf("\n");

}

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

bky();

}

 

voidbky()

{

FILE*IN,*OUT;

intiIN,iOUT,i;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

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

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

 

示例代码:

inti,k=1;

if(m<=1)k=0;

for(i=2;i

if(m%i==0)k=0;

returnk;

 

程序填空

==================================================

题号:

6527

/*------------------------------------------------------

【程序增空】

--------------------------------------------------------

功能:

根据以下函数关系,对输入的每个x值,计算出相应的y值。

x|y

----------|-------------

x<0|0

----------|-------------

0≤x<10|x

----------|-------------

10≤x<20|10

----------|-------------

20≤x<40|-0.5x+20

------------------------

---------------------------------------------------------

请在程序的下划线处填入正确的内容,并把下划线删除,使程序

得出正确的结果。

注意:

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

---------------------------------------------------------*/

#include

voidmain()

{

intx,c;

floaty;

scanf("%d",&x);

/***********FILL***********/

if(_____)c=-1;

/***********FILL***********/

elsec=_____;

switch(c)

{

case-1:

y=0;break;

case0:

y=x;break;

case1:

y=10;break;

case2:

/***********FILL***********/

case3:

y=-0.5*x+20;_____;

default:

y=-2;

}

/***********FILL***********/

if(_____)printf("y=%f",y);

elseprintf("error\n");

}

 

答案:

位置1:

x<0

位置2:

x/10

位置3:

break

位置4:

x<40【或】y!

=-2【或】c<=3【或】x<40||y!

=-2||c<=3

 

题号:

7248

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

输入三个实型数,输出其中的最小数。

要求定义和调用函数min,找出并返回最小数。

-------------------------------------------------------*/

#include"stdio.h"

/***********FILL***********/

doublemin(doublex,doubley,_____);

main()

{

doublea,b,c;

printf("Entera,b,c:

");

scanf("%lf,%lf,%lf",&a,&b,&c);

printf("最小者=%.2f\n",min(a,b,c));

}

/***********FILL***********/

double_____(doublex,doubley,doublez)

{

doublemin;

/***********FILL***********/

if(_____)min=x;

elsemin=y;

if(min>z)min=z;

/***********FILL***********/

_____;

}

 

答案:

位置1:

doublez

位置2:

min

位置3:

xx

位置4:

returnmin【或】return(min)【或】return(min)

 

程序改错

==================================================

题号:

6399

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

任意输入一个字符,如果是小写字母以大写字母输出,

是大写字母以小写字母输出;否则,按原样输出。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

main()

{

charch;

printf("Enterch:

");

/**********ERROR**********/

ch=getchar(r);

/**********ERROR**********/

if(ch>=a&&ch<=z)

putchar(ch-32);

/**********ERROR**********/

elseif(ch>=A&&ch<=Z)

putchar(ch+32);

/**********ERROR**********/

elseputchar();

}

答案:

位置1:

ch=getchar();

位置2:

if(ch>=97&&ch<=122)【或】if(ch>='a'&&ch<='z')

位置3:

elseif(ch>='A'&&ch<='Z')【或】elseif(ch>=65&&ch<=90)

位置4:

elseputchar(ch);

 

题号:

7286

/*------------------------------------------------------

【程序改错】:

只允许修改错误代码,其他代码不允许修改!

--------------------------------------------------------

功能:

一个整数,它加上100后是一个完全平方数,再加上168又

是一个完全平方数,请问该数是多少?

------------------------------------------------------*/

#include

#include"stdio.h"

voidmain()

{

longinti,x,y,z;

/**********ERROR**********/

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

{

/**********ERROR**********/

x=sqrt(i+100)

y=sqrt(i+268);

/**********ERROR**********/

if(x*x==i+100||y*y==i+268)

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

}

}

答案:

位置1:

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

位置2:

x=sqrt(i+100);

位置3:

if(x*x==i+100&&y*y==i+268)

 

题号:

6982

/*------------------------------------------------------

【程序改错】:

只允许修改错误代码,其他代码不允许修改!

--------------------------------------------------------

功能:

输出Fabonacci数列的前20项,要求变量类型定义成浮点型,

输出时只输出整数部分,输出项数不得多于或少于20。

------------------------------------------------------*/

#include"stdio.h"

voidfun()

{

inti;

floatf1=1,f2=1,f3;

/**********ERROR**********/

printf("%8d",f1);

/**********ERROR**********/

i=1;

while(i<=20)

{

f3=f1+f2;

/**********ERROR**********/

f2=f1;

/**********ERROR**********/

f3=f2;

i++;

printf("%8.0f",f1);

}

printf("\n");

}

voidmain()

{

fun();

}

 

答案:

位置1:

printf("%8.0f",f1);【或】printf("%f",f1);【或】printf("%8f",f1);

位置2:

i=2;

位置3:

f1=f2;

位置4:

f2=f3;

 

题号:

5029

/*---------------------

【程序改错】

--------------------------------------------------------

有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素

即第一个数对换位置.

---------------------------------------------------*/

#include"stdio.h"

main()

{

inti,a[10],min,k=0;

printf("\npleaseinputarray10elements\n");

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

/***********ERROR***********/

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

min=a[0];

/***********ERROR***********/

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

/***********ERROR***********/

if(a[i]>min)

{min=a[i];

k=i;

}

a[k]=a[0];

a[0]=min;

printf("\naftereschange:

\n");

for(i=0;i<10;i++)printf("%3d",a[i]);

printf("\nk=%d\nmin=%d\n",k,min);

}

 

答案:

位置1:

scanf("%d",&a[i]);【或】scanf("%d",a+i);

位置2:

for(i=1;i<10;i++)【或】for(i=0;i<10;i++)【或】for(i=1;i<=9;i++)【或】for(i=0;i<=9;i++)

位置3:

if(a[i]a[i])

 

题号:

7895

/*------------------------------------------------------

【程序改错】:

只允许修改错误代码,其他代码不允许修改!

--------------------------------------------------------

功能:

根据整型形参m,计算某一数据项的值。

y=1/(100*100)+1/(200*200)+1/(300*300)+……+1/(m*m)

例如:

若m=2000,则应输出:

0.000160。

------------------------------------------------------*/

#include

#include

/**********ERROR**********/

fun(intm)

{

doubley=0,d;

inti;

/**********ERROR**********/

for(i=100,i<=m,i+=100)

{

d=(double)i*(double)i;

/**********ERROR**********/

y+=1.0\d;

}

return(y);

}

voidmain()

{

intn=2000;

printf("\nTheresultis%lf\n",fun(n));

}

答案:

位置1:

doublefun(intm)

位置2:

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

位置3:

y+=1.0/d;【或】y=y+1.0/d;

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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