一、请判断下列说法的是否正确:(10分,每小题1分)
一个C程序由多个函数组成,且必须有一个main ()函数,要求main() 函数必须放到最前面。(X )
所有的变量在使用前都必须予以声明。(v )
C的double类型数据可以精确表示任何实数。(x )
a是一维数组名,数组元素a[l]还可以写作f(a++)”。( x )
break语句只能用于switch语句和循环控制语句中。(v )
C语言中的数组下标从0开始,当引数组元素超过所定义的范围,将出来 编译错误。(x )
一个for循环语句,一定可以使用while语句来替换。(v )
函数原型为"void sort(float a[], int n),?,调用该函数时,形参数组a被创建, 实参数组各元素的值被复制到a数组各元素中。(x )
一个结构类型的变量,在内存中占的字节数,为各成员数据类型所占内存 的总和。(v )
例如:
struct example
{ inti;
float f;
char s[20];
} x ;
、语句 y二*(p++);和 y=(*p)++;是等价的。(x )
二、填空斜5分,每小题1分)
c语言的基本数据类型分为型、型、型和
枚举型。
、A不等于B在C语言中应使用表达式来表示。
b-\b2 -4ac
写出数学表达式2。 对应的C表达式
(4)写出判断字符变量ch是C(T~,9,)数字符的C表达式 ⑸ 若s=,d,,执行语句s=(s>=,a,&&sv=,z,)?s?32:s;后,字符变量s的值为 _d_
intb=5;执行赋值表达式a=5+(b+=6)后,a、b的值依次是_16 11_。
在C语言程序中,如果对函数f的类型未加显说明,则函数f的隐含类型是
_into
定义语为 char a[10] =Hjohn\0niH;,语句 printf(H%du,strlen(a));输出结果是
_4o
所有的程序都可以用三种控制结构编写。这三种控制结构是
TOC \o "1-5" \h \z 和O
要使 a=10,b=20,cl=,A\c2=,a\x=1.5,y=-3.75,z=67.8,用下面的语句输入:
scanf(u%5d%5d%c%c%f%f%*f, %『,&a,&b,&cl,&c2,&x,&y,&z);
函数调用时,若形、实参数均为数组,则其传递方式是。
表达式(5==5==5)的值为0o
设 int x[]={l,2,3,4},y,*p二&x[l];则执行语句 y=(*- -p)++;后变量 y 的值为
_1。
计和“护是有区别的,T在内存中占_1—个字节,“a”在内存中占_2_ 个字节。
三、选择题(每题2分,共20分)
(1)算法具有五个特性,以下选项中不属于算法特性的是(b )
(A)有穷性(B)简洁性(C)可行性(D)确定性
(2)以下选项中可作为C语言合法常量的是( b )
(A)-80 ?(B)?080(C)-8el.O(D)-80.0e
(3)以下不能定义为用户标识符是(d )
(A) Main (B)_0(C)(D)sizeof
在下列各程序段中,没有构成死循环的是(a )
(A) int i=100;(B) int y=l;
while (1)
{i=i%100+l; if(i=100) break;
(C) int k=1000;
for(; y<=10;y++)y--;(D) ints=36; while(s);??s;(5)设变量定义为
for(; y<=10;y++)
y--;
(D) ints=36; while(s);??s;
(5)设变量定义为 “inta[4]={l,3,7,9},*p=a+2;”,贝Wp 的值是(a )。
(A) 7(B) 3(C) 4(D) &a[0]+2
(7)给出以下定义:
char x[]二〃abcdefg";
char yL」二{ a,b , c , d,e , f , g };
则正确的叙述为 b
(A)数组X和数组Y等价(B)数组X的长度大于数组Y的长度(0数组x和数组Y的长度相同
(A)数组X和数组Y等价(B)数组X的长度大于数组Y的长度
(0数组x和数组Y的长度相同(D)数组X的长度小于数组Y的长度
(8))对于以下的变量定义,表达式是正确的。
struct node
{ char s[10];
int k;
} P(4];
(A) p->k=2(B) p[O]?s=“abc” (C) p[0]->k=2(D) p?>s='a'
(9)说明语句int俨p)();的含义是 。
A)p是一个指向一维数组的指针变量
B)p是指针变量,它指向一个整型数据的指针
C)p是一个指向函数的指针变量,