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) \0D) 6、下面一段程序是小写字母转换成大写字母的程序。 void main() { char cl cl二a; ( ); printf(〃c “,cl);} 那么括号处应该填写(C ) a clcl32 b clcl-64 c cl二cl-32d clcl64 |>设有程序段 irrt k10; whilek0 kkl; 则下面描述中正确的是A a wh订e循环执行10次b循环是无限循环 c循环体语句一次也不执行d循环体语句执行一次 8、逻辑运算符两侧运算对象的数据类型D a只能是0或1 b只能是0或非0正数 c只能是整型或字符型数据d可以是任何类型的数据 9、语句wh订e0;中表达式0等价于A a 1 b 0 c 01 d l0 10、以下对一维a的正确说明是D a int a10 b int n10, a[n] ; c int n; scanf d , n int a[n]; 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 a3, 4 c double a[3] [4]; d float a3 4 14、若有说明int a[10];则对a数组元素的正确应用是D a a[10] ba[3, 5] ca5 da[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, 97O 3、用scanf函数输入数据 include〈stdio. h void main {int a, b, c; scanf ad, bd, cd〃,a, b, c; printf d, d, d\n〃,a, b, c ; } a, b,c分别为3, 4, 5,请问在键盘上面怎么输入数据a二3,b二4c5 4、这个程序是输入三角形的三边长,求三角形的面积 include〈stdio. h include {float a, b, c, s, area; scanf 〃%f, f, f〃,a, b, c; sl. 0/2* abc ; //这里用1. 0的目的是保证s为float型 areasqrt s* sa * s-b * sc; printf ,za7. 2f, b7. 2f, c7. 2f, s7. 2f\n〃,a, b, c, s; printf 〃axea7. 2f\n〃, area ;} 程序中用了数学函数,所以你要在程序开头加一条include命令,把头文件 math, h 5、输入两个数,然后按照由大到小的次序输出。 void main {int x, y, z; scanf 〃%f, f ”,x, y; ifxy { } //这一步是通过z将x, y的值进行交换 printf〃%d , d〃,x, y;} t二x;xy;yt; 6、有程序片段 switchgrade { case A‘ printf “85T00\n ;break; case B‘ printf 70-84\n” ;break; case C‘ printf 60-69\n” ;break; case D‘ printf 60\n ;break; defauIt printf error\n;break; } 若grade的值为C,,则输出的结果是60-69 。 7、用do-wh订e语句,求1到100的和。 include〈stdio. h {int i, sumO; il; do {sum二sumi; 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; printfarray a \n〃