77范文网 - 专业文章范例文档资料分享平台

第7章 指针(答案)

来源:网络收集 时间:2020-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第7章 指针

一、选择题

1、变量的指针,其含义是指变量的(B) A)值 B)地址 C)名 D)一个标志 2、若有以下定义: int x[10], *pt=x;

则对x数组元素的正确引用是(B)

A) *&x[10] B) *(x+3) C) *(pt+10) D) pt+3

3、若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是(B) A)*p B)x[5] C)*(p+1) D)*x

4、设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是(D) A)float *p=1024; B)int *p=(float x); C)float p=&x; D)float *p=&x; 5、有以下程序 main(){

int n,*p=NULL; *p=&n;

printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\\n”,p); }

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(A) A)int n,*p=NULL; B)*p=&n; C)scanf(“%d”,&p) D)printf(“%d\\n”,p); 6、若有说明:int *p,m=5,n;以下正确的程序段是(D) A)p=&n; B)p=&n;

scanf(“%d”,&p); scanf(“%d”,*p); C)scanf(“%d”,&n); D)p=&n; *p=n; *p=m;

7、若有语句int * p1, a=4;和p1=&a;下面均代表地址的一组选项是(C) A)a, p1, *&a B)&*a, &a, *p1 C)* &p1, * p1, &a D)&a, &* p1, p1 8、下面程序的输出结果是(D) main(){

int a=25,*p; p=&a;

printf(\ }

A)23 B)24 C)25 D)26 9、下列函数的功能是(A) int fun (char *x){ char *y=x; while(*y++); return(y-x-1); }

1

A)求字符串的长度 B)比较两个字符串的大小

C)将字符串x复制到字符串y C)将字符串x连接到字符串中y后面 10、设有如下定义

char *aa[2]={\则以下说法正确的是(C)

A)aa数组的元素的值分别是“abcd”和“ABCD”。

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组。

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址。 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址。 11、若有以下定义和语句

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是(B) A)*p B)a[10] C)*a D)a[p-a] 12、下面定义不正确的是(B)

A)int *p; B)int p[n]; C)int *p(); D)int (*p)(); 13、有下面程序(假设int 类型为2个字节) main() {

int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a;

printf(\printf(\

该程序有两个printf函数,如果第一个printf输出的是194,则第二个printf输出的结果是(D) A)203 B)204 C)1a4 D)1a6 14、下面程序的输出结果是(D) main(){

char p1[10]=\strcpy(str+2,strcat(p1,p2)); printf(\

A)xyzabcABC B)zabcABC C)yzabcABC D)xyabcABC 15、有以下程序 main(){

char str[]=\while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);} 执行后输出结果是(C)

A) yz<回车>xyz B) z<回车>yz

C) z<回车>yz<回车>xyz D) x<回车>xy<回车>xyz 16、下面程序的输出结果是(C) main(){

int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1];

for(x=0;x<3;x++)

2

y+=*(p+x);

printf(\ }

A)17 B)18 C)19 D)20 17、以下程序输出的结果是(A) void fun1(char *p){ char *q; q=p;

while(*q!=?\\0?){ (*q)++;q++;} }

main(){

char a[]={“Program”},*p; p=&a[3]; fun1(p);

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

A)Prohsbn B)Prphsbn C)Progsbn D)Program 18、设有如下定义: int (*ptr)();

则以下叙述中正确的是(C)。

A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数的返回值是指向int型数据指针 19、若有以下定义:int a[2][3]={2,4,6,8,10,12}; 则以下描述不正确的是( )

A)*(a+1)为元素a[1][0]的指针 B)a[1]+1为元素a[1][1]的指针 C)*(a+1)+2为元素a[1][2]的指针 D)*a[1]+2的值是12 20、以下程序的运行结果是(A) #define NULL 0 main()

{int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5,*q=NULL; *q=*(p+5);

printf(\ }

A)运行后报错 B)6 6 C)6 11 D)5 5 21、若有以下说明:

int w[3][4]={{0,1},{2,4},{5,8}}; int (*p)[4]=w;

则数值为4的表达式是(D)

A)*w[1]+1 B)p++,*(p+1) C)w[2][2] D)p[1][1] 22、以下程序的运行结果是(D) main()

3

{ char a[]=\ char *p1,*p2; int i; p1=a; p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i)) printf(\

A)gm B)rg C)or D)ga 23、有以下程序

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) A)Ab B)aa C)Aa D)Bb

24、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是(D) A)int *i=NULL; B) float *f=NULL; scanf(\ *f=10.5; C)char t='m', *c=&t; D) long *L; *c=&t; L='\\0'; 25、已定义以下函数 fun(int *p) { return *p; }

该函数的返回值是(C )

A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值 26、若有定义:int *p[3];,则以下叙述中正确的是(B)

A)定义了一个基类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 27、已定义以下函数 fun(char *p2, char *p1)

{ while((*p2=*p1)!='\\0'){ p1++;p2++; } } 函数的功能是(A)

A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

4

D)检查p1和p2两个指针所指字符串中是否有'\\0' 28、有以下程序 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(\执行后输出结果是(B)

A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8

29、有以下程序,假设程序编译,连接后生成可执行文件my.exe main( int argc, char *argv[]){ int i;

printf(“argc=%d\\n”,argc); for(i=1;i

如在命令行中打入:this is a big table。输出结果为:( )

A) is a big table B)big talbe C)a big table D) this is a big table 30、有以下程序

void f(char p[][10], int n ) /* 字符串从小到大排序 */ {

char t[10]; int i,j;

for(i=0;i

if(strcmp(p[i],p[j])>0) {

strcpy( t, p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); } }

main( ){

char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”}; f(p,5);

printf(“%d\\n”,strlen(p[0])); }

则输出结果为(A)

A) 3 B) 0 C) 5 D) 2

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第7章 指针(答案)在线全文阅读。

第7章 指针(答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1091811.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: