东大18秋学期《高级语言程序设计基础》在线作业3
	试卷总分:100    得分:100
	一、 单选题 (共 20 道试题,共 100 分)
	1.以下能对一维数组a进行正确初始化的语句是( )。
	A.int a[10]=(0,0,0,0,0);
	B.int a[10]={ };
	C.int a[]={0};
	D.int a[10]=(10*1);
	正确答案: C
	
	2.若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。
	A.数组a中的每个元素都可得到初值0
	B.二维数组a的第1维大小为1
	C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
	D.只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
	正确答案: D
	
	3.设x,y是float型变量,则不正确的赋值语句是( )。
	A.++x;
	B.y=int(5);
	C.x*=y+1;
	D.x=y=0;
	正确答案: B
	
	4.以下正确的定义语句是( )。
	A.int a[1][4]={1,2,3,4,5};
	B.float x[3][]={{1},{2},{3}};
	C.long b[2][3]={{1},{1,2},{1,2,3}};
	D.double y[][3]={0};
	正确答案: D
	
	5.下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);
	A.23
	B.17
	C.18
	D.24
	正确答案:www.youxue100f.com
	
	6.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。
	A.*pc[0]代表的是字符串"aaa
	B.*pc[0]代表的是字符'a'
	C.pc[0]代表的是字符串"aaa"
	D.pc[0]代表的是字符'a'
	正确答案:
	
	7.有字符数组a[80]和b[80],则正确的输出语句是( )。
	A.puts(a.b);
	B.printf("%s,%s",a[],b[]);
	C.pitchar(a,b);
	D.puts(a); puts(b);
	正确答案:
	
	8.若调用fputc函数输出字符成功,则函数的返回值是( )。
	A.输出的字符
	B.-1
	C.0
	D.EOF
	正确答案:
	
	9.以下能对二维数组a进行正确初始化的语句是( )。
	A.int a[2][]={{1,0,1},{5,2,3}};
	B.int a[][3]={{1,2,3},{4,5,6}};
	C.int a[2][4]={{1,2,3},{4,5},{6}};
	D.int a[][3]={{1,0,1},{},{1,1}};"
	正确答案:
	
	10.执行以下程序后,m的值是( )。   #define MIN(x, y) (x)<(y) ? (x) : (y)   main( )   { int i=12, j=8, m;    m=10*MIN(i, j);    printf("%d\n", m);  }
	A.120
	B.80
	C.12
	D.8
	正确答案:
	
	11.在C语言中,整数-8在内存中的存储形式是( )。
	A.1111 1111 1111 1000
	B.1000 0000 0000 1000
	C.0000 0000 0000 1000
	D.1111 1111 1111 0111
	正确答案:
	
	12.以下程序段的运行结果是( )。 char a[ ]="program", *p; p=a; while (*p!='g')   { printf("%c", *p-32); p++; }
	A.PROgram
	B.PROGRAM
	C.PRO
	D.proGRAM
	正确答案:
	
	13.下面程序的运行结果是( )。 main() { struct cmplx { int x; int y; } cm[2]={1,2,3,4}; printf("%d\n", 2*cm[0].x+ cm[1].y/cm[0].y);}
	A.5
	B.2
	C.3
	D.4
	正确答案:
	
	14.对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};
	A.将5个初值依次赋给a[1]至a[5]
	B.将5个初值依次赋给a[0]至a[4]
	C.将5个初值依次赋给a[6]至a[10]
	D.因为数组与初值的个数不相同,所以此语句不正确
	正确答案:
	
	15.若执行fopen函数时发生错误,则函数的返回值是( )。
	A.随机值
	B.1
	C.NULL
	D.EOF
	正确答案:
	
	16.设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
	A.p++;
	B.a--;
	C.b++;
	D.c--;
	正确答案:
	
	17.若执行下述程序时从键盘输入3 4,则输出结果是( )。
	#include main( ) { int a,b,s; 
	scanf("%d%d",&a,&b);
	 s=a;  if (a<b)  printf("%d\n",s*s); s=b;  }              
	A.186
	B.256
	C.324
	D.400
	正确答案:
	
	18.有下面的程序段 char a[3],b[]="China"; a=b; printf("%s",a); 则( )。
	A.运行后将输出China
	B.运行后将输出Ch
	C.运行后将输出Chi
	D.编译时出错
	正确答案:
	
	19.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
	A.*(a+1)
	B.*(a[1]+2)
	C.a[1]+3
	D.a[0][0]
	正确答案:
	
	20.语句while (!y)中的表达式 !y 等价于( )。
	A.y==0
	B.y!=1
	C.y!=0
	D.y==1
	正确答案:

 
