指针练习题与答案

合集下载

C语言 数组和指针练习题

C语言  数组和指针练习题

若当堂没做完,下周四之前上交也可。

至ftp://211.64.82.253/用户名和密码:stuC语言程序设计练习题——数组一、选择题77、以下对一维数组a的正确说明是_d ___A、char a(10);B、int a[ ];C、int k=5,a[k];D、char a[ ]={'a' , 'b' , 'c'};78、若有说明语句:int a[2][4];,则对a数组元素的正确引用是_a___A、a[0][3]B、a[0][4]C、a[2][2]D、a[2][2+1]79、以下能对二维数组y进行初始化的语句是_b__A、static int y[2][ ]={{1,0,1}, {5,2,3}};B、static int y[ ][3]={{1,2,3}, {4,5,6}};C、static int y[2][4]={{1,2,3}, {4,5} , {6}};D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}};80、若有说明语句:int y[ ][4]={0,0};则下面叙述不正确的是_d___A、数组y的每个元素都可得初值0B、二维数组y的行数为1C、该说明等价于int y[ ][4]={0};D、只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值081、以下各组选项中,均能正确定义二维实型数组s的选项是_c___A、float s[3][4];B、float s(3,4);float s[ ][4]; float s[ ][ ]={{0};{0}};float s[3][ ]={{1},{0}}; float s[3][4];C、 float s[3][4];D、float s[3][4];static float s[ ][4]={{0},{0}}; float s[3][ ];auto float s[ ][4]={{0},{0},{0}}; float s[ ][4];82、若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8}; ,则a数组的行数为__a__A、3B、2C、无确定值D、183、若二维数组y有m列,则在y[i][j]前的元素个数为_B___A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+184、下面程序中有错误的行是____1、 main( )2、 {3、 int x[3]={1};4、 int k;5、 scanf("%d", &x);6、 for (k=1; k<3; k++)7、 x[0]=x[0]+x[i];8、 printf("x[0]=%d\n", x[0]);9、 }A、3B、6C、7D、585、若有以下语句,则正确的描述是__b__char x[ ]="12345";char y[ ]={'1', '2', '3', '4', '5'};A、x数组与y数组的长度相同B、x数组长度大于y数组长度C、x数组长度小于y数组长度D、x数组等价于y数组86、以下不正确的数组定义语句是__b__A、double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};B、int y[5]={0, 1, 3, 5, 7, 9};C、char ch1[ ]={'1', '2', '3', '4', '5'};D、char ch2[ ]={'\x10', '\xa', '\x8'};87、以下正确的数组定义语句是_c___A、char a[5]={'1', '2', '3', '4', '5', '\0'};B、int b[2][ ]={{1}, {2}};C、float c[ ][3]={1, 2, 3, 4, 5};D、char d[5]="CHINA";88、判断字符串str1是否大于字符串str2,应当使用__d__A、if (str1>str2)B、if (strcmp(str1, str2))C、if (strcmp(str2, str1)>0)D、if (strcmp(str1, str2)>0)89、下面程序段的运行结果是_c___char x[5]={'a', 'b', '\0', 'c', '\0'};printf("%s", x);A、'a''b'B、abC、ab└┘cD、abc90、有两个字符数组a,b,则以下能正确为a,b进行赋值的语句是_d___A、gets(a, b);B、scanf("%s%s", &a, &b);C、getchar(a); getchar(b);D、gets(a); gets(b);91、有字符数组s1[80]和s2[80],则以下能正确对s1, s2进行输出的语句是___b_A、puts(s1, s2)B、printf("%s, %s", s1, s2);C、putchar(s1, s2);D、puts(s1), puts(s2);92、以下程序段的运行结果是_c___char a[7]="abcdef";char b[4]="ABC";strcpy(a, b);printf("%c", a[5]);A、└┘B、\0C、eD、f93、以下描述正确的是_d___A、两个字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串"STOP└┘"与"STOP"相等D、字符串"That"小于字符串"The"94、以下对字符数组的描述中错误的是_c___A、字符数组中可以存放字符串B、字符数组中的字符串可以整体输入、输出C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D、不可以用关系运算符对字符数组中的字符串进行比较95、若有语句:char s1[10], s2[10]={"books"},则能将字符串books赋给数组s1的正确语句是_b___A、s1={"books"};B、strcpy(s1, s2);C、s1=s2;D、strcpy(s2, s1);96、以下printf语句的输出结果是____printf("%d\n", strlen("school");A、7B、6C、存在语法错误D、不定值97、下面程序的功能是将字符串s中所有的字符c删除。

指针练习题(打印版)

指针练习题(打印版)
a=5,*pa=5 b=8,*pb=8
17. void main() {
int a=10; int *p=&a; *p=*p+5; printf("a=%d,*p=%d\n",a,*p); } a=15,*pa=15
19. void main() {
int a[]={1,2,3,4,5,6,7,8,9,10}; int *p,i,n,sum; p=a; n=sizeof(a)/sizeof(int); sum=0; for(i=0;i<n;i++)
sum+=*(a+i); printf("%d\n",sum); }
55
24. void main() {
char *p, s[]="softwarecolleague"; p=s+5; while(*p!=NULL)
printf("%c",*p++); }
arecolleague
25-1 编写一个程序计算一个字符串的长度。
2012-5-9
课堂小练习
1. 设有下面的程序段:char s[]="china"; char *p; p=s; 则下列叙述正确的是( )。 A.s和p完全相同 B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.﹡p与s[0]相等
2. char str[]="ABC",*p=str; printf("%s\n",p+1);
14. 若有说明::int *p1, *p2, m=5, n; 以下均是正确的赋值语 句的选项是( )

