C语言AB卷考试真题与答案Word下载.docx
《C语言AB卷考试真题与答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言AB卷考试真题与答案Word下载.docx(12页珍藏版)》请在冰点文库上搜索。
A.x=10,y=66.6<
回车>
B.1066.6<
C.10<
66.6<
D.x=10<
y=66.6<
8.若x=0,y=3,z=3,以下表达式值为0的是C
A.!
xB.x<
y?
1:
0C.x%2&
&
y==zD.y=x||z/3
9.分析以下程序,下列说法正确的是C。
main()
{intx=5,a=0,b=3;
if(x=a+b)printf("
****\n"
);
elseprintf("
####\n"
}
A.有语法错,不能通过编译B.通过编译,但不能连接
C.输出****D.输出####
10.设i和x都是int类型,则for循环语句A。
for(i=0,x=0;
i<
=9&
x!
=876;
i++)scanf("
%d"
x);
A.最多执行10次B.最多执行9次
C.是无限循环D.循环体一次也不执行
11.程序段如下:
则以下说法中正确的是:
intk=-20;
while(k=0)k=k+1;
A.while循环执行20次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
12.下列程序段执行后k值为A。
intk=0,i,j;
for(i=0;
5;
i++)
for(j=0;
j<
3;
j++)
k=k+1;
A.15B.3C.5D.8
13.以下关于数组的描述正确的是C。
A.数组的大小是固定的,但可以有不同的类型的数组元素。
B.数组的大小是可变的,但所有数组元素的类型必须相同。
C.数组的大小是固定的,但所有数组元素的类型必须相同。
D.数组的大小是可变的,但可以有不同的类型的数组元素。
14.在定义inta[10];
之后,对a的引用正确的是D。
A.a[10]B.a[6.3]C.a(6)D.a[10-10]
15.C语言规定,函数返回值的类型是由D。
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型
二、填空题
1.表达式10+16%3的值为11。
2.写出满足下列条件的表达式:
a和b都不小于c,a>
=c||b>
=c。
3.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值为0。
4.能正确表达a>
=10或a<
=0的逻辑表达式是a>
=10&
a<
=0。
5.一个C源程序至少包含一个主函数,即main()。
三、程序编写
1、输入圆的半径,输出圆的面积。
(10分)
#include<
stdio.h>
main()
{
floatr,a;
a=3.14;
printf("
请输入圆的半径r="
%f"
&
r);
圆的面积是%.2f."
a*r*r);
}
2、输入一个整数,判断该数是奇数,还是偶数。
#include<
intmain()
{inta;
printf("
请输入一个整数a="
scanf("
a);
if(a%2==0)
%d是偶数\n"
a);
else
%d是奇数\n"
}
3、求10个价格中的最低价。
要求:
输入10个整数,输出最小值,用数组存放10个数据。
(15)
inti,a[10],min;
请输入10个价格:
\n"
for(i=0;
10;
{
价格%d="
i+1);
a[i]);
min=a[0];
if(min>
a[i])
min=a[i];
最低的价格是:
%d\n"
min);
4、求n!
。
用函数编写,采用两递归和非递归两种方法(15分)
方法一
intn,jie(n);
请输入n="
n!
=%d"
n);
jie(n));
jie(intn)
if(n<
0)printf("
n不能小于0\n"
if(n==0)return1;
if(n>
0)returnn=n*jie(n-1);
#include<
方法二
inta,n,i;
a=n;
for(i=1;
a;
i++)
n=n*i;
=%d\n"
n);
B卷
1.下列字符串是标识符的是:
A._HJB.9_studentC.longD.LINE1
2.以下说法中正确的是:
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须放在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
3.在C语言中,字符型数据在内存中以D形式存放。
A.原码B.BCD码C.反码D.ASCII码
4.已知有变量定义:
inta;
charc;
用scanf(“%d%c”,&
a,&
c);
语句给a和c输入数据,使30存入a,字符‘b’存入c,则正确的输入是:
B。
A.30’b’<
B.30b<
C.30<
b<
D.30b<
5.在C语言中,字符型数据在内存中以D形式存放。
6.已知有变量定义:
doublex;
longa;
要给a和x输入数据,正确的输入语句是C。
若要输出a和x的值,正确的输出语句。
A.scanf(“%d%f”,&
B.scanf(“%ld%f”,&
printf(“%d,%f”,a,x);
printf(“%ld,%f”,a,x);
C.scanf(“%ld%lf”,&
D.scanf(“%ld%lf”,&
printf(“%ld,%lf”,a,x);
7.下述for循环语句B。
inti,k;
for(i=0,k=-1;
k=1;
i++,k++)printf("
****"
A.判断循环结束的条件非法B.是无限循环
C.只循环一次D.一次也不循环
8.以下能正确定义数组并正确赋初值的语句是D。
A.intn=5,b[n][n];
B.inta[1][2]={{1},{3}};
C.intc[2][]={{1,2},{3,4}}D.inta[3][2]={{1,2},{3,4}}
9.在执行inta[][3]={1,2,3,4,5,6};
语句后,a[1][0]的值是A。
A.4B.1C.2D.5
10.在C语言中,当函数调用时A。
A.实参和形参各占一个独立的存储单元
B.实参和形参共用存储单元
C.可以由用户指定实参和形参是否共用存储单元
D.由系统自动确定实参和形参是否共用存储单元
11.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是B。
A.float型B.int型C.long型D.double型
12.在C语言程序中,以下描述正确的是B。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
13.下列程序的输出结果是(C)。
main()
Inta=0,b=0,c=0,d=0;
if(a=1)
b=1;
c=2;
d=3;
printf(“%d,%d,%d,%d\n”,a,b,c,d);
0,1,2,0B.0,0,0,3C.1,1,2,0D.编译错误
14.若有定义:
fiotx=1.0;
inta=1,b=3,c=2;
正确的switch语言是(C)。
A.switch(x)
Case1.0:
printf(“*\n”);
Case2.0:
printf(“**\n”);
B.switch((int)x)
Case1:
Case2:
C.switch(a+b)
Case2+1:
D.switch(a+b)
Casec:
15.以下叙述中错误的是(C).
A:
对double类型数组,不可以直接用数组名对数组进行整体输入或输出
第1页,共4页
B:
数组名代表的是数组所占存储区的首地址,其值不可改变
C:
当程序执行时,数组元素的下标超出所定义的下表范围时,系统将给出“下标越界”
的出错信息
D:
可以通过赋初值的方式确定数组元素的个数
1.一个函数由两部分组成,它们是函数名和函数体。
2.下列程序段的输出结果(AAA)。
Intx=0,y=0;
If(x==y)
Printf(“AAA”);
Else
Printf(“BBB”);
4.printf函数的“格式控制”包括两部分,它们是格式声明和普通字符。
1、输入矩型的长和宽,输出矩形面积。
{intb,l,s;
请输入矩形的宽b="
b);
请输入矩形的长l="
l);
s=b*l;
矩形面积s=%d\n"
s);
2.输入一个整数,判断该数能否被3整除。
if(a%3==0)
%d能被3整除\n"
%d不能被3整除\n"
3.输入10个数,输出平均值,要求用数组存放10个数据。
(15分)
inti,a[10],h,p;
请输入10个整数:
整数%d="
h=0;
h+=a[i];
p=h/10;
平均数是:
p);
4.编写求和函数,输入一个正整数n,求出1+2+3+…+n(15分)
请输入一个正整数n="
sum=%d\n"
if(n==0)return0;
if(n==1)return1;
1)returnn=n+jie(n-1);