C语言期末考试试卷
飞向蓝天的恐龙-品管职责
姓
名
学
号
学
院
(
系
)
年
级
班
(
密
封
线
内
勿
答
题
)
北京联合大学信息学院
程序设计基础课程 期(末)考试
(2011—2012学年 第2学期)
本科√ 专科□
A卷√
B卷□
(考试时间90分钟)
题号
分数
一
二
三
四
五
总分
一、 选择题
(本大题共10个小题,每小题2分,共20分)
得分 评阅人
1、从循环体内某一层跳出,继续执行循环外的语句是( A )。
A.
break语句 语句 ue语句 D.空语句。
2、数组名作为实参传给被调用的函数时,形参获得的是( C )。
A.该数组第一个元素的值 B.该数组所有元素的值
C.该数组第一个元素的首地址 D.该数组所有元素的首地址
3、若有定义:float
d[20]={11.0,12.5};,那么,d[10]的值是多少?d[20]呢?(0 ,不存在)
A.B.C.D.
for(i=0; i<3; i++ )
printf(
}
程序运行后的输出结果是( D )
A)1 11 21 B)2 12 22
C)3 13 2
D)1 12 23
9、有以下程序:
void main( )
{
int i,sum=0;
for(i=1; i<5;i++,i++)
sum+=i;
printf(
}
程序的输出结果是( C
)
A) 随机值 B)10 C)4 D) 9
10、若变量c为char类型,能正确判断出c为大写字母的表达式是( D )。
A.'A '<=c<='Z' B. (c>='A')||(c<='Z')
C.('A'<=c) and ('Z'>=c) D. (c>='A') &&
(c<='Z')
二、填空题
(本大题共10个小题,每小题2分,共20分)
得分 评阅人
1、求余运算符%两边运算对象的数据类型只能是 【1】 整型
。
2、设有定义:int *p,x=5; 请写出使指针p指向变量x的赋值语句 【2】
p=&x 。
3、设有定义:int a[
]={1,2,3,4,5,6,7,8}; 则数组元素a[a[2]]的值是【3】 4
。
4、请写出一条输入语句,为双精度型变量
scanf(“%lf”,&ch);
。
5、
当a=3,b=2,c=1时,表达式f=a【5】
1 。
6、若有定义:float
d[20]={11.0,12.5};,那么,d[10]的值是【6】
0.000000___________。
7、字符数组char
s[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};与字符串char t[
]=”Hello!”;
的区别是【7】
字符串因系统会在最后加上结束符‘0’,从而比字符数组多一个元素 。
8、语句
for(k=0;k<5; k++)
{ if(k= = 3) continue;
printf();
ch读入数据【4】
(
密
封
线内
勿
答
题
)
4、若有语句scanf(“a=%d,b=%d”
,&a,&b);要使变量a,b分别得到12和34;正确的输入形
式为( D )。
A.12 34 B.12,34 C.1234 D.a=12,b=34
5、数组定义char
a[10]={`a`,`b`,`c`}:包括了几个元素_____D_______________。
A.3 B.9 C.4 D.10
6、设变量定义为 int a[4]={1,4,7},*p=&a[3];, 则*p的值是(
A )。
A. &a[3] B. 4 C. 7 D. 0
7、有以下函数:
int fun(int x, int y)
{
return x
A) 返回x和y中较大的数 B)总返回“假”
C)返回x和y中较小的数
D)总返回“真”
8、有以下程序
void main( )
{
int x[3][3]={ {1,2,3},{11,12,13},{21,22,23} };
int i;
}的执行结果是_【8】___0124_________。
第1页 共 3页
封
线
内
勿
答
题
)
北京联合大学信息学院
9、判断变量n不是5的
倍数为真的逻辑表达式为:_【9】___(n%5)!=0________。
10、对于定义int data[3][4]={{1,2},{5},{11,12,13,14}
};,其第3行、4列的元素名称和数值
密
(
班
分别
是:_【10】_______data[2][3]_______和_____14__________。
三、判断题
(本大题共10个小题,每小题2分,共20分)
得分 评阅人
级
年
1、已知a=3;b=5;执行a=b;b=a;后,可以使a的值为5,b的值为3。( ×
)
2、如果一个函数需要返回多个数据,可以多写几个return语句实现。( ×
3、函数没有形参就无法计算并返回结果。( × )
4、int a[10];语句a[10]=10;能够正确执行。( ×
)
5、若x的值为0,则下面的语句的输出是 * 。( ×
)
)
switch(x)
系
{
(
case 1:
院
printf(”+”);
学
case 2:
printf(”-”);
break;
default:
printf(”*”);
case 5:
printf(””);
}
5、定义char
a[]=”apple”,b[10];strcpy(b,a);后,数组a和b的内容相等。(
6、函数返回值的类型由return语句决定。( × )
7、假设有int a[10],*p; 则p=&a[0]与p=a等价。( √
)
8、数组的下标从1开始。( × )
9、执行以下代码段
号
char a[20];
学
gets(a);
puts(a);
如果输入 How are you (回车),则屏幕输出How are you ( √
)
10、若x、i为整型变量,x的值为10,则下面的循环结束后,x为0,i为1。
while(x>0) i=x--; ( √ )
名
四、阅读分析题
(本大题共4个小题,每小题5分,共20分)
姓
得分 评阅人
)
题
答
勿
内
线
封
密
(
1、 对程序段
scanf(“%d”,&x);
if(x)
if(x>0) y=-10;
else y=x*x;
else
y=x+10;
printf(“y=%dn);
)
当输入-5 ,0时程序的结果分别是:
25 10
2、 对以下程序段,当输入6 ,7时程序的结果分别是:
y=10;
scanf(“%d”,&x);
switch(x%7+2)
{
case 5: y++;
case 3: ++ y;break;
case 1: --y;break;
default: y=0;
case 4:
y=x;break;
case 6: y=++x;
}
printf(“y=%dn”,y);
6 7
√ )
3、分析以下程序并给出执行结果。
void main()
{
char i,j;
for(i=0;i<5;i++)
{
for(j=i;j<6;j++) AB
{ C
if(2==j) break;
printf(“%c”,i+j+’A’); GHI
}
IJ
printf(“n”);
}
}
第2页 共 3页
(空一行)
北京联合大学信息学院
姓
名
学
号
学
院
(
系
)
年
级
班
(
密
封
线
内
勿
答
题
)
密
封
线
内
勿
答
题
)
4、分析以下程序并给出执行结果。
#include
void
main()
{
int a[]={2,4,6,8,10,12,14};
int y=1,x,*p;
p=&a[0];
for(x=0;x<6;x++)
y=*(p+x);
printf(
}
程序的运行结果是:___
_____________12___________________。
{
char str [80];
int i, iA=0, ia=0,
iother=0;
五、程序题
(本大题共3个小题,第1,2小题各5分,第3小题10分,共20分)
得分 评阅人
1、根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。(本题5分)
#include
void swap (int *,
int *);
void main (void)
{
int x, y;
scanf(“%d, %d”, &x, &y);
swap( &x, &y);
printf(“%d, %d”,
x, y);
}
}
void swap( )
3、设一个函数的头部为 void sortarray(int arr[ ],int
m),其形参arr接收数组名,m接收
{
数据个数,完成对数组进行由小到大排序,写出该函数。 (本题10分)
„„
3、
完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数iA、小写字母个数ia、
其他字符个数iother。(本题5分)
#include
#include
void main ()
第3页 共 3页
北
京联合大学信息学院
第 X页 共 Y页
第4页 共 3页