C语言第十章复习题不含答案.docx

上传人:b****4 文档编号:5132384 上传时间:2023-05-08 格式:DOCX 页数:18 大小:23.27KB
下载 相关 举报
C语言第十章复习题不含答案.docx_第1页
第1页 / 共18页
C语言第十章复习题不含答案.docx_第2页
第2页 / 共18页
C语言第十章复习题不含答案.docx_第3页
第3页 / 共18页
C语言第十章复习题不含答案.docx_第4页
第4页 / 共18页
C语言第十章复习题不含答案.docx_第5页
第5页 / 共18页
C语言第十章复习题不含答案.docx_第6页
第6页 / 共18页
C语言第十章复习题不含答案.docx_第7页
第7页 / 共18页
C语言第十章复习题不含答案.docx_第8页
第8页 / 共18页
C语言第十章复习题不含答案.docx_第9页
第9页 / 共18页
C语言第十章复习题不含答案.docx_第10页
第10页 / 共18页
C语言第十章复习题不含答案.docx_第11页
第11页 / 共18页
C语言第十章复习题不含答案.docx_第12页
第12页 / 共18页
C语言第十章复习题不含答案.docx_第13页
第13页 / 共18页
C语言第十章复习题不含答案.docx_第14页
第14页 / 共18页
C语言第十章复习题不含答案.docx_第15页
第15页 / 共18页
C语言第十章复习题不含答案.docx_第16页
第16页 / 共18页
C语言第十章复习题不含答案.docx_第17页
第17页 / 共18页
C语言第十章复习题不含答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言第十章复习题不含答案.docx

《C语言第十章复习题不含答案.docx》由会员分享,可在线阅读,更多相关《C语言第十章复习题不含答案.docx(18页珍藏版)》请在冰点文库上搜索。

C语言第十章复习题不含答案.docx

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

1.若有说明:

inti,j=7,*p=&i;,则与i=j;等价的语句是()。

(A)i=*p;(B)*p=*&j;(C)i=&j;(D)i=**p;

2.若有以下说明:

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

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

(A)*p+6(B)*(p+6)(C)*p+=5(D)p+5

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

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果是()。

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

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

(A)charstr[5]="good!

";(B)charstr[]="good!

";

(C)char*str="good!

";(D)charstr[5]={‘g',‘o',‘o',‘d'};

5.若定义:

inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为()。

(A)无确定值(B)a的地址(C)512(D)511

6.下面程序的输出是()。

(A)3(B)4(C)1(D)2

main()

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

printf("%d\n",*(p+2));}

7.若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

(A)p=q;(B)*p=*q;(C)n=*q;(D)p=n;

8.有如下说明

