[56]、下列程序的运行结果是( )。 main()
{ char arr[2][4];
strcpy(arr,“abc”);strcpy(arr[1],“ABC”); printf(“%s\\n”,arr);} 【答 案】B 【分 数】1分 【选 项】 A、abc ABC B、abc C、ABC D、arr
[57]、程序中对fun函数有如下说明: int *fun();
下面说法正确的是( )。 【答 案】C 【分 数】1分 【选 项】
A、fun函数是整型函数 B、fun函数的返回值是整型数据
C、fun函数的返回值是指向整型数据的指针类型 D、指针fun指向一个函数,该函数返回整型数据
[58]、下列程序的输出结果是( )。 main() {
int k=4,m=5,n=7; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm);
printf(“%d\\n”,n); }
【答 案】C 【分 数】1分 【选 项】 A、5 B、7 C、20 D、21
[59]、有如下程序: #define f(x)x*x main() { int i ;
i=f(2+2)/(1+1); printf(“%d\\n”,i);}
该程序执行后的输出结果是( )。 【答 案】B 【分 数】1分 【选 项】 A、21 B、7 C、8 D、4
[60]、下列程序的输出结果是( )。 struct st
{ int x;int *y;}*p; int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
main() { p=aa;
printf(“%d ”,++(*p->y)); printf(“%d ”,(++p)->x); printf(“%d ”,++p->x); 【答 案】C 【分 数】1分 【选 项】 A、20 20 10 B、21 60 50 C、11 60 61 D、31 70 60
多选题
[1]、已知int b=2,下列表达式值为1的有( )。 【答 案】BCD 【分 数】2分 【选 项】 A、~b&b B、~b||b C、b>>1 D、(b|1)&1
[2]、设有说明int k=7,x=12;,则以下语句执行后,x值为0的有( )。 【答 案】AC 【分 数】2分 【选 项】 A、x %=(k%5); B、x %=(k-k%5); C、x %=k-k/5;
D、x =(x%=k)-(k%=5);
[3]、已知有如下程序: void main() {
int a[5]={1,2,3,4,5},*b;
b=(int*)malloc(sizeof(int)); ____;
printf(\); }
要使程序输出为a[2]的值,则下列有关函数fun的定义和下划线处对应的fun调用语句正确的有( )。 【答 案】CD 【分 数】2分 【选 项】
A、void fun(int*s,int*d) {*d=*(s+2);} 调用: fun(a,&b) B、void fun(int*s,int&d) {d=*(s+2);} 调用: fun(a,b)
C、void fun(int*s,int &d) {d=*(s+2);} 调用: fun(a,*b)
D、void fun(int*s,int **d) {**d=*(s+2);} 调用: fun(a,&b)
[4]、函数欲实现交换x和y的值,且通过正确调用返回交换结果,下列选项中不能实现这一功能的有( )。 【答 案】BD 【分 数】2分
【选 项】
A、funa(int *x, int *y) { int *p;
*p = *x; *x = *y; *y = *p; }
B、funb(int x, int y) { int t;
t = x; x = y; y = t; }
C、func(int *x, int *y) { int p;
p = *x; *x = *y; *y = p; }
D、fund(int *x, int *y) { int *p;
*x = *x + *y; *y = *x - *y; *x = *x - *y; }
[5]、关于以下运算,说法正确的有( )。 【答 案】BD 【分 数】2分 【选 项】
A、设有宏定义\(N) 2*N\则表达式F(2+3)的值是10 B、设int x=4;,则执行语句x += x *= x + 1;后,x的值为40 C、设int a, b = 8;,执行a = b<<2 + 1;后,a的值是33
D、设int a[3][4], *p = a[1]; 该指针变量p指向的元素是a[1][0]