指针练习题与答案

指针练习题与答案

编程题1用指向数组的指针变量输出数组的全部元素#include<iostream.h>void main( ){ int a[10], i;int *p;for (i=0; i<10; i++)cin>>a[i];for (p=a; p<a+10; p++)cout<<*p<<‘\t’;}#include<iostream.h>void main( ){ int a[10], i;int *p=a;for (i=0; i<10; i++)cin>>a[i];for (i=0; i<10; i++)cout<<*p++<<‘\t’;}2 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出#include<iostream.h>void inv(int *x, int n);void main( ){ int i, a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);for (i=0;i<10; i++)cout<<a[i]<<‘\t’;}void inv(int *x, int n){ int *p, t, *i, *j, m=(n-1)/2;i=x; j=x+n-1; p=x+m;for (; i<=p; i++,j--){ t=*i; *i=*j; *j=t;}}void inv(int x[ ], int n){ int t, i, j, m=(n-1)/2;for (i=0;i<=m; i++){ j=n-1-i;t=x[i]; x[i]=x[j]; x[j]=t;}}一判断题× 1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。

函数、指针与结构体练习题-参考答案

函数、指针与结构体练习题-参考答案

(一)选择题1.以下正确的说法是_________.建立函数的目的之一是 a)提高程序的执行效率b)提高程序的可读性c)减少程序的篇幅d)减少程序文件所占内存2.以下正确的函数原型声明形式是________.a)double fun(int x,int y)b)double fun(int x; int y)c)double fun(int x, int y);d)double fun(int x,y);3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为______.A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是______.a)floatb)intc)longd)double5.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array 的错误定义方式为________.int a[3][4];f(a);a)f(int array[][6])b)f(int array[3][])c)f(int array[][4])d)f(int array[2][5])6.以下程序的正确运行结果是_________.#include <>void num(){ extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;main(){int a=7,b=5;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);}a)12,2 b)不确定 c)5,25 d)1,127.以下正确的描述是____________.a)C语言的预处理功能是指完成宏替换和包含文件的调用b)预处理指令只能位于C源程序文件的首部c)凡是C源程序中行首以"#"标识的控制行都是预处理指令d)C语言的编译预处理就是对源程序进行初步的语法检查8.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.a)仅仅搜索当前目录b)仅仅搜索源程序所在目录c)直接按系统设定的标准方式搜索目录d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索9.当调用函数时,实参是一个数组名,则向函数传送的是_____.A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值10.函数的值通过return语句返回,下面关于return语句的形式描述错误的是_____.表达式; (表达式);C.一个return语句可以返回多个函数值D.一个return语句只能返回一个函数值11.设函数fun的定义形式为void fun(char ch,float x){…}则以下对函数fun的调用语句中,正确的是_____.("abc",; =fun('D',; ('65',; (32,32);12.以下程序的输出结果是_____.void reverse(int a[],int n){ int i,t;for(i=0;i<n/2;i++){ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}main( ){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf(" %d\n ",s);}B.1013.阅读下列程序,则运行结果为_____.fun( ){ static int x=5;x++;return x;}main( ){ int i,x;for(i=0;i<3;i++)x=fun( );printf("%d\n",x);}B.614.若使用一维数组名作函数实参,则以下正确的说法是_____.A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调用函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致15.在C语言中,定义函数时函数的类型可以缺省,此时函数的隐含类型是_____. 16.在C语言中,形参的缺省存储类别是( ).17.以下关于字符串的叙述中正确的是_____.语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小18.阅读程序,选择程序的运行结果。

c语言指针的习题答案

c语言指针的习题答案

指针练习题1.有以下程序main(){char a[]="programming",b[]="language";char *p1,*p2;int i;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}输出结果是A)gm B)rg C)or D)ga2.设有说明int(*ptr)[m];其中的标识符ptr是A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量3.若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是A) p+1 B) a+1 C) a++ D) ++p4.若有语句int *point ,a=4;和point =&a;下面均代表地址的一组选项是A. a,point,*&aB. &*a,&a,*pointC. &point,*point,&aD. &a,&*point,point5.下面程序段的运行结果是char a[]=”language”,*p;p=a;while(*p!=’u’) {printf(“%c”, *p-32);p++;}A. LANGUAGEB. LANGuageNGngUAGE6.以下程序的运算结果是*p=1,m=3,n=5 。

#include<stdio.h>void main(){int a[5]={1,2,3,-4,5};int m,n,*p;p=&a[0];m=*(p+2);n=*(p+4);printf("*p=%d,m=%d,n=%d",*p,m,n);}7.写一通用函数slength,求出一个字符串的长度,并用main函数调用slength。

指针练习题答案(1)

