C、main(int c,char v[]) D、main(int argc,char *argv) 答案b 44
、
若
有
说
明
:char
向int型数据的指针
C、ptr是指向函数的指针,该函数返回一个int型数据
D、ptr是指向一维数组的指针变量 答案c
48、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是________。 A、*pmax(a,b); B、*p(a,b); C、(*p)(a,b); D、(*p)max(a,b); 答案c
说
明
:char
49、已有函数max(a,b),为了让函数指针变量P指向函数max,正确的赋值方法是________。 A、p=max; B、*p=max(a,b); C、*P=max; D、p=max(a,b); 答案a
50、已有定义int (*p)();指针p可以
*language[]={\AL\VA\则表达式*language[1]>*language[3]比较的是________。
A、字符串BASIC和字符串JAVA B、字符串FORTRAN和字符串PASCAL C、字符B和字符J D、字符F和字符P 答案c 45
、
若
有
*language[]={\AL\\VA\则language[2]的值是________。 A、一个字符串 B、一个地址 C、一个不定值 D、一个字符 答案b 46
、
若
有
说
明
:char
*language[]={\AL\VA\则以下不正确的叙述是________。
A、language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针
B、language+2表示字符串\的首地址
C、*language[2]的值是字母P
D、language是一个字符型指针数组,它包含5
个元素,其初值分别
是
\VA\C\答案d
47、语句int (* ptr)();的含义是________。 A、ptr是指向int型数据的指针变量
B、ptr是一个函数名,该函数的返回值是指
6
________。
A、表示函数的类型 B、指向函数的入口地址 C、表示函数返回值的类型 D、代表函数的返回值 答案b
51、以下定义语句中正确的是________。 A、float *a,b=&a; B、int a=10,*b=&a; C、char a='A'b='B'; D、float a=b=10.0;
答案b
52、若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是________。 A、*(p[0]+2) B、*(p+1)+3
C、p+1 D、*(p+3) 答案a
53、有以下程序 main()
{ int a=7,b=8,*p,*q,*r; p=&a;q=&b; ?r=p;p=q;q=r;
?printf(\}
程序运行后的输出结果是________。 A、7,8,8,7 B、8,7,7,8 C、8,7,8,7 D、7,8,7,8 答案b
54、有以下程序 main() {
int
a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
?*q=*(p+5);
?printf(\
}
程序运行后的输出结果是________。 A、5 10 B、6 11 C、报错 D、6 6 答案c
55、已有定义:int i,a[10],*p;,则合法的赋值语句是________。 A、p=a+2; B、p=a[2]+2; C、p=100; D、p=a[5]; 答案a
56、若有说明语句:int a,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是________。
A、scanf(\B、scanf(\C、scanf(\D、scanf(\答案a
57、有以下程序 int *f(int *x, int *y) { if (*x < *y) return x; else
return y; }
main()
{ int a=7,b=8,*p,*q, *r; p=&a; q=&b;
r = f(p,q);
printf(\}
执行后输出结果是________。 A、8,7,7 B、7,8,7 C、8,7,8 D、7,8,8 答案b
58、有以下程序,输出结果为________。 void fun(char *a, char *b) { a=b; (*a)++; } main()
{ char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(\}
A、Ab B、Bb C、aa D、Aa 答案a
59、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是________。 A、long *L;*L='\\0'; B、char t='m', *c=&t;
7
C、float *f=NULL;*f=10.5; D、int *i=NULL;scanf(\ 答案b
60、有以下程序段 main()
{ int a=5,*b,**c; c=&b; b=&a; ……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是________。 A、变量b中的值 B、变量b的地址 C、变量a中的值 D、变量a的地址 答案c
61、已定义以下函数 fun(char *p2, char *p1)
{ while((*p2=*p1)!='\\0'){ p1++;p2++; } } 函数的功能是________。
A、将p1所指字符串复制到p2所指内存空间
B、检查p1和p2两个指针所指字符串中是否有'\\0'
C、将p1所指字符串的地址赋给指针p2 D、对p1和p2两个指针所指字符串进行比较 答案a
62、有以下程序 #include
{ char *p=\ printf(\
}
程序运行后的输出结果是________。 A、6 B、12 C、15 D、5 答案d
8
63、有以下程序
#include
{ char *p,*q;
p=(char *)malloc(sizeof(char)*20); q=p; scanf(\}
若从键盘输入:abc def<回车>,则输出结果是________。 A、def def B、d d C、abc def D、abc d 答案a
64、以下程序的运行结果是________。 sub(int x,int y,int *z) { *z=y-x;} main() { int a,b,c; sub(10,5,&a);
sub(7,a,&b); sub(a,b,&c);
printf(\}
A、-5,-12,-17 B、-5,-12,-7 C、5,-2,-7 D、5,2,3 答案b
65、执行以下程序后,a的值为0,b的值为________。 main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(-* p1)/(*p2)+7; printf(\ printf(\} A、6 B、10 C、7 D、5
答案c
66、下面程序应能对两个整型变量的值进行交换。以下正确的说法是________。 main()
{ int a=10,b=20;
printf(\ swap(&a,&b);
printf(\}
swap(int p,int q) { int t;
t=p;p=q;q=t; } A、该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
B、该程序完全正确
C、该程序有错,只要将语句swap (&a,&b);中的参数改为a,b即可 D、以上说法都不正确 答案d
67、以下程序有错,错误原因是________。 main()
{ int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q;
…… } A、q没有指向具体的存储单元,所以*q没有实际意义
B、p和q的类型不一致,不能执行*p=*q;语句
C、*p中存放的是地址值,因此不能执行*p=40;语句
D、q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句 答案d
68、若已定义int a =5;下面对(1),(2)两个语句的正确解释是________。
(1)int *p=&a; (2)*p=a;
A、(1)在对P进行说明的同时进行初始化,使P指向a
(2)将变量a的值赋给指针变量p
B、语句(1)和(2)中的*P含义相同,都表示给指针变量P赋值
C、(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
D、(1)在对P进行说明的同时进行初始化,使P指向a
(2)将变量a的值赋于*p 答案d
69、若有说明:int *p,m=5,n;以下正确的程序段是________。 A、scanf(\ *p=n; B、p=&n;
scanf(\ C、p=&n; scanf(\D、p=&n; *p=m; 答案d
70、若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是________。 A、p1=&m;p2=&n;*p1=*p2; B、p1=&m;*p2=*p1; C、p1=&m;p2=p1; D、p1=&m;p2=&p1; 答案c
71、已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是________。
void print_value(int *x) { printf(\ A、25 B、23 C、24 D、26 答案d
9
72、下面判断正确的是________。 A、char str[10]={\等价于char str[10];str[]={\
B、char[4]=\等价于charc[4]=d[4]=\C、char *s=\等价于char *s;s=\D、char *a=\等价于char *a; *a=\答案c
73、下面能正确进行字符串赋值操作的是________。
A、char s[5]={'A','B','c','D','E'}; B、char *s; scanf(\C、char *s; s=\D、char s[5]={\答案c
74、设P1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是________。 A、pl=p2; B、p2=c;
C、c=*pl*(*p2); D、c=*pl+*p2; 答案b
75、设有下面的程序段:chars[]=\*p;p=s;则下列叙述正确的是________。 A、s数组长度和p所指向的字符串长度相等
B、s和p完全相同
C、数组s中的内容和指针变量p中的内容相等
D、*p与s[0]相等 答案d
76、下面程序段的运行结果是_________。 char *format=\int a=1,b=10; a+=b;
printf(format,\A、format,\B、以上结果都不对
10
C、a+=b,a=ll,b=10 D、for,\答案c
77、下面程序段的运行结果是_________。 char *p=\int a=111,b=10,c; c=a%b;p+=3; printf(p,c,a,b); A、a=lll,b=10 B、a=1,b=111 C、以上结果都不对 D、1,a=111,b=10 答案b
78、以下正确的程序段是________。 A、char *p;
scanf(\
B、char str[20],*p=str; scanf(\C、char str[20]; scanf(\ D、char str[20]; scanf(\答案c
79、以下正确的程序段是________。 A、char str[10],*st=\B、char st1[]=\C、char str[10]=\D、char str1[]=\2); 答案c
80、下面程序段的运行结果是________。 char str[]=\printf(\A、字符'C'的地址 B、0 C、字符'C' D、67 答案b
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数组和函数(2)在线全文阅读。
相关推荐: