C语言 复习题.doc

  • 格式:doc
  • 大小:87.49 KB
  • 文档页数:4

C语言试卷复习题

一选择题

1、 C语言中函数体一般包括? ( D )

A)声明部分 B)执行部分

C)语句部分 D)声明部分和执行部分

2、 在下列符号中,可以选用作变量名的变量符号是? ( C )

A. case B. "cde C. e_a D. c&c

3、 若 x 为 float 型变量,且 x = 1234. 123,则 printf 3f", x)语句输出为? ( A )

A. 1234.123 B.-1234.123 C. 01234. 123 D. 1234.1230

4、 在组成C程序的若干个函数中。(B )

A. 只能有一个主函数,它可以由编程者自己命名

B. 只能有一个主函数,它被规定命名为main。

C. 可能有一个以上的主函数,它可以由编程者自己命名

D. 主函数可有可无,如果有,它被规定命名为main()

5、 以下叙述正确的是? ( C )

A. 在C程序中,每行只能写一条语句

B. 在C程序中,整数和实数都能准确无误地表示

C. 若float a;C程序中允许赋值a=10;所以实型变量可以存放整型数

D. 在C程序中,%只能用于整型数的运算

6、 若x为int型变量,则逗号表达式(x = 4*5,x*5,x+25)的结果为? ( D )

A. 20 B. 45 C. 100 D. 125

7、 有说明char w; int x; float y;double z;则表达式w*x+z-y值的数据类型为? ( B )

A. float B. double C.int D. char

8、 逻辑运算符两端运算对象的数据类型为? ( B )

A,只能是0和1 B.只能是0和非0的正数

C.可以是任何类型的数据 D.只能是整型的数据

9、 若有说明:inta[10];则对a数组元素的正确引用是? ( D )

A. a[10] B. a[3. 5] C. a(5) D. a[10T0]

10、 下面是一个初始化指针语句:int *pt=&a;其中指针变量的名字应该是? ( A ) B. *a C.

px D.

&a A.

pt

11、在C语言中逻辑”真”用什么表示?( C

A. TRUE B.大于1的数 C.非0正数 D.非0

12、 对输入语句scanf ("%d:%d:%d”, &x, &y, &z)的正确输入为?( A )

A. 1:2:3 B. 1, 2, 3 C. 1 2 3 D. 123

13、 在C语言中,字符型数据在内存中是以(D )形式存放的。

A.原码 B. BCD码 C.反码 D. ASCII码

14、 以下述叙不正确的是(D )

A, 一个C源程序可以由一个或多个函数组成

B, 一个C源程序必须包含一个main函数

C. C程序的基本组成单位是函数

D. 在C程序中注释说明只能位于…条语句的后面

15、 在C语言中,int, char,和short三种类型数据所占用的内存(C )

A.均为2个字节 B.由用户自己定义

C,由所用机器的机器字长决定 D.是任意的

二填空题

1、 C源程序的基本单位是函数 。

2、 一个C源程序中至少应包,含一个 主函数 。

3、 在一个C源程序中,注释部分二侧的分界符分别为 ⑴/* 和 ⑵*/ 。

4、 在C语言中,输入操作是由库函数 (l)scanf 完成的,输出操作是由库函数 (2)printf

完成的。

5、 设C语言中int类型数据占2个字节,则long类型数据占4个字节 个字节。

6、 若 a=6, b=4, c=3,则表达式 a&&b+c | | b~c 的值是 。

三看程序写结果

1、请问下面程序片段的输出结果是什么:

int x=5;

int y=10; printf( "%d\n” , x++);

11

四、 解答题

1、 有两个整数,它们在机器内的表示分别是:

1111 1111 1111 1111 0100

0000 0000 0000 0000 1010

请问这是哪两个整数的补码表示?

分别是・12和10的补码表示。

2、 请说明break与continue的区别。

break是结束当前循环,进入循环体的下一次循环。

continue是结束本次循环,跳过循环语句中尚未执行的语句,接着进行循环条件的判断。

五、 编程题

1、 写一个程序,求分段函数y=f(x)的值,f(x)的表达式为:

f 2 1

X -1 1

x<-l

f"子 -l<=x<=l

尤之+l x>l

#i ncIude

ma i n ()

(

f I oat x, y;

pr intf ( “请输入一个数:”);

scanf ( "%d”,&x);

i f (x<~1)

y 二 x*x~1;

eIse i f (x<=-1)

y 二 x*x;

else y = x*x+1;

}

2、 数组a有10个元素,分别是7, 3, 2, 5, 9, 1, 6, 10, 4, 8。请用冒泡法对数组中的元素进行升序 排序。

#i ncIude "std i o.h” #def i ne N 10

vo i d ma i n ()

{

int i, j,t;

int a[N] = {7, 3, 2, 5, 9, 1, 6, 10, 4, 8}:

for (i=0;i

{

for (j=N-1 ; j>i ; j—)

if (a[j-1]>a[j])

{

t = a[j-1];

a[j-1] = a[j]:

a[j] = t;

}

}

pr i ntf ("排序结果为:\n");

for (i = 0; i

printf("%d", a[i]);