收藏 分享(赏)

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

上传人:j35w19 文档编号:6622118 上传时间:2019-04-18 格式:DOC 页数:15 大小:104KB
下载 相关 举报
C语言第十章复习题(含答案).doc_第1页
第1页 / 共15页
C语言第十章复习题(含答案).doc_第2页
第2页 / 共15页
C语言第十章复习题(含答案).doc_第3页
第3页 / 共15页
C语言第十章复习题(含答案).doc_第4页
第4页 / 共15页
C语言第十章复习题(含答案).doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、1. 若有说明:int i,j=7, *p=,则与 i=j;等价的语句是(B )。(A)i= *p; (B)*p=* (C)i= (D)i=* *p;2. 若有以下说明:int a10=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+53. 若有以下定义和语句:char *s1=“12345“,*s2=“1234“;printf(“%dn“,strlen(strcpy(s1,s2);则输出结果是( A )。(A)4 (B)5 (C)9 (D)104. 以下不能正确进行字符串赋初值的语句是(A

2、)。(A) char str5=“good!“; (B) char str=“good!“;(C) char *str=“good!“; (D) char str5=g,o,o,d;5. 若定义:int a=511,*b=, 则 printf(“%dn“,*b);的输出结果为( D )。(A) 无确定值 (B) a 的地址 (C) 512 (D) 5116. 下面程序的输出是( A )。(A) 3 (B) 4 (C) 1 (D) 2main() int a10= 1,2,3,4,5,6,7,8,9,10,*p=a;printf(“%dn“,*(p+2);7. 若有说明:int n=2,*p=,

3、则以下非法的赋值语句是(D ) 。(A) p=q; (B) *p=*q; (C) n=*q; (D) p=n;8. 有如下说明int a10=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+89. 若有以下定义:char s20=“programming“,*ps=s;则不能代表字符 o 的表达式是( A )。(A)ps+2 (B)s2 (C)ps2 (D)*(ps+2)10. 若有以下定义和语句:char *s1=“12345“,*s2=“1234“;printf(“%dn“,st

4、rlen(strcpy(s1,s2);则输出结果是( A )。(A)4 (B)5 (C)9 (D)1011. 若有以下定义和语句:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示 a 数组元素的表达式是( B )。(A)*p (B)a10 (C)*a (D)ap-a12. 下面程序的输出是( C )。main() char *s=“121“;int k=0, a=0, b=0;dok+;if(k%2= =0) a=a+sk-0;continue;b=b+sk-0; a=a+sk-0;while (sk+1);printf(“k=%d a=%d b=%dn“,k,a

5、,b);(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=313. 若有以下的定义:int a=1,2,3,4,5,6,7,8,9,10, *p=a;则值为 3 的表达式是( A )。(A)p+=2, *(p+) (B)p+=2,*+p (C)p+=3, *p+ (D)p+=2,+*p14. 设有如下定义:int arr=6,7,8,9,10;int * ptr;则下列程序段的输出结果为( D )。ptr=arr;* (ptr+2)+=2;printf (“%d,%dn“,*ptr,*(ptr+2);(A)8,10 (B)6,8

6、(C)7,9 (D)6,1015. 执行以下程序段后,m 的值为( A )。int a23= 1,2,3,4,5,6 ;int m,*p;p=m=(*p)*(*(p+2)*(*(p+4);(A) 15 (B) 14 (C) 13 (D) 1216. 有以下程序段char arr=“ABCDE“;char *ptr;for(ptr=arr;ptrss(char *s) char *p=s;while(*p) p+;return(p-s);main() char *a=“abded“;int i;i=ss(a);printf(“%dn“,i);(A) 8 (B) 7 (C) 6 (D) 520.

7、有以下程序 main() int a=7,b=8,*p,*q,*r;p=q=r=p; p=q;q=r;printf(“%d,%d,%d,%dn“,*p,*q,a,b);程序运行后的输出结果是 ( 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 )。#includemain() char a180,a280,*s1=a1, *s2=a2;gets(s1); gets(s2);if(! strcmp(s1,s2) printf(“*“);else printf(“#“

8、);printf(“%d/n“,strlen(strcat(s1,s2);(A) *8 (B) #9 (C) #6 (D) *922. 以下程序的运行结果是( 无 )。(A) 运行后报错 (B) 6 6 (C) 6 12 (D) 5 5#include “stdio.h“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(“%d %d n“,*p,*q);23. 若已定义:int a9,*p=a;并在以后的语句中未改变 p 的值,不能表示 a1 地址的表达式是( C )。(A) p+1 (

9、B) a+1 (C) a+ (D) +p24. 下面程序把数组元素中的最大值放入 a0中,则在 if 语句中的条件表达式应该是( D ) 。(A) pa (B) *pa0 (C) *p*a0 (D) *p0 *a0main( ) int a10=6,7,2,9,1,10,5,8,4,3,*p=a,i;for(i=0;imain( ) char *p1,*p2,str50=“ABCDEFG“;p1=“abcd“; p2=“efgh“;strcpy(str+1,p2+1); strcpy(str+3,p1+3);printf(“%s“,str);27. 若有以下定义和语句:double r=99,

10、 *p= float f; long l; int i; i=f=l=d=20/3; printf(“%d %ld %f %f n“, i,l,f,d); 29. 若已定义: int a =0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中 0i9, 则对 a 数组元素不正确的引用是( D )。(A) ap-a (B) *( p= for(i=0; is (B) *p*s (C) apas (D) p-ap-s41. 若有说明语句:int a,b,c,*d= (B) scanf(“%d%d%d“,(C) scanf(“%d%d%d“,a,b,d); (D) scanf(“%d%d%

11、d“,a,b,*d);42. 有以下程序main() char s=“159“,*p; p=s; printf(“%c“,*p+);printf(“%c“,*p+); 程序运行后的输出结果是(A )。(A)15 (B)16 (C)12 (D)5943. 若定义:int a=511,*b=, 则 printf(“%dn“,*b);的输出结果为( D)。(A) 无确定值 (B) a 的地址 (C) 512 (D) 51144. 以下程序调用 findmax 函数返回数组中的最大值 findmax(int *a,int n) int *p,*s;for(p=a,s=a; p-as (B) *p*s

12、(C) apas (D) p-ap-s45. 以下不能正确进行字符串赋初值的语句是( A)。(A) char str5=“good!“; (B) char str=“good!“;(C) char *str=“good!“; (D) char str5=g,o,o,d;46. 若有说明:int n=2,*p=,则以下非法的赋值语句是(D ) 。(A) p=q; (B) *p=*q; (C) n=*q; (D) p=n;47. 有以下程序#include main() char *p=“abcdeOfghjik0”;printf(“%dn”,strlen(p);程序运行后的输出结果是 ( D)。

13、(A) 12 (B) 15 (C) 6 (D) 548. 若有以下定义和语句#include int a=4,b=3,*p,*q,*w;p= q= w=q; q=NULL;则以下选项中错误的语句是(A )。(A) *q=0; (B) w=p; (C) *p=a; (D) *p=*w;49. 有以下程序main() char *s=“one“,“two“,“three“,*p;p=s1;printf(“%c,%sn“,*(p+1),s0);执行后输出结果是( C)。(A) n,two (B) t,one (C)w,one (D) o,two50. 有以下程序main() int x8=8,7,6

14、,5,0,0,*s;s=x+3;printf(“%dn“,s2);执行后输出结果是( B)。(A) 随机值 (B) 0 (C) 5 (D) 651. 有以下程序void fun(int *a,int i,int j) int t;if(imain() char str20=“Hello“,“Beijing“,*p=str;printf(“%dn“,strlen(p+20);程序运行后的输出结果是(C )。(A)0 (B)5 (C)7 (D)2055. 已定义以下函数fun(char *p2, char *p1) while(*p2=*p1)!=0) p1+;p2+; 函数的功能是 ( A)。(

15、A)将 p1 所指字符串复制到 p2 所指内存空间(B)将 p1 所指字符串的地址赋给指针 p2(C)对 p1 和 p2 两个指针所指字符串进行比较(D)检查 p1 和 p2 两个指针所指字符串中是否有056. 设有定义:int a,*pa=以下 scanf 语句中能正确为变量 a 读入数据的是( A)。(A) scanf(“%d”,pa) (B) scanf(“%d”,a) (C) scanf(“%d”,则以下选项中,正确的赋值语句是 ( D)。(A) p=1; (B) *q=2; (C) q=p; (D) *p=5;58. 有以下程序段int a10=1,2,3,4,5,6,7,8,9,1

16、0,*p=b=p5;b 中的值是 ( D)。(A) 5 (B) 6 (C) 8 (D) 959. 有以下程序void sum(int *a) a0=a1;main( ) int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=2;i=0;i-) sum(printf(“%dn”,aa0);执行后的输出结果是( A)。(A) 4 (B) 3 (C) 2 (D) 160. 有以下定义#include char a10,*b=a;不能给数组 a 输入字符串的语句是(B )。(A) gets(a) (B) gets(a0) (C) gets( (D) gets(b) 61. 以下程

17、序段中,不能正确赋字符串(编译时系统会提示错误)的是(C ) 。(A) char s10=”abcdefg”; (B) char t=”abcdefg”,*s=t;(C) char s10;s=”abcdefg”; (D) char s10;strcpy(s,”abcdefg”);62. 有以下程序int a=2;int f(int *a) return (*a) +;main( ) int s=0; int a=5;s+=f(执行后输出结果是 (C )。(A) 10 (B) 9 (C) 7 (D) 863. 若有以下说明和语句,int c45,(*p)5;p=c;能正确引用 c 数组元素的是

18、( A )。(A)p+1 (B)*(p+3) (C)*(p+1)+3 (D)*(p0+2)64. 有以下程序 main() int a=7,b=8,*p,*q,*r;p=q=r=p; p=q;q=r;printf(“%d,%d,%d,%dn“,*p,“q,a,b);程序运行后的输出结果是 ( B )。(A)8,7,8,7 (B)7,8,7,8 (C)8,7,7,8 (D)7,8,8,7 65. 有以下程序#include main()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d %dn“,*p,*1);

19、程序运行后的输出结果是( D )。(A)运行后报错 (B)6 6 (C)6 11 (D)5 10 66. 有以下定义和语句int a32=1,2,3,4,5,6,*p3;p0=a1;则*p0+1)所代表的数组元素是( A )。(A)a01 (B)a10 (C)a11 (D)a1267. 有以下程序main()char str10=“China“,“Beijing“,*p=str;printf(“%sn“,p+10);程序运行后的输出结果是( C )。(A) China (B)Bejing (C)ng (D)ing 68. 有以下程序main() int a33,*p,i; p= for(i=0

20、;imain()FILE *fp;char *s1=“Fortran“,*s2=“Basic“;if(fp=fopen(“test.txt“,“wb”)=NULL)printf(“Cant open test.txt filen“);exit(1);fwrite(s1,7,1,fp); /*把从地址 s1 开始的 7 个字符写到 fp 所指文件中*fseek(fp,0L,SEEK_SET); *文件位置指针移到文件开头*fwrite(s2,5,1,fp);fclose(fp);(A)Basican (B)BasicFortran (C)Basic (D)FortranBasic79. 若在定义

21、语句:int a,b,c,*p=之后,接着执行以下选项中的语句,则能正确执行的语句是(C )。(A)scanf(“%d“,a,b,c); (B)scanf(“%d%d%d“,a,b,c);(C)scanf(“%d“,p); (D)scanf(“%d“,80. 设有定义:char p=1,2,3,*q=p; ,以下不能计算出一个 char 型数据所占字节数的表达式是( A )。(A)sizeof(p) (B)sizeof(char) (C) sizeof(*q) (D)sizeof(p0)81. 有以下函数int aaa(char *s)char *t=s;while(*t+);t-;retur

22、n(t-s);以下关于 aaa 函数的功能叙述正确的是( A )。(A)求字符串 s 的长度 (B)比较两个串的大小(C)将串 s 复制到串 t (D)求字符串 s 所占字节数82. 有以下程序#includeint fun(char s)int n=0;while(*s=0) n=10*n+*s-0;s+;return(n);main()char s10=6,1,*,4,*,9,*,0,*;printf(“%dn“,fun(s);程序运行的结果是( C )。(A)9 (B)61490 (C)61 (D)583. 有以下程序#include void fun(int n,int *p) int

23、 f1,f2;if(n=1|n=2) *p=1;else fun(n-1, fun(n-2,*p=f1+f2;main() int s;fun(3, printf(“%dn“,s);程序的运行结果是( A )。(A)2 (B)3 (C)4 (D)584. 以下程序运行后,输出结果是 CDG 。main() static char a=“ABCDEFGH“,b=“abCDefGh“;char *p1,*p2;int k;p1=a; p2=b;for(k=0;kmain( ) char b =“ABCDEFG“; char *chp= while(- -chp putchar(“n“); 86.

24、下面程序的输出结果是 abcdcd 。char b=“abcd“;main() char *chp;for(chp=b; *chp; chp+=2) printf(“%s“,chp);printf(“n“);87. 以下程序输出的是 ab 。 main( ) int i=3, j=2;char *a=“dcba“;printf(“%c%cn“,ai,aj);88. 以下程序的输出结果是 7 。#include #include main() char b18=“abcdefg“,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pb);printf(“%dn“,strlen(b2);89. 以下程序的输出结果是 10 。main() int arr =30,25,20,15,10,5, *p=arr;p+;printf(“%dn“,*(p+3);90. 以下程序运行后的输出结果是_9876 876_ 。 main() char s =“9876“,*p; for ( p=s ; ps+2;p+)printf(“%s”,*p); 91. 以下程序运行后的输出结果是 _ 1*3*5*7*9_ 。main() char a=“123456789“,*p; int i=0;p=a;while(*p) if(i%2=0) *p=*“;p+;i+;puts(a);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报