main( ) {
char x=040;
printf(\}
A)100 B)160 C)120 D)64
(9) 以下数组定义中不正确的是( )
A) int a[2][3];
B) int b[][3]={0,1,2,3}; C) int c[100][100]={0};
D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
(10) 以下程序的输出结果是 main()
{ int a=5,b=4,c=6,d;
printf(\}
A) 5 B) 4 C) 6 D) 不确定
(11) 以下程序的输出结果是( ) main( )
{ int n=4;
while (n--) printf(\,--n);
}
A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0
(12) 设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a, *p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是 。 A)*((*ptr+1)[2] B)*(*(p+5)) C) (*ptr+1)+2 D)*(*(a+1)+2)
(13) 若有以下的说明和语句,则在执行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<3;k++) pt[k]=&t[k][0];
(14) 有以下程序 main( )
{ char a[]=\ printf(\%d\\n\}
执行后输出结果是 。
A)7 7 B)8 8 C)8 10 D)10 10
25
)
(15) 以下程序中,while循环的循环次数是 。 main() { int i=0; while(i<10)
{ if(i<1) continue; i++; } }
A) 1 B) 10
C) 6 D) 死循环,不能确定次数
(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 D)3
(17) 设有如下定义:char *aa[2]={“abcd”,”ABCD”}; 则下列说法正确的是(b )
A aa数组元素的值分别是”abcd”和”ABCD”
B aa是指针变量,它指向两个数组元素的字符型一维数组
C aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D aa数组的两个元素中各自存放了字符?a?和?A?的地址
(18) 以下函数值的类型是( )
fun ( float x ) { float y;
y= 3*x-4; return y; }
A) int B) 不确定
C) void
D) float
(19) 以下选项中,能定义s为合法的结构体变量的是 A) typedef struct abc B) struct
{ double a; { double a; char b[10]; char b[10]; }s; }s;
C) struct ABC D) typedef ABC { double a; { double a; char b[10]; char b[10]; } }
ABC s; ABC s;
26
(20) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A) EOF B) -1 C) 非零值 D) NULL
第二部分:简单程序(12题,共30分)
(21) 有以下程序 main( )
{ unsigned char a,b; a=4|3; b=4&3;
printf(\}
执行后输出结果是 。
A} 7 0 B}0 7 C)1 1 D)43 0
(22) 有如下程序
int func(int a,int b) { return(a+b);} Main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z); printf(“%d\\n”,r); }
该程序的输出的结果是( )
A) 12 B) 13 C) 14
(23) 下列程序执行后的输出结果是 A) you&me B) you C) me D) err main()
{ char arr[2][4];
strcpy(arr,\arr[0][3]='&';
printf(\}
(24) 以下程序的输出结果是
#define M(x,y,z) x*y+z main()
{ int a=1,b=2, c=3;
printf(“%d\\n”, M(a+b,b+c, c+a)); }
A) 19
B) 17 C) 15
27
D) 15
D) 12
(25) 下列程序的输出结果是 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(\}
A) 5 B) 6 C) 7 D) 8
(26)以下程序的输出结果是( )
int a, b; void fun()
{ a=100; b=200; } main()
{ int a=5, b=7;
fun();
printf(“%d%d \\n”, a,b); }
A) 100200
B) 57
C) 200100
D) 75
(27) 设有以下函数:
f ( int a) { int b=0;
static int c = 3; b++; c++;
return(a+b+c); }
如果在下面的程序中调用该函数,则输出结果是
main()
{ int a = 2, i;
for(i=0;i<3;i++) printf(“%d\\n”,f(a)); }
A) 7 B) 7 C) 7 D) 7
8 9
9 11
10 13
7 7
(28) 以下程序的输出结果是( )
A)4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8 main( )
{ char *s=\; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k])
28
{ case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; }
v[i]++; }
for(k=0;k<4;k++) printf(\,v[k]); }
(29) 有以下程序 #include
main(int argc ,char *argv[ ]) { int i,len=0;
for(i=1;i
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是 。
A)14 B)12 C)8 D)6
(30) 以下程序的输出结果是 。 void sort(int a[],int n) { int i,j,t;
for(i=0;i if(a[i] main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(\ printf(\} A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2, (31) 有如下程序 main() { char ch[2][5]={\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';j+=2) 29