指针习题

合集下载

教材课后题答案-第6章_指针习题答案

教材课后题答案-第6章_指针习题答案

习题解答一、单项选择题1.若定义了int n=2, *p=&n, *q=p;则下面【】的赋值是非法的。

A.p=qB. *p=*qC. n=*qD. p=n【答案】D2.若定义了double *p, a;则能通过scanf函数给输入项读入数据的程序段是【】。

A.p=&a; scanf(“%1e”,p);B. *p=&a; scanf(“%1f”,p);C. p=&a; scanf(“%f”,p);D. p=&a; scanf(“%1f”,a);【答案】C3.若定义了int a[10], i=3, *p; p=&a[5];下面不能表示为a数组元素的是【】。

A.p[-5]B. a[i+5]C. *p++D. a[i-5]【答案】D4.若有如下定义:int n[5]={1,2,3,4,5},*p=n;则值为5的表达式是【】。

A.*+5B. *(p+5)C. *p+=4D. p+4【答案】C5.设变量b的地址已赋给指针变量ps,下面为“真”的表达式是【】。

A.b==&psB. b==psC. b==*psD. &b==&ps【答案】C6.设有以下定义和语句:int a[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是【】。

A.a[0][1]B. a[1][0]C. a[1][1]D. a[1][2]【答案】C7.若定义了char *str=”Hello!”;下面程序段中正确的是【】。

A.char c[ ], *p=c; strcpy(p,str);B.char c[5], *p; strcpy(p=&c[1],&str[3]);C.char c[5]; strcpy(c,str);D.char c[5]; strcpy(p=c+2,str+3);【答案】B8.若有下面的程序段,则不正确的fxy函数的首部是【】。

认识钟表练习题含答案

认识钟表练习题含答案

认识钟表练习题含答案时钟是我们生活中很常见的物品之一,它帮助我们了解时间的流逝。

对于小朋友和初学者来说,认识钟表并学习如何读时间是一个重要的环节。

本文将为大家提供一些钟表练习题,通过这些练习题的训练,帮助大家更好地认识钟表并掌握读时间的能力。

练习题一:钟表的指针练习1. 当时针指向12点方向,分针指向6点方向,那么现在是几点钟?答案:现在是6点钟。

2. 当时针指向3点方向,分针指向12点方向,那么现在是几点钟?答案:现在是3点钟。

3. 当时针和分针重合在一起,那么现在是几点钟?答案:现在是12点钟。

练习题二:从钟表上读取时间4. 请根据以下钟表的指针方向,写出对应的时间。

(图片:一张钟表图片,时针指向8点方向,分针指向2点方向)答案:对应时间为8点2分。

5. 请根据以下钟表的指针方向,写出对应的时间。

(图片:一张钟表图片,时针指向4点方向,分针指向10点方向)答案:对应时间为4点10分。

6. 请根据以下钟表的指针方向,写出对应的时间。

(图片:一张钟表图片,时针指向12点方向,分针指向6点方向)答案:对应时间为12点6分。

练习题三:计算时间差7. 甲同学从上午10点钟开始读书,读了3个小时,那么结束时间是几点钟?答案:结束时间是下午1点钟。

8. 乙同学从下午2点钟开始睡觉,睡了5个小时,那么结束时间是几点钟?答案:结束时间是晚上7点钟。

9. 丙同学上午9点钟参加音乐课,课程持续50分钟,那么结束时间是几点几分?答案:结束时间是上午9点50分。

以上提供的练习题可以帮助小朋友和初学者巩固对钟表的认识和读时间的能力。

除了练习题,还有一些其他的方法可以帮助我们更好地认识和学习钟表。

第一,多观察周围的钟表和时间,通过观察不同钟表的指针方向和对应的时间,加深对钟表的认识。

第二,可以尝试制作自己的钟表模型,用纸板或者其他材料制作一个简易的钟表,通过自己动手制作钟表模型,加深对钟表结构的理解。

第三,可以利用手机或其他电子设备上的钟表应用程序,通过这些应用程序练习读时间和计算时间差,加强对钟表的认知。

C语言指针-练习

C语言指针-练习

复习题(二)一、基础题1、设有:int k[]={2,4,6,8,10,12}, *p=k+2; 表达式*(p+2)*p[2] 的值:100 。

2、设有:int a[10], *p1, *p2; 则执行语句:p1=a; p2=&a[5]; 则p2-p1的值:5。

3、设有:int x[]={4,3,2,1},q,*p=&x[1];则执行语句:q=(*--p)++ ; 后;变量q的值为4。

4、设有:int *p, a=10, b=1; 则执行以下语句:p=&a; a=*p+b; 后;a的值为:11。

5、下列程序段的输出结果是2,1 。

int k=1, j=2, *p=&k, *q=p;p=&j;printf("%d, %d",*p, *q);6、设x为整型变量,p为指向整型的指针变量,则让p指向x变量的赋值表达式是P=&x。

7、设有变量定义:float d[]={1.0,2.0,3.0,4.0,5.0}, *p=d+3;请写出printf("\n %f %f", *p, d[0]); 的输出结果为:4.0和 1.0。

8、设有变量定义如下:char s[]="Hello!", *p=s; int i;执行完for(i=0; *(p+i); i++); 后,变量i的值是_6_;*(p+i)的值是‟\0‟_。

9、函数void f(char s[ ], char t[ ]){ int k=0;while (s[k]=t[k]) k++;}等价于void f(char *s, char *t)1、{ while (*s++=*t++); }二、选择题1、下面的程序段用来定义指针并赋值,请选出语法正确的程序段( C )。

A)int *p; scanf(“%d”,p); B)int *s,k; *s=100;C) int *s,k; D) int *s,kchar *p,*c; char *p,*c;s=&k; p=&c; s=&k; p=&c;*p=‟a‟; s=p; *s=1;2、程序段:int *p,a,b=1; p=&a; *p=10; a=*p+b; 执行后,a的值(B)。

