c语言指针和字符串题库,C语言指针经典练习题-及答案

《C语言指针经典练习题-及答案》由会员分享,可在线阅读,更多相关《C语言指针经典练习题-及答案(14页珍藏版)》请在人人文库网上搜索。

1、c语言指针练习和答案一、选择题1.指向变量的指针,其含义指变量的_ _ _ _。a)值b)地址名字一个标志2.如果有语句int *point,a=4;点=a。以下所有代表地址的选项集是_ _。a)a点,*a b)*a点,*a点c)*点,*点,a)d)a,*点,点3.如果有描述;int *p,m=5,n;以下正确的程序段是_ _ _ _ _ _ _ _。a)p=n;b)p=n;scanf(“% d”,p);scanf(“% d”,* p);c)scanf(“% d”,n);d)p=n;* p=n;* p=m;4.在下面的程序中,调用scanf函数向变量A输入数值的方法是错误的,错误原因是_ _ 。

2、_ _ _ _ _。main()int *p,*q,a,b;p=a。printf(“输入a :”);scanf(%d ,* p);A)*p代表指针变量p的地址。B)*p代表变量a的值,而不是变量a的地址。C)*p代表指针变量p的值。D)*p只能用来表明p是一个指针变量5.有变量定义和函数调用语句:int a=25打印值(a);下列函数的正确输出是_ _ _ _ _ _。void print_value(int *x) printf(%dn ,* x);a)23 b)24 c)25 d)266.如果有描述:长*p,a;您无法通过scanf语句将数据正确地读入输入项。程序段是A) *p=a。sca。

3、nf(“% LD”,p);B) p=(长*)malloc(8);scanf(“% LD”,p);c)扫描f(“% LD”,p=a);d)扫描(“%ld”,a);7.有以下程序#包括main() int m=1,n=2,*p=m,*q=n,* r;r=p;p=q;q=r;printf(%d,%d,%d,%dn ,m,n,*p,* q);程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1C)2,1,2,1 D)2,1,1,28.有以下程序main() int a=1,b=3,c=5;int *p1=a,*p2=b,* p=c;* p=* P1 *(p2);printf(“% d n”,c。

4、);执行后的输出是A)1B)2C)3D)49.有以下程序main() int a,k=4,m=4,*p1=k,* p2=m;a=P1=m;printf(“% d n”,a);程序运行后的输出结果是()A)4B)1 C)0 D)没有固定值的运行时错误10.在16位编译系统中,如果定义了int a =10,20,30,p=a;当执行p;在那之后,下面的陈述是错误的()将一个字节移到高地址p向高地址移动两个字节D)p相当于111.有以下程序int a10=1,2,3,4,5,6,7,8,9,10,*p=a3,b;b=p5;b中的值是()甲)5乙)6丙)8丁)912.如果存在以下定义,对数组元素的正确。

5、引用是_ _ _ _ _ _ _ _。int a5,* p=a;a)*a5 b)a 2 c)*(p 5) d)*(a 2)13.p 5代表_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。int a10,* p=a;a)元素a5的地址b)元素a5的值c)元素a6的地址d)元素a6的值14.让现有的定义: int a 10=15,12,7,31,47,20,16,28,13,19,* p;以下语句中的正确语句是()a)对于(p=a;a(临10);a)。b)对于(p=a;p(a10);p);c)对于(p=a,a=a 10pint main() int x=10,20,30 ;int 。

6、* px=x;printf(“% d”,* px);printf(“% d”,* px);px=x。printf(“% d”,(* px);printf(“% d”,* px);px=x。printf(“% d”,* px);printf(“% d”,* px);px=x。printf(“% d”,* px);printf(“% d n”,* px);返回0;程序运行后的输出结果是()A)11,11,11,12,12,20,20,20 B)20,10,11,10,11,10,11,10C)11,11,11,12,12,13,20,20 D)20,10,11,20,11,12,20,2016.根。

