内容发布更新时间 : 2025/1/4 2:05:09星期一 下面是文章的全部内容请认真阅读。
中国地质大学(武汉)学生课程考核出题专用纸 教务处制 试卷类别 [A] 使用班级
装
全校统考
使用学期
2011年秋
订
命题人签字 邓泽 陈晶 线
审题人签字
熊慕舟
赵丹
审定人签字
____________ 考核课程名称: C语言程序设计 学时: 56 考核方式:笔试开卷、笔试闭卷、口试、其它 卷面页数: 共 10 页 考试时间:_ 2012年1月11日 _ 注意: 所有答案全部做在答题纸上, 做在试卷上无效! 考核内容: 一、单项选择 (每题2分,共30分) 1. 以下C语言标识符中,不合法的是 。 A) _1 B) AaBc C) a_b D) --a 2. 以下选项中可以用作C程序合法浮点型常量的是 。 A) 1.1e0 B) 3.0e0.2 C) e9 D) 9.12e 3. 若有定义语句:int x=12, y=8, z;,在其后执行语句z=0.9+x/y;,则z的值为 。 A) 1.9 B) 1 C) 2 D) 2.4 4. 若有定义语句:int k1=10,k2=20;,执行表达式 (k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为 。 A) 0和1 B) 0和20 C) 10和1 D) 10和20 5. 若有定义语句int s,i,j,n;,在以下循环语句中,不能正确计算自然数1-100中所有数之和的是 。 A) for(s=0,i=1;i<=100;) s+=++i; B) for(s=100,n=100;--n;) s+=n; C) for(s=0,i=1,j=100;i<=j;i++,j--) s+=i+j; D) for(s=0,i=0;i<=100;) s+=i++; 6. 以下定义数组的语句中错误的是 。 A) int num[ ]={1,2,3,4,5,6}; B) int num[ ][3]={{1,2},3,4,5,6}; C) int num[2][4]={{1,2},{3,4},{5,6}}; D) int num[ ][4]={1,2,3,4,5,6}; 7. 若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf(“*****\\n”); 下面关于语句执行情况的叙述中正确的是 。 A) 循环体执行两次 B) 循环体执行一次 C) 循环体一次也不执行 D) 构成无限循环 第1页/共10页
8. 设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是 。 A) if(a>b) c=a,a=b,b=c; B) if(a>b){c=a,a=b,b=c;} C) if(a>b) c=a;a=b;b=c; D) if(a>b){c=a;a=b;b=c;} 9. 有以下函数(x和y均为指向字符串的指针) int fun(char *x, char *y) { int n=0; while ((*x==*y) && *x!=’\\0’) {x++; y++; n++; } return n; } 函数的功能是 。 A) 查找x和y所指字符串中是否有’\\0’ B) 统计x和y所指字符串中最前面连续相同的有效字符的个数 C) 将y所指字符串赋给x所指存储空间 D) 统计x和y所指字符串中相同的字符个数 10. 若有定义语句:char *s1=”OK”, *s2=”ok”;,以下选项中,能够输出”OK”的语句是 。 A) if (strcmp(s1,s2)==0) puts(s1); B) if (strcmp(s1,s2)!=0) puts(s2); C) if (strcmp(s1,s2)==1) puts(s1); D) if (strcmp(s1,s2)!=0) puts(s1); 11. 设有定义:double x[10], *p=x;,以下能给数组x下标为6 的元素从键盘读入数据的正确语句是 。 A) scanf(“%f”, &x[6]); B) scanf(“%lf”, *(x+6)); C) scanf(“%lf”,p+6); D) scanf(“%lf”,p[6]); 12. 下列定义数组的语句中,正确的是 。 A) int N=0;int x[N]; B) int x[0…10]; C) #define N 10 D) int x[]; int x[N]; 13. 以下选项中正确的语句组是 。 A) char s[ ]; s=\ \ B) char *s; s={\ \C) char s[10]; s=\ \ D) char *s; s=\ \ 第2页/共10页
14. 有定义语句:double a[10], *s=a;,以下能够代表数组元素a[3]的是 。
A) (*s)[3] B) *s+3 C) *s[3] D) *(s+3) 15. 有以下定义和语句 struct workers { int num; char name[20]; char c; struct { int day; int month; int year;}s; }; struct workers w, *pw; pw=&w; 下面的语句正确的是 。 A) *pw.year=1980; B) w.year=1980; C) pw->year=1980; D) w.s.year=1980; 二、程序阅读题 (每题3分,共30分) 16. 有以下程序 #include