20设有如下定义:
int (*ptr)*(); 则以下叙述中正确的是
A ptr是指向一维组数的指针变量
B ptr是指向int型数据的指针变量 C ptr是指向函数的指针,该函数返回一个int型数据 D ptr是一个函数名,该函数的返回值是指向int型数据的指针
21 下列不正确的转义字符是 A)'、、' B)'、“ C)'074' D)'、0'" 22 若有以下定义: char a;int b; float c;double d; 则表达式a*bd--c值的类型为 A)float B)int C)char D)double
23 表示关系x《=y《=z的c语言表达式为
A)(X《=Y)&&(Y《=Z) B)(X《=Y)AND(Y《=Z)
C)(X《=Y《=Z) D)(X《=Y)&(Y《=Z)
24 设a=1,b=2,c=3,d=4,则表达式:a《b?a:c《d?a:d的结果为
A)4 B)3 C)2 D)1
25设x为int型变量,则执行以下语句后,x的值为
x=10;x=x--=x--x;
A)10 B)20 C)40 D)30
26 下列可作为C语言赋值语句的是
A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x);
27 设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;
t=x||y&&z;
A)不定值 B)2 C)1 D)0
28 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为
A)100765.12 B)i=100,f=765.12
C)100765.12 D)x=100y=765.12
29设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1;y《=50;y)
{if(x=10))break;
if (x%2==1)
{x=5;continue;}
x--=3;
}
A)2 B)4 C)6 D)8
30给出以下定义:
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
则正确的叙述为
A)数组X和数组Y等价 B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度 D)数组X的长度小于数组Y的长度
31 以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
32假定a和b为int型变量,则执行以下语句后b的值为
a=1;b=10;
do
{b--=a;a;}
while (b--《0);
A)9 B)--2 C)--1 D)8
33设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j3;j--)
{if(j%3)j--;
--j;--j;
printf("%d ",j);
}
A)6 3 B)7 4 C)6 2 D)7 3
34设有以下宏定义:
#define N 3
#define Y(n)((N1)*n)
则执行语句:z=2 *(NY(51));后,z的值为
A)出错 B)42 C)48 D)54
35设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*P1*P2;B)p2=k;C)P1=P2;D)K=*P1 *(*P2);
36 设有如下定义:
int arr[]={6,7,8,9,10};
int *ptr;
则下列程序段的输出结果为
ptr=arr;
*(ptr2)=2;
printf ("%d,%d、n",*ptr,*(ptr2));
A)8,10 B)6,8 C)7,9 D)6,10
37 以下程序的输出结果是
main()
{int i,k,a[10],p[3]:
K=5;
for (i=0;i《10;i)a[i]=i;
for (i=0;i《3;i)p[i]=a[i*(i1)];
for (i=0;i《3;i)k=p[i]*2;
printf("%d、n",k);
}
A)20 B)21 C)22 D)23
38 执行以下程序段后,m的值为
int a[2][3]={{1,2,3},{4,5,6}};
int m,*p;
p=&a[0][0];
m=(*p)*(*(p2))*(*(p4));
A)15 B)14 C)13 D)12
(39)有以下程序段
char arr[]="ABCDE";
char *ptr;
for(ptr=arr;ptr《arr5;ptr)printf("%s、n",ptr);
输出结果是
A)ABCD B)A C)E D)ABCDE
(40)有以下程序
main()
{int x,i;
or(i=1;i《=50;i)
{x=i;
if(x%2==0)
if(x%3==0)
if(x%7==0)
printf("%d,i);”
}
}
输出结果是
A)28 B)27 C)42 D)41
(41)有下列程序 #include《stdio.h main() {union {int k; char i[2]; }*s,a; s=&a; s--i[0]=0x39;s--i[1]=0x38; printf("%x、n",s--k);
}
输出结果是
A)3839 B)3938 C)380039 D)390038