指针1-60

更新时间:2024-01-04 20:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题目部分,(卷面共有60题,180.0分,各大题标有题量和总分) 一、单项选择题(60小题,共180.0分) (3分)[1]以下程序的输出结果是 #include #include

void fun(char *w, int m) {char s, *p1, *p2; p1=w; p2=w+m-1; while(p1

{s=*p1++; *p1=*p2--; *p2=s;} }

main( )

{char a[ ]=\; fun(a, strlen(a)); puts(a); }

A、GEFDCBA B、AGADAGA C、AGAAGAG (3分)[2]下列语句执行后的结果是 y=5; p=&y; x=*p++;

A、x=5,y=5 B、x=5,y=6 C、x=6, y=5 (3分)[3]以下程序的输出结果是 point(char *pt); main()

{char b[4]={?a?, ?c?, ?s?, ?f?}, *pt=b; point(pt);

printf(“%c\\n”, *pt); }

point(char *p) {p+=3; }

A、a B、c C、s D、f (3分)[4]在下列叙述中,正确的一条是 A、以下程序运行结果为Computer and c: main()

{char str[4];

str=“Computer and c”; printf(“%s\\n”, str); }

B、下面两种表示方式等价 (1) int fun(int x,int y) (2) int fun(x,y) int x,y;

C、若输入1、2,以下程序的运行结果为12 main()

D、GAGGAGA D、x=6, y=6 {int *p,i,a[2]; p=a;

for(i=0;i<2;i++) scanf(“%d”,p++); for(i=0;i<2;i++,p++) printf(“%d”,*p); }

D、以下程序的运行结果为3 main()

{int *p,a[5]={1,3,4,5,6}; p=a;

printf(“%d”,*p++); }

(3分)[5]以下程序的输出结果为 move(int array[6], int n, int m) {int *p, array_end;

array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1);

*array=array_end; m--;

if(m>0) move (array, n, m); }

main()

{static int number[6]={1, 2, 3, 4, 5, 6}; int m=4, j;

move(number, 6, m); for(j=0;j<5;j++)

printf(“%d,”, number[i]); printf(“%d”, number[5]); }

A、1,2,3,4,5,6 B、6,5,4,3,2,1 C、3,4,5,6,1,2 D、6,1,2,3,4,5 (3分)[6]以下程序的输出结果为 f(char *s) {char *p=s;

while(*p!=?\\0?) p++; return(p-s); }

main()

{ printf(“%d\\n”, f(“12345678”)); }

A、12345678 B、7 C、1 (3分)[7]以下程序的输出结果为 #idefine FORMAT “%u, %u” main()

{int a[3][4]={1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23};

D、8 printf(“\\n”);

printf(FORMAT, **a, *a[0]);

printf(FORMAT, *(a[0]+1), *&a[0][1]); printf(FORMAT, a[1][0], *(*(a+1)+0)); }

A、3,3 5,5 9,9 B、1,1 3,3 9,9 C、1,1 3,3 5,5 D、5,5 7,7 9,9 (3分)[8]以下程序的输出结果是 sub(int *s, int y) {static int t=3; y=s[t]; t--; }

main()

{int a[ ]={1, 2, 3, 4}, n; int x=4;

for(n=0; n<4; n++)

{sub(a, x); printf(“%d”, x); } printf(“\\n”); }

A、1234 B、3333 C、4321 (3分)[9]在下列程序中,输出结果与其它程序不同的是A、main() {int a[10]; int i;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,a[i]); }

B、main() {int a[10]; int i;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,*(a+i)); }

C、main() {int a[10]; int i, *p;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(p=a;p<(a+10);p++) printf(“%d”,*p); }

D、main() {int a[10];

D、4444 int i, *p;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,*(p+i)); }

