2015C习题集(1)(9)

2020-04-18 04:10

C8.以下程序的输出结果是 void 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 C9.以下程序的输出结果是 void fun( int *s) { static int j = 0;

do

s[j] += s[j+1]; while(++j < 2);

}

void main()

{ int k, a[10 ]= {1, 2, 3, 4, 5};

for( k = 1; k < 3; k++)

fun(a);

for( k = 0; k < 5; k++) printf(“%d”, a[k]);

}

A)34756 B)23445 C)35745 D)12345 A10.若有定义:int x, *pb;,则以下正确的赋值语句是

A)pb = &x B)pb = x C)*pb = &x D)*pb = *x B11.以下程序的输出结果是

#include “stdio.h” void main()

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

A)不确定 B)0 C)-1 D)1 B12.以下程序的输出结果是

void sub(int x, int y, int *z) { *z = y - x; } void 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, -12, -17 D)5, -2, -7 C13.以下程序的输出结果是

void main()

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

int *pk = &k, *pm = &m, *p; *(p = &n) = *pk * (*pm);

36

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

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

B14.已知指针p的指向如图所示,则执行语句*p++;后,*p的值是 A)20 B)30 C)21 D)31

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

10 20 30 40

p B15.已知指针p的指向如上图,则表达式*++p的值是 A)20 B)30 C)21 D)31 C16.已知指针p的指向如上图,则表达式++*p的值是 A)20 B)30 C)21 D)31 D17.以下程序的输出结果是

void prtv(int *x)

{ printf(“%d\\n”, ++*x); } void main() { int a = 25; prtv(&a); }

A)23 B)24 C)25 D)26 B18.以下程序的输出结果是

void main()

{ int **k, *a, b = 100; a = &b; k = &a; printf(“%d\\n”, **k); }

A)运行出错 B)100 C)a的地址 D)b的地址 C19.以下程序的输出结果是 void fun(float *a, float *b)

{ float w; *a = *a + *a; w = *a; *a = *b; *b = w; }

void main()

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

printf(“%2.0f,%2.0f\\n”, x, y); }

A) 4, 3 B) 2, 3 C) 3, 4 D) 3, 2 B20.以下程序的输出结果是

void sub(float x, float *y, float *z)

37

50

{ *y = *y - 1.0;

*z = *z + x;

}

void main()

{ float a = 2.5, b= 9.0, *pa, *pb;

pa = &a; pb = &b; sub(b - a, pa, pb); printf(“%f\\n”, a);

}

A)9.000000 B)1.500000 C)8.000000 D)10.500000 A21.以下四个程序中,能对两个整型值进行交换的是 A)void main()

{ int a = 10, b = 20; swap(&a, &b);

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

swap( int *p, int *q) { int *t, a; t = &a;

*t = *p; *p = *q; *q = *t; }

B)void main()

{ int a = 10, b = 20; swap(&a, &b);

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

swap( int *p, int *q) { int t;

*t = *p; *p = *q; *q = *t; }

C)void main() { int *a, *b;

*a = 10, *b = 20; swap(a, b);

printf(“%d %d\\n”, *a, *b); }

swap( int *p, int *q) { int t;

t = *p; *p = *q; *q = t; }

D)void main()

{ int a = 10, b = 20; int *x = &a, &y = &b; swap(x, y);

38

printf(“%d %d\\n”, *a, *b); }

swap( int *p, int *q) { int t;

t = *p; *p = *q; *q = t; }

B22.定义语句int *swap();指的是

A) swap是一个返回整型值的函数

B) swap是一个返回指向整型值指针的函数 C) swap是一个指向函数的指针 D) 以上说法均不对

B23.若有以下说明和定义, 则对fun函数的正确调用语句是 void main()

{ int (*a)( int ), *b(), w[10], c; … }

fun( int *c ) { … }

A)a = fun; a( w ) B)a = fun; (*a)(&c); C)b = fun; *b( w ) D)fun(b); D24.若有定义和语句:

int a[4][5], (*cp)[5]; cp = a; 则对a数组元素的引用正确的是

A)cp+1 B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2) D25.若已定义:

int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*prt )[3] = a, *p = a[0]; 则能够正确表示数组元素a[1][2]的表达式是

A)*((*prt + 1)[2]) B)*(*(p + 5)) C)(*prt + 1) + 2 D)*(*(a + 1) + 2) A26.若有定义和语句:

int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*prt )[3] = a, *p[4], i; for(i = 0; i < 4; i++)

p[i] = a[i];

则不能够正确表示a数组元素的表达式是

A)a[4][3] B)p[0][0] C)prt[2][2] D)(*(p+1))[1] A27.以下程序的输出结果是 void main()

{ int aa[3][3] = {{2}, {4}, {6} }, 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); }

printf(“\\n”);

39

}

A)23 B)26 C)33 D)36 A28.以下程序的输出结果是 void main()

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

int (*p)[4] = a, i, j, k = 0; for(i = 0; i < 3; i++) for(j =0; j < 2; j++) k += *(*(p + i) + j); pritnf(“%d\\n”, k);

}

A)60 B)68 C)99 D)108 C29.若有定义语句:int (*p)[M];,其中的标识符p是 A)M个指向整型变量的指针

B)指向M个整型变量的函数指针

C)一个指向具有M个整型元素的一维数组指针

D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量 B30.以下能正确进行字符串赋值的语句是 A)char s[5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}; B)char *s; s = “good!”; C)char s[5] = “good!”; D)char s[5]; s = “good!”; B31.以下程序段的输出结果是 char str[] = “ABCD”, *p = str; printf(“%d\\n”, *(p+4));

A)68 B)0 C)字符D的地址 D)不确定的值

B32.当运行以下程序时输入OPEN THE DOOR,则输出结果是 #include char fun(char *c)

{ if(*c <= ‘Z’ && *c >= ‘A’ )

*c -= ‘A’ - ‘a’; return *c;

}

void main()

{ char s[8], *p = s;

gets(s); while(*p)

{ *p = fun( p );

putcahr(*p); p++; }

putchar(‘\\n’);

}

A)oPEN tHE dOOR B)open the door C)OPEN THE DOOR D)Open The Door C33.以下程序的输出结果是

40


2015C习题集(1)(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:世界人种基因图谱

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: