C语言复习题集(2013级)(6)

2020-03-27 07:22

第8章指针

1选择题

【题1】以下程序有错,错误的原因是(D)。 main()

{int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; . . . }

A)p和q的类型不一致,不能执行*p=*q;语句

B)*p中存放的是地址值,因此不能执行*p=40;语句 C)q没有指向具体的存储单元,所以*q没有实际意义

D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句

【题2】已有定义 int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)。

A)k=*ptr1+*ptr2; B)ptr2=k; C)p1=*p2; D)*p1=p2;

【题3】变量的指针,其含义是指该变量的(B)。 A)值 B)地址 C)名 D)一个标志

【题4】若已定义int a=5;下面对(1),(2)两个语句的正确解释是(D)。 (1)int *p=&a; (2) *p=a;

A)语句(1)和(2)中的 *p含义相同,都表示给指针变量p赋值 B)(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p C)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p

D)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋于*p

【题5】若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是(D)。 A)a,point,*&a B)&*a,&a,* point

C)*&point,*point,&a D)&a,&*point,point

【题6】以下程序输出的结果是(C) void main()

{ int a=5,*p1,**p2; p1=&a,p2=&p1; (*p1)++;

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

A) 5 B) 4 C) 6 D) 不确定

【题7】若有说明:int *p,m=5,n; 以下正确的程序段是(D)。 A)p=&n; B)p=&n;

scanf(“%d”,&p); scanf(“%d”,*p); C)scanf(“%d”,&n); D)p=&n; *p=n; *p=m

【题8】若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是(C)。 A)p1=&m;p2=&p1;

B)p1=&m;p2=&n;*p1=*p2; C)p1=&m;p2=p1 D)p1=&m;*p2=*p1;

【题9】已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是(D)。

void print_value(int *t) { print(“%d\\n”,++*x);}

A)23 B)24 C)25 D)26

【题10】下面判断正确的是(C)。

A)char * a=”china”;等价于 char *a;*a=”china”;

B)char str[10]={“china”};等价于char str[10];str[]={“china”}; C)char *s=”china”; 等价于 char *s; s=”china”;

D)char c[4]=”abc”,d[4]=”abc”; 等价于 char c[4]=d[4]=”abc”;

【题11】设 char *s=”\\ta\\017bc”; 则指针变量s指向的字符串所占的字节数是(C)。 A)9 B)5 C)6 D)7

【题12】下面程序段中,for循环的执行次数是(C)。 char *s=”\\ta\\018bc”;

for ( ;*s! =?\\0?;s++) printf(“*”); A)9 B)5 C)6 D)7

【题3】下面能正确进行字符串赋值操作的是(C)。

A) char s[5]={“ABCDE”}; B) char s[5]={?A?,?B?,?C?,?D?,?E?}; C) char *s; s=”ABCDE”; D) char *s; scanf(“%s”,s);

【题14】下面程序段的运行结果是(C)。 char *s=”abcde”; s+=2; printf(“%d”,s);

A)cde B)字符?c? C)字符?c?的地址 D)无确定的输出结果

【题15】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是(B)。

A)c=*p1+p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);

【题16】设有下面的程序段: chat s[]=”china”; char *p; p=s; 则下列叙述正确的是(D)。 A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等

【题17】 下面程序的功能是将一个整数字符串转换为一个整数,如“-1234”转换为-1234,请选择填空。 #include #include main() {char s[6]; int n; gets(s);

if(*s==?-?) n=-chnum(s+1); else n=chnum(s); printf(“%d\\n”,n); }

chnum(char*p) {int num=0,k,len,j; len=strlen(p); for(;[A];p++) {k=[C]; j=(--len);

while([B]) {k=k*10;} num=num+k; }

return (num) }

[1] A)*p!=?\\0? B)*(++p)!=?\\0? C)*(p++)!=?\\0? D)len!=0 [2] A)*p B)*p+?0?

C)*p-?0? D)*p-32 [3] A)--j B)j-->0 C)—len D)len-->0

【题18】 下面程序的功能是将八进制正整数转换为十进制整数.请选择填空, #include main()

{char *p,s[6]; p=s; gets(p); n=[C];

while([C]!=?\\0?) n=n*8+*p-?0?; printf(“%d\\n”,n); }

【题19】 下面程序的功能是统计子串substr在母串str中出现的次数。请选择填空。 #include main()

{char str[80],substr[80]; int n;

gets(str); gets(substr);

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

count(char*str,char*substr) {int i,j,k,num=0; for(i =0; [B]; i ++)

for([B],k=0;substr[k]==str[j];k++,j++) if(substr[[C]]==?\\0?) {num++;break;} return(num); }

[1] A) str[i]==substr[i] B) str[i]!=?\\0? C) str[i]== ?\\0? D) str[i]> substr[i] [2] A)j=j+1 B)j=i C)j=0 D)j=1 [3] A)k B)k++ C)k+1 D)++k

【题20】下面程序的功能是在字符串str中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如chyab变成ychab。请选择填空 。 #include main()

{char str[80],*p,max,*q; p=str;gets(p);max=*(p++); while(*p!=?\\0?)

{if(max<*p) {max=*p; [C];} p++; } p=q;

while([A]) {*p=*(p-1); [C];} *p=max; puts(p); }

[1] A)p++ B)p=q C)q=p D)q++

[2] A)p>str B)p>=str C)*p>str D)*p>=str[0] [3] A) p++ B)str-- C)p-- D)i--

【题21】 以下程序的功能是删除字符串s中的所有空格(包括TAB符,回车符,换行符),请选择填空。 #include #include #include main()

{char c,s[80];int i=0; c=getchar()

while(c!=EOF) {s[i]=c;i++;c=getchar();} s[i]=?\\0?; delspace(s); puts(s); }

delspace(char*p) {int i,t;char c[80]; for(i=0,t=0; [A];i++)

if(!isspace([C])) c[t++]=p[i]; c[t]=?\\0?; strcpy(p,c); }

[1] A)p[i] B)! p[i] C) p[i]=?\\0? D) p[i]==?\\0? [2] A)p+i B)*c[i] C)*(p+i) D)*(c+i)

【题22】 下面程序的功能是将字符串中s中的内容按逆序输出,但不改变串中的内容,请选择填空。

#include main()

{char s[10]=”hello!”; Inverp(s); }


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

下一篇:压力表检验步骤

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

马上注册会员

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