(3分)[10]以下程序的输出结果是 sub(int x, int y, int *z) {*z=y-x+2;} main() {int a, b, c;

sub(16, 7, &a); sub(9, a, &b); sub(a, b, &C、; printf(“%d, %d, %d\\n”, a, b, C、; }

A、–7,- 14,-5 B、–7,-16,-9 C、–7,-12,-9 D、–9,-14,-5

(3分)[11]在下列语句中,其含义为“p为带回一个指针的函数,该指针指向整型数据”的定义语句是

A、int *p(); B、int **p; C、int (*p)(); D、int *p; (3分)[12]变量p为指针变量,若p=&a,下列说法不正确的是

A、&*p==&a B、*&a==a C、(*p)++==a++ D、*(p++)==a++ (3分)[13]在下列叙述中,正确的一条是 A、语句int *pt中的*pt是指针变量名 B、语句int *p=a;等价于int *p; p=&a[0]; C、运算符*和&都是取变量地址的运算符

D、已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值 (3分)[14]以下程序段给数组所有的元素输入数据,则以下正确答案为 main()

{int a[10], i=0;

while (i<10) scanf(“%d”, __________ ); ? }

A、a+(i++) B、&a[i+1] C、a+i D、&a[++i] (3分)[15]下面函数的功能是 sss (char *s, char *t)

{while((*s)&&(*t)&&(*t= =*s)) s++, t++; return(*s-*t); }

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

C、将字符串s复制到字符串t中 D、将字符串s连接到字符串t中 (3分)[16]以下程序的输出结果是 fun(int *s, int n1, int n2) {int i, j, t; i=n1; j=n2; while(i

{t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;

i++; j--; } }

main( )

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

for(i=0; i<10; i++) printf(\; printf(“\\n”); }

A、0 9 8 7 6 5 4 3 2 1 B、4 3 2 1 0 9 8 7 6 5 C、5 6 7 8 9 0 1 2 3 4 D、0 9 8 7 6 5 1 2 3 4

(3分)[17]下面各语句行中,能正确进行赋字符串操作的语句行是 A、char st[4][5]={“ABCDE”};

B、char s[5]={?A?, ?B?, ?C?, ?D?, ?E?}; C、char *s; s= “ABCDE”; D、char *s; scanf(“%s”,s);

(3分)[18]以下程序的输出结果是 #include main( )

{char *s1=\,*s2=\; s1++;s2++;

printf(\,strcmp(s1, s2)); }

A、正数 B、负数 C、零 D、不确定的值 (3分)[19]请读程序: #include char fun(char *C、

{if(*c<=?Z?&&*c>=?A?) *c-=?A?-?a?; return *c; }

main( )

{char s[81], *p=s; gets (s); while(*p)

{*p=fun(p); putchar(*p); p++;} putchar(?\\n?); }

若运行时从键盘上输入OPEN THE DOOR<回车>,则上面程序的输出结果为 A、oPEN tHE dOOR B、open the door C、OPEN THE DOOR D、Open The Door (3分)[20]在下面关于指针的说法中,错误的一条是 A、变量的指针就是变量的地址

B、可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量 C、一个指针变量只能指向同一个类型的变量

A、xyabcAB B、abcABz C、ABabcz D、xycdBCD (3分)[48]下列程序的输出结果是 main( )

{int a[5]={2, 4, 6, 8, 10}, *p, **k; p=a; k=&p;

printf(“%d ”, *(p++)); printf(“%d\\n”, **k); }

A、4 4 B、2 2 C、2 4 D、4 6 (3分)[49]执行以下程序后,y的值是 main( )

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

for(x=0;x<3;x++) y+=*(p+x);

printf(“%d\\n”, y); }

A、17 B、18 C、19 D、20

(3分)[50]若已定义:int a[9], *p=a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是

A、p+1 B、a+1 C、a++ D、++p (3分)[51]以下程序的输出结果是 main( )

{char s[ ]=”ABCD”, *p;

for(p=s+1; p

A、ABCD BCD CD D B、A B C D C、B C D D、BCD CD D (3分)[52]假定下列程序的可执行文件名为prg . exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是 main(int argc, char *argv[ ]) {int i;

if(argc<=0) return;

for(i=1; i

A、hello good B、hg C、hel D、hellogood (3分)[53]若有以下调用语句,则不正确的fun函数的首部是 main() { ?

int a[50], n; ?

fun (n, &a[9]);

? }

A、void fun(int m,int x[ ]) B、void fun(int s,int h[41]) C、void fun(int p,int *s) D、void fun(int n,int a) (3分)[54]有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是

A、*p+9 B、*(p+8) C、*p+=9 D、p+8 (3分)[55]以下程序执行后,a的值是 main()

{int a, k=4, m=6, *p1=&k, *p2=&m; a=p1= =&m; printf(“%d\\n”, a); }

A、4 B、1 C、0 D、运行时出错,a无定值 (3分)[56]有如下程序: main()

{char ch[2][5]={“6937”,“8254”},*p[2]; int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++)

for(j=0;p[i][j]>?\\0?;j+=2) s=10*s+p[i][j]-?0?; printf(“%d\\n”,s); }

该程序的输出结果是

A、69825 B 63825 C、6385 D、693825 (3分)[57]以下程序运行后,输出结果是 main()

{char *s=“abcde”; s+=2;

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

A、cde B、字符c的ASCII码值 C、字符c的地址 D、出错 (3分)[58]以下程序的输出结果是 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、ga

(3分)[59]设有如下定义:

int arr[ ]={6, 7, 8, 9, 10}; int *ptr; 则下列程序段的输出结果是 ptr=arr;

*(ptr+2)+=2;

printf(“%d, %d\\n”, *ptr, *(ptr+2));

A、8,10 B、6,8 C、7,9 D、6,10

(3分)[60]设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

A、k=*p1+*p2; B、p2=k; C、p1=p2;

====================答案==================== 答案部分,(卷面共有60题,180.0分,各大题标有题量和总分) 一、单项选择题(60小题,共180.0分) (3分)[1][答案] C

(3分)[2][答案] A

(3分)[3][答案] A

(3分)[4][答案] B

(3分)[5][答案] C

(3分)[6][答案] D

(3分)[7][答案] B

(3分)[8][答案] D

(3分)[9][答案] D

(3分)[10][答案] A

(3分)[11][答案] A

(3分)[12][答案] D

(3分)[13][答案] B

(3分)[14][答案] A

(3分)[15][答案] B

D、k=*p1*(*p2); (3分)[16][答案] C

(3分)[17][答案] C

(3分)[18][答案] A

(3分)[19][答案] B

(3分)[20][答案] B

(3分)[21][答案] A

(3分)[22][答案] B

(3分)[23][答案] B

(3分)[24][答案] D

(3分)[25][答案] C

(3分)[26][答案] B

(3分)[27][答案] B

(3分)[28][答案] B

(3分)[29][答案] C

(3分)[30][答案] D

(3分)[31][答案] C

(3分)[32][答案] B

(3分)[33][答案] C

(3分)[34][答案] D

(3分)[35][答案] A

(3分)[36][答案] C

(3分)[37][答案] A

(3分)[38][答案] B

(3分)[39][答案] C

(3分)[40][答案] B

(3分)[41][答案] A

(3分)[42][答案] D

(3分)[43][答案] D

(3分)[44][答案] A

(3分)[45][答案] D

(3分)[46][答案] D

(3分)[47][答案] D

(3分)[48][答案] C

(3分)[49][答案] C

(3分)[50][答案] C

(3分)[51][答案] D

(3分)[52][答案] B

(3分)[53][答案] D

(3分)[54][答案] B

(3分)[55][答案] C

(3分)[56][答案] C

(3分)[57][答案] C

(3分)[58][答案] D

(3分)[59][答案] D

(3分)[60][答案] B

本文来源:https://www.bwwdw.com/article/25ax.html

Top