C语言程序设计试题及答案解析[1]全解 下载本文

if ( _______ ) s=p; return(*s);

}

main()

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

printf(\}

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

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

26、 以下程序的输出结果是:( B )

main()

{ char cf[3][5]={\

printf(\}

A) \

27、 以下不能正确进行字符串赋初值的语句是:( ) A) char str[5]=\

C) char *str=\

28、 以下程序的输出结果是:( A ) f(int *b , int m, int n) { int i,s=0;

for(i=m;i

main()

{ int x,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

printf(\}

A) 10 B)18 C) 8 D) 15

29、 以下程序的输出结果是:( D ) #include #include main()

{ char b1[8]=\

while (--pb>=b1) strcpy(b2,pb); printf(\}

A) 8 B) 3 C) 1 D) 7

30、 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是:( ) A) p=q; B) *p=*q; C) n=*q; D) p=n; 答案:D

31、 有以下程序

void fun(char *c,intd) { *c=*c+1;d=d+1;

printf(\

}

main()

{ char a='A',b='a';

fun(&b,a); printf(\}

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

A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b

32、 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 , void sort(int a[],int n) { int i,j,t;

for(i=0;i

for(j=i+1;j

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

}

main()

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

sort(&aa[3],5);

for(i=0;i<10;i++) printf(\printf(\}

程序运行后的输出结果是:( C ) A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7,6,5,4,9,10, D) 1,2,10,9,8,7,6,5,4,3,

33、 有以下程序 main()

{ char a[]={'a','b','c','d','e','f','g','h','\\0'}; int i,j;

i=sizeof(a); j=strlen(a); printf(\}

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

A) 9,9 B) 8,9 C) 1,8 D) 9,8

34、 以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。 void reverse(int a[],int n) { int i,t;

for(i=0;i

{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t; } }

main()

{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;

reverse(b,8);

for(i=6;i<10;i++) s+=b[i]; printf(\}

程序运行后的输出结果是:( A ) A) 22 B) 10 C) 34 D) 30

35、 有以下程序 main()

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

int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1]; printf(\}

程序运行后的输出结果是:( B ) A) 11 B) 19 C) 13 D) 20

36、 有以下程序 #include main()

{ char *p=\

printf(\}

程序运行后的输出结果是:( D ) A) 12 B) 15 C) 6 D) 5

37、 有以下程序

void ss(char *s,char t) { while(*s)

{ if(*s==t) *s=t-'a'+'A';

s++; }

}

main()

{ char str1[100]=\

ss(str1, C); printf(\}

程序运行后的输出结果是:(B ) A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd

38. 变量的指针,其含义是指该变量的______. a)值 b)地址

c)名 d)一个标志

39.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_______. a)a,point,*&a b)&*a,&a,*point c)*&point,*point,&a d)&a,&*point ,point

40.若有说明;int *p,m=5,n;以下正确的程序段的是____. a)p=&n; b)p=&n; scanf(\ scanf(\ c)scanf(\ d)p=&n;

*p=n; *p=m;

41.下面程序段的运行结果是_______. char *s=\

s+=2;printf(\

a)cde b)字符'c' c)字符'c'的地址 d)无确定的输出结果

42.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确 执行的赋值语句是______.

a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);

43.以下正确的程序段是______.

a)char str[20]; b)char *p; scanf(\ scanf(\

c)char str[20]; d)char str[20],*p=str; scanf(\ scanf(\

44.若有说明语句

char a[]=\ char *p=\

则以下不正确的叙述是_____. a)a+1表示的是字符t的地址

b)p指向另外的字符串时,字符串的长度不受限制