A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套
13.若用数组名作为函数调用的实参,传递给形参的是。 A)数组的首地址 B)数组中第一个元素的值 C)数组中的全部元素的值 D)数组元素的个数 14.以下程序执行的结果( ) Void F(int X,int *Y) { X=5; *Y=5; } main() { int a=0, b=0; F(a,&B);
printf(\
A)0,0 B)5,5 D)0,5 D)5,0
13.如果在一个函数中的复合语句中定义了一个变量,则该变量。 A)只在该复合语句中有定义 B)在该函数中有定义 C)在本程序范围内有定义 D)为非法变量 14.以下程序执行的结果( )
31
int X=0; void F() { int X=1; printf(\}; main() { { int X=2; printf(\} F();
printf(\}
A)0,0,0 B)1,2,0 D)2,1,0 D)1,0,2 15.以下程序执行后x的值是( ) #include
32
main() { int i;
for(i=0;i<10;i++)F(); }
A)0 B)1 D)10 D)9
第八章 指针
复习要点:
1. 地址与指针变量的概念,地址运算符。
2. 一维、二维数组和字符串的以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。 3. 用指针作函数参数。 4. 返回地址值的函数。 1.指针型变量,该变量的值是( ).
A)数值 B)地址 C)字符 D)任意类型
2.若有语句int a[10],n,*p下面不能代表地址的选项是( ). A)&a[2] B) &n C) *p D) a
3.若有说明;int *p,m=5,n;以下正确的程序段的是( ). A)p=&n; B)p=&n; scanf(\ scanf(\ C)scanf(\ D)p=&n; *p=&n; *p=m;
33
4.下面程序段的运行结果是( ) char *s=\ s+=2;printf(\
A)cde B)字符'c' C)字符'c'的地址 D)无确定的输出结果 5.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确
执行的赋值语句是( )
A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1; 6.若有说明语句 char a[]=\ char *p=\
则以下不正确的叙述是( ) A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 7.下面程序的运行结果是( ) char *s1=\ char *s2=\ printf(\
A)正数 B)负数 C)零 D)不确定的值
8.若有以下定义,则对a数组元素的正确引用是( ) int a[5],*p=a;
34
A)*&a[5] B)a+2 C)*(p+3) D)*(a+2) 9.若有以下定义,则p+5表示( ). int a[10],*p=a;
A)元素a[5]的地址 B)元素a[5]的值 C)元素a[6]的地址 D)元素a[6]的值 10.若有定义:int *p[3];则以下叙述中正确的是
A)定义了一个基类型为int的指针变量p,该变量具有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
11.已定义以下函数 fun(char *p2, char *p1)
{ while((*p2=*p1)!='\\0'){ p1++;p2++; } } 函数的功能是
A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有'\\0'
12.以下程序的功能是将字符串s。例如,输入字符串:abc123edf456gh,中的数字字符放入d数组中,最后输出d中的字符串执行程序后输出:123456。请
35