指针经典练习题及答案

指针经典练习题及答案

二、程序题1、计算字符串中子串出现的次数。

要求:用一个子函数subString()实现,参数为指向字符串和要查找的子串的指针,返回次数。

2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。

算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。

例如,China转换成密文为G l m r e。

要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。

3、字符替换。

要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。

4、编写一个程序,输入星期,输出该星期的英文名。

用指针数组处理。

5、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。

要求:利用字符串指针和指针数组实现。

6、定义一个动态数组,长度为变量n,用随机数给数组各元素赋值,然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递。

7、实现模拟彩票的程序设计:随机产生6个数字,与用户输入的数字进行比较,输它们相同的数字个数(使用动态内存分配)。

/*1、计算字符串中子串出现的次数。

要求:用一个子函数subString()实现,参数为指向字符串和要查找的子串的指针,返回次数。

*/#include<stdio.h>int subString(char *a, char *b){int i = 0;int j = 0;int m = 0;char *p = b;while(*a){while(*a){if(*a == *b){break;}a++;}while(*b){if(*a != *b){return m;}else{m = m;}b++;a++;}// a++;b = p;++m;}return m;}int main(){char a[100];char b[100];printf("请输入字符串a:");gets(a);printf("请输入字符串b:");gets(b);printf("%d", subString(a, b));return 0;}/*2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。

C语言习题集合7(指针)

C语言习题集合7(指针)

第七部分 指针7.1 选择题1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是()。

A . p=q;B . *p=*q;C . a=*q;D . q=a;2. 若定义:int a=511, *b=&a ;,则printf("%d\n ", *b);的输出结果为:A . 无确定值B . a 的地址C . 512D . 5113. 已有定义 int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是()。

A . a=*p1+*p2;B . p1=a;C . p1=p2;D . a=*p1*(*p2);4. 变量的指针,其含义是指该变量的()。

