第八章函数指针练习答案.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]