k:
c
c:
a的值是( )。
A. 4 B. 3 C. 2 D. 1
9. 关于数组,以下说法正确的是( )。
A.数组的下标可以是任何类型的表达式
B.数组的下标只能是常量或者常量表达式
C.二维数组必须完成初始化
D.指针不可以操作数组里面元素的值
10.设inta=11,b=2;执行下述程序段后,变量a和b的值分别是( )。
do{a/=b++;}
while(a>b);
A. 1,3 B. 1,4 C. 2,3 D. 2,4
二.填空题。
(每空3分)
1.写一个宏MIN,这个宏输入两个参数并返回较小的一个_________。
2.main函数中:
for(inti=0;i<3;i++){printf("%d",i);}输出结果是_________。
3.设inta=9,b=20;则printf("%d,%d",a--,--b);的输出结果是_________。
4.设inta[2][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为_________。
5.定义一个指向含有十个数字的数组的指针_________。
6.已知inta=1,b=2,c=3;if(a>b)c=a;a=b;b=c;语句执行后a,b,c的值是_________。
三.判断题。
(每题2分)
1.在C语言中,定义inta=b=c=5;是错的,而int a,b,c;a=b=c=5;是对的。
()
2.intx=3,y=2;则表达式(y++==--x)?
y++:
x++的值为3。
( )
3.若有定义:
inta[5][5],*p;则操作p=a;是合法操作。
()
4.两个字符串所包含的字符个数相同时才能比较字符串大小。
()
5.宏定义可以实现嵌套定义。
()
6.若变量均为整型,且num=sum=7,则计算表达式sum=num++,sum++,++num后sum的值为8。
()
7.若有inti=10,j=0;则执行完语句if(j=0)i++;elsei--;后i的值为11。
()
8.若有inta[3][4];则a[3][4]是对二维数组的正确访问。
()
9.初始化值列表中的初始化值个数多于数组元素的个数是错误的。
()
10.如果在一个函数中的复合语句中定义了一个变量,则该变量在该函数中都有效。
()
11.用语句a=a+b,b=a-b,a=a-b;可以交换a,b两个变量的值。
( )
四.简答题。
1.简述形参和实参的区别。
(3分)
2.回答break和continue的异同点。
(2分)
3.简述指针的概念。
(2分)
4.请叙述你对面向对象和面向过程的理解。
(3分)
五.编程题。
1.已知一个数组array,里面有五个数:
12,25,8,9,16;把数组里面的数按照从小到大的顺序排列。
(15分)
2.写一个程序,可以输入若干个数,直到输入0时结束,然后实现求这些数的平均值。
(15分)