A . 值B . 地址C . 名D . 一个标志5. 若有说明语句:int a, b, c, *d=&c ;,则能正确从键盘读入三个整数分别赋给变量a 、b 、c 的语句是()。

A . scanf("%d%d%d ", &a, &b, d);B . scanf("%d%d%d ", a, b, d);C . scanf("%d%d%d ", &a, &b, &d);D . scanf("%d%d%d ", a, b,*d);6. 若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是()。

(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 。

c 指针练习题

c  指针练习题

c 指针练习题C指针练习题C语言中的指针是一种强大而又复杂的概念。

它允许我们直接访问内存中的数据,并对其进行操作。

然而,由于指针的灵活性和复杂性,很多初学者在使用指针时会遇到困惑和错误。

为了帮助大家更好地理解和应用指针,下面将给出一些C指针的练习题。

1. 交换两个变量的值这是一个经典的C指针练习题。

请编写一个函数,接受两个整数指针作为参数,并交换这两个指针所指向的变量的值。

例如,如果输入为a=3,b=5,调用函数后,a=5,b=3。

2. 求字符串的长度请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度。

注意,字符串的长度是指字符串中字符的个数,不包括字符串结尾的空字符'\0'。

3. 查找数组中的最大值请编写一个函数,接受一个整型数组指针和数组的长度作为参数,并返回数组中的最大值。

提示:可以使用指针来遍历数组,并使用一个变量来保存当前的最大值。

4. 字符串拷贝请编写一个函数,接受两个字符指针作为参数,并将第一个字符串拷贝到第二个字符串中。

注意,第二个字符串必须具有足够的空间来存储第一个字符串的内容。

5. 动态分配内存请编写一个函数,接受一个整数作为参数,并动态分配一个大小为该整数的整型数组。

然后,将数组的每个元素初始化为其下标的平方,并返回指向该数组的指针。

注意,使用完数组后,必须释放动态分配的内存。

6. 字符串反转请编写一个函数,接受一个字符串指针作为参数,并将该字符串反转。

例如,如果输入为"hello",则函数应该将其改为"olleh"。

7. 指针数组排序请编写一个函数,接受一个字符串指针数组和数组的长度作为参数,并按照字母顺序对字符串进行排序。

提示:可以使用字符串比较函数strcmp来比较两个字符串的大小,并使用指针来交换字符串的位置。

8. 指向函数的指针请编写一个函数,接受一个整数和一个指向函数的指针作为参数,并使用该函数对整数进行处理。

指针编程练习题

指针编程练习题指针是一种特殊的数据类型,在C语言中有着重要的作用。

通过指针,我们可以直接访问和操作内存中的数据。

为了熟悉和掌握指针的使用,下面将给出一些指针编程练习题供大家参考。

1. 交换两个变量的值请编写一个程序,使用指针来交换两个整数变量的值。

要求在程序中定义两个整数变量a和b,通过指针交换它们的值,并打印交换后的结果。

示例输入:a = 10,b = 20示例输出:交换前:a = 10, b = 20交换后:a = 20, b = 102. 求数组元素的和请编写一个程序,使用指针来计算一个整型数组中所有元素的和。

要求在程序中定义一个整型数组array,并使用指针访问数组中的元素,计算它们的和,并打印结果。

示例输入:array = {1, 2, 3, 4, 5}示例输出:数组元素的和为:153. 查找数组中的最大值和最小值请编写一个程序,使用指针来查找一个整型数组中的最大值和最小值。

要求在程序中定义一个整型数组array,并使用指针访问数组中的元素,找到数组中的最大值和最小值,并打印结果。

示例输入:array = {7, 4, 9, 2, 5}示例输出:最大值为:9最小值为:24. 字符串长度计算请编写一个程序,使用指针来计算一个字符串的长度。

要求在程序中定义一个字符数组string,并使用指针访问字符数组中的元素,计算字符串的长度,并打印结果。

示例输入:string = "Hello, World!"示例输出:字符串长度为:135. 动态内存分配请编写一个程序,使用指针来动态分配内存空间,并进行数据的读写操作。

要求在程序中使用malloc函数动态分配内存空间,读取用户输入的整数值并存储到动态分配的内存中,然后使用指针访问该内存中的数据,并打印结果。

示例输入:请输入一个整数: 10示例输出:读取到的整数为: 10以上是几个指针编程练习题的示例,通过练习这些题目,可以提高对指针的理解和使用技巧。

c语言第8章练习题--指针

1、int *p 的含义是(B)A.p是一个指针, 用来存放一个整型数B.p是一个指针, 用来存放一个整型数据在内存中的地址C.p是一个整型变量D. 以上都不对2、以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

void func(int x,int y, ___int*____ z){ *z=x+y; }3、有如下程序段(B)int *p,a=10,b=1;p=&a; a=*p + b;执行该程序段后,a的值是A. 12B. 11C. 10D. 编译出错4、若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( C)A) p+1B) a+1C) a++D) ++p5、以下程序运行后的输出结果是(A)void main( ){ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++) printf("%d,",*p);}A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,1,6、下面程序的输出是(D)void prtv(int *x)printf("%d\n", ++*x);}main(){ int a=25;prtv(&a);}A) 23 B) 24 C) 25D) 267、有以下函数(B)char fun(char *p){ return p; }该函数的返回值是A) 无确切的值B) 形参p中存放的地址值C) 一个临时存储单元的地址D) 形参p自身的地址值8、下列程序的输出结果是(7)#include<stdio.h>void fun (int *p1, int *p2){ if (*p1>*p2) printf ("%d\n",*p1);else printf ("%d\n",*p2);}void main ( ){ int a=3,b=7;fun (&a, &b);}9、下列程序的运行结果是(B)void fun(int *a, int *b){ int *k;k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf("%d %d", a, b);}A) 6 3 B) 3 6 C) 编译出错D) 0 010、以下程序调用findmax函数返回数组中的最大值(B)findmax(int *a,int n){ int *p,*s;for(p=a,s=a; p-a<n; p++)if ( ) s=p;return(*s);}main(){ int x[5]={12,21,13,6,18};printf("%d\n",findmax(x,5));}在下划线处应填入的是(B)A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s11、下列程序段的输出结果是(A)void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 2 1 3 4 C) 1 2 1 2 D) 2 1 1 212、以下程序执行后输出的结果是___84________。