指针练习题答案(1)
{int num=0;
while(*(str+num)!=‘\0’) num++;
return(num);}
A.7B.6C.5D.10
19.下面程序的运行结果是()
# include <stdio.h>
main( )
{static char a[ ]=“Language”,b[ ]=“programe”;
2.执行以下程序后,a的值为(),b的值为()
main(0
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1= =&m;
b=(- *p1)/(*p2)+7;
printf(“a=%d\n”,a);
printf(“b=%d\n”,b);}
[1]A.-1B.1C.0D.4
[2]A.5 B.6C.7D.10
D.*p只能用来说明p是一个指针变量
4.以下程序有错,错误原因是()
main()
{int *p,i;
char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;……….}
A.p和q的类型不一致,不能执行*p=*q;语句;
B.*p中存放的是地址值,因此不能执行*p=40;语句
C.q没有指向具体的存储单元,所以*q没有实际意义
指针单元练习题
一、选择题:
1.以下程序的运行结果是()
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);

指针练习题及答案

指针练习题及答案

六、指针习题及答案一、单项选择题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 )。

汽车仪表练习题

汽车仪表练习题

汽车仪表练习题汽车仪表是驾驶员与汽车之间的重要信息交流工具,通过仪表盘上的各种显示和指示灯,驾驶员可以了解车辆的行驶状态和各项功能是否正常。

下面是一些与汽车仪表相关的练习题,让我们一起来测试一下你对汽车仪表的了解程度。

一、选择题1. 以下哪个仪表显示了车辆的车速?A. 温度计仪表B. 转速计仪表C. 电压表仪表D. 速度计仪表2. 你开车行驶时,发现仪表盘上的机油指示灯闪烁,这表示什么意思?A. 机油量正常B. 机油量过多C. 机油量过少D. 机油温度过高3. 当你的车辆行驶中发生故障时,以下哪个仪表会亮起?A. 制动液位指示灯B. 驻车制动指示灯C. 应急闪光灯指示灯D. 发动机故障指示灯4. 你发现仪表盘上的燃料指示灯亮起,这表示什么意思?A. 燃油已经耗尽B. 燃油量过多C. 燃料压力过高D. 燃料油量过少5. 以下哪个仪表显示了车辆的发动机转速?A. 里程计仪表B. 温度计仪表C. 电压表仪表D. 转速计仪表二、判断题1. 空气压力指示器是指示轮胎气压是否正常的仪表。

正确 / 错误2. 雾灯指示灯会亮起,提醒驾驶员开启雾灯。

正确 / 错误3. ABS故障指示灯亮起时,表示ABS系统正常工作。

正确 / 错误4. 安全气囊故障指示灯亮起时,表示安全气囊系统工作正常。

正确 / 错误5. 发动机过热指示灯亮起时,驾驶员应立即停车并等待发动机冷却。

正确 / 错误三、问答题1. 请简要说明转速计仪表的作用,并解释如何根据转速计仪表的指示来驾驶车辆。

2. 请列举三个仪表指示灯的含义,并解释其所代表的意义。

3. 驾驶员如何通过仪表盘上的温度计仪表来判断发动机的工作状态,并采取相应的驾驶措施?参考答案:一、选择题1. D2. C3. D4. D5. D二、判断题1. 正确2. 正确3. 错误4. 错误5. 正确三、问答题1. 转速计仪表用于显示发动机的转速。

驾驶员可以通过观察转速计的指针来了解发动机的运转情况,从而掌握车辆的动力输出和换挡时机。

指针字符串练习题及答案

指针字符串练习题及答案

