C语言第十章复习题不含答案.docx
- 文档编号:5132384
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:18
- 大小:23.27KB
C语言第十章复习题不含答案.docx
《C语言第十章复习题不含答案.docx》由会员分享,可在线阅读,更多相关《C语言第十章复习题不含答案.docx(18页珍藏版)》请在冰点文库上搜索。
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+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第十 复习题 答案