一、 选择题(30%:15小题,每小题2分) 得分
1. 以下叙述正确的是( )。
A) 在C程序中,main函数必须位于程序的最前面。 B) C语言的每一行中只能写一条语句。 C) C语言本身没有输入输出语句。
D) 一个程序的执行是从本程序的main函数开始,到本程序文件的最后一个函数结束。
2. 若有说明:int a[10]; 则对 a 数组元素的正确引用是( )。
A) a[10] B) a[3.5] C) a(5) D) a[10-10]
3. 下面关于\的说法正确的是( )。
A) 它代表一个字符常量 B) 它代表一个字符串常量 C) 它代表一个字符 D) 它代表一个变量
4. 若用数组名作为函数调用的实参,传递给形参的是( )。 A) 数组的首地址 B) 数组第一个元素的值 C) 数组全部元素的值 D) 数组元素的个数
5. 以下选项中属于C语言数据类型的是( )。
A)复数型 B)记录型 C)双精度型 D)集合型
6. 设 a=5,b=6,c=7,d=8,m=2,n=2, 则执行 (m=a>b)&&(n=c 7. 对于while语句,错误的说法是( )。 A) 用条件控制循环体的执行次数 B) 循环体至少要执行一次 C) 循环体有可能一次也不执行 D) 循环体中可以包含若干条语句 8. 设a=10、b=12,则printf(\则输出结果是 ( )。 A) 10 B) 11 C) 12 D) 13 第 1 页 共 7 页 9. 可判断变量 a为正,b为负的正确表达式是 ( )。 A) a*b <0 B) (a>0||b >0)&&a*b <0 C) (a<0||b<0)&&a*b <0 D) a>0&&a*b<0 10. 在C语言中要求参加运算的数必须是整数的运算符是( )。 A) / B) ! C) % D) = = 11. 下列程序段中while循环体执行的次数是( )。 int k=0; while(k=1) k++; A) 一次也不执行 B) 只执行一次 C) 有语法错,不能执行 D) 无限次 12. 若有以下说明,且0≤i<10,则对数组元素的错误引用是( )。 int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i; A) *(a+i) B) p+i C) a[p-a+i] D) *(&a[i]) 13. 有定义语句: int b; char c[10]; 则正确的输入语句是 ( )。 A) scanf(\ B) scanf(\C) scanf(\ D) scanf(\14. 设有如下定义: struct sk { int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。 A) p=&a; B) p=data.a; C)p=&data.a; D)*p=data.a 15. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( 第 2 页 共 7 页 。 ) A) 函数调用可以作为独立的语句存在 B) 函数调用可以作为一个函数的实参 C) 函数调用可以出现在表达式中 D) 函数调用可以作为一个函数的形参 得分 填空题(20%:20空,每空1分) 二、 1. C 语言对数组下标的引用一般从 开始。 2. C 语言中,一个函数一般由两个部分组成,它们是 和 。 3. 一个 C 程序中至少应包括一个 ____函数。 4. 根据变量的作用域,C语言的变量分为 和 。 5. 设 x为整型变量,则描述数学式“ 1 6. 在C语言中,表达式1/2的值是 ,表达式1.0/2 的值是 。 7. 下列程序段定义了一个数组并循环输入每个元素的值: int i,a[3]; for(i=0;i<3;i++) scanf(“%d”, _ ____); 8. 若定义了int a[10],*p; 将数组元素a[8]的地址赋给指针变量p的赋值语句是___ 。 9. 设一个C程序中有如下定义: char line[]=\; char * ptr=line; 则ptr中为 ,line[1]中为__ __,line[5]中为__ _。 10. 下列程序段的输出结果是__ ____。 main() 第 3 页 共 7 页