C语言第十章复习题(含答案)

更新时间:2023-09-30 15:52:01 阅读量: 综合文库 文档下载

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

1. 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是(B )。 (A)i= *p; (B)*p=*&j; (C)i=&j; (D)i=* *p; 2. 若有以下说明:

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

char *s1=\printf(\则输出结果是( A )。

(A)4 (B)5 (C)9 (D)10

4. 以下不能正确进行字符串赋初值的语句是(A )。

(A) char str[5]=\

(C) char *str=\str[5]={‘g',‘o',‘o',‘d'}; 5. 若定义:int a=511,*b=&a;, 则printf(\的输出结果为( D )。

(A) 无确定值 (B) a的地址 (C) 512 (D) 511 6. 下面程序的输出是( A )。

(A) 3 (B) 4 main()

(C) 1

(D) 2

{ int a[10]={ 1,2,3,4,5,6,7,8,9,10},*p=a; printf(\

7. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D )。

(A) p=q; (B) *p=*q; (C) n=*q; (D) p=n; 8. 有如下说明

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

则数值为9的表达式是( B )。

(A) *p+9 (B) *(p+8) (C) *p+=9 (D) p+8 9. 若有以下定义:

char s[20]=\

则不能代表字符o的表达式是( A )。

(A)ps+2 (B)s[2] (C)ps[2] (D)*(ps+2) 10. 若有以下定义和语句:

char *s1=\printf(\则输出结果是( A )。

(A)4 (B)5 (C)9 (D)10 11. 若有以下定义和语句:

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

则不能表示a数组元素的表达式是( B )。

(A)*p (B)a[10] (C)*a (D)a[p-a] 12. 下面程序的输出是( C )。

main()

{ char *s=\int k=0, a=0, b=0;

do

{k++;

if(k%2= =0) {a=a+s[k]-'0';continue;} b=b+s[k]-'0'; a=a+s[k]-'0'; }while (s[k+1]);

printf(\ a=%d b=%d\\n\

(A)k=3 a=2 b=3 (B)k=3 a=3 b=2 (C)k=2 a=3 b=2 (D)k=2 a=2 b=3 13. 若有以下的定义:

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

(A)p+=2, *(p++) (B)p+=2,*++p (D)p+=2,++*p 14. 设有如下定义:

int arr[]={6,7,8,9,10}; int * ptr;

则下列程序段的输出结果为( D )。 ptr=arr;

* (ptr+2)+=2;

printf (\(A)8,10 (B)6,8 (C)7,9 (D)6,10

15. 执行以下程序段后,m的值为( A )。 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4)); (A) 15 (B) 14 (C) 13 (D) 12

16. 有以下程序段

char arr[]=\char *ptr;

for(ptr=arr;ptr

输出结果是( D )。 (A) ABCD (B) A (C) E (D) ABCDE B BCDE C CDE

D DE

E

E

17. 有以下程序

main()

(C)p+=3,

*p++ D

C

B

A

{int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);

printf(\}

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

(A)运行后报错 (B)6 6 C)6 11 (D)5 10 18. 以下程序运行后,输出结果是( C )。

main()

{ char *s=\s+=2;

printf(\}

(A) cde (B) 字符c的ASCII码值 (C)字符c的地址19. 以下程序运行后,输出结果是( D )。

#include ss(char *s) { char *p=s; while(*p) p++; return(p-s); }

main()

{ char *a=\int i; i=ss(a);

printf(\}

(A) 8

(B) 7

(C) 6

(D) 5

20. 有以下程序

main()

{ int a=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p; p=q;q=r;

printf(\}

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

(A)8,7,8,7 (B)7,8,7,8 (C)8,7,7,8 (D)7,8,8,7 21. 以下程序运行后,如果从键盘上输入:

book <回车>

book <空格><回车> 则输出的结果是( B )。 #include

main()

{ char a1[80],a2[80],*s1=a1, *s2=a2; gets(s1); gets(s2);

出错 (D) if(! strcmp(s1,s2)) printf(\else printf(\

printf(\}

(A) *8 (B) #9 (C) #6 (D) *9

22. 以下程序的运行结果是( 无 )。

(A) 运行后报错 (B) 6 6 (C) 6 12 (D) 5 5

#include \main( ) {

int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5, *q=NULL; * q=*(p+5);

printf(\,*p,*q);

}

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

(A) p+1 (B) a+1 (C) a++ (D) ++p

24. 下面程序把数组元素中的最大值放入a[0]中,则在if 语句中的条件表达式应该是

( D )。

(A) p>a (B) *p>a[0] (C) *p>*a[0]

(D) *p[0]> *a[0]

main( )

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

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

(A) 123456780 (B) 123 456 780 main( )

(C) 12345678 (D) 147

{ char ch[3][4]={\,\,\, *p[3]; int i; for(i=0;i<3;i++) p[i]=ch[i];

for(i=0;i<3;i++) printf(\,p[i]); }

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

(A) AfghdEFG (B) Abfhd (C) Afghd

#include

main( )

{ char *p1,*p2,str[50]=\; p1=\; p2=\;

strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf(\,str); }

27. 若有以下定义和语句:

(D) Afgd

double r=99, *p=&r;

*p=r;

则以下正确的叙述是( D )。

(A) 以下两处的*p含义相同,都说明给指针变量p赋值

(B) 在\, *p=&r;\中,把r的地址赋值给了p所指的存储单元 (C) 语句\;\把变量r的值赋给指针变量p (D) 语句\;\取变量r的值放回p中

28. 下列程序执行后的输出结果是(小数点后只写一位) ( A )。

(A) 6 6 6.0 6.0 (B) 6 6 6.7 6.7

(C) 6 6 6.0 6.7 (D) 6 6 6.7 6.0

main()

{ double d; float f; long l; int i; i=f=l=d=20/3;

printf(\}

29. 若已定义:

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

其中 0≤i≤9, 则对a数组元素不正确的引用是( D )(A) a[p-a] (B) *(&a[i]) (C) p[i] 30. 下列程序执行后的输出结果是(B ) 。 (A) 3 (B) 6 (C) 9

main() {

int a[3][3], *p,i; p=&a[0][0];

for(i=0; i<9; i++) p[i]=i+1; printf(\

}

31. 下列程序的输出结果是 ( B )。

(A) 4 (B) 6 (C) 8

int b=2;

int func(int *a) { b += *a; return(b);} main() {

int a=2, res=2; res += func(&a); printf(\}

32. 有如下程序段

int *p,a=10,b=1; p=&a; a=*p+b;

执行该程序段后,a的值为( B )。

。 (D) a[10] (D) 随机数

(D) 10

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

Top