指针练习题及答案

六、指针习题及答案一、单项选择题1. *p最终值是( D)int *p,b=10;static int a[]={2,3,4,1,5,6};p=a;p+=3;a[3]=b;A. 1B. 3C. 4D. 102. *p最终值是( A )char b[10]= "abcdefghi",*p;p=b+5;A. ’f’B. ’g’C. ’h’D. ’e’3. 有一个二维数组a[3][4],其2行3列元素a[2][3]的正确表示方法为( D )。

A. &a[2][3]B. a[2]+3C. *(a+2)+3D. *(a[2]+3)4. 指向一个包含4个整型元素的一维数组的行指针变量的定义形式为( D )。

A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]5. 4个指向int型元素的指针构成一个一维指针数组的定义形式为( B )。

A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]6. 若char *str1="china",char *str2="student";则语句strcpy(str2,str1)执行后,str2的值为( A )。

A. chinaB. studentC. studentchinaD. chinastudent7.若有以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}, *p=a;则值为3的表达式是( B )。

A. p+=2,*(++p)B.p+=2,*p++C.p+=3,p++D. p+=2,++*p8.若有以下定义:char s[20]="programming", *ps=s;则下列不能代表字符“o”的表达式是( A )。

A. ps+2B. s[2]C. ps[2]D.ps+=2,*ps9. 若有定义和语句:int **pp,*p, a=10,b=20;pp=&p;p=&a;p=&b;cout<<*p<<","<<**pp;则输出结果是: ( D )。

(完整word版)C语言指针习题___附答案