单项选择==================================================题号:4074若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是().A、p=aB、p=&a[2][1]C、q[i]=a[i]D、p=a[i]答案:A题号:4333执行下列语句后的结果为().int x=3,y;int *px=&x;y=*px++;printf("x=%d,y=%d\n",x,y);A、x=3,y=3B、x=4,y=4C、x=3,y不知D、x=3,y=4答案:A题号:4876下列程序的运行结果是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、0 0B、3 6C、编译出错D、6 3答案:B题号:4116若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是().A、scanf("%d",n);B、p=&n;scanf("%d",&p);C、p=&n;scanf("%d",*p);D、p=&n;scanf("%d",p);答案:D题号:4120下面程序:int aa[3][3]={{2},{4},{6}};main(){int i,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是().A、25B、30C、26D、23答案:D题号:4124若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是().A、i=*p;B、*p=*&j;C、i=**p;D、i=&j;答案:B题号:4165阅读下面程序,程序执行后的结果为().#include"stdio.h"main(){ char *str="abcdefghijklmnopq";while(*str++!='e');printf("%c\n",*str);}A、fB、qC、eD、a答案:A题号:4167关于指针概念说法不正确的是().A、指针变量可以由整数赋,不能用浮点赋B、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中,C、一个指针变量只能指向同一类型变量D、一个变量的地址称为该变量的指针答案:A题号:4173设有以下定义:int w[2][3],(*pw)[3];pw=w;,则对w数组元素非法引用是().A、pw[0][0]B、*(pw[1]+2)C、*(pw+1)[2]D、*(w[0]+2)答案:C题号:4532若有定义:char s[3][10],*k[3],*p;,则以下赋值语句正确的是().A、k=s;B、p=k;C、p=s;D、p=s[0];答案:D题号:4174当运行以下程序时输入OPEN THE DOOR<CR>,则输出结果是#include<stdio.h>char fun(char *c){if(*c<='Z' && *c>='A')*c -='A' - 'a';return *c;}main(){char s[8],*p=s;gets(s);while(*p){*p=fun(p);putcahr(*p);p++;}putchar('\n');}A、Open The DoorB、OPEN THE DOORC、open the doorD、oPEN tHE dOOR答案:C题号:4175下列程序执行后的输出结果是().void func(int *a,int b[]){b[0]=*a+6;}main(){int a,b[5]={0};a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A、8B、9C、7D、6答案:D题号:4390已知有声明"char a[]="prongram",*p=a+1;",则执行以下语句不会输出字符a的是()oA、putchar(*p+4);B、putchar(*(p+4));C、putchar(a[sizeof(a)-3]);D、putchar(*(a+5));答案:A题号:4181定义语句int *swap();指的是A、其他说法都不对B、swap是一个返回指向整型值指针的函数C、swap是一个返回整型值的函数D、swap是一个指向函数的指针答案:B题号:4184有以下程序:#include<stdio.h>void swap(char *x,char *y){char t;t=*x;*x=*y;*y=t;}main(){char *s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2); }程序执行后的输出结果是().A、1bc,a23B、123,abcC、321,cbaD、abc,123答案:A题号:4211若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则输出结果不为5 的语句为().A、printf("%d",p[5]);B、printf("%d",*p[5]);C、printf("%d",*(a+5));D、printf("%d",*(p+5));答案:B题号:4215有以下程序:void fun(int *a,int i,int j){int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}}main(){int a[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后输出结果是().A、6 5 4 3 2 1B、2 1 4 3 6 5C、3 2 4 1 5 6D、1 2 3 4 5 6答案:A题号:4113以下程序运行后的输出结果是(). main(){char ch[]="uvwxyz",*pc; pc=ch;printf("%c\n",*(pc+5));}A、字符y的地址B、0C、元素ch[5]地址D、z答案:D题号:4695有以下程序#include<stdio.h>main(){int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p; printf("y=%d\n",y); }程序的运行结果是().A、y=0B、y=2C、y=1D、y=3答案:D题号:4298若有语句:char *line[5];下列叙述中正确的是().A、定义line是一个指针数组,语句中的*号称为间址运算符B、定义line是一个数组,每个数组元素是一个基类型为char 的指针变量C、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组D、定义line是一个指向字符型函数的指针答案:B题号:2457设有数组定义:char array[]="China";,则数组 array所占的空间为().A、5个字节B、4个字节C、6个字节D、7个字节答案:C题号:2468下述对C语言字符数组的描述中错误的是().A、字符数组中的字符串可以整体输入,输出.B、不可以用关系运算符对字符数组中的字符串进行比较.C、字符数组中可以存放字符串.D、可以通过赋值运算符"="对字符数组整体赋值.答案:D题号:2479以下程序:#include<stdio.h>#include<string.h>main(){ char str[]="abcd\n\123\xab";printf("%d",strlen(str));}运行后的输出结果是().A、10B、9C、14D、7答案:D题号:2485已知有声明"char s[20]="Hello";",在程序运行过程中若要想使数组s中的内容修改为"Good",则以下语句能够实现此功能的是().A、strcpy(s,"Good");B、strcat(s,"Good");C、s[20]="Good";D、s="Good";答案:A题号:2499以下程序段的输出结果是pritnf("%d\n",strlen("ATS\n012\1\\"));A、11B、8C、9D、10答案:C题号:2510char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是().A、strcat(a2,a1);B、strcpy(a2,a1);C、strcpy(a1,a2);D、strcat(a1,a2);答案:A题号:2530设有以下语句,若0<k<4,下列选项中对字符串的非法引用是().char str[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];int j;for(j=0;j<4;j++)strp[j]=str[j];A、*strpB、strpC、strp[k]D、str[k]答案:B题号:2543选择正确的输入语句().(其中:char string[10];)使得string的内容为"Hello".A、scanf("%s",&string);B、scanf("%c",string);C、scanf("%c",&string);D、scanf("%s",string);答案:D题号:2874下列数组说明中正确的是().A、static char str1[5],str2[]={"China"};str1=str2;B、static char str[];str="China";C、static char str1[],str2[];str2={"China"};strcpy(str1,str2);D、static char str[]="China";答案:D题号:2633已定义char string[20];使得string的内容为"You are student"的正确输入语句是().A、scanf("%c",&string);B、gets(string);C、scanf("%s",&string);D、scanf("%s",string);答案:B填空题==================================================题号:4875若有定义: char ch;定义指针p,并使其指向变量ch的初始化语句是_____。

指针选择题练习

指针选择题练习

指针选择题练习1、以下程序段运行后*(++p )的值为(C )char a[6]=“work ”;char *p;p=a;A 、‘w ’B 、存放‘w ’的地址C 、‘o ’D 、存放的‘o ’地址2.以下程序运行后*(P+3)的值为( A )char a[]=“good ”; char *P ;P=a ;A.‘d ’B.‘\0’C.存放‘d ’的地址 .D.‘0’3.以下程序运行段运行后x 的值为( D )int a[]={1,2,3,4,5,6,7,8};int i,x *p;x=1;p=&a[2];for(i=0,i <3,i++)x*=(p+i);A. 不确定B. 24C. 120D. 604、下面程序的输出结果是(A )#include<stdio. h>int main ( ){int i;char *s= “ abc ”;for ( i=0 ; i<3; i++)printf ( “% s\n ” , s+i );}A B C D 5.执行以下程序段的输出结果是( B )int a=10,*p=&a;printf(“%d ”,++*p);A .10 B.11 C.变量a 的地址 D.变量a 的地址加16. 语句int a=10,*point=&a ; D 其值不为地址。

A. pointB. &aC. &pointD. *point7. 若有说明:int *p, a=1, b; 以下正确的程序段是(D )。

A . p=&b;B . scanf("%d", &b);scanf("%d", &p); *p=b;C . p=&b;D . p=&b;scanf("%d", *p); *p=a8. 变量的指针,其含义是指该变量的(B )。

A . 值B . 地址C . 名D . 一个标志9.若定义:int a=511, *b=&a ;,则printf("%d\n", *b);的输出结果为: D a b c b c c c b ca b c a b c c b c aa ba b cA.无确定值B.a的地址C.512 D.51110. 已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。

(完整word版)C语言指针练习+答案+讲解

(完整word版)C语言指针练习+答案+讲解

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

A. p=q; B. *p=*q; C. a=*q; D. q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针.p取得a的地址,而q取得p的地址p,q是指针(也就是一个地址),而*p和*q是这个指针指向的整型数值(存放在这个地址的值).A)把q的地址赋给p,则p和q完全一样了,都指向一个数2B)把q中数据个pC)把q中数据给aD)a中数据是2,不能够给一个地址。

