if(y<0)z=0;
elsez=z+1;
printf(“%d\n”,z);
}
A.0B.1C.2D.3
19.以下程序段的输出结果是(B)
inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%2db=%2dc=%2d\n",a,b,c);
A)a=10b=50c=10B)a=10b=30c=10
C)a=50b=30c=10D)a=50b=30c=50
四、循环结构
2.break语句不能出现在(D )语句中
A.switchB.forC.whileD.if…else
4.语句while(!
y);中的表达式!
y等价于A
A)y==0B)y!
=1C)y=!
0D)y==1
5.若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行(A )
A.无限次 B.不确定次 C.10次 D.9次
6.有以下程序段
intk=0
while(k)k++;
则while循环体执行的次数是C
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
7.下列循环语句中有语法错误的是(D)
Awhile(x=y)5;Bwhile(0);
Cdo2;while(x==b);Ddox++while(x==10);
9.以下程序段(A)
x=-1;
do{x=x*x;}
while(x>0);
A.是死循环B.循环执行一次C.循环执行二次D.有语法错误
10.下面程序段执行后的结果为:
(B)
intsum=0,n=10;
do{sum=sum+n;
n++;}
while(n<10)
printf(“%d,%d”,sum,n)
A.0,10B.10,11C.0,11D.以上结果都不对
11.对以下程序段的叙述正确的是___A____.
intx=1;
do
{x=-1*x;}
while(!
x);
A)是死循环B)循环执行一次C)循环执行二次D)有语法错误
13.执行语句{for(j=0;j<=3;j++)a=1;}后变量j的值是C.
A)0B)3C)4D)1
14.有如下程序
main()
{inti,sum=2;
for(i=1;i<=3;i+=2)sum+=i;
printf(“%d\n”,sum);}
该程序的执行结果是A
A)6B)3C)死循环D)4
16.设x和y均为int型变量,则执行以下的循环后,y的值为(D )。
for(y=1,x=1;y<=50;y++)
{
if(x>=0)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A.2B.4C.6D.1
五数组
1.以下对一维数组a的正确说明是:
D
A)chara(10);B)inta[];
C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’};
2.以下能对一维数组a进行初始化的语句是:
(C)
A.inta[5]=(0,1,2,3,4,)B.inta(5)={}
C.inta[3]={0,1,2}D.inta{5}={10*1}
4、已知:
inta[10];则对a数组元素的正确引用是(D)。
A、a[10]B、a[3.5]C、a(5)D、a[0]
5.执行下面的程序段后,变量k中的值为C
A)不定值B)33C)30D)10
intk=3,s[2];
s[0]=k;k=s[0]*10;
7.若有以下数组说明,则数值最大的和最小的元素下标分别是(B )。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
A.1,12B.0,11C.1,11D.0,12
8.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。
inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A.10B.9C.6D.5
11.若有说明:
inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:
(B)
A.2B.3C.4D.无确定值
13.下面程序段的输出结果是:
(C)
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
A)159B)147C)357D)369
14.对二维数组的正确定义是(C )
A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6};
C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};
15.已知inta[3][4];则对数组元素引用正确的是__C___
A)a[2][4]B)a[1,3]C)a[2][0]D)a
(2)
(1)
六、函数
1.C语言中函数返回值的类型是由A决定的.
A)函数定义时指定的类型B)return语句中的表达式类型
C)调用该函数时的实参的数据类型D)形参的数据类型
2.在C语言中,函数的数据类型是指(A)
A函数返回值的数据类型B.函数形参的数据类型
C调用该函数时的实参的数据类型D.任意指定的数据类型
5.在函数调用时,以下说法正确的是(B )
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里
9.以下叙述中正确的是A
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
10.用数组名作为函数调用时的实参时,传递给形参的是A。
A)数组首地址B)数组第一个元素的值
C)数组全部元素的值D)数组元素的个数
13、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。
能正确执行此功能的函数是(D)。
B、funb(intx,inty)
{intt;
t=x;x=y;y=t;
}
A、funa(int*x,int*y)
{int*p;
*p=*x;*x=*y;*y=*p;
}
D、fund(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
C、func(int*x,int*y)
{int*p;
p=x;x=y;y=p;
}
14.有如下程序
intfunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=x,z=8,r;
r=func(func(x,y),func(y,z));
printf(“%d\n”,r);}
该程序的输出的结果是C
A)12B)13C)14D)15
17.在C语言中,表示静态存储类别的关键字是:
(C)
A)autoB)registerC)staticD)extern
18.未指定存储类别的变量,其隐含的存储类别为(A)。
A)autoB)staticC)externD)register
七、结构体
1.若有以下说明语句:
structstudent
{intnum;
charname[];
floatscore;
}stu;
则下面的叙述不正确的是:
(D)
A.struct是结构体类型的关键字
B.structstudent是用户定义的结构体类型
C.num,score都是结构体成员名
D.stu是用户定义的结构体类型名
2.若有以下说明语句:
structdate
{intyear;
intmonth;
intday;
}brithday;
则下面的叙述不正确的是__C___.
A)struct是声明结构体类型时用的关键字
B)structdate是用户定义的结构体类型名
C)brithday是用户定义的结构体类型名
D)year,day都是结构体成员名
4.以下对结构变量stul中成员age的非法引用是B
structstudent
{intage;
intnum;
}stu1,*p;
p=&stu1;
A)stu1.ageB)student.ageC)p->ageD)(*p).age
6.存放100个学生的数据、包括学号、姓名、成绩。
在如下的定义中,不正确的是(B)。
A.structstudent
{intsno;