试卷代号:1253 座位号■■ 中央广播电视大学2008一2009学年度第二学期“开放本科”期末考试 C语言程序设计A试题 2009年7月 题 号 二 三 四 五 总分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分) 1.由C语言源程序文件编译而成的目标文件的缺省扩展名为()。 A.cpp B.c C.exe D.obj 2.设x和y均为逻辑值,则×川y为假的条件是( )。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 3.枚举类型中的每个枚举常量的值都是一个( )。 A.整数 B.浮点数 C.字符 D.记录 4.循环语句“for(i=0;i<=n;i十十)S;”中循环体S被执行的次数为( )。 A.1 B.n-1 C.n D.n+1 5.假定有定义为"inta[4][5]=(1,3,5},{2,8)};",则a[1][1]的值为()。 A.3 B.5 C.2 D.8 6.在下面的选项中,不能作为函数的返回类型的是( )。 A.void B.int C.new D.long 1349
试卷代号:1253 座位号口习 中央广播电视大学2008-2009学年度第二学期“开放本科”期末考试 C语言程序设计 A 试题 2009年 7月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题 2分 ,共 20分} 1.由 C语言源程序文件编译而成的 目标文件的缺省扩展名为( )。 A. cpp B. c C. exe D. obj 2.设 x和y均为逻辑值,则 x」!y为假的条件是( )。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 3.枚举类型中的每个枚举常量的值都是一个( )。 A.整数 B.浮点数 C.字符 D.记录 4.循环语句“for(i=0; 1<-n; i十+)5;”中循环体S被执行的次数为( A.1 B. n一 1 C. n D. n十 1 5.假定有定义为”int a仁4][5〕二{{1,3,5},{2,8}};",则 a[1]仁1]的值为( A.3 B. 5 C. 2 D. 8 6.在下面的选项中,不能作为函数的返回类型的是( )。 A.void B. int C. new D. long 1349
7.假定x的值为5,y的值为6,则表达式x十十一一y的值为()。 A.25 B.30 C.36 D.42 8.用calloc函数创建具有10个整型元素的动态存储空间正确调用是()。 A.calloc(10,sizeof(char)) B.calloc(10) C.calloc(10,sizeof(int)) D.calloc(20,sizeof(int)) 9.假定有定义“intb[10],pb;”,则不正确的赋值为()。 A.pb=b B.pb=b[5] C.pb=b+2 D.pb=&b[0] 10.标准输人设备的文件流标识符是( )。 A.stderr B.stdin C.stdout D.stdio 得 分 评卷人 二、填空题(每小题2分,共26分) 1.执行“printf("%c",’A’+2);”语句后得到的输出结果为 2.short int类型的长度为 3.用类型关键字表示十进制常数3.26f的类型为 4.假定y=10,则表达式+十y*3的值为 0 5.逻辑表达式(x==0&&y>5)的相反表达式为 6.若x=5,y=10,则x!=y的逻辑值为 7.假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为 8.使用“typedef char BB[10][50];”语句定义 为含有10行50列的二维字符数 组类型。 9.字符串"”a:xxk数据"的长度为 10.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为 11.假定一个数据对象为it类型,则指向该对象的指针类型为 12.假定一个结构类型的定义为“struct A{inta,b;Ac;};”,则该类型的长度为 13.假定要访问一个结构对象×中的数据成员a,则表示方式为 1350
7.假定 x的值为 5,y的值为 6,则表达式 x+十,一一y的值为( )。 A.25 B. 30 C. 36 D. 42 8.用 calloc函数创建具有 10个整型元素的动态存储空间正确调用是( ) A. calloc(10,sizeof (char)) B. calloc(10) C. calloc(10,sizeof(int)) D. calloc(20,sizeof(int)) 9.假定有定义“int b[10], * pb;",则不正确的赋值为( )。 A. pb=b B. pb=b[5] C. pb二b+2 D. pb=&b[0] 10.标准输人设备的文件流标识符是( )。 A. stderr B.stdin C. stdout D. stdio 得 分 评卷人 二、填空题(每小题 2分,共 26分) 1.执行“printf (" %c",' A’十2);”语句后得到的输出结果为_ 。 2. short int类型的长度为 3.用类型关键字表示十进制常数3. 26f的类型为_ 。 4.假定 y=10,则表达式+十y*3的值为 5.逻辑表达式(x=二。&&y>5)的相反表达式为 6.若x=5, Y=10,则x!二y的逻辑值为_ 。 7.假定二维数组的定义为“inta[3][5];",则该数组所占存储空间的字节数为 8.使用“typedef char BB[10][50];”语句定义_ 为含有10行50列的二维字符数 组类型。 9.字符串“a八\xxk\\数据”的长度为 16.假定p所指对象的值为25,p十1所指对象的值为46,则,十+p的值为_ 。 11.假定一个数据对象为 int,类型,则指向该对象的指针类型为 12.假定一个结构类型的定义为 “struct A {int a, b; A 。;};”,则该类型的长度为 13.假定要访问一个结构对象x中的数据成员a,则表示方式为_ 。 1350
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include30)break; if(i%2==0)s+=i; printf("s=%d\n",s); } 2.includeb1)bl=aCi]; if(a[i门 void SB(char ch){ switch(ch)( case’A':case’a': printf("WW");break; case 'B':case 'b': 1351
得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题 6分,共 30 1. #include void main( ){ int i,s= 0 for(i二1;;i+十){ if(s>30) break; if(i%2==0) s+=i; } printf("s= 0 o d\n", s) 2.#include void main() int a[9]={36,25,48,24,55,40,18,66,20}; int i,bl,b2; bl= b2= for(i=1 a[0]; ibl) bl=a[i]; if(a[i] void SB(char ch){ switch(ch){ case 'A':case,a': printf ("W W”);break case 'B':case 'b':
printf("GG");break; default: printf("BB");break; void main(){ char al='a',a2='B',a3='f'; SB(al);SB(a2);SB(a3); printf(™n"; } 4.includeage,p->pay+20); 1352
printf ("GG“);break default: printf ("BB“);break; ) } void main(){ char al“'a',a2='B',a3二,f' SB(al);SB(a2);SB(a3); printf("\n"); } 4.#include #define M 6 void main( ) int i, x; int a仁M]={10,15 fore=O; for(i=0; K M/2 22,37,46,58); i++){ x=a[i];a[i]=a[M一1一1〕;a仁M-1一i]=x i struct W orker char name[15];int age; float pay; void main() struct Worker x= {"wanghua', 52,2350}; struct Worker y, * p y二x; P=&x printf("%d 007. 2f\n", y. age+p一>age,p一>pay+20) 1352
得分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分) 1.int FH()( int x,y=0; scanf("%d",&x); while(x!=-l){y+=x;scanf("%d",&x);》 return y; } 函数功能: 2.int FF(struct IntNode *f) /任为指向一个单链表的表头指针 int n=0; if(!f)return 0; while(f)( n十十 f=f->next; } return n; 假定struct IntNode的类型定义为: struct IntNode int data;struct IntNode next;); 函数功能: 1353
得 分 评卷人 四、写出下列每个函数的功能(每小题 6分,共 12分) 1. int FH() int x,y=0; scanf("oo了,&x); while(x!二一1){y+=x; scanf("%d‘, &x); return y; 函数功能: 2. int FF(struct IntNode * f) //f为指向一个单链表的表头指针 int n= 0 if(!f) return 0; while(f) n十 + f=f一>next; return n 假定struct IntNode的类型定义为: struct IntNode{int data;struct IntNode * next; 函数功能: 1353
得分 评卷人 五、按题目要求编写程序或函数(每小题6分,共12分) 1。编写一个程序,利用whie循环,计算并打印输出1+2+号十…十的值,其中正整 数n值由键盘输入。假定求和变量用sum表示,计数变量用i表示,sum、i和n均定义为全局 变量,sum和i的初值分别被赋予0和1。 2.根据函数原型“void DD(inta[],intn,int MM)”编写函数定义,利用双重循环查找并 打印输出数组a[n]中任何两个元素的值等于MM值的元素值。假定a[i门十a[j门等于MM,则 输出格式为:(a[门,a[j])。 1354
得 分 评卷人 五、按题 目要求编写程序或函数(每小题 6分 ,共 12分) ‘·编写一个程序,利用whil·循环,计算并打印输出1十音+合十…+告的值,其中正整 数 n值由键盘输入。假定求和变量用 sum表示,计数变量用 i表示,sum,i和 n均定义为全局 变量,sum和 i的初值分别被赋予 0和 1, 2.根据函数原型"void DD(int a[], int n, int MM)”编写函数定义,利用双重循环查找并 打印输出数组a[n〕中任何两个元素的值等于 mm值的元素值。假定 a[司十a[j〕等于 mm,则 输出格式为:(a仁i],a仁J]) 1354
试卷代号:1253 中央广播电视大学2008一2009学年度第二学期“开放本科”期末考试 C语言程序设计A试题答案及评分标准 (供参考) 2009年7月 一、单选题(每小题2分,共20分)】 1.D 2.C 3.A 4.D 5.D 6.C 7.A 8.C 9.B 10.B 二、填空题(每小题2分,共26分) 1.C 2.2 3.float 4.33 5.(x!=01ly<=5)或:(x11y<=5) 6.1 7.60 8.BB 9.11 10.46 11.int** 12.12 13.x.a 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 1.s=42 2.6618 1355
试卷代号:1253 中央广播电视大学2008-2009学年度第二学期“开放本科”期末考试 C语言程序设计 A 试题答案及评分标准 (供参考) 2009年 7月 一、单选题 (每小题 2分 ,共 20分) 1. D 6. C 2. C 3. A 4. D 5. D 7. A 8. C 9. B 10. B 二、填空题 (每小题 2分 ,共 26分) 1. C 2. 2 3. float .33 .(x!=0’I Y<=5)或 :(x I I Y<=5) 6. 1 7. 60 8. BB 9. 11 46 int 矢 关 : 0 1.1 J.土 1 1 12. 12 13. x. a 三、写 出下列每个程序运行后的输 出结果(每小题 6分 ,共 30分) 评分标准:根据答案正确程度酌情给分。 1. s= 42 2. 66 18 1355
3.WW GG BB 4.584637221510 5.104 2370.00 四、写出下列每个函数的功能(每小题6分,共12分】 评分标准:根据每题答案叙述的正确与完整程度酌情给分。 1,求出从键盘上输入的一批整数的总和,以一1作为结束输入的标志。 2.求出并返回由f所指向的单链表中所有结点的个数。 五、按题目要求编写程序或函数(每小题6分,共12分)】 评分标准:根据编写程序或函数的正确与完整程度酌情给分。 1.include<stdio.h 111分 int n,i=1; double sum=0; /12分 void main() scanf("%d",&n); 1/3分 while(i<=n)sum+=(double)1/i++; /15分 printf("sum=%lf\n",sum); /16分 2.void DD(int a[],int n,int MM) int i,j; 111分 for(i=0;i<n;i++) 112分 for(j=i+1;j<n;j++) 113分 if(aCi]aj]==MM)printf("%d,%d\n",a[i],aj]); 116分 1356
3. WWGG BB 4. 58 46 37 22 15 10 5. 104 2370.00 四、写出下列每个函数的功能(每小题 6分 ,共 12分) 评分标准 :根据每题答案叙述的正确与完整程度酌情给分。 1.求出从键盘上输人的一批整数的总和,以一1作为结束输人的标志 。 2.求出并返回由f所指向的单链表中所有结点的个数。 五、按题 目要求编写程序或函数(每小题 6分 ,共 12分 ) 评分标准 :根据编写程序或函数的正确与完整程度酌情给分 。 1.#include //1分 int n, i= 1; double sum=0; //2分 void main() scanf (" 0 o d",&. n); while(i< =n) sum+ =(double)1八++ ; printf ("sum= 0 o if\n", sum); 刀3分 刀5分 刀6分 2. void DD(int a[],int n, int MM) int i, fore=0;1<n; i+ +) for(]=i+l;j<n; j++) if(a[i]+a[j]==MM) printf("ood, ood\n", a[i],a[j]); 刀1分 //2分 刀3分 刀6分 1356