关于数组,以下说法正确的是( )。 A. 数组的下标可以是任何类型的表达式 B. 数组的下标只能是常量或者常量表达式 C. 二维数组必须完成初始化
D. 指针不可以操作数组里面元素的值
10. 设int a=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(int i=0; i<3; i++){printf(\输出结果是_________。 3.设int a=9,b=20;则printf(\的输出结果是_________。
4.设int a[2][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为_________。 5.定义一个指向含有十个数字的数组的指针_________。
6.已知int a=1,b=2,c=3; if(a>b)c=a; a=b; b=c;语句执行后a,b,c的值是_________。 三.判断题。(每题2分)
1.在C语言中,定义int a=b=c=5;是错的,而int a,b,c;a=b=c=5;是对的。( ) 2.int x=3,y=2;则表达式(y++==--x)?y++:x++的值为3。( ) 3.若有定义:int a[5][5],*p;则操作p=a;是合法操作。( ) 4.两个字符串所包含的字符个数相同时才能比较字符串大小。( ) 5.宏定义可以实现嵌套定义。( )
6. 若变量均为整型,且num=sum=7,则计算表达式sum=num++,sum++,++num后sum的值为8。( ) 7. 若有int i=10,j=0;则执行完语句if(j=0)i++; else i--;后i的值为11。( ) 8.若有int a[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分)