331、若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是 A) i= *p; B) *p=*&j; C) i=&j; D) i=* *p;、B、3
332、若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 A) *p=&a; scanf("%ld",p); B) p=(long *)malloc(8); scanf("%ld",p); C) scanf("%ld",p=&a); D) scanf("%ld",&a);、A、3
333、若有以下的定义: int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是 A) p =2, *(p ) B) p =2,* p C) p =3, *kp D) p =2, *p、A、3
334、若有以下的说明,则对初值中字符'a'的引用方式为___。 static struct { char ch; double x; char a[]; }c[2][2]={{{'a',3、5,'bc'},{'c',4、5,'de'},{'m',8、6,'abc'}}}; A、c、ch B、c[0][0]、ch C、c[1][1]、ch D、a[0]、B、3
335、若有以下的说明和语句,则在执行for语句后,*(*(pt l) 2)表示的数组元素是 A) t[2][0] B) t[2][2] C) t[l][2] D) t[2][l] int t[3][3], *pt([3], k; for (k=0;k、C、3
336、若有下面的说明和定义: struct test { int ml; char m2; float m3; union uu {char ul[5]; int u2[2];} ua; } myaa; 则sizeof(struct test )的值是____ A) 12 B) 16 C) 14 D) 9、A、3
337、若有以下定义,则语句( )是正确的。 union data {int i; char c; float f; }a; int n; A: s=5 B:a={2,'a'1、2} C:printf("%d\n",a) D:n=a、C、3
338、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A) *p B) a[10] C) *a D) a[p-a]、B、3
339、若有以下定义和语句: double r=99, *p=&r; *p=r; 则以下正确的叙述是 A) 以下两处的*p含义相同,都说明给指针变量p赋值 B) 在"double r=99, *p=&r;"中,把r的地址赋值给了p所指的存储单元 C) 语句"*p=r;"把变量r的值赋给指针变量p D) 语句"*p=r;"取变量r的值放回r中、D、3
340、若有以下定义和语句: int w[2][3],(*pw)[3]; pw=w; 则对w数组元素非法引用是 A)*(w[0] 2) B)*(pw 1)[2] C)pw[0][0] D)*(pw[1] 2)、B、3
341、若有以下说明和定义 fun(int *c){ } main() { int (*a)()=fun,*b(),w[10],c; ┆ } 在必要的赋值之后,对fun函数的正确调用语句是 A) a=a(w); B) (*a)(&c); C) b=*b(w); D) fun (b);、B、3
342、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是 A) *p 6 B) *(p 6) C) *p =5 D) p 5、C、3
343、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是 A) p=2*(int*)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int)); C) p=(int*)malloc(2*2); D) p=(int*)calloc(2,sizeof(int));、A、3
344、设已有定义: char *st="how are you"; 下列程序段中正确的是 A) char a[11], *p; strcpy(p=a 1,&st[4]); B) char a[11]; strcpy( a, st); C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st 2);、A、3
345、设有如下程序: #include main() { int **k, *j, i=100; j=&i; k=&j; printf("%d\n", **k); } 上面程序的输出结果是 A) 运行错误 B) 100 C) i的地址 D) j的地址、B、3
346、设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为________。 union exp { int i; float j; double k; }x; A、14个 B、7个 C、8个 D、随机而定、C、3
347、设x的值为4,则表达式( x) ( x) ( x)的值是( ) A:12; B:18; C:16; D:21 、D、3
348、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是 A) k=*p1 *p2; B) p2=k; C) p1=p2; D) k=*p1 * (*p2);、B、3
349、设x、y、t均为int型变量,则执行语句:x=y=3;t= x|| y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1、C、3
350、设a=3,b=2,则表达式a^b>>2的值的二进制表示为________。 A、00000011 B、00000110 C、00000100 D、00000010、A、3
351、设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch 32):ch 的值是____ A) A B) a C) Z D) z、B、3
352、设有如下定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是 A)(*p)、data、a B)(*p)、a C)p->data、a D)p、data、a、B、3
353、设有如下定义: int (*ptr)*(); 则以下叙述中正确的是 A)ptr是指向一维组数的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针、C、3
354、设有如下定义: int (*ptr)*(); 则以下叙述中正确的是 A) ptr是指向一维组数的指针变量 B) ptr是指向int型数据的指针变量 C) ptr是指向函数的指针,该函数返回一个int型数据 D) ptr是一个函数名,该函数的返回值是指向int型数据的指针、C、3
355、设有如下枚举类型定义: enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为 A) 4 B) 7 C) 102 D) 103、C、3
356、设有如下函数定义: int f(char *s) { char *p=s; while(*p!='\0') p ; return(p-s); } 如果在主程序中用下面的语句调用上述函数,则输出结果为 printf("%d\n",f("goodbey!")); A) 3 B) 6 C) 8 D) 0、C、3
357、设有说明int(*ptr)[m];其中的标识符ptr是( )。 (A) M个指向整型变量的指针 (B)指向M个整型变量的函数指针 (C) 一个指向具有M个整型元素的一维数组的指针 (D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量、C、3
358、为表示关系x≥y≥z,应使用C语言表达式 A) (x>=y)&&(y>=z) B(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)、A、3
359、设有以下定义: typedef union { long i;int k[5];char c;}DATE; struct date { int cat;DATE cow;double dog;}too; DATE max; 则下列语句的执行结果是 printf("%d",sizeof(struct date) sizeof(max)); A) 25 B) 30 C) 18 D) 8、B、3
360、设有以下说明语句 typedef struct { int n; char ch[8]; }PER; 则下面叙述中正确的是 A) PER 是结构体变量名 B) PER是结构体类型名 C) typedef struct 是结构体类型 D) struct 是结构体类型名、B、3
361、设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型、B、3
362、下列程序的输出结果是 main( ) { int a[5]={2,4,6,8,10},*p,* *k; p=a; k=&p; printf("%d",*(p )); printf("%d\n",* *k); } A) 4 4 B) 2 2 C) 2 4 D) 4 6、C、3
363、下列程序的输出结果是 main( ) { char*p1,*p2,str[50]="xyz"; p1="abcd"; p2="ABCD"; strcpy(str 2,strcat(p1 2,p2 1); printf)"%s",str); } A) xyabcAB B) abcABz C) Ababcz D) xycdBCD、D、3
364、下列程序的输出结果是 A) 4 B) 6 C) 8 D) 10 int b=2; int func(int *a) { b = *a; return(b);} main() { int a=2, res=2; res = func(&a); printf("%d \n",res); }、B、3
365、下列程序的输出结果是 A) 5 B) 6 C) 7 D) 8 struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0],a s[1],b; printf("%d \n",t); }、B、3
366、下列程序的输出结果是 A) 非法 B)a[4]的地址 C)5 D)3 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a 5; printf("%d",*--p); }、C、3
367、下列程序的运行结果是 A) 6 3 B) 3 6 C) 编译出错 D) 0 0 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("%d %d", a, b); }、B、3
368、请读程序: int x,y; for(x=1;x、C、3