一、选择题(每题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小时内删除。
(完整)大学C++期末考试题库及答案,推荐文档
« 上一篇
C语言期末复习题分析
下一篇 »
发表评论