第八章函数指针练习答案.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数部分

1.以下正确的说法是(A).

如果在一个函数中的复合语句中定义了一个变量,则该变量

A)只在该复合语句中有效

B)在该函数中有效

C)在本程序范围内均有效

D)非法变量

2.以下不正确的说法为( D ).

A)在不同的函数中可以使用相同名字的变量

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

3.下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是

【 void add (float a, float b) 】;改正后为【float add (float a, float b)】。 Void add(float a,float b)

{ float c;

c=a+b;

return c;

}

4.若输入一个整数10,以下程序的运行结果是【 1010 】。

main()

{ int a,e[10],c,i=0;

printf(“输入一整数\n”);

scanf(“%d”,&a);

while(a!=0)

{c=sub(a);

a=a/2;

e[i]=c;

i++

}

for(;i>0;i--) printf(“%d”,e[i-1]);

}

sub(int a)

{ int c;

c=a%2;

return c;

}

预编译

1.请读程序:

#define ADD(x) x+x

main()

{

int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf(“sum=%d”,sum);

}

上面程序的运行结果是(B)。

A)sum=9 B)sum=10 C)sum=12 D)sum=18

指针

1.变量的指针,其含义是指该变量的( B )。

A)值 B)地址

C)名 D)一个标志

2.若已定义int a=5;下面对(1),(2)两个语句的正确解释是( D )。

(1)int *p=&a; (2) *p=a;

A)语句(1)和(2)中的 *p含义相同,都表示给指针变量p赋值

B)(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p

C)(1)在对p进行说明的同时进行初始化,使p指向a

(2)将变量a的值赋给指针变量p

D)(1)在对p进行说明的同时进行初始化,使p指向a

(2)将变量a的值赋于*p

3.若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是( D )。

A)a,point,*&a B)&*a,&a,* point

C)*&point,*point,&a D)&a,&*point,point

4.设 char *s=”\ta\017bc”; 则指针变量s指向的字符串所占的字节数是( C )。

A)9 B)5 C)6 D)7

5.下面程序段中,for循环的执行次数是(C)。

char *s=”\ta\018bc”;

for ( ;*s! =’\0’;s++) printf(“*”);

A)9 B)5 C)6 D)7

6.下面程序段的运行结果是( C )。

char *s=”abcde”;

s+=2; printf(“%d”,s);

A)cde B)字符’c’ C)字符’c’的地址 D)无确定的输出结

7.下面程序的运行结果是(C)。

#include

#include

main()

{char *p1,*p2,str[50]=”abc”;

p1=”abc”; p2=”abc”;

strcpy(str+1,strcat(p1,p2));

printf(“%s\n”,str);}

A) abcabcabc B)bcabcabc C) aabcabc D)cabcabc

8.若有以下定义,则对a数组元素的正确引用是( D )。

int a[5],*p=a;

A) *&a[5] B) a+2 C) *(p+5) D)*(a+2)

9.若有以下定义,则对a数组元素地址的正确引用是( D )。

int a[5],*p=a;

A) p=5 B)*a+1 C)&a+1 D)&a[0]

10.若有定义:int a[2][3];则对数组a的第i行第j列(假设i,j已正确说明并赋值)

元数地址的正确引用为( D )。

A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j

11.若有定义:int a[5];则a数组中首元素的地址可以表示为( C )。

A)&a B)a+1 C)a D)&a[1]

相关文档
最新文档