高级语言程序设计期中试卷B

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电机学院 2010–2011学年第 2 学期

《高级语言程序设计》期中考试试卷B 2011.5

开课学院:电子信息学院, 考试形式:闭卷, 所需时间 90 分钟 考生姓名: 学号: 班级

一、填空题(共20分,每空格1分)

1.将数学式b

a x )

(sin 2转换成C 语言表达式 。

2.getchar 函数的作用是 。

3.C 语言程序的基本单位是函数。程序的执行总是从 开始。 4.在C 程序中,逻辑运算符的操作对象,用 表示“真”,用 表示“假”。在求逻辑值时,用 表示逻辑表达式值为“真”,用 表示逻辑表达式值为“假”。 5.执行 printf("%d\n",(int)(2.5+3.0)%2); 的输出结果是 。 6.C 语言提供的三种逻辑运算符为: 、 和 。 7.设整型变量 x 、y 、z 均为3:则 ①执行"x -=y+x"后,x =

②执行"x %=y +z"后,x =

8. 设有说明语句:int a=21, b=6; 则a/b 的十进制数值为________

9. 设有说明语句:int x=3, y=2; 则计算表达式(x=5) || (y=6*x) 后变量y 的值是________ 10 设a,b,c,t 为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,

t 的值是

11.结构化程序设计的三种基本结构是 结构, 结构和 结构。 12.设定义 int k=1,n=163;执行下面程序段后,k 的值是 。

do {

k*=n%10; n/=10; }

while(n);

二、选择题 (共17分,每小题1分)

1.表达式3/5的值为: ( )

A . 0

B . 0.6

C . 0.600000

D .1

2.表达式“9!=9”的值是 ( )

A . true

B .非0值

C . 0

D .1 3.设ch 是char 型变量,其值为‘A ’,则下面表达式的值是 ( )

ch=(ch>=‘A’&& ch<=‘Z’)?(ch+32):ch

A.'A' B.'a' C.'Z' D.'z '

4.在C语言中,要求运算数必须是整型的运算符是()。

A./ B.++ C.!= D.%

5. 十进制数123转换成十六进制数是()。

A.7A B.7B C.7C D.7D

6.以下符合语法规则的用户标识符是()。

A.float B.4ab C.sum one D.sum1

7. 若已定义: int x;

则表达式 ((x=4*5,x*5),x+25) 的值是()。

A. 20

B. 100

C. 125

D. 45

8. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是()。

A. 55 55.5↙

B. x=55, y=55.5↙

C. 55↙55.5↙

D. x=55↙y=55.5↙

9. 若有说明语句:int x=10,y=20,z=30;

则执行语句:if(x>y) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z);后,输出是()

A. 10,20,30

B. 20,30,10

C. 20,30,30

D. 20,30,20

10. 程序段:int num=1;

while(num<=3)

printf(“%d ,”,num++);

的运行结果是()

A. 0,1,

B. 1,2,

C. 0,1,2,

D. 1,2,3,

11.设变量x,y,a,b,c,d均为1,执行“( x=a>b)&&(y=c>d)”后x,y的值是()A.0,l B.0,0 C.1,0 D.1,l

15. 以下不正确的描述是( )

A.break语句不能用于循环语句和switch语句外的任何其它语句

B.在switch语句中使用break语句或continue语句的作用相同

C.在循环语句中使用continue语句结束本次循环,但不会终止整个循环

D.在循环语句中使用break语句是,会跳出循环体,提前结束循环

16.字符串”123”在计算机内所占用的字节数是( ) 个。

A.1 B.2 C.3 D.4

17. C语言中合法的字符常量是()。

A.'\058' B.'ab' C.'\xab' D.”\0”

18. 要把高级语言编写的源程序转换为目标程序,需要使用 ( )

A. 编辑程序

B. 驱动程序

C. 诊断程序

D. 编译程序

19.假定x和y为int型,且x=10,y=3,则以下语句的输出结果是()

printf("%d,%d\n",x--,++y);

A.10,4 B.9,3 C. 9,4 D. 10,2

20.以下程序运行后的输出结果是()

void main()

{int a=3;

printf("%d\n",(a-=a+=a*a));

}

A.-6B.12 C.-12 D.0

三、改错题(共8分)

1.下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能。

*

***

*****

*******

#include

/*1*/ void main()

/*2*/ { int i,j;

/*3*/ for (i=0;i<=4;i++)

/*4*/ { for (j=0;j<=20;j++)

/*5*/ printf("\n");

/*6*/ for (j=0;j<2*i+1;j++)

/*7*/ printf("*");

/*8*/ printf("\n");

/*9*/ }

}

2、下列程序的功能有: (1)输入若干个学生成绩,若输入数据大于100或小于0(除-999外),则不作记录,重新输入;当输入–999,则输入结束。(2) 统计所有输入成绩的最大值、最小值、成绩个数、平均值,并输出之。请找出错误并改正。

main()

/*1*/ { int mark, n = 0, sum = 0;

/*2*/ int max = 0 , min = 100;

/*3*/ for( ; ; );

/*4*/ { scanf("%d",& mark);

/*5*/ if ( mark = -999 ) break;

/*6*/ if ( mark > 100 )

/*7*/ { printf("mark>100, Reinput!\n");

/*8*/ break; }

/*9*/ n++; sum += mark;

/*10*/ if ( mark>max ) max = mark;

/*11*/ else min = mark;

/*12*/ }

/*13*/ sum %= n;

/*14*/ printf("%d,%d,%d,%d\n", max,min,n,sum);

}

四、程序填空(共13分,每空格1分)

相关文档
最新文档