除非*q=a2.若定义:int a=511, *b=&a;,则printf("%d\n”, *b);的输出结果为:D A.无确定值 B. a的地址 C. 512 D. 511int a=511,*b=&a;a 是整形变量b 是整形指针变量,指向 aprintf("%d\n",*b);就是输出指针变量 b,所指变量的值输出结果5113.已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。

A. a=*p1+*p2; B. p1=a; C. p1=p2; D. a=*p1*(*p2);47、已知在程序中定义了如下的语句:int *P1,*P2;int k;p1=&k;p2=&k;则下列语句中不能正确执行是( B )A、k=*P1+*P2;B、p2=k;C、P1=P2;D、K=*P1 * (*P2);P1 P2是指针,K是整型变量,变量怎么可以赋值给指针呢?A其实是执行了K=K+K(P1和P2都指向K,所以*P1 *P2其实都是指K)C是赋值语句D其实执行了K=K*K4.变量的指针,其含义是指该变量的(B)。

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

字符数组与指针练习题参考答案

字符数组与指针练习题参考答案

字符数组与指针练习题参考答案第七章字符数组与字符串【题】下面是对s的初始化,其中不正确的是。

A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’};C)char s[5]=“”;D)char s[5]=“abcdef”;【题】下面程序段的运行结果是。

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s”,c);A)‘a’‘b’ B)ab C)ab c【题】对两个数组a和b进行如下初始化char a[]=“ABCDEF”;char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};则以下叙述正确的是。

A)a与b数组完全相同B)a与b长度相同C)a和b中都存放字符串D)a数组比b数组长度长提示:‘\0’是字符串结束的标志【题】有两个字符数组a、b,则以下正确的输入格式是。

A)gets(a,b); B)scanf(“%s %s”,a,b);C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”);【题】有字符数组a[80]和b[80],则正确的输出形式是。

A)puts(a,b); B)printf(“%s %s”,a[],b[]);C)putchar(a,b); D)puts(a),puts(b);【题】下面程序段的运行结果是。

char a[7]=“abcdef”;char b[4]=“ABC”;strcpy(a,b);printf(“%c”,a[5]);A)空格B)\0 C)e D)f提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’,a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,【题】有下面的程序段char a[3],b[]=“China”;a=b;printf(“%s”,a);则。

A)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错提示:数组名是常量【题】下面程序段的运行结果是。

c++指针练习题答案

c++指针练习题答案