7、据以下定义,程序段的输出结果是int arr=6,7,8,9,10 ;int * ptrptr=arr*(ptr 2)=2;printf (%d,%dn ,*ptr,*(ptr 2);A)8,10 B)6,8 C)7,9 D)6,1017.如果定义了: int a =2,4,6,8,10,12,* p=a;*(p 1)的值是_ 4 _ _。* (a 5)的值是__12__。18.如果有以下说明和陈述,intc45,(* p)5;p=c。对C数组元素的正确引用是_ _ _ _ _。(p0 2)19.如果有定义:int a23,那么对数组的第I行和第j列的元素地址的正确引用是_ _。a)*(ai 。

8、j) b)(a i) c)*(a j) d)ai j20.如果有以下定义, int a 2 3=2,4,6,8,10,12 ;10的值是_8_。*(*(a 1) 0)是_ _8。21.具有以下定义char a10,* b=a;不能为数组A输入字符串的语句是()获取(a)获取(B)获取(a0);获取(a0);d)获取(b);22.以下程序段的运行结果为_ _ _ _ _。char * s= abcdes=2;printf(“% d”,s);A)cde b)字符c)字符地址c)d)没有明确的输出结果23.在下面的程序段中,是()不能正确分配字符串(编译时系统会提示错误)a)char s10= ab。

9、cdefg ;B) char t=abcdefg ,* s=t;c)炭10;s= abcdefgd)char s10;str copy(s, abcdefg );24.设置现有的定义: char *st=你好吗;以下程序段是正确的()a)充电a11,* p;strcpy(p=a 1,ST4);b)充电a11;strcpy(a,ST);c)充电a11;strcpy(a,ST);D) char a,* p;strcpy(p=a1,ST 2);25.有以下程序输出的结果是()main()char a=programming ,b= language ;char *p1,* p2int I;p1=a。。

10、p2=b。对于(I=0;i7;(I)if(*(P1 I)=*(p2 I)printf(“% c”,*(P1 I);A)gm B)rg C)或D)ga26.如果p1和p2是指向同一字符串的指针变量,而c是字符变量,则无法正确执行的以下赋值语句是_ _ _ _ _。a)c=* P1 * p2;b)p2=c c)P1=p2 d)c=* P1 *(p2);27.以下正确的程序部分是_ _ _ _。a)字符串20;b)char * p;scanf(“% s”,字符串);scanf(“% s”,p);c)char str20;d)char字符串20,* p=字符串;scanf(“% s”,字符串2);sc。

11、anf(“% s”,p2);28.如果有语句,以下不正确的语句是_ _ _ _。给一个=“它是我的”;char *p=“这是我的”;a)1代表字符t的地址b)当p指向另一个字符串时,字符串的长度是无限的c)存储在p变量中的地址值可以改变一个文件中只能存储10个字符29.以下程序的运行结果为_ _。#包括#包括main() char * s1= AbDeGchar * s2= AbdEgS1=2;S2=2;printf(“% d n”,strcmp(s1,S2);a)正数b)负数c)零d)不确定值30.下列程序的输出结果是_ _ _ _。void f(int *x,int *y)int t;t=。

12、* x;* x=* y;*y=t。main()int a8=1,2,3,4,5,6,7,8,i=0,*p,* q;p=a。q=a7;同时(*p!=*q i8)f(p,q);p;q-;我;对于(I=0;i8;I)printf(“% d”,aI);A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,31.已经定义了以下功能乐趣(int*p) return * p;该函数的返回值是a)不确定值b)形式参数p中存储的值c)由参数p指向的存储单元中的值d)参数p的地址值32.有以下程序int f(int b4) 。

13、int i,j,s=0;对于(j=0;j4;j) I=j;if(I2)I=3-j;s=bIj;返回s;main() int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0 ;printf(“% d n”,f(a);执行后的输出是A)12 B)11 C)18 D)1633.如果有以下函数头,则该函数的以下函数语句是正确的int fun(双x10,int *n)a)整数(双x,整数* n);B)int fun(双精度,int);c)整数(双*x,整数n);D)int fun(双*,int *);34.执行以下程序后的输出是()无效总和(int *a) a0=a1;main() int aa10=1,2,3,4,5,6,7,8,9,10,I;对于(I=2;I=0;I-)sum(aaI);printf(“% d n”,aa0);甲)4乙)3丙)2丁)135.下一个代码的运行结果是:int main()char a;char * str=a;str(str, hello );puts(str);返回0;异常发生在A)你好B)空C)高D)36.下一个程序的操作结果是void main()char *p,* q;字符字符串=“你好,世界 n”;q=p=strp;打印(q);印刷(p。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值