C语言程序设计试题(2)1 下载本文

}

执行后输出结果是:( )

A) 随机值 B) 0 C) 5 D) 6 11、 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10

void arrin(int x[N]) { int i=0;

while(i

scanf(\}

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

A) x+i B) &x[i+1] C) x+(i++) D) &x[++i] 12、 有以下程序 main()

{ char *s=\

printf(\}

执行后输出结果是:( )

A) 5,4 B) 5,6 C) 6,7 D) 7,8 13、 阅读以下函数

fun(char *sl,char *s2) { int i=0;

while( sl[i]==s2[i] && s2[i]!='\\0') i++; return( sl[i]=='\\0' && s2[i]=='\\0' ); }

此函数的功能是:( ) A) 将s2所指字符串赋给s1

B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0 C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D) 比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0 14、 有以下程序 main()

{ char str[ ]=\while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);} 执行后输出结果是:( )

A) yz B) z C) z D) x

xyz yz yz xy

xyz xyz

15、 有以下程序

void fun(int *a,int i,int j) { int t; if (i

{ t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j);

}

main()

{ int a[]={1,2,3,4,5,6},i; fun(a,0,5);

for(i=0;i<6;i++) rintf(\}

执行后输出结果是:( )

A) 6 5 4 3 2 1 B) 4 3 2 1 5 6 C) 4 5 6 1 2 3 D) 1 2 3 4 5 6 16、 下列程序的输出结果是:( )

main()

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

printf(\}

A) 非法 B)a[4]的地址 C)5 D17、 下列程序的运行结果是:( )

void fun(int *a, int *b) { int *k;

k=a; a=b; b=k; }

main()

{ int a=3, b=6, *x=&a, *y=&b; fun(x,y);

printf(\}

A) 6 3 B) 3 6 C) 0 0 D)18、 下面程序的输出结果是:( )

main()

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

printf(\}

A) 0 B) 1 C) 10 D) 9 19、 以下程序的输出结果是:( )

main()

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

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

A) 1,5,9 B) 1,4,7 C) 3,5,7 D20、 以下程序的输出结果是:( )

)3 编译出错)3,6,9 main()

{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf(\}

A) 18 B) 19 C) 20 D)21

21、 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:( )

A) i = *p; B) *p = *&j; C) i = &j; D) i = **p; 22、 以下定义语句中,错误的是:( )

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

C) char s[10]=\23、 以下程序的输出结果是:( )

char cchar(char ch) {

if(ch>='A'&&ch<='Z') ch=ch-'A'+'a'; return ch; }

main()

{ char s[]=\while(*p)

{ *p=cchar(*p);

p++; }

printf(\}

A) abc+ABC=DEFdef B) abc+abc=defdef C) abcaABCDEFdef D) abcabcdefdef 24、 以下程序段的输出结果是:( )

char s[]=\printf (\A) 9 B) 12 C) 13 D) 14 25、 以下程序调用findmax函数返回数组中的最大值。findmax(int *a,int n) { int *p,*s;

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

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、 以下程序的输出结果是:( )

main()

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

printf(\}

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

A) char str[5]=\

C) char *str=\28、 以下程序的输出结果是:( ) 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、 以下程序的输出结果是:( ) #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; 31、 有以下程序

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

printf(\}