一、选择题(每题1.5分,共45分)
1. 以下选项中属于C语言的数据类型是
A) 复数型  B) 逻辑型    C) 双精度型  D) 集合型
2. 在C语言中,不正确的int类型的常数是
A) 32768    B) 0        C) 037        D) 0xAF
3. 语句:printf("%d",(a=2)&&(b= -2));的输出结果是
A) 无输出  B) 结果不确定  C) -1        D) 1
4. 下列描述中不正确的是
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出
C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
5. 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是
A) 1      B) 0      C) -1      D) 2
6. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A) c=b=a;B) (a=c) ‖(b=c) ;
C) (a=c) &&(b=c);C) a=c=b;
7. 以下程序的输出结果是
A) 10,1 9,2  B) 9,8 7,6  C) 10,9 9,0  D) 10,10 9,1
main(  )
{    int    x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d ",x--,y);
}
8. 以下程序的输出结果是
A) 5 2    B) 5 1    C) 5 3      D) 9 7
main(  )
{  int  i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)printf("%d  ",p[i]);
}
9. 以下程序的输出结果是
A)6      B) 6789      C) '6'      D) 789
main(  )
{    char  a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int  i;
i=8;
p=a+i;
printf("%s\n",p-3);
}
10. 以下程序的运行结果是
A) 运行后报错  B) 6  6    C) 6  12      D) 5  5
#include  "stdio.h"
main(  )
{
int  a[ ]={1,2,3,4,5,6,7,8,9,10,11,12,};
int  *p=a+5, *q=NULL;
* q=*(p+5);
printf("%d  %d \n",*p,*q);
}
11. 以下说法中正确的是
A) #define和printf都是C语句B) #define是C语句,而printf不是
C) printf是C语句,但#define不是D) #define和printf都不是C语句
12. 语句:printf("%d \n",12 &012);的输出结果是
A) 12    B) 8    C) 6  D) 012
13. 能正确表示a和b同时为正或同时为负的逻辑表达式是
A) (a>=0‖b>=0)&&(a<0‖b<0)
B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0)
D) a*b>0
14. 以下程序的输出结果是
A) 2  0    B) 3  1    C) 3  2  1    D) 2  1  0
main(  )
{      int  n=4;
while(n--)printf("%d ",--n);
}
15. 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是
A) p+1      B) a+1    C) a++    D) ++p
16. 以下程序的输出结果是
A) 17,021,0x11      B) 17,17,17
C) 17,0x11,021      D) 17,21,11
main(  )
{  int  k=17;
printf("%d,%o,%x \n",k,k,k);
}
17. 以下程序的输出结果是
A) -1  1    B) 0  1  C) 1  0      D) 0  0
main(  )
{  int  a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0))
printf("%d  %d\n",a,b);
else
printf("%d  %d\n",b,a);
}
18. 若有说明: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);
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;
20. 下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是
A) p>a    B) *p>a[0]    C) *p>*a[0]    D) *p[0]> *a[0]
main(  )
{      int  a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i<10;i++,p++)
if(________) *a=*p;
printf("%d",*a);
}
21. 以下程序的输出结果是
A) 6  9  9  B) 6  6  9    C) 6  15  15      D) 6  6  15
int  d=1;
fun(int  p)
{  static  int  d=5;
d+=p;
printf("%d ",d);
return(d);
}
main(  )
{  int  a=3;  printf("%d \n",fun(a+fun(d)));  }
22. 以下程序的输出结果是
A) 123456780    B) 123  456  780  C) 12345678  D) 147
main(  )
{  char    ch[3][4]={"123","456","78"}, *p[3];  int  i;
for(i=0;i<3;i++)    p[i]=ch[i];
for(i=0;i<3;i++)    printf("%s",p[i]);
}
23. 以下程序的输出结果是
A) 1  B) 4    C) 7    D) 5
#include
int    a[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main(  )
{  p=(int*)malloc(sizeof(int));
f(p,a);
printf("%d \n",*p);
}
f(int *s,  int  p[][3])
{  *s=p[1][1]; }
24. 以下程序的输出结果是
A) 9    B) 6    C) 36    D) 18
#define    f(x)    x*x
main(  )
{  int  a=6,b=2,c;
下列数据中属于字符串常量的是abcc=f(a) / f(b);
printf("%d \n",c);
}
25. 以下程序的输出结果是
A)4 2 1 1    B) 0 0 0 8    C) 4 6 7 8  D) 8 8 8 8
main(  )
{    char  *s="12134211";  int v[4]={0,0,0,0},k,i;
for(k=0;s[k];k++)
{  switch(s[k])
{  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("%d ",v[k]);
}
26. 以下程序的输出结果是
A) AfghdEFG    B) Abfhd    C) Afghd    D) Afgd
#include
main(  )
{    char    *p1,*p2,str[50]="ABCDEFG";
p1="abcd";      p2="efgh";
strcpy(str+1,p2+1);    strcpy(str+3,p1+3);
printf("%s",str);
}
27. 以下程序的输出结果是
A) #*#*#    B) >    C) *****  D) *#*#*
main(  )
{  int  i;
for(i=1;i<6;i++)
{  if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
28. 若有以下定义和语句:
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中
29. 以下程序的输出结果是
A) 编译不通过,无输出        B) aceg
C) acegi                      D) abcdefghi
main(  )
{    int    i;
for(i='A';i<'I';i++,i++)  printf("%c",i+32);
printf(" \n");
}
30. 有以下程序
#include
main()
{ int  a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是
A) 2,1      B) 3,2  C) 4,3        D) 2,-1
二、填空题(每空2分,共30分)
1. 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是(1) 。
int  b,c;      float a;
scanf("%f,%d,c=%d",&a,&b,&c);
2. 下列程序的输出结果是 (2)  。
#include
main(  )
{  char  b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论