inta[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

9.若有以下定义:

chars[20]="programming",*ps=s;

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

(A)ps+2(B)s[2](C)ps[2](D)*(ps+2)

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

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果是()。

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

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

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

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

(A)*p(B)a[10](C)*a(D)a[p-a]

12.下面程序的输出是()。

main()

{char*s="121";

intk=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("k=%da=%db=%d\n",k,a,b);

(A)k=3a=2b=3(B)k=3a=3b=2

(C)k=2a=3b=2(D)k=2a=2b=3

13.若有以下的定义:

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

则值为3的表达式是()。

(A)p+=2,*(p++)(B)p+=2,*++p(C)p+=3,*p++(D)p+=2,++*p

14.设有如下定义:

intarr[]={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

15.执行以下程序段后,m的值为()。

inta[2][3]={{1,2,3},{4,5,6}};

intm,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

(A)15(B)14(C)13(D)12

16.有以下程序段

chararr[]="ABCDE";

char*ptr;

for(ptr=arr;ptr

printf("%s\n",ptr);

输出结果是()。

(A)ABCD(B)A(C)E(D)ABCDE

BDBCDE

CCCDE

DBDE

EAE

17.有以下程序

main()

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

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

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

(A)运行后报错(B)66C)611(D)510

18.以下程序运行后,输出结果是()。

main()

{char*s="abcde";

s+=2;

printf("%ld\n",s);

}

(A)cde(B)字符c的ASCII码值(C)字符c的地址(D)出错

19.以下程序运行后,输出结果是()。

#include

ss(char*s)

{char*p=s;

while(*p)p++;

return(p-s);

}

main()

{char*a="abded";

inti;

i=ss(a);

printf("%d\n",i);

}

(A)8(B)7(C)6(D)5

20.有以下程序

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

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

printf("%d,%d,%d,%d\n",*p,*q,a,b);

}

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

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

{chara1[80],a2[80],*s1=a1,*s2=a2;

gets(s1);gets(s2);

if(!

strcmp(s1,s2))printf("*");

elseprintf("#");

printf("%d/n",strlen(strcat(s1,s2)));

}

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

22.若已定义:

inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。

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

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

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

main()

{inta[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("%d",*a);

}

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

(A)123456780(B)123456780(C)12345678(D)147

main()

{charch[3][4]={"123","456","78"},*p[3];inti;

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

for(i=0;i<3;i++)printf("%s",p[i]);

}

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

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

#include

main()

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

p1="abcd";p2="efgh";

strcpy(str+1,p2+1);strcpy(str+3,p1+3);

printf("%s",str);

}

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

doubler=99,*p=&r;

*p=r;

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

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

(B)在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元

(C)语句"*p=r;"把变量r的值赋给指针变量p

(D)语句"*p=r;"取变量r的值放回p中

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

(A)666.06.0(B)666.76.7

(C)666.06.7(D)666.76.0

main()

{doubled;floatf;longl;inti;

i=f=l=d=20/3;

printf("%d%ld%f%f\n",i,l,f,d);

}

28.若已定义:

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

其中0≤i≤9,则对a数组元素不正确的引用是()。

(A)a[p-a](B)*(&a[i])(C)p[i](D)a[10]

29.下列程序执行后的输出结果是()。

(A)3(B)6(C)9(D)随机数

main()

{

inta[3][3],*p,i;

p=&a[0][0];

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

printf("%d\n",a[1][2]);

}

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

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

intb=2;

intfunc(int*a)

{b+=*a;

return(b);}

main()

{

inta=2,res=2;

res+=func(&a);

printf("%d\n",res);

}

31.有如下程序段

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

p=&a;a=*p+b;

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

(A)12(B)11(C)10(D)编译出错

32.对于基类型相同的两个指针变量之间,不能进行的运算是()。

(A)<(B)=(C)+(D)-

33.有如下说明

inta[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

34.有如下程序

main()

{intn[5]={0,0,0},i,k=2;

for(i=0;i;printf(“%d\n”,n[k]);

该程序的输出结果是()。

(A)不确定的值(B)2(C)1(D)0

35.有以下程序

point(char*p)

{p+=3;}

main()

{charb[4]={'a','b','c','d'},*p=b;

point(p);printf("%c\n",*p);

}

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

(A)a(B)b(C)c(D)d

36.若有说明:

inti,j=2,*p=&i;,则能完成i=j;赋值功能的语句是()。

(A)i=*p;(B)p*=*&j;(C)i=&j;(D)i=**p;

37.以下定义语句中,错误的是()。

(A)inta[]={1,2};(B)char*a[3];

(C)chars[10]="test";(D)intn=5,a[n];

38.以下选项中,不能正确赋值的是()。

(A)chars1[10];s1="Ctest";

(B)chars2[]={'C','t','e','s','t'};

(C)chars3[20]="Ctest";

(D)char*s4="Ctest\n";

39.以下程序调用findmax函数返回数组中的最大值

findmax(int*a,intn)

{int*p,*s;

for(p=a,s=a;p-a

if()s=p;

return(*s);

}

main()

{intx[5]={12,21,13,6,18};

printf("%d\n",findmax(x,5));

}

在下划线处应填入的是()。

(A)p>s(B)*p>*s(C)a[p]>a[s](D)p-a>p-s

40.若有说明语句:

inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。

(A)scanf("%d%d%d",&a,&b,d);(B)scanf("%d%d%d",&a,&b,&d);

(C)scanf("%d%d%d",a,b,d);(D)scanf("%d%d%d",a,b,*d);

41.有以下程序

main()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

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

(A)15(B)16(C)12(D)59

42.若定义:

inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为()。

(A)无确定值(B)a的地址(C)512(D)511

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

(A)charstr[5]="good!

";(B)charstr[]="good!

";

(C)char*str="good!

";(D)charstr[5]={‘g',‘o',‘o',‘d'};

44.若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

(A)p=q;(B)*p=*q;(C)n=*q;(D)p=n;

45.有以下程序

#include

main()

{char*p=“abcde\Ofghjik\0”;

printf(“%d\n”,strlen(p));

}

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

(A)12(B)15(C)6(D)5

46.若有以下定义和语句

#include

inta=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=NULL;

则以下选项中错误的语句是()。

(A)*q=0;(B)w=p;(C)*p=a;(D)*p=*w;

47.有以下程序

main()

{char*s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是()。

(A)n,two(B)t,one(C)w,one(D)o,two

48.有以下程序

main()

{intx[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("%d\n",s[2]);

}

执行后输出结果是()。

(A)随机值(B)0(C)5(D)6

49.有以下程序

voidfun(int*a,inti,intj)

{intt;

if(i

{t=a;a=a[j];a[j]=t;

fun(a,++i,--j);

}

}

main()

{inta[]={1,2,3,4,5,6},i;

fun(a,0,5);

for(i=0;i<6;i++)

printf("%d",a);

}

执行后的输出结果是()。

(A)654321(B)432156(C)456123(D)123456

50.下列选项中正确的语句组是()。

(A)chars[8];s={"Beijing"};(B)char*s;s={"Beijing"};

(C)chars[8];s="Beijing";(D)char*s;s="Beijing";

51.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()。

(A)不确定的值(B)形参p中存放的值

(C)形参p所指存储单元中的值(D)形参p的地址值

52.有以下程序

#include

main()

{charstr[][20]={"Hello","Beijing"},*p=str;

printf("%d\n",strlen(p+20));

}

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

(A)0(B)5(C)7(D)20

53.已定义以下函数

fun(char*p2,char*p1)

{while((*p2=*p1)!

='\0'){p1++;p2++;}}

函数的功能是()。

(A)将p1所指字符串复制到p2所指内存空间

(B)将p1所指字符串的地址赋给指针p2

(C)对p1和p2两个指针所指字符串进行比较

(D)检查p1和p2两个指针所指字符串中是否有'\0'

54.设有定义:

inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()。

(A)scanf(“%d”,pa)(B)scanf(“%d”,a)

(C)scanf(“%d”,&pa)(D)scanf(“%d”,*pa)

55.设有定义:

intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。

(A)p=1;(B)*q=2;(C)q=p;(D)*p=5;

56.有以下程序段

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

b=p[5];

b中的值是()。

(A)5(B)6(C)8(D)9

57.有以下程序

voidsum(int*a)

{a[0]=a[1];}

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

for(i=2;i>=0;i--)&nb

sp;sum(&aa);

printf(“%d\n”,aa[0]);

}

执行后的输出结果是()。

(A)4(B)3(C)2(D)1

58.有以下定义

#include

chara[10],*b=a;

不能给数组a输入字符串的语句是()。

(A)gets(a)(B)gets(a[0])(C)gets(&a[0]);(D)gets(b)

59.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。

(A)chars[10]=”abcdefg”;(B)chart[]=”abcdefg”,*s=t;

(C)chars[10];s=”abcdefg”;(D)chars[10];strcpy(s,”abcdefg”);

60.有以下程序

inta=2;

intf(int*a)

{return(*a)++;}

main()

{ints=0;

{inta=5;

s+=f(&a)

}

s+=f(&a)

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

}

执行后输出结果是()。

(A)10(B)9(C)7(D)8

61.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是()。

(A)p+1(B)*(p+3)(C)*(p+1)+3(D)*(p[0]+2])

62.有以下程序

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

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

printf("%d,%d,%d,%d\n",*p,"q,a,b);

}

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

(A)8,7,8,7(B)7,8,7,8(C)8,7,7,8(D)7,8,8,7

63.有以下程序

#include

main()

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

*q=*(p+5);

printf("%d%d\n",*p,*1);

}

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

(A)运行后报错(B)66(C)611(D)510

64.有以下定义和语句

inta[3][2]={1,2,3,4,5,6,},*p[3];

p[0]=a[1];

则*p[0]+1)所代表的数组元素是()。

(A)a[0][1](B)a[1][0](C)a[1][1](D)a[1][2]

65.有以下程序

main()

{charstr[][10]={"China","Beijing"},*p=str;

printf("%s\n",p+10);

}

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

(A)China(B)Bejing(C)ng(D)ing

66.有以下程序

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p=i;

for(i=0;i<3;i++)printf("%d",a[1]);

}

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

(A)012(B)123(C)234(D)345

67.以下语句或语句组中,能正确进行字符串赋值的是()。

(A)char*sp;*sp="right!

";(B)chars[10];s="right!

";

(C)chars[10];*s="right!

";(D)char*sp="right!

";

68.有以下程序

main()

{chars[]="159",*p;

p=s;

printf("%c",*p+

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2