1、第 2次作业 一、单项选择题(本大题共 40分,共 20 小题,每小题 2 分) 1. 对于下面的文件内容和程序,正确的结论是( )。 /以下是文件 mydoc.txt 的内容 int s; s=100; /以下是 C程序内容 #include void main() #include “mydoc.txt“ printf(“s=%dn“,s); A. 程序有错,文件包含语句写在主函数体内 B. 程序没有错误,输出是: s=100 C. 程序没有语法错误 ,但没有输出数据 D. 程序有错,两个文件包含预处理语句使用了不同的括号括住文件名 2. 在 C程序中,可以定义全局变量位置是( )。 A.
2、 所有函数的外面 B. 主函数内部 C. 主函数形式参数表中 D. 前两个函数之间 3. 下面程序执行后的输出结果是( )。 #include #include void ptr1(); void ptr2(); void main() printf(“000“); ptr1(); ptr2(); printf(“n“); void ptr1() printf(“111“); ptr2(); void ptr2() printf(“222“); A. 000222111222 B. 111222000222 C. 000111222222 D. 222222000111 4. 数学公式 x1/
3、2+x4+lg(x)+ex 的正确 C表达式书写形式是( )。 A. x*(1/2)+pow(x,4)+lg10(x)+exp(x) B. sqrt(x)+pow(4,x)+lg10(x)+exp(x) C. sqrt(x)+pow(x,4)+lg(x)+pow(x) D. sqrt(x)+pow(x,4)+lg10(x)+exp(x) 5. 设有定义: double (*f)(int a,float b,double c);,那么能够被指针变量f指向函数的原型是( )。 A. double fun1(int a,int b,int c); B. double fun2(float a,int
4、 b,double c); C. int fun3(int a,float b,double c); D. double fun4(int ,float,double); 6. 设有 C语句序列: int a5,b10; int p2=a,b;,那么不能够表示 b数组 3号元素值的是( )。 A. b3 B. *(b+3) C. p13 D. p03 7. 设有 C语句序列: float x; double y;,如果将变量 y的值赋值给变量 x,( )。 A. 当 y值本身的精度没有超过 float能够表达的精度时,赋值结果会损失精度 B. 无论变量 y的值如何,变量 x都可以正确地接受赋值
5、 C. 无论变量 y的值如何,变量 x都不能正确地接受赋值 D. 当 y值本身的精度已经超过了 float能够表达的精度时,赋值结果会损失精度 8. 下面程序执行后的输出结果是( )。 #include int main() int a=0x3030,b=0x6060; int mask1=0x00ff,mask2=0xff00; a b|=mask2; printf(“a=0X%x,b=0X%xn“,a,b); return 0; A. a=0Xff30,b=0Xff60 B. a=0X30,b=0X60 C. a=0Xff30,b=0X60 D. a=0X30,b=0Xff60 9. 下面
6、程序执行后输出的结果是( )。 #include void main() int a10=1,2,3,4,5,6,7,8,9,10; int i,*p= *p=a0+a9; p= for(i=0;i struct T int a; int b; ; void swap(struct T *v); void main() struct T x2=10,20,30,40; swap(x); printf(“%d,%d,%d,%dn“,x0.a,x0.b,x1.a,x1.b); void swap(struct T *v) struct T t; t=*v; *v=*(v+1); *(v+1)=t;
7、 A. 10,20,30,40 B. 20,10,40,30 C. 40,30,20,10 D. 30,40,10,20 11. C语言中, 要表达整型变量 x能够被 3 整除时条件成立语义,应该使用( )。 A. x%3 B. !(x%3) C. x%3=1 D. x%3=2 12. C语言中,表达式 18/4*sqrt(4.0)/8的数据类型是( )。 A. int B. float C. double D. 不确定的 13. 以下对数组的初始化方法中,正确的是( )。 A. int x5=0,1,2,3,4,5; B. int x=0,1,2,3,4,5; C. int x5=5*A/B
8、; D. int x=(0,1,2,3,4,5); 14. 下面程序的功能是( )。 #include #include #include void main() int x,sum=0; int i; srand(unsigned)time(NULL); for(i=0;i=1;n-) if(n%3=0 A. 找出 1, 1000中能够被 3整除的最大数 B. 找出 1, 1000中能够被 5整除的最大数 C. 找出 1, 1000中能够被 3和 5同时整除的最大数 D. 找出 1, 1000中能够被 3和 5同时整除的最小数 16. 下面程序执行后的输出结果是( )。 #include v
9、oid ptr1(int n); void main() ptr1(-2014); printf(“n“); void ptr1(int n) if(n void swap(int *x,int y); void main() int a=5,b=10; printf(“%d,%d“,a,b); swap( printf(“,%d,%dn“,a,b); void swap(int *x,int y) *x=*x+y; y=*x-y; *x=*x-y; A. 5,10,10,5 B. 10,10,10,10 C. 5,10,10,10 D. 5,10,5,10 18. 下面程序段执行时,语句 c
10、+=1;执行的次数是( )。 int i,j,c=0; for(i=5;i;i-) j=4; while(j-) c+=1; A. 5次 B. 9次 C. 20次 D. 24次 19. 若用下面程序段判断整型变量 a能否被 5整除,那么( )。 if(a%5!=0); printf(“%d不能被 5整除 !n“,a); else printf(“%d能够被 5整除 !n“,a); A. 能够正确实现功能 B. 没有语法错误,但不能正确实现功能 C. 有警告出现,但能够正确实现功能 D. 有语法错误出现 20. 对于下面程序段,可以得到的结论是( )。 int a=-123,b=0; while
11、(a) b+=a; a+=2; A. 存在语法错误 B. 没有语法错误,能够正确执行并退出循环 C. 没有语法错误, a值为 0是退出循环 D. 没有语法错误,但会陷入死循环 二、判断题(本大题共 60 分,共 20 小题,每小题 3 分) 1. 下面代码段可以列举出所有能够被 3整除且含有数码 5的 2位整数。 int n; for(n=10;n100;n+) if(n%3=0 2. 数学中的方程或者函数,在程序设计语言中就是一个数据,应该定义一个变量来表示。 3. for循环结构与 while循环结构执行过程相同,都是先判断条件,当条件成立时执行循环体。 4. C语言中, *=和 +=两个
12、复合赋值运算符是同级运算。 5. 在实现循环嵌套时,为了提供执行效率,内层循环的控制变量最好和外层控制变量同名。 6. 下面代码段可以列举出所有的 2位偶数。 int a,b,n; for(a=1;a=9;a+) for(b=0;b=8;b+=2) n=a*10+b; printf(“%3d“,n); 7. 在 C语言中, else 关键字不能单独出现,在其前面必须由对应的 if 配合使用。 8. 由于空语句不进行任何有效的操作,所以空语句在程序中没有任何用处。 9. 对于 do-while循环结构,其循环体肯 定会执行一次。 10. 对于 while循环结构来说,循环体无论有多少条 C语句,
13、都可以不使用复合语句。 11. 只要使用了指针变量做函数的形式参数,无论在函数中如何使用这些指针形参,都可以通过它们修改对应实际参数的值。 12. 省略 for循环控制中的表达式 1和表达式 3,则其控制过程与 while 循环结构一致。 13. do-while循环结构与 while循环结构执行过程相同,都是先判断条件,当条件成立时执行循环体。 14. 在计算机程序设计中,无论问题多么复杂,只要归结为迭代算法解决的问题,那么程序的总体结 构上就必然是循环结构。 15. 假定已经知道了整型变量 x存放的起始位置是: 1234567,那么程序中可以使用指针变量定义语句: int *y=12345
14、67;是的 y指向 x。 16. 分支结构中,当控制条件满足时只能执行一个基本操作,或者是为某个变量赋值的操作;或者是输出某个数据对象的操作。 17. 空语句不但可以用在循环结构中表示循环体部分,也常用于分支结构中,表示条件成立时执行的语句。 18. 在 C语言中,与其它分支结构图一样, switch控制结构中的条件也可以是任意的表达式。 19. C语言中,复合语句只 能书写在函数体内部,而且在复合语句中还可以定义变量。 20. C语句序列: int a=-5; a/=a+=a*a;执行后,变量 a的值是 1。 答案: 一、单项选择题( 40 分,共 20 题,每小题 2 分) 1. B 2. A 3. C 4. D 5. D 6. D 7. D 8. D 9. D 10. D 11. B 12. C 13. B 14. C 15. C 16. D 17. C 18. C 19. D 20. D 二、判断题( 60 分,共 20 题,每小题 3 分) 1. 2. 3 . 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.