一、选择题1。

变量的指针,其含义是指该变量的_________。

a)值 b)地址c)名 d)一个标志2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_____。

a)a,point,*&a b)&*a,&a,*pointc)*&point,*point,&a d)&a,&*point ,point3.若有说明;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输入数值的方法是错误的,其错误原因是________. main(){int *p,*q,a,b;p=&a;printf(“input a:”);scanf(“%d",*p);……}a)*p表示的是指针变量p的地址b)*p表示的是变量a的值,而不是变量a的地址c)*p表示的是指针变量p的值d)*p只能用来说明p是一个指针变量5。

已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是________.void print_value(int *x){ printf(“%d\n”,++*x);}a)23 b)24 c)25 d)26B) p=(long *)malloc(8);scanf(”%ld”,p);C) scanf(”%ld",p=&a);D) scanf("%ld",&a);7.有以下程序#include〈stdio。

h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)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);}执行后的输出结果是A)1 B)2 C)3 D)49。

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

三、填空题1. 下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。

#include<iostream>void change(char *a) //1{int i=0;for(i=0;a[i]!=NULL;i++) //2if(a[i]>='a'&&a[i]<='z')a[i]-=32;; //3}int main(){ char p[80];cout<<" \n";cin.getline(p,80) ; //读一行字符,中间可以有空格 change(p);cout<<p<<endl;}如程序运行时得到以下结果:请输入一行字符:This is a book..THIS IS A BOOK.答案:(1)char *a 或 char a[80](2) a[i] 或a[i]!=’\0’(3) a[i]= a[i] –32或a[i]-= 322. 下列函数swap实现数据交换功能功能,请填空。

#include<iostream>void swap(int *p,int *q){ int temp;temp=*p;; //1; //2}int main(){ int a,b;int *p1,*p2;cout<<"请输入两个正数:";cin>>a>>b;p1=&a;p2=&b;swap(p1,p2);cout<<"结果a和b的值:"<<a<<","<<b<<endl;}如程序运行时得到以下结果:请输入两个正数:10 20结果a和b的值:20,10答案:(1) *p=*q(2) *q=temp;3. 下列函数sort实现对字符串按字典顺序由小到大排序,请填空。

#include<iostream>void sort( ) //1{ char ; //2int i,j;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(strcmp( ) //3{ temp=p[j];; //4p[j+1]=temp;}}int main(){char *a[5]={"student","worker","cadre","soldier","apen"};sort(a,5);for(int i=0;i<5;i++)cout<<a[i]<<endl;}程序运行结果如下:apencadresoldierstudentworker答案:(1)char *p[],int n(2)*temp(3)p[j],p[j+1])>0(4)p[j]=p[j+1]4.函数find功能是:在指针p所指数组中,查找值为x的元素,找到后,返回该元素的下标,否则返回-1,改正程序中语句错误,能够正确运行。

#include<iostream>#include<stdlib.h>const int N=10;int find(int *p,int n,int x) //1{ int i ; // 2*(p+n)=x; //3while(*p+i!=x) //4i++; //5if(i!=n) //6return 1; //7elsereturn -1; //8}int main(){ int i,pos,x;int *p=new int [N];for(i=0;i<N;i++)*(p+i)=rand()%50;for(i=0;i<N;i++)cout<<*(p+i)<<'\t';cout<<"\ninput x: ";cin>>x;pos=find(p,N,x);if(pos!=-1)cout<<"index= "<<pos<<" ,value= "<<*(p+pos)<<endl;else cout<<"No find!"<<endl;}答案:(1) 2行语句改为 int i=0;(2) 4行语句改为 while(*(p+i)!=x);(3) 7行语句改为 return i 。

四、编程题1. 写一个函数,将一个n阶方阵转置。

具体要求如下:(1)初始化一个矩阵A(5×5),元素值取自随机函数,并输出。

(2)将其传递给函数,实现矩阵转置。

(3)在主函数中输出转置后的矩阵。

