2009年08级C程序设计期末考试卷(B)
[注意] 所有答案写在单张的答题卷上。
一、判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。)
(1) C语言程序的变量必须先定义再使用。
(2) do-while语句构成的循环不能用其他语句构成的循环来代替。
(3) C语言规定,函数的实参应与其对应的形参类型一致。
(4) C语言认为名为Student和student的变量是不同变量。
(5) 当两个字符串所包含的字符个数相同时,才能比较两个字符串的大小。
(6) C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句。
(7) 在C语言中,八进制数是用英文字母o后加一个整数来表示,例如o123。
(8) C语言的所有循环语句都要求至少要执行一次循环体。
(9) 在C语言中,函数不能嵌套定义,但可以嵌套调用。
(10) 数组char x[]="12345";和char y[]={'1','2','3','4','5'};长度相同。
二、单选题(本题共20分,每小题2分)
(11) ______是合法的用户自定义标识符。。
[A] b-b[B] <fr>
[C] _isw[D] float
(12) _____是不正确的字符常量。
[A] '\n' [B] '1'
[C] "a"[D] '\101'
(13) 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和______等价。
[A] k=(a>b)?1:0; [B] k=a>b;
[C] k=a<=b;[D] a<=b ? 0 : 1;
(14) 在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。
[A] int [B] double
[C] void [D] char
(15) 如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是
________。
[A]#include<string.h> [B]#include<math.h>
[C]#include<stdio.h> [D]#include<ctype.h>
1
第页(共7 页)
(16) 在C 语言程序中,在函数内部定义的变量称为______。
[A]全局变量[B]外部变量[C]局部变量[D]内部变量
(17) 表达式(4 >> 2) - !-1 + 4 & 6 ^ 2 << 1的值是:
[A] 0 [B]    1 [C] 7 [D] 12
(18) C程序的基本结构有_____。
[A] 选择、重复和模块[B] 顺序、选择和循环
[C] 顺序、选择和模块 [D] 逻辑、物理和程序
(19) 函数调用语句func((a1,a2,a3),(a4,a5)); 的参数个数是:
[A]  2        [B] 5        [C]  1        [D]  调用方式不合法
(20) 对于如下说明,语法和语义都正确的赋值是___C__。
int c, *s, a[]={1, 3, 5};
[A] c=*s;      [B] s[0]=a[0];    [C] s=&a[1];      [D] c=a;
2
第页(共7 页)
三、程序填空题(本题共30分,每小题2分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。
1【程序说明】
输入1 个正整数n, 计算并输出s 的前n项的和。
S = 1 -1/2 + 1/3 - 1/4 + 1/5 -1/6 + ……
【程序代码】
#include <stdio.h>
void main( )
{ int k, flag, n;
float s;
flag=1; s=0;
scanf("%d", &n);
for (k=1 ; k<=n; k++){
s=s+ (21) ;
(22) ;
}
printf("sum=%f\n", s);
}
【选项】
(21) [A] 1/k[B] 1.0/k
[C] 1/k*flag[D] 1.0/k*flag
(22) [A] flag++[B] flag = -flag
编写c语言的软件[C] flag = -k[D] k= -flag
2【程序说明】
输入以-1结束的一批整数,输出其中的最大值。
例如: 输入-3 -8 -10 -1 后,输出:max=-3。
【程序代码】
#include <stdio.h>
void main( )
{ int max, x;
scanf("%d", &x);
if(x!=-1){
(23) ;
while( (24) ){
if(max<x)
max=x;
3
第页(共7 页)
(25) ;
}
printf("max=%d\n", max);
}
}
【选项】
(23)
[A] max=x[B] x= max
[C] max=-1[D] x=-1
(24) [A] x==-1[B] x!=-1
[C] x>-1[D] x<-1
(25) [A] scanf("%d", x)[B] scanf("%d\n", &x) [C] printf("%d", &x)[D] scanf("%d", &x)
3【程序说明】
求出200以内的整数中,最大的可以被17整除的数是哪个数。【程序代码】
#include <stdio.h>
___26___
{
int i;
for(____27____;____28____;i--)
{
if(___29____)
break;
}
printf("%d\n",____30_____);
}
【选项】
(26) [A]main() [B] void main()
[C] main(void)                  [D] int main()
(27) [A]200 [B] i=0
[C] i=200                      [D] int i=200
(28)
[A] i<200[B] i>200
[C] i<0[D] i>0
(29)
[A] i % 17 == 0                [B] i % 17 != 0
[C] i / 17 == 0[D] i / 17 != 0
(30) [A] i                          [B] i%17
[C] i/17    [D] i \17
第页(共7 页)
4
4【程序说明】
下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。
程序的输出结果是:After swap 5, 3。
【程序代码】
#include "stdio.h"
void main()
{
int a, b;
a = 3,
b = 5;
swap( 31 ) ;
printf("After swap %d, %d", a, b);
}
swap( 31 )
{ int t;
33 ;
34 ;
35 ;
}
【选项】
(31) [A] &a , &b[B] a , b
[C] &b, &a[D] b, a
(32)
[A] int x, int y[B] int &x, int &y
[C] int *y, int *x[D] int *x, int *y
(33)
[A] x=*t[B] t=*x
[C]t=x[D] x=t
(34)
[A] x=y[B] x=*y
[C] *x=*y[D] *x=y
(35)
[A] y=t[B] *y=t
[C] y=*t[D] *y=*t
四、程序阅读题(本题共20分,每小题5分)
阅读下列程序并写出运行结果。
1【程序】
# include <stdio.h> void main()
{ int k = 10;
do{
k = k - 1;
}while (k = =0);
printf("k=%d", k);
}
程序的输出结果是_______。
2【程序】
#include <stdio.h>
int z;
第页(共7 页)
5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。