13. 有以下程序:#includemain(){int x,y; printf('Enter an integer(x):');scanf('%d',&x);if(x++<0) y=-1;else if(x==0) y=0;else y=1; printf('%d',y);}现从键盘上输入-1,则程序的输出是( )
(4.0 分)
a 0
b -1
c 1
d 不确定的值
14. 对说明语句int a[10]={6,7,8,9,10};的正确理解是( )
(4.0 分)
a 将5个初值依次a[1]至a[5]
b 将5个初值依次a[0]至a[4]
c 将5个初值依次a[5]至a[9]
d 将5个初值依次a[6]至a[10]
15. 定义如下变量和数组:int k,a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf('%d ',a[k][2-k]);
(4.0 分)
a 3 5 7
b 3 6 9
c 1 5 9
d 1 4 7
16. 设E为表达式,以下与do…while(E);不等价的语句是
(4.0 分)
a do…while(!E==0)
b do…while(E>0||E<0)
c do…while(E==0)
d do…while(E!=0)
17. 若已定义int a;下面对(1)(2)两个语句(1)int *p=&a; (2)*p=a;的正确解释是( )
(4.0 分)
a 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值
b (1)和(2)语句的执行结果,都是把变量a的地址赋给指针变量p
c (1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p
d (1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给*p
18. 已有定义int k=2;int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是( )
(4.0 分)
a k=*p1+*p2
b p2=k
c p1=p2
d k=*p1*(*p2)
19. 以下对C语言函数的有关描述中,正确的是
(4.0 分)
a 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
b C函数既可以嵌套定义又可以递归调用
c 函数必须有返回值,否则不能使用函数
d C程序中有调用关系的所有函数必须放在同一个源程序文件中
20. 有枚举类型的定义: enum color1 { yellow,green,blue=5,red,brown}; 则枚举常量yellow 和 red的值分别是
(4.0 分)
a 3,6
b 1,6
c 0,6
d 0,3
21. 以下对C语言描述中正确的是( )
(4.0 分)
a C语言源程序中可以有重名的函数
b C语言源程序中要求每行只能书写一条语句
c C语言源程序中,注释可以出现在任何位置
d 最小的C源程序中没有任何内容
二 判断题
1. 在C 语言中,共用体类型属于构造类型
(4.0 分)
a 错
b 对
2. 使用continue和break语句,都可以使得C程序中断执行
(4.0 分)
a 错
b 对
3. C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量
(4.0 分)
a 错
b 对
4. C语言中没有真正的多维数组
(4.0 分)
a 错
b 对