试卷代号:1253 座位号■■ 国家开放大学(中央广播电视大学)2014年春季学期“开放本科”期末考试 C语言程序设计A试题 2014年7月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分) 1.C语言程序中的基本功能模块为()。 A.函数 B.标识符 C.语句 D.表达式 2.逻辑表达式(x>0|1y==5)的相反表达式为( )。 A.x01ly!=5 D.x>0&&y==5 3.循环体至少被执行一次的循环语句为( )。 A.for B.while C.do-while D.任一种循环 4.假定n的值为6,则表达式+十n的值为( )。 A.6 B.5 C.4 D.7 5.假定一个二维数组的定义为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][0]的值 为()。 A.8 B.2 C.4 D.6 6.假定个函数原型为“char func(intn)”,则该函数的返回类型为()。 A.int B.int C.char D.char 1042
试卷代号 座位号OJ 国家开放大学(中央广播电视大学 4年春季学期"开放本科"期末考试 语言 计A 2014 年7 |题号|一|二|三|四|五|总分| |分数 I I I I I I |得分 l评卷人| I I 选题 1. 模块 )。 A. 数B.标识 c.语句0.表达式 2. 逻辑表达式(x>01Iy==5) 相反表达式 )。 A. xolly! =5 0. x>O &.&. y==5 3. 环体 少被执行一 )。 A. for B. while c. do-while D. 一种 4. 假定 为6 )。 A. 6 B. 5 C. 4 0. 7 5. 假定一 为"int a[3][4]={{3 ,{2 ,8 ,6}} 素a[l][O] 为( )。 A. 8 a 2 C. 4 0. 6 6. 原型为"char 祷func (int n)" ,则该函数的返回类型为( )。 1042 A. int C. char B. int D. char
7.假定a为一个字符数组名,则元素a[i]的指针访问方式为()。 A.a+i B.*(a+i) C.&a+i D.¥a+i 8.假定有语句为“int*p=calloc(20,sizeof(int));”,则p所指向的动态数组中所包含的 元素个数为()。 A.10 B.40 C.20 D.80 9.十进制数50表示成符合C语言规定的八进制数为( )。 A.20 B.32 C.62 D.062 10.若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信 息,则选用的打开方式字符串为()。 A."r+" B."ab十" C."rb+" D."wb+" 得 分 评卷人 二、填空题(每小题2分,共26分) 11.C语言中的每条简单语句以 作为结束符。 12.C程序中的所有预处理命令均以 字符开头。 13.当不需要函数返回任何值时,则应使用 保留字来定义函数类型。 14.十进制数25表示成符合C语言规则的十六进制数为 15.关系表达式a>b的相反关系式为 l6.执行“typedef int DataType;”语句后, 与int保留字具有相同作用。 17.假定一维数组的定义为“char*a[8];”,则该数组所占用的存储空间的字节数为一 18.假定二维数组的定义为“double a[M们[N门;”,则所含元素的列下标的最大值为 19.存储一个空字符串需要占用 个字节。 20.strcpy函数用于把一个字符串 到另一个字符数组空间中。 21.程序中的每个编译单位是一个 22.假定a是一个一维数组,则a[i门的指针访问方式为 23.执行int*p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为 1043
7. 定a 符数 素a[i] 方式 )。 A. c. &a+i B. 势(a+i) D. 8. 假定有 为"int 善p= calloc(20 , sizeof(int» 则p 动 态 含 的 元素个数为( )。 A. 10 C. 20 B. 40 D. 80 9. 数50 成符合C )。 A. 20 B. 32 C. 62 D. 062 10. 写两种 方式 个二 文件 在 时 息,则选用的打开方式字符串为( )。 A."r+" C. |得分|评卷人| I I I B. "ab+ " D."wb+" 二、填空题(每小题2分,共 6分) 个字节。 到另一个字符数组空间中。 11. 单语 12. 有预 开头 13. 数返 何值 定义 14. 数25 示 成符合 的 十 15. 16. 行"typedef int DataType;" 与int 17. 数组 为"char 铃a[8];" 该数组 存储 节数 18. 定二 为"double a[M][N];" 列下 最大 19. 需要 20. strcpy 数用 把一个字符 1. 程序 中 的 单位是 22. 定a 一维数组 则a[ 针访 23. 行int * p=malloc(sizeof Cint» 作得到 的一个 1043
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 24.#include void main(){ int n=4,y=0; while(n--)y+=3; printf("y=%d\n",y); 输出结果: 25.include void main() { int i,s=0; for(i=1;i void main(){ char a]="acdbfdkmdaceg"; int i=0,k=0; while(a[i]) if(a[i++]==’d')k++; printf("%d\n",k); 输出结果: 1044
|得分 l评卷人| I I I 三、写出下列每个程序运行后的输出结果{每小题 3 0 24. 梓include void main ( ) { int n=4 ,y=0; while(n --)y+=3; printf("y= %d\n" ,y) ; 输出结果: 25. # include void maine) int i,s=O; for(i=l ;i void mainO{ char a[ "acdbfdkmdaceg" ; int i=o ,k=o; wh i1e(a[i] ) if<a[i++]= =吁 + + ; printf( " %d\n" ,k); 输出结果: 1044
27.#include<stdio.h void main()( inta[8]={4,8,12,16,20,24,28,32}; int *p=a,s=0; do (s+=*p;p+=3;)while(p<a+8); printf("s=%d\n",s); 输出结果: 28.include<stdio.h struct Worker (char name[15];int age;double pay;); void main(){ struct Worker a[4]={{"abc",20,2400},{"defa",50,3600}, {"ghin",40,1800},{"jklt",36,2000}; int i;double s=0; for(i=0;i<4;i++)s+=a[i].pay; printf("s=%5.0LA\n",s); 输出结果: 得分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分)】 29.int SG(int x){ /x为大于等于2的整数 int i=2; if(x==2x==3)return 1; while(i*<=x){ if(x%i==0)break; i++; if(i*i<=x)return 0;else return 1; } 函数功能: 1045
27. # include void mainO{ int a[8J={4 ,8,12,16 ,20,24,28,32}; int 祷p=a ,s=O; do {s+= 铸p;p+ =3; }while(p struct Worker {char name[l5J; int age; double pay; }; void mainO{ struct Worker a[4J = {{" abc" ,20, 2400 },{ "defa" ,50, 3600 }, {"ghin" ,40, 1800 }, {"jklt" ,36, 2000}}; int i;double s=O; for <i=0;i<4;i++)s+=a[i]. pay; printf("s= %5. OLf\n" ,s) ; 输出结果 |得分|评卷人| I I I 29. int SG(int x) { 四、写出下到每个函数的功能{每小题 Ilx 于等 于 int i=2; if(x= =211 x= =3heturn 1 while <i 铃i<=x){ if(x%i= =0) break; i++; if <i = x) return 0; else return 1; 画数功能 1045
30.int FF(struct IntNode f) /f为一个单链表的表头指针 { int c=0; if(f==NULL)return 0; while(f)(c++;f=f->next;) return c; 函数功能: 得分 评卷人 五、按题目要求编写函数(每小题6分,共12分) 31.补充完整下面的函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定 在计算过程中采用变量s存放累加值,采用i和j作为扫描数组的循环变量。 double Mean(double a[][N],int m,int n) int i,j; double s=0.0; /在下面添上合适的for双重循环语句 return s/(m n); } 32.根据函数原型“int MM(inta[],intm)”,编写函数定义,计算并返回数组a[m]中所 有元素的最大值的平方值,假定用变量max保存最大值。 1046
30. int FF(struct IntNode int c=O; Ilf 单链 ifnext;} return c; 函数功能: |得分|评卷人| I I I 五、按题目要求编写画鼓{每小题 6分,共 2分} 1. 完整下 定义 二维 组a[m][n] 假定 在计算过程中采用变量 s存放累加值,采用 i和 j作为扫描数组的循环变量。 double Mean<double a[][N] ,int m ,int n) ~nt I ,J ; double s=O. 0; II 面添上 return s/<m 32. 数原 MM (int ,int m)" 编 写 算 并 a [ ro 有元素的最大值的平方值,假定用变量 x保存最大值。 1046
试卷代号:1253 国家开放大学(中央广播电视大学)2014年春季学期“开放本科”期末考试 C语言程序设计A试题答案及评分标准 (供参考) 2014年7月 一、单选题(每小题2分,共20分) 1.A 2.B 3.C 4.D 5.B 6.D 7.B 8.C 9.D 10.C 二、填空题(每小题2分,共26分)】 11.:(或分号) 12.#(或井号) 13.void 14.0x19 15.a<=b 16.DataType 17.32 18.N-1 19.1 20.拷贝(复制) 21.程序文件 22.¥(a+i) 23.*p 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 24.y=12 25.s=24 1047
试卷代号 2 5 3 国家开放大学(中央广播电视大学 4年春季学期"开放本科"期末考试 计A 题答 标准 (供参考) 2014 年7 一、单选题{每小题 2分,共 0分} LA 6.D 2. B 7. B 3.C 8. C 4.D 9. D 5. B 10. C 二、填空题{每小题 2分,共 6分) 11. ; (或分号〉 12. 13. void 14. Ox19 15. a<=b 16. DataType 17. 32 18. N-1 19. 1 20. 1. 文件 22. i) 23. 三、写出下列每个程序运行后的输出结果{每小题 6分,共 0分} 评分标准=根据答案正确程度酌情给分。 24. y= 12 25. s=24 1047
26.3 27.s=48 28.s=9800 四、写出下列每个函数的功能(每小题6分,共12分) 评分标准:根据答案叙述的正确与完整程度酌情给分。 29.判断x是否为一个素数,若是则返回1,否则返回0。 30.求出并返回由f所指向的单链表中结点的个数。 五、按题目要求编写函数(每小题6分,共12分)】 评分标准:根据函数编写的正确与完整程度的情给分。 31.for(i=0;imax)max=ai]; //4分 return max max; /16分 1048
26. 3 27. s=48 28. s=9800 四、写出下列每个函数的功能{每小题6分,共 2分} 评分标准z根据答案叙述的正确与完整程度酌情给分。 29. 若是则 否则返 30. 单链 五、按题目要求编写函数{每小题6分,共 2分} 评分标准z根据函数编写的正确与完整程度酌情给分。 31. for(i=O;imax)max=a[i] ; return max 铃max; 1048 //1 //2 //6 //1 //2 //4 //6