一、单项选择题


1.题

(3.0分) 以下叙述正确的是()。

A.在C程序,至少要包含一个库函数

B.C程序的一行可以写多条语句

C.对一个C程序进行编译就可以生成可执行文件

D.C程序中的注释只能单独一行,不能位于某条语句的后面


2.题

(3.0分) 下面选项中,不是C语言关键字的是()。

A.short

B.enum

C.register

D.include


3.题

(3.0分) C程序中以下叙述不正确的是()。

A.语句char x=’\n’;则变量x包含1个字符

B.表达式3+’a’值的数据类型为字符型

C.表达式sizeof(double)是一个整型表达式

D.char类型数据在内存中存储形式是ASCII码


4.题

(3.0分) C程序中以下叙述正确的是()。

A.输入数据可以是常量,如scanf(“%f”,3.14);

B.输入数据可以没有,如 scanf(“pi=%f”);

C.格式控制对于实数输入必须要说明小数点后倍数,如scanf(“%8.2f”,&f);

D.对于输入必须指明变量的地址,如,scanf(“%f”,&pi);


5.题

(3.0分)

运行语句int x=2,y=3,z=4,m=8,n=9;
(m=x>y)||(n=y>z);,变量n的取值为()。

A.8

B.9

C.0

D.1


6.题

(3.0分) C语言中代数关系a<=b<=c,表达式为下面选项( )

A.(a<=b)&&(b<=c)

B.(a<=b)or(b<=c)

C.(a<=b<=c)

D. (a<=b)||(b<=c)


7.题

(3.0分) C语言中有语句: char a[10]; a=”c “; printf(“%s\n”,a); 则输出结果是( )

A.c program

B.c

C.cprogram

D.编译出错


8.题

(3.0分) 已有整型变量x=-2,语句do{x=x*x;}while(!x); 以下叙述正确的是()。

A. while循环执行1次

B. 有语法错误

C. while循环是无限循环

D. while循环一次也没有执行


9.题

(3.0分) 语句while(!x)等价于()。

A. while(x==0)

B. while(x!=0)

C. while(x==1)

D. while(x!=1)


10.题

(3.0分) C语言中有语句: char a[]=”program”; 则数组 a所占的内存空间的字节数为( )

A.0

B.7

C.8

D.9


11.题

(3.0分) C语言中,有语句int a[2][3]={1};则下面描述正确的是()

A.此语句不能初始化数组。

B.只有元素a[1][1] 初始值为1

C.元素a[1][0] 初始值为0

D.数组中所有元素初始值为1


12.题

(3.0分) 若已定义:char s [] = “c program”; char *p ; p = s;
下面选项正确的是( )

A.*p与s[0]的值是相同的

B.数组s中的内容和变量p中的内容相同

C.*p表示整个字符串

D.s和p是相同的


13.题

(3.0分) C语言中,有函数定义为 f(float x){return x;}则此函数f的函数类型为( )

A.int

B.float

C.void

D.编译出错


14.题

(3.0分) C语言中,某个变量仅在当前源文件中所有函数使用,可以将此变量的存储类型定义为( )

A.register

B.auto

C.extern

D.static


15.题

(3.0分) 设带有头结点的单向循环链表的头指针变量为head,则其判空条件是( )。

A. head==0

B.head->next==0

C.head->next==head

D. head!=0

二、编程

1.题(10.0分)

随着数字经济的发展,影院在线软件可以提供更好的定制化优惠,一次购买5张及以上的30天内电影票兑换券,可以打9折;一次购买10张及以上的30天内电影票兑换券,可以打8折;一次购买20张及以上的30天内电影票兑换券,可以打75折(多个打折不累计,只选择最大折扣幅度)。电影院有宽荧幕和立体两种不同类型的放映厅,票价分别为35元和50元。现在来了一批网络订单,请编写程序,分别给出最终应支付的票款。

2.题(15.0分)

伴随着最新技术的发展,计算机内部的表达不再局限于传统的进制表达,为了便于记录,采用大写字母A-Z表示从11进制到36进制。现有一批进制数需要处理,请编写程序帮忙判断这批进制数的合法性,并从中找出数值最小的数。

输入说明:

第一行为一个正整数N(0<N≤1000),表示待处理数的数量。

第二行为N个待处理数,以空格隔开。在表示时,大写字母表示进制,小写字母表示数值(如D表示14进制,在14进制中’0’-‘9’对应十进制的0-9,’a’-‘d’对应十进制的10-13)。如果存在非法表达,则该组表示无效,输出-1。

输出说明:

找出数值最小的数,输出它对应的十进制数。

输入样例1:

3

A21 B10 Cb

输出样例1:

11

输入样例2:

5

B20 Cd B12 C2b D3a

输出样例2:

-1

样例说明:

样例1中的A21 对应十进制的23,B10对应十进制的12,Cb对应十进制的11,因此输出11;

样例2中有Cd,其中C表示13进制,不应出现d,因此输出-1。

3.题(15.0分)

空间中有N个顶点(顶点坐标用x,y,z表示),从中找出能构成三角形图形的最大周长,输出其值。

输入说明:

第一行是一个整数NN(0<N≤1000),表示顶点个数,之后N行是每个顶点的三维坐标,用整数表示,中间用空格隔开。

输出说明:

输出三角形最大周长,数值精确到小数点后2位(四舍五入)。

输入样例:

5

0 0 0

0 3 4

0 3 0

0 1 1

1 0 0

输出样例:

12.26

4.题(15.0分)

由于近期强降雨,某区域(由N*M个区块构成)发生了水灾,部分区块被淹,所有高于水面的区块组成了若干孤岛。

孤岛的定义:对于一个高于水面的区块,如果其上下左右四相邻区块中某几个区块未必淹没,则它们属于同一个孤岛。

请你编写程序,计算淹水后最小孤岛的区块数。

图示:深色方块表示未被淹没的区块,图中共有4个孤岛。