答案:b
评析:c语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。选项a中的void是c语言的关键字,不合法;选项c中的case和c语言的关键字重名,不合法;选项d中的2a是数字打头而且sizeof和c语言的关键字重名,不合法。
(36)下面能正确定义数组,并正确赋值的语句是_________。
a)int n=5,b[n][n]
b)int a[1][2]={{1},{3}}
c)int c[2][]={{1,2},{3,4}}
d)int d[3][2]={{1,2},{34}}
答案:d
评析:可以用下面的方法对二维数组初始化:
l、分行给二维数组赋初值。如int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2、可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如:
int a[3][4]={1,2,3,4,5,6,7,8;9,10,1 l,12);
3、可以对部分元素赋初值:int a[3][4]={{1},{5},{9}};
它的作用是只对各行第一列的元素赋初值,其余元素值自动为0。
4、如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
与下面的定义等价:int a[][4]={1,2,3,4,5,6,7,8,9,10,1l,12};
(37)请选出以下程序的输出结果___________。
#include
sub(int*s,int y)
{ static int t=3;
y=s[t];t--;
}
main()
{ int a[]={1,2,3,4},i,x=0;
for(i=0;i<4;i++){
sub(a,x);printf("%d",x);)
printf("\n");
}
a)1234 b)432l
c)0000 d)4444
答案:c
评析:x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为0。
(38)假定下面程序可执行文件名prg.exe,则该程序所在的子目录下输入命令行:prg hello
good<回车>后,程序的输出结果是_________。
main(int argc,char*argv[])
{
int i;
for=1;i }
a)heuo good b)hg
c)hel d)hellogood
答案:b
评析:带参数的main()函数常用形式为:main(int argc,char.*argv[]),其中,整型变量argc用来记录命令行中的参数个数。参数的个数由c程序运行时自动计算出来。字符型指针数组argv的第一个元素存放命令名,其后各个元素依次存放命令行中各个参数的首地址,数组的大小由argc确定。for循环语句实现输出各参数的第一个字母。
(39)若有以下说明和语句,请选出哪个是对c数组元素的正确引用_________。
int c[4][5],(*cp)[5];
cp=c;
a)cp+l b)*(cp+3)
c)*(cp+1)+3 d)*(*cp+2)
答案:d
评析:cp=c这个语句是将数组第0行的地址赋给了cp。cp+1使指针指向二维数组c的第一
上一页 [1] [2] [3] [4] [5] [6] 下一页
责任编辑:小草