1. 以下4组用户定义标识符中,全部合法的一组是______。
A、_main
enclude sin
B、If
-max
turbo
C、txt
REAL
3COM
D、int
k_2
_001
2.
下列变量命名合法的一组是:
A、3max TEXT pointer B、_main
maxLe va3ue
C、_001 -maxValue boob
D、if continue break
3.
下列变量声明正确的是:
A、int a = 0 , b = 5; B、float i
= j = 3.0;
C、char a =
‘A’b =
‘B’D、int a = 3 , b =
&a;
4. 以下数组定义不正确的是:
A、int array[] = {1,2,3};
B、float array[5] = {0};
C、char array[5] = {1,2,3,4,5} ;
D、int
array[5] = {1,2,3,4,5,6};
5. 若程序中定义了以下函数
double maxValue(double
a,double b)
{ return a
> b ? a : b; }
并将其放在调用语句之后,则在调用之前应该对函数进行声明,以下选项中错误的是:
A、double maxValue(double a, b); B、double
maxValue(double,double);
C、double maxValue(double b,double
a);
D、double maxValue(double x,double
y);
6. 以下结构体类型的变量所占用字节数是:
struct
student
{ short
num;
char
name[15];
float
score;
char
sex;
};
A、22 B、24 C、26 D、28
7. 以下定义语句中正确的是______。
A、char a='A'
b='B';
B、float a=b=10.0;
C、int
a=10,*b=&a;
D、float
*a,b=&a;
8.
当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。
A、c=b=a;
B、(a=c)‖(b=c);
C、(a=c)&&(b=c);
D、a=c=b;
9. 以下程序的输出结果是______。
main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A、6,1
B、2,1
C、6,0
D、2,0
10.表达式3.6-5/2 1.2
5%2的值是______。
A、4.3
B、4.8 C、3.3
D、3.8
11. 设int a=12,则执行完语句a
=a-=a*a后,a的值是______。
A、552 B、264 C、144
D、-264
12. 若有定义:int
a=8,b=5,c;,执行语句c=a/b
0.4;后,c的值是______。
A、1.4
B、1
C、2.0
D、2
若有以下定义和语句:
int
u=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w);
则输出结果是:
______。
A、8,16,10
B、10,10,10 C、8,8,10
D、8,10,10
14. 若执下面程序时从键盘上输入5,
main()
{
int x;
scanf("%d",&x);
if(x >5) printf("%d\n",x);
else printf("%d\n",x--);
}
则输出是______。
A、7
B、6 C、5
D、4
15. 以下程序的输出结果是______。
#include
main()
{ int
a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
A、a=%2,b=%5
B、a=2,b=5 C、a=%%d,b=%%d
D、a=%d,b=%d
16. 当调用函数时,实参是一个数组名,则向函数传送的是______。
A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素的值
17. 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
A、0
B、1
C、2
D、3
18. 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是______。
A、while((ch=getchar())!='N')
printf("%c",ch) ;
B、while(ch=getchar()!='N') printf("%c",ch)
; C、while(ch=getchar()=='N') printf("%c",ch);
D、while((ch=getchar())=='N')
printf("%c",ch);
有以下程序
main()
{char
p[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
};
程序运行后和输出结果是______。
A、4 4
B、3 3
C、3 4
D、4
3
20. 以下数组定义中错误的是:
A、int x[][3] ={0};
B、int x[2][3]={{1,2},{3,4},{5,6}};
C、int x[][3]={{1,2,3},{4,5,6}}; D、int
x[2][3]={1,2,3,4,5,6};
21. 有以下程序:
main()
{int
y=10;
while(y--)
;
printf(“y=%d\n”,y);
}
程序执行后的输出结果是:
A、y=0;
B、y=-1; C、 y=1
D、while构成无限循环
22. 以下叙述中错误的是:
A、c程序必须由一个或者一个以上的函数组成。
B、函数调用可以作为一个独立的语句存在。C、若函数有返回值,必须通过return
语句返回。D、函数形参的值也可以传回给对应的实参。
23. 设有如下定义的变量
union
data
{ int i;
char ch;
float f;
}b;
则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节):
(A)
4
(B)5(C) 6
(D)7
24. 能正确表示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
25. 对于一个正常运行的c程序,以下叙述中正确的是:
(A)程序的执行总是从main函数开始,在main函数结束。
(B)程序的执行总是从程序的第一个函数开始,在main函数结束。
(C)程序的执行总是从main函数开始,在程序的最后一个函数中结束。(D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束。
26. 设有定义:int
k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是:
(A)k
(B)k
=1(C) k(D)k
1
27. 设以下变量均为int类型,则值不等于7的表达式是
A. (x=y=6,x y,x
1)
B. (x=y=6,x y,y 1) C. (x=6,x 1,y=6,x y) D.
(y=6,y 1,x=y,x 1
28. 以下不正确的if语句形式是
A.
if(x>y&&x!=y)t=x
;
B. if(x==y) x =y; C. if(x!=y)
scanf("%d",&x)
else scanf("%d",&y); D.
if(x<0)x ;
29. 若i为整型变量,则以下循环执行次数是
for(i=2;i==0;)
printf("%d",i--);
A. 无限次B. 0次C. 1次D. 2次
30. 将三个数排序需要比较______次。
A. 2 B.
3 C.
4
D. 不确定
31. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
A、INPUT
x、y、z;
B、scanf("%d%d%d",&x,&y,&z);
C、scanf("%d%d%d",x,y,z);
D、read("%d%d%d",&x,&y,&z);
对两个字符数组a和b进行初始化
char a[]="ABCDEF";char b[
]={'A','B','C','D','E','F'};
则以下叙述正确的是()
A、a与b数组完全相同
B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长。
以下错误的if语句是()
A、if(x>y) z=x;
B、
if(x= =y) z=0; C、if(x!=y) printf("%d",x) else
printf("%d",y); D、if(x
程序char
c[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,c);}的运行结果是()。
A、'a''b'
B、ab C、ab
c
D、ab
判断字符串a是否大于b,应当使用()
A、if (a>b)
B、if
(strcmp(a,b))
C、if
(strcmp(b,a)>0)
D、if
(strcmp(a,b)>0)
表示关系12<=x<=y的C语言表达式为:()
A、(12<=x)&(x<=y)
B、(12<=x)&&(x<=y)
C、(12<=x)|(x<=y)
D、(12<=x)||(x<=y)
C语言源程序的基本单位是(
)。
A、过程B、 函数C 、子程序D、 标识符
设有以下定义,值为5的枚举常量是(
)。
enum week{sun,mon=4,tue,wed,thu,fri,sat}
w;
A、tue
B、sat
C、fri
D、thu
若有以下宏定义:
#define N
2
#define
Y(n)(N
1)*n
则执行语句int z; z=2*N
Y(5);后的值是
(A) 50
(B)34
(C)19
(D)无定值
设已有定义:float x;
则以下对指针变量p进行定义且赋初值的语句中正确的是:
(A)float *p=1024;
(B)int *p=(float)x;
(C)float p=&x;
(D)float
*p=&x;
请读程序:
main() {
int x=1,y=0,a=0,b=0;
switch(x) {
case 1:
switch(y)
{ case 0: a
;break;
case 1: b
;break;}
case 2: a ;b
;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序输出结果是:
A. a=2,b=1
B. a=1,b=1 C. a=1,b=0 D.
a=2,b=0
以下程序的输出结果是
main()
{ int
a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A. 5 B.
4 C.
6
D. 不确定
设 int x=1, y=1;
表达式(!x||y--)的值是()
A、0
B、1
C、2
D、-1
语句for(a=0,b=0;b!=100&&a<5;a
)scanf(“%d”,&b);
scanf最多可执行次数为:()
A、4
B、6
C、5
D、1
以下程序的输出结果为( )。
int i;
void prt(
)
{
for(i=5;i<8;i )
printf("%c",'*');
printf("\t");
}
main( )
{
for(i=5;i<=8;i ) prt(
);
}
A ***
B ***
***
***
***
C ***
*** D *
*
*
在C语言程序中,以下说法正确的是()
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用都不可以嵌套D、函数的定义和函数的调用都可以嵌套
46. 设i和k都是int类型,则for循环语句(
)。
for(i=0,k=-1;k=1;i ,k
)
printf("****\n");
A、循环结束的条件不合法
B、循环体一次也不执行C、循环体只执行一次D、是无限循环
47. 设有说明
int (*ptr)();其中标识符ptr是(
)
A、是一个指向整形变量的指针
B、是一个指针,它指向一个函数值是int的函数C、是一个函数名D、定义不合法
48以下循环体的执行次数是______。
main()
{
int i,j;
for (i=0,j=1; i<=j 1;i =2,j--)
printf("%d \n",i);
}
A、3
B、2
C、1
D、0
49. 有以下程序
main()
{
int m[][3]={1,4,7,2,5,8,3,6,9};
int i,j,k=2;
for(i=0;i<3;i )
{
printf("%d ",m[k][i]); }
}
执行后输出结果是______。
A、4
5 6
B、2 5 8 C、3 6
9
D、7 8 9
50. 有以下程序
main()
{ char
s[]="abcde";
s =2;
printf("%d\n",s[0]);
}
执行后的结果是______。
A、输出字符a的ASCII码
B、输出字符c的ASCII码C、输出字符c
D、程序出错
51. 有定义语句:int b;char
c[10];,则正确的输入语句是______。
A、scanf("%d%s",&b,&c);
B、scanf("%d%s",&b,c);
C、scanf("%d%s",b,c);
D、scanf("%d%s",b,&c);
51. 以下程序的输出结果是______。
main()
{ int
x=10,y=10,i;
for(i=0;x>8;y= i)
printf("%d %d ",x--,y);
}
A、10 1 9 2
B、9 8 7 6
C、10
9 9 0
D、10 10 9 1
52. 若执行下面程序时:
int x;
scanf(“%d”,&x);
if(x >
5){printf(“%d\n”,x)};
else{printf(“%d”,
x)};
从键盘上输入5,则输出是:
A、7
B、6 C、5
D、4
53. 以下代码的输出结果为:
int x = 10,y =
10;
for(int i = 0; x
> 8; y = i)
{ printf(“%d %d”, x--
, y); }
A、10 1 9 2
B、9 8 7 6
C、9
10 9 10
D、10 10 9 1
54. 以下代码的输出结果为:
int sum;
for(int i = 0; i
< 5; i )
{ sum = i; }
A、10
B、9
C、11
D、不能确定
55. 以下代码的输出结果为:
int array[3] =
{1,4};
for(int i = 0;i
< 3;i )
{
printf(“%d
”,array[i]); }
A、1 4 0
B、0 1 4
C、1
0 4
D、1 4 4
56. 设变量定义为int x , *p =
&x;则&(*p)相当于:
A、*(&x)
B、*p
C、p
D、x
57. 以下代码的输出结果为:
void fun(int x,int
y)
{ int
temp;
if(x <
y)
{ temp = x ; x = y ; y
= temp; }
}
main()
{
int a = 4,b = 3,c =
5;
fun(a,b);fun(a,c);fun(b,c);
printf(“%d,%d,%d\n”,a,b,c);
}
A、3,4,5
B、5,3,4
C、4,3,5
D、5,4,3
58. 以下程序的输出结果是:
char s[] =
“abcde”;
s = 2;
printf(“%d\n”,s[0]);
A、
输出字符a的ASCII码B、输出字符c的ASCII码C、输出字符c D、程序出错
59. 有以下程序
void f(int x,int
y)
{
int t;
if(x
}
main()
{
int a=4,b=3,c=5;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出结果是______
A、3,4,5
B、5,3,4 C、5,4,3
D、4,3,5
60. 请读程序:
#include
f(int b[],int
n)
{ int
i,r;
r=1;
for(i=0;i<=n;i )
r=r*b[i];
return r;
}
main()
{ int
x,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
上面程序的输出结果是______
A、720
B、120
C、24
D、6
61有以下程序
main()
{
int i;
for(i=1;i<40;i )
{
if(i %5==0)
if( i%8==0)
printf("%d ",i);
}
printf("\n");
}
执行后的输出结果是______
A、5
B、24
C、32
D、40
62. 有以下程序
main()
{ int
k=5,n=0;
while(k>0)
{ switch(k)
{
default : break;
case 1: n =k;
case 2:
case 3: n =k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是______
A、0
B、4
C、6
D、7
63. 有以下程序
main()
{
int
k=4,n=0;
for(;n
{
n ;
if(n%3!=0)
continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是______
A、1,1
B、2,2
C、3,3
D、4,4
64. 有如下程序
void fun(int *x,int
*y)
{printf(“%d
%d ”,*x,*y);
*x = 3;*y =
4;
}
main()
{ int
x=1,y=2;
fun(&y,&x);
printf("%d %d",x,y);
}
该程序的执行结果是______
A、2
1 4 3
B、1 2 1 2
C、1 2 3 4
D、2 1 1 2
65. 下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main()
{ int
i,j;
for(i=1;i<=4;i )
{ for(j=1;j<=4-i;j )
printf("
");
for(j=1;j<=____;j )
printf("*");
printf("\n");
}
}
在下划线处应填入的是______
A、i
B、2*i-1
C、2*i 1
D、i 2
66.
设有以下程序段 int
x=0,s=0;
while(!x!=0) s = x;
printf("%d",s); 则______
A. 运行程序段后输出0
B. 运行程序段后输出1 C.
程序段中的控制表达式是非法的D. 程序段执行无限次
67. 以下程序的输出结果为( )。
main( )
{ char
c;
int i;
for(i=65;i<68;i
)
{ c=i 32;
switch(c)
{ case 'a':
case 'b':
case 'c':
printf("%c,",c);
break;
default:
printf("end");
}
}
}
A a,b,c,end
B a,a,a,end
C a,a,a,
D a,b,c,
68. 如果定义变量
int * p = NULL;int a = 5;float b =
3.5;下列代码会造成崩溃的是(
)
A、* p = a
B、p = &a
C、(p
= &a) 1 D、p =
&b
69. 利用宏,求三个数中的最大值,一下宏定义正确的是:
A、#define MAX(a,b,c)
((a)>(b)?(a):(b))>c?((a)>(b)?(a):(b)):(c)
B、#define MAX(a,b,c)
(a>b?a:b)>c?(a>b?a:b):c
C、A、#define
MAX(a,b,c)
(a)>(b)?(a):(b)>c?((a)>(b)?(a):(b)):(c)
D、B、#define
MAX(a,b,c)
a>b?a:b>c?(a>b?a:b):c
70定义一个函数指针,返回类型为void,参数为两个int型变量,一下定义正确的是(
)
A、
void (*p)(int,int) =
NULL;
B、
B、void *p(int,int) =
NULL;
C、
C、typedef void(*p)(int,int)
D、typedef void *p(int,int)