c语言 2012 期末复习题 1到8章 联系客服

发布时间 : 星期六 文章c语言 2012 期末复习题 1到8章更新完毕开始阅读

}

A.51,3 B.34,2 C.17,1 D.前面都不正确

下面程序运行后的输出结果是( )。

int abc(int u,int v); main( )

{ int a=24,b=16, c; c=abc(a, b);

printf(\}

int abc(int u, int v) { int w;

while(v) { w=u%v; u=v; v=w; } return u; }

A.6 B.7 C.8 D.9

第八章 指针

1.选择题

以下程序的输出结果是( )。

void 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)

printf("%d,%d,%d\\n",a,b,c); }

A.5,2,3 B.-5,-12,-7 C.-5,-2,-17 D.-5,-2,-7

若有定义:int x,*pb;则以下正确的赋值表达式是( )。

A pb=&x B pb=x C *pb=&x D *pb=*x

以下程序的输出结果是( )。

#include "stdio.h"

main()

{ printf("%d\\n",NULL); }

A.因变量无定义输出不定值 B.0 C.-1 D.1

以下程序的输出结果是( )。

main()

{ int k=2,m=4,n=6;

int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf("%d\\n",n); }

A.4 B.6 C.8 D.10

a[0] a[1] a[2] a[3] a[4]

┌───┬───┬───┬───┬───┐ │ 10 │ 20 │ 30 │ 40 │ 50 │ └───┴───┴───┴───┴───┘

p↑

已知指针p的指向如图所示,则表达式*p++的值是( )。

A.20 B.30 C.21 D.31

已知指针p的指向如图所示,则表达式*++p的值是( )。

A.20 B.30 C.21 D.31

已知指针p的指向如图所示,则表达式++*p的值是( )。

A.20 B.30 C.21 D.31

以下程序的输出结果是( )。

A.23 B.24 C.25 D.26

void prtv(int *x)

{ printf("%d\\n",++*x);} main()

{ int a=25; prtv(&a); }

以下程序的输出结果是( )。

A.运行出错 B.100 C.a的地址 D.b的地址

main()

{ int **k,*a,b=100; a=&b; k=&a;

printf("%d\\n",**k); }

以下程序的输出结果是( )。

A.4,3 B.2,3 C.3,4 D.3,2 void fun(float *a,float *b) { float w; *a=*a+*a;

w=*a;*a=*b;*b=w; } main()

{ float x=2.0, y=3.0; float *px=&x,*py=&y; fun(px,py);

printf("%2.0f,%2.Of\\n",x,y); }

以下程序的输出结果是( )。

A.9.000000 B.1.500000 C.8.000000 D.10.500000 Void sub(float x,float *y,float *z)

{ *y=*y-1.0; *z=*z+x; }

main()

{ float a=2.5,b=9.0,*pa,*pb; pa=&a; pb=&b; sub(b-a,pa,pb);

printf("%f\\n",a);

}

对于定义,char *aa[2]={\,选项中说法正确的是____。 A.aa数组元素的值分别是\和\

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

C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址

若指针 px为空指针,则 ( )。

A.px指向不定 B.px的值为零 C.px的目标为零 D.px的地址为零

对于语句int *px[10],以下说法正确的是( ) 。 A. px是一个指针,指向一个数组,数组的元素是整数型。 B. px是一个数组,其数组的每一个元素是指向整数的指针。 C. A和B均错,但它是C语言的正确语句。 D. C语言不允许这样的语句。

已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p, 则表达式 *(p[0]+1)+**(q+2)的值是( A )。

A.5 B.4 C.6 D.7

已知for(;n>=1;n--),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是( D )。

A.*S1++=*S2++ B.S1[n-1]=S2[n-1]

C.*(S1+n-1)=*(S2+n-1) D.*(++S1)=*(++S2)