12.不能将一个对象复制到自己。 x=12,y=22 14.Constructor5 5 Destructor5 16.2
20.Default Constructor called Default Constructor called Default Constructor called Default Constructor called Destructor called Constructor1 called Destructor called Constructor2 called Destructor called x=0,y=0 x=7,y=0 x=5,y=9 Destructor call Destructor call Destructor call
{ if((*p1)->retotal()<(*p2)->retotal()) { student *tmp=*p1; *p1=*p2; *p2=tmp; } 6. } class stack; class node { int data; node *prev; public: node(int d,node *n) { data=d; prev=n; } friend class stack; }; class stack { node * top; public: stack( ){top=0;} void push(int i); int pop( ); }; void stack::push(int i) { node *n=new node(i,top); top=n; } int stack::pop( ) { node *t=top; if(top) { top=top->prev; int c=t->data; delete t; return c; }

指针练习题及答案

指针练习题及答案

指针练习题及答案1. 请编写一个程序,交换两个变量的值,并通过指针来实现。

```c#include<stdio.h>void swap(int *a, int *b){int temp = *a;*a = *b;*b = temp;}int main(){int num1 = 10, num2 = 20;printf("交换前的值:num1=%d, num2=%d\n", num1, num2);swap(&num1, &num2);printf("交换后的值:num1=%d, num2=%d\n", num1, num2);return 0;}```2. 编写一个函数,统计字符串中某个字符出现的次数,并通过指针返回结果。

```c#include<stdio.h>int countChar(const char *str, char target){int count = 0;while(*str != '\0'){if(*str == target)count++;str++;}return count;}int main(){char str[] = "hello world";char target = 'l';int count = countChar(str, target);printf("字符 %c 出现的次数为:%d\n", target, count); return 0;}```3. 编写一个函数,找到整型数组中的最大值,并通过指针返回结果。

```c#include<stdio.h>int findMax(const int *arr, int size){int max = *arr;for(int i = 1; i < size; i++){if(*(arr+i) > max)max = *(arr+i);}return max;}int main(){int arr[] = {10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("数组中的最大值为:%d\n", max);return 0;}```4. 编写一个函数,将字符串反转,并通过指针返回结果。

C++练习题(含答案)

C++练习题(含答案)

C++练习题一、掌握递归调用:任何有意义的递归调用总是由两部分组成的,即递归公式与递归结束条件。

递归函数设计的一般形式是:函数类型递归函数名f (参数x ){if(满足结束条件)结果=初值;else结果=含f(x-1)的表达式;返回结果;}例题:书P81例4-12,例4-13,二、掌握冒泡排序法算法:如果一个数组b,有n个数,则要进行n-1趟比较,在第一趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较,冒泡排序的算法如下边:void bubble ( int b[ ], int n){for ( int i=0; i<n-1;n++ );for ( int j=0;j<n-1-i ; j++);if ( b[j]<b[i] ){int t=b[j];b[j]=b[j+1];b[j+1]=t;} }例题:书P143例7-3三、掌握二维数组的应用例题:书P146例7-4,例7-6四、练习1.C++中两个逻辑常量是什么?(true,false)C++语言和C语言的不同点(C++为面向对象程序设计,C 为面向过程程序设计或称结构化程序设计)。

2.C++语言的具有抽象、封装、继承、多态的特点,理解每个特点的意思(课本P3-P4)3.表达式中不同类型的数据进行混合运算时,不同类型数据的转换顺序。

比如10+a+x*y,其中a为float 型,x为int型,y为double型,那么整个表达式的值是什么类型?(double型)4.复合的赋值运算符(a+=b、x*=y+8、%=)的用法a+=b 相当于a=a+bx*=y+8 相当于x=x*(y+8)a%=b 相当于a=a%b5.在类中声明一个友元函数的格式?比如viod fun()函数是类A的友元函数。

友元函数的限定词:friend例: friend viod fun()6.熟悉三目运算符(?:)(课本P47)、自增(++)自减(--)的用法格式:关系表达式?表达式1:表达式2功能:当关系表达式的值为真,结果为表达式1的值,关系表达式的值为假,结果为表达式2的值例:若有定义”int x=4,y=5;”,则表达式”y>x++?x--:y++”的值为( C )A) 3 B) 4 C) 5 D) 6《习题与指导》P5 第27-32题,自增自减: 《习题与指导》P4第17题7.三个循环语言(for、while、do…while)的用法,给定条件后,会判断循环次数。

指针经典练习题(含答案版)一

指针经典练习题(含答案版)一

指针一.填空题(20分)1. 指针变量是把内存中另一个数据的地址作为其值的变量。

2. 能够直接赋值给指针变量的整数是 0。

3. 如果程序中已有定义:int k;1)定义一个指向变量k的指针变量p的语句是 int* p = &k; 。

2)通过指针变量,将数值6赋值给k的语句是 *p = 6; 。

3)定义一个可以指向指针变量p的变量pp的语句是 int ** pp; 。

4)通过赋值语句将pp指向指针变量p的语句是 pp = &p; 。

5)通过指向指针的变量pp,将k的值增加一倍的语句是 *(*pp)*= 2; 。

4. 当定义某函数时,有一个形参被说明成int *类型,那么可以与之结合的实参类型可以是int型指针、 int型数组等。

4. 以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。

例如,输入的字符串为:556,则输出十进制整数366。

请填空。

45*8#include <stdio.h>main( ){ char *p,s[6]; int n; p=s; gets(p); n=*p-'0';while( *++p != '\0') //先++ ,后*n=n*8+*p-'0';printf("%d \n",n);}二.选择题(22分)1. 以下count函数的功能是统计substr在母串str中出现的次数。

int count(char *str,char *substr){ int i,j,k,num=0;for(i=0; ①B ;i++){for( ②B ,k=0;substr[k]==str[j];k++,j++)if(substr[ ③C ]==’\0’){num++;break;}}return num;}①A) str[i]==substr[i] B) str[i]!=‘\0’C) str[i]==‘\0’ D) str[i]>substr[i]②A) j=i+1 B) j=i C) j=i+10 D) j=1③A) k B) k++ C) k+1 D) ++k2. 以下Delblank函数的功能是删除字符串s中的所有空格(包括Tab、回车符和换行符)。

