试卷代号:1253 座位号☐■ 中央广播电视大学2008一2009学年度第一学期“开放本科”期末考试 C语言程序设计A试题 2009年1月 题 号 二 三 四 五 总分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 A.cpp B.exe C.obj D.c 2.设有两条语句为“inta=l2;a十=a*a;”,则执行结束后,a的值为()。 A.12 B.144 C.156 D.288 3.带有随机函数调用的表达式rand()%20的值在( )区间内。 A.119 B.1~20 C.0~19 D.020 4.for循环语句“for(i=0;i<n;i十=2)S:”中循环体S语句被执行的次数为( )。 A.(n+1)/2 B.n/2+1 C.n/2-1 D.n-1 5.在下列的字符数组定义中,存在语法错误的是()。 A.char a[20]="abcdefg"; B.char a[]="x+y=55."; C.char a[15]={1','2'}; D.char a[10]='5'; 6.若有一个函数原型为“double*function()”,则它的返回值类型为( A.实数型 B.实数指针型 C.函数指针型 D.数组型 1381
试卷代号 :1253 座位号[工 〕 中央广播电视大学2008-2009学年度第一学期“开放本科”期末考试 C语言程序设计 A 试题 2009年 1月 题 号 四 五 总 分 分 数 得 分 评卷 人 一、单选题(每小题 2分.共 20分) 1.由 C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obi D. c 2.设有两条语句为“int a=12; a+=a * a;",则执行结束后 ,a的值 为( )。 A. 12 B. 144 C. 156 D. 288 3.带有随机 函数调用的表达式 randU %20的值在( )区间 内。 A.1^-19 B. 1^-20 C. 0- 19 D. 0^-20 4. for循环语句“for(i=0; iGn; i+=2) S;”中循环体 S语句被执行的次数为( A. (n十 1)/2 B. n/2+1 C. n/2一 1 D. n-1 5.在下列的字符数组定义中,存在语法错误的是( )。 A. char a[20]="abcdefg"; B. char a[]="x+y=55.“; C. char a[15]={’1’,’2’}; D. char a[10]=’5’; 6.若有一个函数原型为“double * function()",则它的返 回值类型为( )。 A.实数型 B.实数指针型 C.函数指针tl 1).数织刑 1381
7.在C语言中,所有预处理命令都是以( )符号开头的。 A.¥ B.# C.&. D.@ 8.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行 *p十十后,P所指数据单元的值为( )。 A.40 B.30 C.70 D.10 9.若要使p指向二维整型数组a[10][20],则p的类型为()。 A.int¥ B.int C.int*[20] ID.int(*)[20] 10.表示文件结束符的符号常量为( ). A.eof B.Eof C.EOF D.feof 得分 评卷人 二、填空题(每小题2分,共26分) 1.一个函数定义由 和函数体两部分组成。 2.执行“printf("%c”,'F’-2);”语句后得到的输出结果为 3.int类型的长度为 4.表达式(float)25/4的值为 5.若x=5,y=10,则x<=y的逻辑值为 6.作为语句标号使用的case和default只能用于 语句的定义体中。 7.在程序中执行到 语句时,将结束所在函数的执行过程,返回到调用该函 数的位置。 8.假定二维数组的定义为“char a[M们[N门;”,则该数组所含元素的个数为 9.存储字符'a'需要占用存储器的 个字节空间。 10.用于存储一个长度为n的字符串的字符数组的长度至少为 11.假定p所指对象的值为25,p十1所指对象的值为46,则执行表达式(*p)十十后,p 所指对象的值为 12.假定p是一个指向整数对象的指针,则用 表示该整数对象。 13.假定一个结构类型的定义为“s1 ruct B{inta[5]:char b;};”,则该类型的理论长度 为 1382
7.在 C语言中,所有预处理命令都是以( )符号开头的。 A.* B.井 C. &. 1).@ 8.假定整数指针 p所指数据单元的值为 30,p+1所指数据单元的位为 40,则执行 *p十+后 ,p所指数据单元的值为( )。 A. 40 13. 30 C. 70 1). 10 9.若要使 p指向二维整型数组 a[10][20],则 p的类型为( )。 A. int C. int *[20] 表示文件结束符的符号常量为( .eof in t 关 关 .irnt(二)[201 Eof EOF D.feof A C 得 分 评卷人 二、填空题(每小题 2分,共 26分) 1一 个函数定义由_ 和函数体两部分组成。 2.执行“printf(0ooc",'F'-2);”语句后得到的输出结果为 3.int类型的长度为 4.表达式(float)25/4的值为 5.若 x=5,y=10,则 x<=y的逻辑值为 6.作为语句标号使用的 case和 (iefault只能用于 语句的定义体中。 7.在程序中执行到_ 语句时,将结束所在函数的执行过程,返回到调用该函 数的位置。 8.假定二维数组的定义为“。d1.i.a._l aFLM1va]J}Llnyr口;”,则该数组所含元素的个数为 9.存储字符 ’a’需要 占用存储器的 个字节空间。 10.用于存储一个长度为 n的字符串的字符数组 的长度至少为 11.假定 p所指对象的值为 25,p+1所指对象的值为 46,则执行表达式(*})十十后,P 所指对象的值 为 12.假定P是一个指向整数对象的指针,则用_ 表示该整数对象。 13.假定一个结构类型的定义为“struct 13{ int al 5] ; char* b; } ;",则该类型的理论长度 为 13 8 2
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include<stdio.h void main(){ int i,s1=0,s2=0; for(i=0;i<10;i++) if(i%2)s1+=i: else s2+=i; printf("%d %d\n",s1,s2); 2.#include<stdio.h const int M=20; void main() int i=2; while(1){ if(i>M/2)break; if(M%i==0)printf("%d",i); i++; printf("\n"); 3.include<stdio.h inla[6]={4,5,6,15,20,12}: void main() { int i.s1.s2: 1383
得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题 6分,共 30分) 1. #include< stdio. h> void main() int i,sl= 0,s2= 0 for(i=0;i<10;i++) if(ioo2) sl+= else s2+ =i; printf("%d ood\n",sl,s2) 2. #include< stdio. h> const int M = 20 void main() int i=2; while(1){ if(i> M/2) break; if(M%i==0) printf("%d“,i); 1十+ ; printfC\Ii"); 3.#include< stdio. h> int a仁6]={4,5,6,15,20,12}; void main() Itll I。S1.,夕: 1383
s1=s2=0: for(i=0;i<6;i++){ switch(a[i]%2){ case 0:s2+=a[i];break; case 1:s1+=aCi];break; } printf("d %d\n",s1,s2); 4.include<stdio.h void main(){ inta[3][3]={3,5,7},{9,11,13},(6,8,20}: inti,*p=&a[0][0]; for(i=0;i<9;i++){ if(*p>10)printf("%d",p); p十十; } printf("\n"); 5.include<stdio.h> #include<string.h> struct Worker char name[15];int age;float pay;); void main(){ struct Worker x; char*t="liouting”; int d=38;float f=400; strcpy(x.name,t); x.age=d;x.pay=f; x.age十+;x.pay*=2; printf("%s %d %6.2f\n",x.name,x.age,x.pay); 1384
sl二s2=0; for(i=0;i<6;i++){ switch (a[ 1〕%2){ case 0 case 1 :s2十 :sl+ a[i];break; a[i];break; } } printf (" o d%d\ n",sl,s2); 4.#include< stdio. h> void main(){ inta[3][3]={{3,5,7},(9,11,13},{6,8,20)}; int i,,p= &a[0][0]; for(i=0;i<9;i十+){ if(*p>10) printf("ood”,*P); P++; } printf C\n "); 5.#include< stdio. h> #include<string. h> struct Worker{char name[15]; void main(){ str uct Worker x; char二t=fhouting"; int d=38;float f=400; strcpy(x. name,t); x. age=d; x. pay= f; x. age++;x. pay* =2; printf ("% s环d%6. 2f\n',x. } 1384 int age;float pay; nam e ,x. age, x. pay);
得分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分】 1.include<stdio.h> int SA(int a,int b){ if(a>b)return 1; else if(a==b)return 0; else return-1; } 函数功能: 2.void Output(struct IntNode *f)/f为单链表的表头指针 { if(!f)return; while(f){ printf("%d",f->data): {=f->next; } printf("\n"); 假定struct IntNode的类型定义为: struct IntNode int data;struct IntNode next;); 函数功能: 得 分 评卷人 五、按题目要求编写程序或函数(每小题6分,共12分) 1.编写一个程序,计算1十3十32+…+3”的值并输出,假定分别用i,P,s作为循环变量、 累乘变量和累加变量的标识符。 2.根据函数原型"int FF(inta[],intn)”,编写函数定义,计算并返回数组a[n]中所有元 素之和。 1385
得 分 评卷 人 四、写出下列每个函数的功能(每小题 6分,共 12分) 1.#include< stdio. h> int SA(int a,int b) if(a> b) return 1 else if(a= = b) return 0 else return 一 1 函数功能 : 2. void Output(struct IntNode * f) //f为单链表的表头指针 { if(!f) return; while(f) print{(" 0 o d’‘,f一>data) f= f一 > next: print {("\n"); 假定struct IntNode的类型定义为: struct IntNode{int data;struct IntNode二 next 函数功能: 得 分 评 卷 人 五 、按题目要求编写程序或函数 (每小题 6分 ,共 12分 ) 1.编写一个程序 ,计算 1+3+3`+ 十3`。的值并输出,假定分别用 i,p,s作为循环 变量 、 累乘变量和累加变量的标识符 。 2.根据函数原型I'int M int a[] int n)",编写函数定义,计算并返回数组 a[n」中所有元 素之和。 1385