资源描述:
《阶段一c语言整理后测试题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、C语言选择题1.break关键字在哪一种语法结构中不能使用?(C)A.for语句B.switch语句C.if语句D.while语句2.现在最快且最通用的排序算法是什么?(A)A.快速排序B.冒泡排序C.选择排序D.外部排序3.设x和y均为bool量,则x&&y为真的条件是 (A)。A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假4.下面的哪个保留字不能作为函数的返回类型(C)。A.void B.int C.new D
2、.long5.假定a为一个整型数组名,则元素a[4]的字节地址为 A 。A.a+4 B.a+8 C.a+16 D.a+326.C库函数strstr的功能是?(A)A.查找子串B.计算字符串长度C.字符串比较D.连结字符串二、C语言填空题1.某32位系统下,C++程序,请计算sizeof的值(5分).charstr[]=“Hello”char*p=str;intn=10;请计算sizeof(str)=?(1)sizeof(p)=?
3、(2)sizeof(n)=?(3)voidFoo(charstr[100]){请计算sizeof(str)=?(4)}void*p=malloc(100);请计算sizeof(p)=?(5)答:(1)6(2)4(3)4(4)4(5)42.设intarr[]={6,7,8,9,10}; int*ptr=arr; *(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));( 8,8 )3.有数组定义inta[2][2]={
4、{1},{2,3}};则a[0][1]的值为0。 (T) 4.int(*ptr)(),则ptr是一维数组的名字。 (F)5.指针在任何情况下都可进行>,<,>=,<=,==运算。 (F)6.switch(c)语句中c可以是int,long,char,float,unsignedint类型。(F)7.#defineprint(x) printf("theno,"#x",is") (T)8.定
5、义int**a[3][4],则变量占有的内存空间为:_____答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空间为3×4×4=48。9.如果i等于5,那么(++i)--的返回值是__6__。三、C语言简答题1.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变
6、量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。2.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函
7、数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。3.在什么时候需要使用“常引用”? 如果既要利用引用提高程
8、序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const类型标识符&引用名=目标变量名;例1inta;constint&ra=a;ra=1;//错误a=1;//正确例2stringfoo();voidbar(string&s);那么下面的表达式将是非法的:bar(foo());bar("helloworld