CH6-指针练习题及答案

CH6-指针练习题及答案

第六章指针练习题及答案一、填空题1、定义int a[]={1,2,3,4,5,6},*p=a;语句printf("%d",(*++p)++);的输出结果是()。

2、以下程序的执行结果是()。

main(){ char s[]="abcdefg"; char *p;p=s; printf("ch=%c\n",*(p+5)); }3、以下程序的执行结果是()。

main(){ int a[][={1,2,3,4,5,6};for(p=&a[5];p>=a;p--) printf("%d",*P);printf("\n"); }4、以下程序的执行结果是()。

main(){ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%d\n",p[3][2]);}5、设包含如下程序的文件名为myprog.c,编译后键入命令:myprog one two three,则执行结果是()。

main(int argc,char *argv[]){ int i;for(i=1;i<argc;i++)printf("%s%c",argv[i],(i<argc-1)?":');}6、下面程序的运行结果是()char s[80],*sp="HELLO!";sp=strcpy(s,sp); s[0]='h'; puts(s);7、下面程序段的运行结果是()char *s1="AbcdEf",*s2="aB";s1++; t=(strcmp(s1,s2)>0); printf("%d\n",t);8、下面程序段的运行结果是()char str[]="abc\0def\0ghi"; char *p=str; printf("%s",p+5)9、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[1]; 则++(*p)的值是()。

单片机原理及应用练习题含答案

单片机原理及应用练习题含答案

单片机原理及应用练习题含答案一、单选题(共100题,每题1分,共100分)1、51单片机定时器T0的益处标志TF0,若计数产生溢出时,其值为()A、00HB、1C、FFHD、计数值正确答案:B2、8501单片机的最高工作频率是()MHz。

A、12B、8C、10D、6正确答案:A3、在编写程序的时候,若遇到重复出现多次的一段语句,最好的方法是()A、定义一个自定义函数B、复制粘贴C、直接手写D、在网上查找正确答案:A4、十进制43转换成二进制数是()。

A、111011B、101011C、101111D、101101正确答案:B5、T0的两个特殊功能寄存器为()A、TH0,TL1B、TH1,TL0C、TH1,TL1D、TH0,TL0正确答案:D6、MC51单片机中有()个16位的定时器/计数器A、1B、2C、3D、4正确答案:B7、80C51单片机的中断服务程序入口地址是指()A、中断服务程序的首句地址B、中断服务程序的返回地址C、中断向量地址D、主程序调用时的断点地址正确答案:C8、属于51单片机用于串行通信控制寄存器的是()A、SUBNB、HUNAC、SCOND、PCOM正确答案:C9、共阳极七段数码管显示器的驱动信号有何特色?()A、低电平点亮B、低电平不亮C、高电平点亮D、以上皆非正确答案:A10、蜂鸣器的声调由信号的()决定A、电压B、频率C、幅值D、占空比正确答案:B11、89C51单片机的RS1,RSO=11时,当前寄存器R0-R7占用内部RAM()单元。

A、00H-07HB、08H-0FHC、10H-17HD、18H-1FH正确答案:D12、C51数据类型中关键词“sfr”用于定义()A、位变量B、字节变量C、无符号变量D、特殊功能寄存器变量正确答案:D13、()为定时/计数器控制寄存器。

A、IEB、TCONC、SCOND、IP正确答案:B14、蜂鸣器可以分为()和无源A、有旋B、震荡C、有源D、无旋正确答案:C15、欲访问8051单片机的内部程序存储器,则EA引脚必须为()A、高电平B、低电平C、高低电平D、与PC值有关正确答案:A16、单片机程序代码一般存放在()A、RAMB、ROMC、CPUD、寄存器正确答案:B17、在微型计算机中,负数常用()表示。

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

编程题1用指向数组的指针变量输出数组的全部元素#include<iostream.h>void main( ){ int a[10], i;int *p;for (i=0; i<10; i++)cin>>a[i];for (p=a; p<a+10; p++)cout<<*p<<‘\t’;}#include<iostream.h>void main( ){ int a[10], i;int *p=a;for (i=0; i<10; i++)cin>>a[i];for (i=0; i<10; i++)cout<<*p++<<‘\t’;}2 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出#include<iostream.h>void inv(int *x, int n);void main( ){ int i, a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);for (i=0;i<10; i++)cout<<a[i]<<‘\t’;}void inv(int *x, int n){ int *p, t, *i, *j, m=(n-1)/2;i=x; j=x+n-1; p=x+m;for (; i<=p; i++,j--){ t=*i; *i=*j; *j=t;}}void inv(int x[ ], int n){ int t, i, j, m=(n-1)/2;for (i=0;i<=m; i++){ j=n-1-i;t=x[i]; x[i]=x[j]; x[j]=t;}}一判断题×1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。

√2.指针的类型是它所指向的变量或对象的类型。

×3.定义指针时不可以赋初值。

√4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。

×5.指针可以加上或减去一个int型数,也可以加上一个指针。

√6.两个指针在任何情况下相减都是有意义的。

√7.数组元素可以用下标表示,也可以用指针表示。

×8.指向数组元素的指针只可指向数组的首元素。

√9.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。

×10.引用是一种变量,它也有值和地址值。

√11.引用是某个变量的别名,引用是被绑定在被引用的变量上。

√12.创建引用时要用一个同类型的变量进行初始化。

√13.指针是变量,它可以有引用,而引用不能有引用。

二单选题1.下列关于定义一个指向double型变量的指针,正确的是( B )。

A.int a(5);double *pd=a;B.double d(2.5),*pd=&d;C.double d(2.5),*pd=d;D.double a(2.5),pd=d;2.下列关于创建一个int型变量的引用,正确的是(A )。

A.int a(3),&ra=a;B.int a(3),&ra=&a;C.double d(3.1);int &rd=d;D.int a(3),ra=a;3.下列关于指针概念的描述中,错误的是(B )。

A.指针中存放的是某变量或对象的地址值B.指针的类型是它所存放的数值的类型C.指针是变量,它也具有一个内存地址值D.指针的值是可以改变的4.下列关于引用概念的描述中,错误的是( A )。

A.引用是变量,它具有值和地址值B.引用不可以作数组元素C.引用是变量的别名D.创建引用时必须进行初始化5.已知:int a[5],*p=a;则与++*p相同的是( D )。

A.*++p B.a[0]C.*p++ D.++a[0]6.已知:int a[ ]={1,2,3,4,5},*p=a ;在下列数组元素地址的表示中,正确的是( C )。

A .&(a+1)B .&(p+1)C .&p[2]D .*p++7.已知:int a(5),&ra=a ;下列描述中,错误的是( D )。

A .ra 是变量a 的引用,即为变量的别名B .ra 的值为5C .ra 的地址值为&aD .改变ra 的值为10,变量a 值仍为58若有以下定义,则说法错误的是( D )。

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

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

A .&(x+5)B .*xC .&*xD .*&x11若要建立如下关系,错误的语句组是( A )。

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

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

#include <iostream.h>void 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.2014以下程序的输出结果是( C )。

#include <iostream.h>void fun(int x,int y,int *cp,int *dp){ cp=x+y; //*cp=30+50=80dp=x-y; //*dp=30-50=-20}void 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,-20 D.80,20 15要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。

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

A.funa(int *x,int *y) B.funb(int x,int y){ 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,int y){ *x=*y; { *x=*x+*y;*y=*x; *y=*x-*y;} *x=*x-*y; }16以下程序的输出结果是( C )。

#include <iostream.h>void 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,1 D.8,8,8,8 答案:C分析:C++语言中的switch语句中,如果没有break语句,一旦满足某一条件进入,就一直运行到switch的结束,如在本题s[1]=’1’,除v1加1之外,v2和v3都要加1。

故运行结果是“5,,8,6,1”,选择C。

如果程序做下面修改:switch(s[k]){ default:v4++; break;case '1':v1++; break;case '3':v3++;break;case '2':v2++;break;}运行结果是“4,2,1,1”,选择A。

二、读下列程序结果1:写出下列程序运行结果:#include<iostream.h>void main(){int *pn, n=10,m=20;float *pf, px=3.14159,py=2.71828;pn=&n;*pn+=m;cout<<”n 现在的值是:”<<*pn<<endl;pf=&px;py+=5*(*pf);cout<<”py现在的值是:”<<py<<endl;}运行结果是:n 现在的值是:30pf 现在的值是:18.42623分析:指针是通过在变量前加一个“*”来定义,使用用“*”加变量名存取指针所指的值,用运算“&”取变量的地址,但是不能存取无指向的指针所指向内容,这样会导致系统故障。

2:写出下列程序运行结果:#include<iostream.h>void main(){int I,*p,a[]={10,20,30,40,50,60};p=a;for(I=0;I<5;I++)cout<<”a[“<<I<<”]=”<<a[I]<<’\t’<<”*(a+”<<I< <”)=”<<*(a+I)<<’\t’<<”*(p+”<<I<<”)=”<<*(p+I)<<’\t’< <”p[“<<I<<”]=”<<p[I]<<endl;}运行结果:a[0]=10 *(a+0)=10 *(p+0)=10 p[0]=10a[1]=20 *(a+1)=20 *(p+1)=20 p[1]=20a[2]=30 *(a+2)=30 *(p+2)=30 p[2]=30a[3]=40 *(a+3)=40 *(p+3)=40 p[3]=40a[4]=50 *(a+4)=50 *(p+4)=50 p[4]=50a[5]=60 *(a+5)=60 *(p+5)=60 p[5]=603:void grt(int *x , int *y , int *z){ cout<< ++*x<<‘,’<< ++*y<<‘,’<<*(z++)<<endl;}int a=10, b=40, c=20;void main( ){ prt (&a, &b, &c);prt (&a, &b, &c);}答案:11,41,20,12,42,204 static int a[ ]={1, 3,5, 7, 11, 13};main( ){ int *p;p=a+3;cout<<*p<<'\t'<<(*p++)<<endl;cout<<*(p-2)<<'\t'<<*(a+4)<<endl;}答案11,75,11三;填空题1.下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。

相关文档
最新文档