(提示:程序中可以使用C++库函数rand( ),其功能是产生一个随机数0~65535,其头文件为stdlib.h)2.使用指针编写函数strcat(),实现两个字符串的首尾连接(将字符串str2接到str1的后面,str1最后面的‘\0’被取消)。

3.编写从多个字符串中寻找最长串的函数4.编写一个程序,实现在命令行中以参数的形式接收两个整数,输出这两个整数的和。

(提示:程序中可以使用C++库函数atoi(),其功能是将字符串转换成整型值,其头文件为stdlib.h)知识点:1.掌握指针、地址、指针类型、空指针(NULL)等概念;2.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3.掌握指针与数组、函数、字符串等的联系;4.掌握引用参数的使用。

一、选择题1.若有以下定义,则说法错误的是( )。

int a=100,*p=&a ;A.声明变量p,其中*表示p是一个指针变量B.变量p经初始化,获得变量a的地址C.变量p只可以指向一个整形变量D.变量p的值为1002. 若有以下定义,则赋值正确的是( )。

int a ,b , *p;float c, *q;A.p=&c B.q=p C.p=NULL D.q=new int3. 如果x是整型变量,则合法的形式是( )。

A.&(x+5) B.*x C.&*x D.*&x4. 若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<10)。

A.p[i] B.*(*(a+i)) C.a[p-a] D.*(&a[ 5. 以下程序的输出结果是( )。

#include <iostream>int main(){ int a[3]={10,15,20}; // a[0]=10,a[1]=15,a[2]=20int *p1=a,*p2=&a[1]; // p1取a[0]地址,p2取a[1]地址*p1=*(p2-1)+5; // a[0]=15,a[1]=15,a[2]=20*(p1+1)=*p1-5; // a[0]=15,a[1]=10,a[2]=20cout<<a[1]<<endl;}A.5 B.10 C.15 D.206. 执行以下程序段后,m的值为 ( )。

int a[2][3]={{1,2,3},{4,5,6}};int m,*p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A.15 B.14 C.13 D.127. 以下程序的输出结果是( )。

#include <iostream>void fun(int x,int y,int *cp,int *dp){ *cp=x+y; //*cp=30+50=80*dp=x-y; //*dp=30-50=-20}int main(){ int a,b,c,d;a=30,b=50;fun(a,b,&c,&d);cout<<c<<","<<d<<endl;}A.50,30 B.30,50 C.80,-20D.80,208. 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。

能正确执行此功能的函数是( )。

A.funa(int *x,int *y) B.funb(int x,inty){ int *p=new int ; { int t;p=*x; t=x;*x=*y;x=y;*y=*p; y=t;} }C.func(int *x,int *y) D.fund(int x,inty){ *x=*y; { * *y=*x;*y=*x-*y;}*x=*x-*y;}9. 以下程序的输出结果是( )。

#include <iostream>int main(){ char *s="12134211";int v1=0,v2=0,v3=0,v4=0;for (int k=0;s[k];k++)switch(s[k]){ default:v4++;case '1':v1++;case '3':v3++;case '2':v2++;}cout<<v1<<","<<v2<<","<<v3<<","<<v4<<endl;}A.4,2,1,1 B.4,9,3,1 C.5,8,6,1D.8,8,8,810. 若有如下语句:int **pp,*p,a=10,b=20;pp=&p; //二级指针pp取一级指针p地址p=&a; //一级指针p取变量a地址p=&b; //一级指针p取变量b地址cout<<*p<<”,”<<**pp<<endl;则输出结果是()。

A.10,20 B.10,10 C.20,10 月儿の迷恋 2008-02-07 22:4411.若有以下定义,则变量p所占内存空间的字节数是()。

float *p;A.1B.2C.4D.812.若有以下定义,则赋值错误的是()。

int a,*p,*q;A. *p=&a ;B.p=new int ;C.q=NULL;D.p=q13. 下列程序运行结果是()。

相关文档
最新文档