1、共 9页 第 1 页 江 苏 大 学 试 题 课程名称 计算机基础及C语言(Ⅱ) 开课学院 计算机学院 使用班级 考试日期 . 注意事项: 1. 闭卷考试。考试时间为120分钟。 2.答案均请用铅笔涂在答题卡上。将答题卡上的试卷类型涂A(补考则涂B)。 3.请将答题卡、试卷都写上班级、学号、姓名、任课教师。考试结束分别交予监考老师。 一、 选择题(30分,每小题1分,请涂写在答题卡上) 1. 以下常量中正确的是 D 。 A.'abc' B. '\x123'
2、 C.3.145E-1.2 D. "a" 2. 以下选项中,不能用作变量名的是 D 。 A. _1234_ B._1_2 C.int_2_ D.2_int_ 3. 设有“int a;”,以下不能正确表达1010&&a<15 D.!(a<=10)&&!(a>=15) 4. 已知数据类型定义和变量声明如
3、下: struct sk {int a; float b;}data[2], * p; 若有p=data,则以下对data[0]中成员a的引用中错误的是 A 。 A. data[0]->a B. data->a C. p->a D. (* p).a 5. 下列程序的程序输出结果为 A 。 #define X(a) a*a main() { printf(“%d\n”,X(4+5));} A.29 B.18 C.20 D.25 6. 若有定义“enum seq{mouse, cat,
4、 dog, rabbit=0, sheep, cow=6, tiger};” 则执行语句“printf(“%d”,cat+sheep+cow);”后输出的结果是_____C______。 A. 6 B.7 C.8 D. 9 7. 以下能将字符串“good!”正确地存放在字符数组s中,或使指针s能指向这个字符串的是______D______。 A. char s[4]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’}; B. char s[5];s=“good!”; C. int s[5]= “good
5、 D. char *s;s=“good!”; 江 苏 大 学 试 题 第2页 8. 设有说明: union data { int i ;float f; struct{ int x;char y;}s; double d; }a; 则变量a 在内存中所占字节数为_ A __ 。 A.8 B.17 C.9 D.15 9. 设已有非空文本数据
6、文件filel.dat,要求能读出文件中原有的全部数据,并在文件原有数据之后添加新数据,则用FILE *fp=fopen("file1.dat", D )打开该文件。 A. "w" B. " w+" C. "r+" D. "a+" 10. 以下关于if语句的错误描述是 B 。 A. 条件表达式可以是任意表达式 B. 条件表达式只能是关系表达式或逻辑表达式 C. 条件表达式的括号不可以省略 D. 与else配对的if语句是其之前最近的未配对的if语句 11. 在以下不致造成死循
7、环的语句是: A 。 A. for(y=0,x=1; x>++y; x=i ++) i =x; B. for(; ;x+=i ); C. while(x=8) x--; D. for(i =10,sum=0; sum<=i ;) sum= --i ; 12. 设有定义:“float y=3.45678;int x;”,则以下表达式中能实现将y中数值保留小数点后2 位,第3位四舍五入的表达式是: B 。 A. y=(y*100+0.5)/100.0 B. x=y*100+0.5,y=x/100.0 C. y=y*100+0.5/1
8、00.0 D.y=(y/100+0.5)*100.0 13. 以下程序段输出结果是: C 。 int a=10,b=11,c=12,s; s=a++<=10&&b--<=2&&c++; printf(“%d,%d,%d,%d”,s,a,b,c); A. 0,11,10,13 B. 1,11,10,13 C. 0,11,10,12 D.1,11,10,12 14. 设有“char s[ ]=“Program”,*p=s;”,则以下叙述中正确的是: C 。 A. 数组s的内容与指针变量p中
9、内容相同 B. 数组s的长度与strlen(p)的值相等 C. p[5]的值等于s[5]的值 D. sizeof(s)等于sizeof(*p) 15. 下列程序段执行后变量j的值是: B 。 int j; char *s="x\045\""; for(j=0;*s++;j++); 江 苏 大 学 试 题 第3页 A. 7 B. 3 C. 4 D. 5 16.
10、若有定义语句“static char str[4][20]={ "thank", "you","very","much! "};”则str数组中存储'\0' 的数组元素有: D 个。 A. 0 B. 17 C. 21 D. 63 17. 下列正确的声明说明语句是 D 。 A. float m=15,n=4,q=m%n; B. int n=10, y[n]; C. char p[2][ ]={ "DOS","WINDOWS"}; D. char *p[ ]={ "DOS","WIN
11、DOWS","UNIX"}; 18. 设有函数f的定义如下: void f(int x, int *y) { *y=x*x*x;} main( ) { int j,c[4]={1,2,3,4},s[4]={0}; for(j=0;j<4;j++) { /* 调用f函数*/ printf(“%d”,s[j]); } } 若在main函数中欲调用函数f,则正确的调用语句是______C______。 A. f(c,s);
12、 B. f(c[i ],s[i]); C. f(*(c+i),&s[i]); D. f(c+i ,s+i ); 19. 执行以下程序段后,x,w的值为_____C_______。 int x=0,y=1,z=2,w; if(x++) w=x; else if(x++&&y>=1) w=y; else if(x++&&z>1) w=z; A. 0,1 B. 1,1 C. 2,1 D.3,2 20. 已知有声明语句“int a[5]={1,2,






