试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值, 则 xlly 为假的条件是 x 和 y( ) A. 均为真 B. 其中一个为真 c. 均为假 D. 其中一个为假 3. 枚举类型中的每个枚举常量的值都是一个 ( ) A. 整数 B. 浮点数 c. 字符 D. 记录 4. 循环语句 "for(i=o;i<=n;i++ )S;" 中循环体 S 被执行的次数为 ( A. 1 C. n B. n-l D. n+l 5. 假定有语句为 "int a[4j[5j={ {l, 3, 时, {2, 8}};", 贝 tl a [l J[lJ 的值为 ( ) A. 3 C. 8 B. 5 D. 2 6. 在下面的选项中, 不能作为函数的返回值类型的是 ( ) A. void B. node C. int D. long 1038
7. 假定 x 的值为 5, y 的值为 6, 则表达式 x++ 养一 -y 的值为 ( ) A. 25 C. 36 B. 30 D. 42 8. 用 calloc 函数创建具有 10 个整型元素的动态存储空间的正确调用是 ( ) A. callocc1 0, sizeofc char)) C. callocc1 0, sizeof(int)) B. calloc(10) D. calloc(sizeof(int), 10) 9. 假定有语句 "int b[1 0], 铃 pb 户, 则不正确的赋值为 ( ) A. pb=b C. pb=b+2 B. pb=b[5] D. pb= &.b[o] 10. 标准输入设备的文件流标识符是 ( A. stderr C. stdout B. stdin D. stdio 二 填空题 ( 每小题 2 分, 共 26 分 ) 11. C 语言中的每条复合语句以 作为结束符 12. 在 # include 命令中所包含的文件, 可以是头文件, 也可以是 文件 13. 十进制数 35 对应的十六进制数为 l4. 假定 x=8, 则表达式 2 十 x 十十的值为 15. 对于 "forci=0;i<10;i 十十 )S" 语句, 循环体 S 被执行的次数为 16. 若 x=5, y=8, 则执行 "i f( x>y)c=2 ;else c=3;" 语句后, c 的值为 17. 假定二维数组的定义为 "int a[3][5]z", 则该数组所包含的元素个数为 18. 执行 "typedef int ABC[10];" 语句把 ABC 定义为具有 10 个整型元素的一维 类型 19. strcato 函数用于 两个字符串 20. 假定 p 所指对象的值为 25, p+1 所指对象的值为 16, 则养 p 十十的值为 2 1. 若要把一个指针 p 强制转换为字符指针, 则采用的强制转换表达式为 22. NULL 是一个符号常量, 作为空指针, 它所表示的整数值为 23. 假定要动态分配一个类型为 struct W orker 的对象, 并由 r 指针指向这个对象, 则 r 的 数据类型为 1039
得分 评卷人 三 写出下列每个程序运行后的输出结果 ( 每小题 6 分, 共 30 分 ) 24. # include<stdio. h> void main C) { inti, s=o; forci=l ;s<10;i 十 +) if(i%2= =O)s+=i; printf("s= %d\n",s); 25. # include<stdio. h> void maino{ int a[6j={36,25,48,24,55,40}; int i=0,x=24; while(a[ij! =x && i<6)i++; ifci<6)printf(" %d\n",i); 26. # include<stdio. h> void SB(charch) { switch(ch) { case' A' : prin tf ( " 1 " ) ; break; case'b' :printf( "2"); break; default: printf(" 3") ; break; 1040
void main () { char a1= 'a',a2= 'B',a3=' A 勺 SB(al) ;SB(a2) ;SB(a3); 27. :1* include<stdio. h> :1* define M 6 void maino int i, x1=0, x2=0; int a[mj={2, 5,8,4,6,9}; for(i=0;i<m/2 ;i++) {x1 十 =a[ij;x2+=a[m 一 i-1j;} printf(" %d%d\n", x1,x2); 28. :1* include<stdio. h> struct Worker{ char name[l5j ; int age; float pay; } ; void maino { struct Worker x= {"wanghua",48, 2500}; struct W orker y, 祷 p; y=x;p=&x; printf(" %d\n", y. age+p->age); 1041
四 根据下列每个函数回答相应问题 ( 每小题 6 分, 共 12 分 ) 29. 假定使用 SF(20) 调用下面函数, 则得到的输出结果为 void SF(int x) { int i=2; while(x>=i){ if(x%i= =0) {printf(" %d",i); xl = i;} i++; printf(" %d\n",x); 30. 假定结点的结构类型为 IntNode, 它的数值域为 data, 链接指针域为 next, 请指出下面 函数的功能 void QC(struct IntNode 禄 { Ilf 为一个单链表的表头指针 while( f) { printf(" %d", f 一 >data) ; f=f->next; 函数功能 z 五 按照题目要求编写程序或函数 { 每小题 6 分, 共 12 分 ) 3 1. 补充完整下面的函数定义, 计算出 1 十 1 祷 3+2 祷 3+... +n 祷 3 的值并返回 int FF(intn) { 1042 inti,s=l;
// 在下面添上一行 for 循环语句, 循环变量为 i, 累加变量为 s return S; 素之和 32. 根据函数原型 "int FF(int a 口, int n)", 编写函数定义, 计算并返回数组 a[nj 中所有元 1043
试卷代号 :1253 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题答案及评分标准 ( 供参考 ) 2015 年 1 月 一 单选题 { 每小题 2 分, 共 20 分 } 1. D 2. C 3. A 4. D 5. C 6. B 7. A 8. C 9. B 10. B 二 填空题 ( 每小题 2 分, 共 26 分 ) 11. } C 或右花括号 ) 12. 程序 13. Ox23 14. 10 15. 10 16. 3 17. 15 18. 数组 19. 连接 20. 25 21. Cchar 关 )p 22. 0 23. struct W orker 美 三 写出下列每个程序运行后的输出结果 ( 每小题 6 分, 共 30 分 ) 评分标准 : 根据答案正确程度酌情给分 24. s=12 25. 3 1044
26. 321 27. 15 19 28. 96 四 根据下列每个函数回答相应问题 ( 每小题 6 分, 共 12 分 ) 评分标准 : 根据答题的正确与完整程度酌情给分 29.2 5 2 30. 遍历输出由表头指针 f 所指向的单链表中每个结点的 data 域的值 五 按照题目要求编写程序或函数 ( 每小题 6 分, 共 12 分 ) 评分标准 : 按程序或函数编写的正确与完整程度酌情给分 31. for(i=l;i<=n;i++ )S+=i * 3; 32. int FF(int a[j,int n) int i,sum=o; for(i=o;i<n;i 十 +)sum 十 =a[ij; return sum; //1 分 //4 分 //6 分 1015