C程序设计1-7章测试题(试题版本)
C程序设计1-7章测试题(04级) 班级学号 姓名 一、选择题:(每题3分,共45分) 1、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(A )。 A)必须为字母或下划线。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 2、下列运符中优先级最高的是(A ) A) ++ B) ( ) C) ?:D) | 3、C语言规定:在一个源程序中,main函数的位置(C ) A)必须在最开始 B)必须在系统调用的库函数的后面 0可以任意 D)必须在最后 4、一个C语言程序是由(B ) A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 5、代表换行的转义字符是(A ) A) \n B) \\ C) \0 D) 6、下面一段程序是小写字母转换成大写字母的程序。 void main() { char cl: cl二 a?; ( ); printf(〃%c “,cl);} 那么括号处应该填写(C ) a) cl=cl+32 b) cl=cl-64 c) cl二cl-32d) cl=cl+64 |>设有程序段 irrt k=10; while(k=0) k=k~l; 则下面描述中正确的是(A ) a) wh订e循环执行10次b)循环是无限循环 c)循环体语句一次也不执行d)循环体语句执行一次 8、逻辑运算符两侧运算对象的数据类型(D ) a)只能是0或1 b)只能是0或非0正数 c)只能是整型或字符型数据d)可以是任何类型的数据 9、语句wh订e(!0);中表达式!0等价于(A ) a) 1 b) 0 c) 0—1 d) l==0 10、以下对一维a的正确说明是(D ) a) int a(10) b) int n=10, a[n] ; c) int n; scanf ( “%d“ , d) int a[10]; 11、在c语言中,引用数组元素时,引用数组元素时,其数组下标的数组类型允许是(D ) a)整型常量 b)整型表达式c)整型常量或整型表达式d)任何类型的表达式 12、以下能对一维数组a进行正确初始化的语句是(A ) a) int a[10] = (0,0,0,0,0) ;b) int a[10] = {}; c) int a[] = {0}; d) int a[10]={10*l}; 13、以下对二维数组a的正确说明是(C ) a) int a[3, 4]; b) float a(3, 4) : c) double a[3] [4]; d) float a(3) (4): 14、若有说明:int a[10];则对a数组元素的正确应用是(D ) a) a[10] b)a[3, 5] c)a(5) d)a[0] 15、以下能对二维数组a进行正确初始化的语句是(D ) a) int a[2][] = {{l, 0,1}, {5,2,3}} ; b) int a[] [3] = {{1, 0, 1}, {5, 2, 3}}; c) int a[2][4] = {{l,0, 1}, {5,3}, {6}} ; d) int a[] [3] = {{1, 0, 1}, {}, {5, 3}} 二、填空题:(共10个空,每空4分,共40分) 1、输出单个字符 #include〈stdio. h> void main () {char a, b, c; a=,E ;b二 0 ;c二,Y ; put char (a) ; put char (b) ; put char (c) ; put char ( \n ) ;} 运行结果是(BOY ) o 2、有下面一段程序。 ^include〈stdio. h> void main () {int i二97; printf (“%c, %d\n〃,i, i) ;} 运行结果为(a, 97)O 3、用scanf函数输入数据 ^include〈stdio. h> void main () {int a, b, c; scanf (“a=%d, b=%d, c=%d〃, printf (“%d, %d, %d\n〃,a, b, c) ; } a, b,c分别为3, 4, 5,请问在键盘上面怎么输入数据(a二3,b二4c=5 4、这个程序是:输入三角形的三边长,求三角形的面积 #include〈stdio. h> #include {float a, b, c, s, area; scanf (〃%f, %f, %f〃, s=l. 0/2* (a+b+c) ; //这里用1. 0的目的是保证s为float型 area=sqrt (s* (s~a) * (s-b) * (s~c)); printf (,za=%7. 2f, b=%7. 2f, c=%7. 2f, s=%7. 2f\n〃,a, b, c, s); printf (〃axea=%7. 2f\n〃, area) ;} 程序中用了数学函数,所以你要在程序开头加一条^include命令,把头文件 (math, h) 5、输入两个数,然后按照由大到小的次序输出。 void main () {int x, y, z; scanf (〃%f, %f ”, if(x {int i, sum=O; i=l; do {sum二sum+i; (A );} wh 订 e ( B ); printf(〃%d\rT, sum);} A处应该填(i++), B处应该填(i〈二100)。 8、以下程序将一个2维数组行和列元素互换,存到另一个二维数组中去。 #include〈stdio. h> void main () {int a[2] [3] = {{1,2, 3}, {4,5,6}}; int b[3] [2], i, j; printf(“array a :\n〃)