1.若有以下說明和定義:
fun(int*c){……}
main()
{int (*a)()=fun,*b(),w[10],c;
…
}
在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是()
A)a=a(w);
B)(*a)(&c);
C)b=*b(w);
D)fun(b);
2.指針變量p的基類型為double,并已指向一連續(xù)存儲區(qū),若p中當(dāng)前的地址值為65490,則執(zhí)行p++后,p中的值為()
A)65490
B)65492
C)65494
D)65498
3.某個C程序中有4個函數(shù)t、u、v和w,執(zhí)行時t調(diào)用了u和v,u調(diào)用了t和w,v調(diào)用了w,w調(diào)用了t和v。以下敘述中正確的是()
A)這4個函數(shù)都間接遞歸調(diào)用了自己
B)除函數(shù)t外,其他函數(shù)都間接遞歸調(diào)用了自己
C)除函數(shù)u外,其他函數(shù)都間接遞歸調(diào)用了自己
D)除函數(shù)v和w外,其他函數(shù)都間接遞歸調(diào)用了自己
4.設(shè)有如下的程序段:
inta[]=(1,2,3,4,5), *t;
t=a;
則下列說法正確的是()
A)a和t的內(nèi)容相同
B)a數(shù)組的長度和t所指的字符串長度相等
C)a和t完全相同
D)指針變量t指向數(shù)組a的第一個元素45.若定義了以下函數(shù):
5.void f(……)
{……
*p=(double*)malloc(10*sizeof(double));
……
}
p是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是()
A)double*p
B)float**p
C)double**p
D)float*p
6.有以下程序:
#defineH15
#defineH2H1+1
#defineH3H2*H2/2
main()
{ints=0,k=H3;
while(k--)s++;
printf("%d\n",s);
}
程序的輸出結(jié)果是()
A)30
B)10
C)29
D)19
7.下列程序的輸出結(jié)果是()
main()
{ char ch[2][5]={"6934","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′&&p[i][j]<=′9′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);
}
A)6385
B)69825
C)63825
D)693825
8.以下程序
#include
main()
{char a1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);gets(s2);
if(!strcmp(s1,s2))printf("*");
else printf("#");
printf("%d\n",strlen(strcat(s1,s2)));
}
如果從鍵盤上輸入:
book<回車>
book<空格><回車>
則輸出結(jié)果是()
A)*8
B)#9
C)#6
D)*9
9.已知字符′0′的ASCII碼的十進(jìn)制數(shù)為48,并且數(shù)組的第0個元素在低位,有以下程序
#include
main()
{
union{int i[2];long k;char c[4];}r,*s=&r;
s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0]);
}
程序運行后的輸出結(jié)果是()
A)39
B)9
C)38
D)8
10.若有下面的說明和定義,則sizeof(struct aa)的值是()
struct aa
{ int r1;double r2;float r3;
union uu {char u1[5];
long u2[2];
} ua;
} mya;
A)30
B)29
C)24
D)22
答案:1.B 2.D 3.A 4.D 5.C 6.B 7.A 8.B 9.B 10.D