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

2019-03-22 11:55

Inverp (char*a)

{ if (【C】) return 0; Inverp(a+1);

printf(“%c”,【B】); }

A) *a!=?\\0? B) *a!=NULL C) !*a D) !a*= =0 A) *(a-1) B) *a C) *(a+1) D) *(a- -)

【题23】下面程序的功能是用递归法将一个整数存放到一个字符数组中。存放时按逆序存放。如483存放成“384”,请选择填空。 # include

void convert (char *a, int n) { int i;

If((i=n/10)!=0) convert (【B】, i); *a=【D】; }

Main()

{int number; char str[10]=” “;

scanf(“%d”, & number); convert(str,number); puts(str); }

【1】A)a++ B) a+1 C) a- - D)a-1

【2】A)n/10 B)n C)n/10+?0? D) n+?0?

【24】下面程序的功能是用递归法将一个整数转换成字符形式输出。例如输入483,应输出字符串“483”。请选择填空。 #include Void convert(int n) { int i;

If ((【A】)!=0) convert (i); Putchar(【C】+?0?); } main() { int number;

Scanf(“%d”,&number);

If ( number<0) {putchar(?-?); number= -number;} Convert (number); }

【1】A) i=n/10 B) i=n%n C) i=n-- D) i=--n 【2】A) n B) n/10 C) n D)i

【题25】下面程序的功能是按字典顺序比较两个字符串s,t 的大小,如果s大于t则返回正

值,等于则返回0,小于则返回负值。请选择填空。 # include “stdio.h” s(char *s, char * t)

{ for ( ; *s= = * t; 【D】 ) if (*s = = ?0?) return(0); Return(*s -*t); }

main()

{ char a[20],b[10],*p,*q; Int i;

P=&a ; q=&b;

Scanf(“%s%s”,a,b); i=s(【A】); printf(“%d”,i); }

【1】A) s++ B) t++ C) s++;t++ D) t++,s++ 【2】A) p,q B)q,p C)a,p D)b,q

【题26】下面程序的功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。请选择填空。 # include< stdio.h> # include main()

{ char string[100],*p,*q*,*r, c; printf(“Please input a string:”); gets(string);

for (p=string. *p; p++)

{for(q=r=p;*q;q++) if(【A】) r=q; if (【D】) { c=*r; *r=*p; *p=c;} }

for (p=string;*p;p++) {for(q=p; *p= = *q; q++); Strcpy(【D】,q ); }

Printf(“result:%s\\n”, string); }

【1】A) *r>*q B) *r>*p C)r>q D) r>p 【2】A) r= =q B) r!=q C) p!=q D) r!=p 【3】A) p++ B) p C) p-1 D)p+1

【题27】下面程序的功能是将字符串 a的所有字符传送到字符串b 中,要求每传送三个字符后再存放一个空格,例如字符串 a为“abcdefg” ,则字符串 b为 “abcdefg”,请选择填空。 # include main() { int i,k=0;

char a[80],b[80],*p; p=a; gets(p); while (*p)

{ for(i=1; 【D】;p++,k++,i++) b[k]=*p; If (【A】) {b[k]=? ?; k++;} } b[k]=?\\o?; puts(b); }

【1】A) i<3 B)i<=3 C) i<3 && *p!=?\\0? D)i<=3 && *p 【2】A) i= =4 B) *P = =?\\0? C) !*p D)i!=4

【题28】下面程序的运行结果是(C)。 #include #include main()

{char *p1,*p2,str[50]=”abc”; p1=”abc”; p2=”abc”; strcpy(str+1,strcat(p1,p2)); printf(“%s\\n”,str);}

A) abcabcabc B)bcabcabc C) aabcabc D)cabcabc

【题29】 下面程序的运行结果是(C)。 #include main()

{char str[]=”cdalb”; abc(str); puts(str); }

abc(char *p) {int i,j;

for(i=j=0;*(p+i)!=?\\0?;i++)

if(*(p+i)>=?d?) {*(p+j)=*(p+i); j++;} *(p+j)=?\\0?; }

A)dalb B)cd C)dl D)c

【题30】 下面程序运行结果是(D)。 #include fun(char*p)

{int i,j; char ts[81]; for(i=0,t=0;p[i]!=?\\0?;i+=2)

if(! isspace(*p+i)&&(*(p+i)!=?a?)) ts[t]=?\\0?; strcpy(p,ts); }

main()

{char str[81]={“a b c d ef g”}; fun(str); puts(str); }

A) abcdeg B)bcde C)ABCDE D)BCDE

【题31】若有以下定义,则对a数组元素的正确引用是(D)。 int a[5],*p=a;

A) *&a[5] B) a+2 C) *(p+5) D)*(a+2)

【题9.32】若有以下定义,则对a数组元素地址的正确引用是(D)。 int a[5],*p=a;

A) p=5 B)*a+1 C)&a+1 D)&a[0]

【题33】若有定义:int a[2][3];则对数组a的第i行第j列(假设i,j已正确说明并赋值)元数值的正确引用为(A)。

A)*(*(i+j)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j

【题34】若有定义:int a[2][3];则对数组a的第i行第j列(假设i,j已正确说明并赋值)元数地址的正确引用为(D)。

A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j

【题9.35】若有以下定义和语句,则对a数组元素地址的正确引用是(C)。 int a[2][3],(*p)[3]; p=a;

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

【题36】若有以下定义和语句,则对a数组元素地址的正确引用是(C)。 Int a[2][3],(*p)[3]; p=a; A)(p+1)[0] B)*(*(p+2)+1) C)*(p[1]+1) D)p[1]+2

【题37】若有定义:int a[5];则a数组中首元素的地址可以表示为(C)。 A)&a B)a+1 C)a D)&a[1]

【题38】 若有定义:int (*p)[4];则标识符p(C)。 A)是一个指向整型变量的指针 B)是 一个指针数组名

C)是一个指针,它指向一个含有四个整型元素的一维数组 D)定义不合法

【题39】若有以下定义和赋值语句,则对s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为(A)。 ints[2][3]={0},(*p)[3]; p=s;

A)*(*(p+i)+j) B)*(p[i]+j) C)(p+i)+j D)(*(p+i))[j]

【题40】 若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的非法引用为(C)。 int b[2][3]={0},(*p)[3]; p=b;

A)*(*(p+i)+j) B)*(p[i]+j) C)(p+i)+j D)(*(p+i))[j]

【题41】以下与int *q[5];等价的定义语句是(C)。 A)int q[5] B)int*q C)int*(q[5]); D)int(*q)[5]

[题42]设有以下程序段:

char str[4][10]={“first”,“second”,“third”,“fourth”},*strp[4]; int n;

for(n=0;n〈4;n++) strp[n]=str[n];

若k为int型变量且0〈=k〈4,则对字符串的不正确引用是(A)。 A)strp B)str[k] C)strp[k] D)*strp }

C)main(int argc,char *argv[]) { while(++argc >0)

printf(“%s%c”,*++argc,(argc>1)?? ?:?\\n?); }

D)main(int argc,char *argv[]) {while(argc>1)

,printf(“%s”,*++argv); }

【题43】阅读以下程序: main()

{int a[10]={2,4,6,8,10,12,14,16,18,20}, *p; p=a;

printf(“%x \\n”,p);


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

下一篇:心意记录

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

马上注册会员

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