试卷代号:1253 座位号■ 中央广播电视大学2013一2014学年度第一学期“开放本科”期末考试 C语言程序设计A试题 2014年1月 题 号 三 四 五 总·分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分) 1.程序运行中需要从键盘上输人多于一个数据时,各数据之间默认使用( )符号作为 分隔符。 A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车 2.逻辑表达式(x>088x10 B.x10 C.x0&&x>10 3.当处理一个问题时的循环次数已知时,最好采用( )语句来解决。 A.for B.while C.do-while D.switch 4.很定i的初值为0,则在循环语句“while(i<n){s十=i*i;i++,}”中,其循环体被执 行的次数为()。 A.n-1 B.n C.n+1 D.n/2 5.假定一个二维数组的定义语句为“inta[3][4]={3,4),{2,8,6)}:”,则元素a[1][1] 的值为()。 A.2 B.4 C.6 D.8 1100
试卷代号 座位号 中央广播电视大学 4学年度第一学期"开放本科"期末考试 计A 2014 |题号|一|二|三|四|五|总分| |分数 I I I I - I I |得叫分|评卷人 I I 单选 每小题 1.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( )符号作为 分隔符。 A. 格或 号B.逗号或 C. 号D. 格或 2. 辑表 式(x>O &.&. x10 B. x10 C. xO &.&. x>10 3. 处理 次数 )语句来解决。 A. for C. do-while B. while D. switch 4. 定i 为0 句"while Ci<n) {s+=i * ,i++ 行的次数为( )。 A. n-l B. n C. n+l D. n/2 J 5. 二维数组 句 为 a[3J[4J= {{3 ,{2 ,8 ,6}} 素a[l][lJ 的值为( )。 A. 2 B. 4 1100 C. 6 D.8
6.在下列选项中,不正确的函数原型格式为()。 A.int Function(int a); B.void Function (char); C.int Function(a b); D.void int (double *a); 7.假定p是一个指向float类型的数据指针,则p十1所指向的数据的地址比p所指向的 数据的地址大( )个字节。 A.1 B.2 C.4 D.8 8.假定有一条定义语句为“intm=7,*p;”,则给p赋值的正确表达式为( A.p=m B.p=&m C.p=&m D.p=*m 9.假定指针变量p定义为“int*p=malloc(sizeof(int));”,要释放p所指向的动态存储 空间,应调用的函数为()。 A.free(p) B.delete(p) C.free(*p) D.free(&p) 10.C语言中的系统函数fopen()是( )一个数据文件的函数。 A.读取 B.写人 C.关闭 D.打开 得 分 评卷人 二、填空题(每小题2分,共26分) 11.C语言中的每条简单语句以作为结束符。 12.C程序中的所有预处理命令均以 字符开头。 13.当不需要函数返回任何值时,则应使用 保留字来定义函数类型。 14.十进制数25表示成符合C语言规则的十六进制数为 15.关系表达式a>b的相反式为 l6.执行“typedef int DataType;”语句后, 与int保留字具有相同作用。 17.假定一维数组的定义为“char*a[8]:”,则该数组所占用的存储空间的字节数为 1101
6. 在下列选项 格式 )。 A. int Function<int a) ; B. void Function (char); C. int Function(a 铃b) ; D. void int (double 铸a) ; 7. 定p 是一 向float 则p+l 比p 数据的地址大( )个字节. ~1 &2 C4 U8 8. 为"int m=7 铃p;" 给p )。 A. p=m B. p- &.m C. 铃 p &. D. p= 铃m 9. 针变 椅 p malloc(sizeoHint)) ;" ,要释放 p所指向的动态存储 空间,应调用的画数为( ). A. free(p) C. free( 秘p) 10. A. 读取 C. B. delete(p) D. free( &'p) 〉一个数据文件的画数。 B. D. |得分|评卷人| I I I 二、填空题{每小题 2 6 11. 以一 结束 12. 有预 开头 13. 需要 何值 定义 14. 数25 表示 合C 15. 达式 反式 16. 行"typedef int DataType;" 句后 与int 字具有相 17. 义 为 char 铃a[8] 该 数组 所 节 数 1101
18.假定二维数组的定义为“double a[M][N],”,则所有元素的列下标的取值范围在 之间。 19.存储一个空字符串需要占用二个字节。 20.strcpy函数用于把一个字符串到另一个字符数组空间中。 21.程序中的每个编译单位是一个 22.假定a是一个一维数组,则a[]的指针访问方式为 23.执行int米p=malloc(sizeof(int)操作得到的-一个动态分配的整型对象为 得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分)】 24.#include void main(){ inti,s=0; for(i=1;s void main(){ inta[9]={36,25,48,24,55,40,18,66,20}g inti=0,k=-1,x=40: whilet(a[i们!=x&&i<9)i++; if(a[i]==x)k=i; printf("k=%d\n",k); 输出结果: 1102
个字节. 到另一个字符数组空间中。 18. 定二 数组 为"double a[M][N] 列 下 之间。 19. 需要 20. strcpy 用于把→个 1. 单位是一 22. 定a 维数组 则a[i 23. 行int 提p = malloc(sizeo£ void mainO { int i , s=O; for (i=l ;s void mainO { int a[9]= {36 , 25 , 48 , 24 , 55 , 40, 18 , 66 .20}; iot i=O. k=-l. x=40; while(a[i] ! =x&.&. i<9)i++; j£<a[i]==x) k=i; pr 此£("k= %d\n飞k); 输出结果 1102
26.#include<stdio.h void SB(char ch){ switch(ch){ case’A':case’a': printf("1");break; case’B’:case'b’: printf("2");break; default: printf("3");break; } } void main(){ char al='a’,a2=B',a3=’f”, SB(al);SB(a2);SB(a3); printf("\n") } 输出结果: 27.include<stdio.h define M 6 void main() int i,x1=0,x2=0; inta[M]={10,15,22,24,12,30}; for(i=0;i<M/2;i++){xl+=a[i],x2+=a[M-i-1]:} printf("d%d\n",x1,x2); } 输出结果: 1103
26. :# include void SB(char ch) { switch(ch) { case'A': case printf( break; case 'B' : case'b': printf("2 break; default: printf( break; void mainO { char al= 'a' ,a2= 'B' ,a3= 'f'; SB(al); SB(a2) ;SB(a3); print£("\n 输出结果= 27. :# include :# define M 6 void mainO int i,xl=0,x2=0; int a[M]={10 ,15 ,22 ,24 ,12 ,30}; for <i=O; i<M/2; i++) {xl+=a[i]; x2+=a[M一i-I];} print£("%d%d\n" ,xl ,x2) ; 输出结果 1103
28.includeage,p->pay+60); 输出结果: 得分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分)】 29.int WC(int a],int n,int k){ int i,c=0; for(i=0;i=k)c++; return c; 函数功能: 30.假定结构类型struct Worker的定义体为:{char namel[l5];int age;float pay:}。 void QA(struct Worker at],int n) { int i; for(i=0;i<n;i++) scanf("%s %d %f",a[i].name,&a[i].age,&a[i].pay); 函数功能: 1104
28. 拌include struct Worker {char name[15]; int age; float pay;}; void mainO { struct Worker x= {"wanghua" ,2500}; struct Worker 祷p; y=x; p=&.x; printf("%d %7.2£\n飞y. age+p一>age 一>p~中+60); 输出结果 |得分|评卷人| I I I 四、写出下列每个画鼓的功能{每小题 29. int WC (int int n , int k){ int i, c=O; forG=O;i=k) c++; return c; 函数功能 30. 定结构类型struct Worker 义体 {char name[15]; int age; float pay;}. void QA(struct Worker int n) lOt 1; for (i=O; i<n; i++) scan£(" %s %d % f", a[i]. name , &.a[i]. age , &.a[i] . pay) ; 函数功能 1104
得分 评卷人 五、按题目要求编写程序或函数(每小题6分,共12分) 31.编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有正整数。 32.按照“int FF(inta[],intn)”的函数声明,编写出递归函数的定义,求出数组a中所有 n个元素之积并返回。 1105
|得分|评卷人| I I I 五、按题目要求编写程序或画鼓{每小题 6分,共 2分}f 1. 写一 出50 含50) 被3 者5 整除 正整 32. FF(int int n)" 编写 定义 组a 之积 1105
试卷代号:1253 中央广播电视大学2013一2014学年度第一学期“开放本科”期末考试 C语言程序设计A试题答案及评分标准 (供参考) 2014年1月 一、单选题(每小题2分,共20分)】 1.D 2.A 3.A 4.B 5.D 6.C 7.C 8.B 9.A 10.D 二、填空题(每小题2分,共26分)》 11.:(或分号) 12.#(或井号) 13.void 14.0x19 15.a<=b 16.DataType 17.32 18.0≈N-1 19.1 20.拷贝(复制) 21.程序文件 22.(a+i) 23.*p 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 24.s=20 25.k=5 1106
试卷代号 中央广播电视大学 4学年度第一学期"开放本科"期末考试 计A 试题答 〈供参考) 2014 年1 一、单选题{每小题 2分,共 0分) 1. D 2. A 3. A 6. C 7. C 8. B 二、填空题{每小题 2分,共 6分} 11. ; (或分号〉 12. # (或井号〉 13. void 14.Dx19 15. a<=b 16. DataType 17.32 18.0--N-1 19.1 20. 1. 程序文 22. 23. 养 p 4. B 9. A 5. D 10. D 三、写出下列每个程序运行后的输出结果(每小题 6分,共 0分} 评分标准 z根据答案正确程度酌情给分。 24.5=20 25. k=5 1106
26.123 27.4766 28.962560.00 四、写出下列每个函数的功能(每小题6分,共12分) 评分标准:根据答案叙述正确与完整程度酌情给分。 29.统计并返回一维整型数组a[n]中大于等于k的元素的个数。 30.从键盘上为具有struct Worker类型的数组a[n]输入n个记录。 五、按题目要求编写程序或函数(每小题6分,共12分) 评分标准:根据程序或函数编写的正确与完整程度酌情给分。 31.include<stdio.h 111分 void main() { int i /2分 for(i=3;i<=50;i++) /13分 if(i%3==011i%5==0)printf("%d "i); 1/6分 printf("\n"); } 32.int FF(int a],int n) { if(n<=0){printf("n值非法ln"),exit(l);} /可省略 if(n==1)return a[o]; 112分 else return a[n-1]*FF(a,n-1); /16分 1107
26~ 123 27.47 66 28.96 2560.00 四、写出下列每个画颤的功能{每小题6分,共 2分} 评分标准z根据答案叙述正确与完整程度酌情给分。 29. 一维 组a[n] 个数 30. 有struct Worker 组a[n] 入n 个记 五、按题目要求编写程序或函数{每小题6分,共 2分} 评分标准E根据程序或函数编写的正确与完整程度酌情给分。 31. # include void main() tnt 1; for (i=3; i<=50; i++) if(i% 3= =0 II i%5= =0) print£("%d ", i); print£("\n勺z 32. int FF(int ,int n) i£(n<=O) {print£( 法\n exit(l) ; } i£(n= = 1) return a[O]; else return a[n-1] 铸FF(a,n- 1) ; //1 //2 //3 //6 //可省略 //2 //6 1107