background image

22)有以下定义语句,编译时会出
现编译错误的是
A ) char   a=’a’     B ) char   a=’\n’; 

C ) char   a=’aa’;       D ) char 
a=’\x2d’; 

23)有以下程序

#include <stdio.h>
main()
{ char c1,c2;
  c1=’A’+’8’-‘4’;
  c2=’A’+’8’-‘5’;
  printf(“%c,%d\n”,c1,c2);
}    

已知字母 A 的 ASCII 码为 65,程
序运行后的输出结果是
    A ) E,68       B ) D,69     C ) E,D 

D)输出无定值

24)有以下程序
     #include <stdio.h>
     void fun(int p)
     { int d=2;
       p=d++; printf(“%d”,p);}
     main()
     { int a=1;
      fun(a); printf(“%d\n”,a);} 程序

运行后的输出结果是

    A)32  B)12  C)21  D)22
25)以下函数 findmax 拟实现在数
组中查找最大值并作为函数值返回,
但程序中有错导致不能实现预定功

#define MIN -2147483647

     int findmax (int x[],int n)
     { int i,max;
       for(i=0;i<n;i++)
       { max=MIN;
         if(max<x[i]) max=x[i];}
       return max;
     }   造成错误的原因是
A)定义语句 int i,max;中 max 未赋
初值    B)赋值语句 max=MIN;中,
不应给 max 赋 MIN 值
C)语句 if(max<x[i]) max=x[i];中判

断条件设置错    D)赋值语句
max=MIN;放错了位置

(26)有以下程序
     #include <stdio.h>
     main()
     { int m=1,n=2,*p=&m,*q=&n,*r;

       r=p;p=q;q=r;
              printf(“%d,%d,%d,

%d\n”,m,n,*p,*q);

     }    程序运行后的输出结果是
A)1,2,1,    B)1,2,2,1   C)2,1,2, 

D)2,1,1,2

27 ) 若 有 定 义 语 句 : int   a[4]
[10],*p,*q[4];且 0≤i<4,则错误的赋
值是
A ) p=a   B ) q[i]=a[i]   C ) p=a[i] 

D)p=&a[2][1]

28)有以下程序
     #include <stdio.h>
     #include<string.h>
     main()
     { char str[ ][20]={“One*World”, 

“One*Dream!”},*p=str[1];

   printf(“%d,”,strlen(p));printf(“%s\n

”,p);

     }   程序运行后的输出结果是
A)9,One*World   B)9,One*Dream 
C

10,One*Dream 

D)10,One*World
29)有以下程序
     #include <stdio.h>
     main()
     { int a[ ]={2,3,5,4},i;
       for(i=0;i<4;i++)
       switch(i%2)
       { case 0:switch(a[i]%2)
              {case 0:a[i]++;break;
               case 1:a[i]--;
              }break;
         case 1:a[i[=0;

}
for(i=0;i<4;i++) 

printf(“%d”,a[i]); printf(“\n”);

}

  A)3 3 4 4  B)2 0 5 0  C)3 0 4 0 

D)0 3 0 4

30)有以下程序
     #include <stdio.h>

#include<string.h>

     main()

{ char a[10]=”abcd”;
printf(“%d,

%d\n”,strlen(a),sizeof(a);

}    程序运行后的输出结果是

A ) 7,4         B ) 4,10       C ) 8,8 

D)10,10

31)下面是有关 C 语言字符数组的
描述,其中错误的是
A)不可以用赋值语句给字符数组

名赋字符串   B)可以用输入
语句把字符串整体输入给字符
数组

C)字符数组中的内容不一定是字

      

符串

   D)字符数组只能

存放字符串

32)下列函数的功能是
 fun(char * a,char * b)   
{ while((*b=*a)!=’\0’) {a++,b++;} }
A)将 a 所指字符串赋给 b 所指空

间  B)使指针 b 指向 a 所指字

 

符串 C)将 a 所指字符串和 b
所指字符串进行比较

D)检查 a 和 b 所指字符串中是否

有’\0’

33)设有以下函数

 

void fun(int n,char * s) {……}  则下

面对函数指针的定义和赋值均
是正确的是

 A)void (*pf)(); pf=fun;   B)viod 

*pf();   pf=fun;     C ) void   *pf(); 
*pf=fun;     D ) void   (*pf)
(int,char);pf=&fun;

(34)有以下程序
     #include <stdio.h>
     int f(int n);
     main()
     { int a=3,s;
       s=f(a);s=s+f(a);printf(“%d\n”,s);

     }
     int f(int n)
     { static int a=1;
       n+=a++;
       return n;
     }  程序运行以后的输出结

果是
  A)7     B)8    C)9     D)10
35)有以下程序
     #include <stdio.h>
     #define f(x) x*x*x
     main()
     { int a=3,s,t;

       s=f(a+1);t=f((a+1));
       printf(“%d,%d\n’,s,t);

2