7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( C )字节。 A.1 B.2 C.4 D.8
8.假定a为一个字符数组名,则a[8]的地址比该数组的首地址大( B )个字节。
A.4 B.8 C.16 D.32
9.假定a为一个数组名,则下面的( B )表示有错误。 A.a[i] B.*a++ C.*a D.*(a+1)
10.用calloc函数创建具有10个整型元素的一维数组的正确语句是( C )。
A.int *p=calloc(10,2); B.int *p=callo(10; C.int *p=calloc(10,4); D.int *p=malloc(10);
11.假定变量m定义为“int m=7;”,则定义p的正确语句为( B )。 A.int p=&m; B.int *p=&m; C.int &p=*m; D.int *p=m;
12.假定k是一个double类型的变量,则定义变量p的正确语句为( B )。
A.double p=&k; B.double *p=&k; C.double &p=*k; D.char *p=”Thank you!”;
13.假定一条定义语句为“int a[10],x,*pa=a;”,若要把数组a中下标为3的元素赋值给x,则不正确的语句为( D )。
A.x=pa[3]; B.x=*(a+3); C.x=a[3]; D.x=*pa+3; 14.假定有定义“int b[10];int *pb;”,则不正确的赋值语句为( D )。
A.pb=b; B.pb=&b[0]; C.pb=b+2; D.pb=b[5]; 15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( A )。
A.delete p; B.delete *p; C.delete &p; D.delete []p;
16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指向的动态内存,应使用语句( D )。
A.delete[p]; B.delete(p); C.free[]p; D.free(p);
二、填空题
1.在C语言中,一个函数由函数头和___函数体_______组成。 2.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为___0______。
3.如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的C保留字为为___static______。
4.如果一个函数直接或间接地调用自身,这样的调用被称为__递归_____调用。
5.调用系统函数时,要先使用#include命令包含该函数的原型语句所在__头___文件。
6.函数形参的作用域是该函数的__内部___。
7.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为__25______。
8.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为__46______。
9.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为__46______。
10.假定a是一个指针数组,则a+1所指对象的地址比a地址大__4___字节。
11.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为___(char*)p______。
12.假定一个数据对象为int*类型,则指向该对象的指针类型为__int**______。
13.假定p是一个指向整数对象的指针,则用___&p___表示指针变量p的地址。
14.若p指向x,则___*p___与x的等价的。
15.NULL是一个符号常量,通常作为空指针值,它值为__ 0___。
三、写出下列每个程序运行后的输出结果 1. #include<> void SB(char ch){ switch (ch){ case 'A':case 'a': printf(\ case 'B':case 'b': printf(\
相关推荐: