中央广播电视大学C程序设计.docx
- 文档编号:10874157
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:18
- 大小:22.25KB
中央广播电视大学C程序设计.docx
《中央广播电视大学C程序设计.docx》由会员分享,可在线阅读,更多相关《中央广播电视大学C程序设计.docx(18页珍藏版)》请在冰豆网上搜索。
中央广播电视大学C程序设计
中央广播电视大学2008-2009学年度第二学期“开放本科”期末考试
一、单选题(每小题2分,共20分}
1.由C语言源程序文件编译而成的目标文件的缺省扩展名为(D)。
A.cppB.cC.exeD.obj
2.设x和y均为逻辑值,则x││y为假的条件是(C)。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假
3.枚举类型中的每个枚举常量的值都是一个(A)。
A.整数B.浮点数C.字符D.记录
4.循环语句“for(i=0;1<-n;i++)S;”中循环体S被执行的次数为(D
A.1B.n–1C.nD.n+1
5.假定有定义为”inta[4][5]={{1,3,5},{2,8}};",则a[1][1]的值为(D)
A.3B.5C.2D.8
6.在下面的选项中,不能作为函数的返回类型的是(C)。
A.voidB.intC.newD.long
7.假定x的值为5,y的值为6,则表达式x++*--y的值为(A)。
A.25B.30C.36D.42
8.用calloc函数创建具有10个整型元素的动态存储空间正确调用是(C)
A.calloc(10,sizeof(char))B.calloc(10)
C.calloc(10,sizeof(int))D.calloc(20,sizeof(int))
9.假定有定义“intb[10],*pb;",则不正确的赋值为(B)。
A.pb=bB.pb=b[5]C.pb=b+2D.pb=&b[0]
10.标准输人设备的文件流标识符是(B)。
A.stderrB.stdinC.stdoutD.stdio
二、填空题(每小题2分,共26分)
1.执行“printf("%c",'A’十2);”语句后得到的输出结果为C。
2.shortint类型的长度为2
3.用类型关键字表示十进制常数3.26f的类型为_float。
4.假定y=10,则表达式++y*3的值为33
5.逻辑表达式(x==0&&y>5)的相反表达式为(x!
=0’IIY<=5)或:
(xIIY<=5)
6.若x=5,Y=10,则x!
=y的逻辑值为_1。
7.假定二维数组的定义为“inta[3][5];",则该数组所占存储空间的字节数为60
8.使用“typedefcharBB[10][50];”语句定义BB为含有10行50列的二维字符数组类型。
9.字符串“a:
\\xxk\\数据”的长度为11
16.假定p所指对象的值为25,p+1所指对象的值为46,则,*++p的值为46。
11.假定一个数据对象为int*,类型,则指向该对象的指针类型为int**
12.假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的长度为12
13.假定要访问一个结构对象x中的数据成员a,则表示方式为_x.a。
三、写出下列每个程序运行后的输出结果(每小题6分,共30
1.#include
voidmain(){
inti,s=0
for(i=1;;i++){
if(s>30)break;
if(i%2==0)s+=i;
}
printf("s=%d\n",s)
解:
s=42
2.#include
voidmain()
inta[9]={36,25,48,24,55,40,18,66,20};
inti,bl,b2;
bl=b2=a[0]
for(i=1;i<9;i++){
if(a[i]>bl)bl=a[i];
if(a[i] } printf("%d%d\n",bl,b2) } 解: 6618 3.#include voidSB(charch){ switch(ch){ case'A': case,a': printf("WW”);break case'B': case'b': printf("GG“);break default: printf("BB“);break; ) } voidmain(){ charal“'a',a2='B',a3二,f' SB(al);SB(a2);SB(a3); printf("\n"); } 解: WWGGBB 4.#include #defineM6 voidmain() inti,x; inta[M]={10,15,22,37,46,58); for=(i=O;i for(i=0;i<6;i++)print("%d",a[i]); printf("\n"); } 解: 584637221510 5.#include structWorker charname[15];intage;floatpay; } voidmain() structWorkerx={"wanghua',52,2350}; structWorkery,*p y=x;P=&x printf("%d%7.2f\n",y.age+p->age,p->pay+20) } 解: 1042370.00 四、写出下列每个函数的功能(每小题6分,共12分) 1.intFH() intx,y=0; scanf("%d",&x); while(x! =-1){y+=x;scanf("%d",&x); returny; 函数功能: 求出从键盘上输入的一批整数的总和,以-1作为结束输人的标志。 2.intFF(structIntNode*f)//f为指向一个单链表的表头指针 { intn=0 if(! f)return0; while(f){ n++ f=f->next; } returnn } 假定structIntNode的类型定义为: structIntNode{intdata;structIntNode*next; 函数功能: 求出并返回由f所指向的单链表中所有结点的个数。 五、按题目要求编写程序或函数(每小题6分,共12分) 1、编写一个程序,利用whil·循环,计算并打印输出1十音+合十⋯+告的值,其中正整数n值由键盘输入。 假定求和变量用sum表示,计数变量用i表示,sum,i和n均定义为全局变量,sum和i的初值分别被赋予0和1, 1.#include Intn,i=1; doublesum=0; voidmain() { scanf("%d",&.n); while(i<=n)sum+=(double)1/i++; printf("sum=%1f\n",sum); } 2.根据函数原型"voidDD(inta[],intn,intMM)”编写函数定义,利用双重循环查找并、打印输出数组a[n〕中任何两个元素的值等于mm值的元素值。 假定a[司十a[j〕等于mm,则输出格式为: (a[i],a[J]) voidDD(inta[],intn,intMM) { inti,j; fore=0;1 for(j=i+l;j if(a[i]+a[j]==MM)printf("%d,%d\n",a[i],a[j]); } 中央广播电视大学2009-2010学年度第一学期“开放本科”期末考试 一、单选题(每小题2分。 共20分) l.C语言源程序文件的缺省扩展名为(D)。 A.cppB.exeC.objD.C 2.设x和Y均为逻辑值,则x&&Y为真的条件是(A)。 A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假 3.在下列的符号常量定义中,正确的定义格式为(C)。 A.#defineMlB.constintM220C.#defineM310D.constcharmark 4.for循环语句能够被改写为(D)语句。 A,复合B.ifC.switchD.while 5.在下面的一维数组定义中,错误的定义格式为(C)。 A.inta[]={1,2,3}B.inta[10]={0}C.inta[]D.inta[5] 6.下面的函数原型声明中存在语法错误的是(C)。 A.AA(inta,intb)C.AA(inta;intb;)B.AA(int,int)D.AA(inta,int) 7.假定a为一个数组名,则下面存在错误的表达式为的(B)。 A.a[i]B.*a++C.*aD.*(a+1) 8.假定有定义为“inta[10],x,*pa=a;",若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(D)。 A.x=pa[3]B.x=*(a+3)C.x=a[3]D.x=*pa+3 9.char类型的长度为(A)个字节。 A.1B.2C.3D.4 10.向一个二进制文件中写人信息的函数为(D)。 A.fgets()B.fputs()C.fread()D.fwrite() 二、填空题(每小题2分,共26分) 1.C语言中的每条复合语句以}(或右花括号)作为结束符。 2.在#include命令中所包含的文件,可以是头文件,也可以是程序文件。 3.十进制数35对应的八进制数为043。 4.假定x=5,则表达式2+x++的值为7。 5.增量表达式++y表示成赋值表达式为y=y+1 6.若x=5,y=10,则X>y的值为0。 7.假定二维数组的定义为“inta[3][5];",则该数组所含元素的个数为15。 8.执行“typedefintABC[10];”语句把ABC定义为具有10个整型元素的数组类型。 9.strcat()函数用于连接两个字符串。 10.假定p所指对象的值为25,p+1所指对象的值为46,则‘p++的值为25。 11.若要把一个整型指针P转换为字符指针,则采用的强制转换表达式为(char*)p 12.NULL是一个符号常量,通常作为空指针值,它对应的值为0。 13.假定要动态分配一个类型为structWorker的对象,并由r指针指向这个对象,则使用的表达式为structWorker*r=malloc(sizeof(structWorker)) 三、写出下列每个程序运行后的输出结果(每小题6分.共30分) 1.#include voidmain(){ inti,s=0; for(i=1;i<6;i++)s+=i*i; printf("s=%d\n",s); } 解: s=55 2.#include #defineN6 voidmain() { inti,a[N]={2,5,8,10,15,21}; for(i=0;i if(a[i]%5)printf("%d",a[i]); printf("\n"); } 解: 2821 3.#include #include voidmain(){ inti; unsignedintlen; char*a[5]=("student","worker,"cadre',"soldier',"zzeasan123"} len=strlen(a[0]); for(i=1;i<5;i++) if(strlen(a[i])>len)len=strlen(a[i]); printf("%d\n",len); 解: 10 4.#include voidmain() { inta,b; for(a=2,b=3;b<20;){ printf("%d%d",a,b); a=a+b; b=a+b; } printf("%d%d\n",a,b); } 解: 23581321 5.#include voidLE(int*a,int*b){ intx=*a; *a=*b;*b=x; } voidmain(){ intx=15,y=26; printf("%d%d\n",x,y); LE(&x,&y); printf("%d%d\n",x,y); } 解: 1526 2615 四、写出下列每个函数的功能【每小题6分.共12分) 1.#include intSG(intx){//x为大于等于2的整数 inta=(int)sqrt(x);//sqrt(x)取x的平方根 inti=2; while(i<=a){ if(x%i==0)break; 1++; } if(i<=a)return0;elsereturn1; } 函数功能: 判断x是否为一个素数,若是则返回1,否则返回。 2.intFindMax(structIntNode*f)//f为一个单链表的表头指针 { intx; if(! f){printf("单链表为空\n"),exit(l);} x=f->data; f=f一>next; while(f){ if(f->data>x)x=f->data; f=f->next; } returnx; } 假定structIntNode的类型定义为: structIntNode(intdata;structIntNode=next;}; 函数功能: 求出由f所指向的单链表中所有结点的最大值。 五、按题目要求编写程序或函数(每小题6分,共12分! 1.编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。 #include voidmain() { inti; for(i=3;i<=50;i++) if(i%3==0││i%5==0)printf("%d",i); printf("\n"); } 2.编写一个递归函数"intMinta[],intn)",求出数组a中所有n个元素之积并返回。 intFF(inta[],intn) { if(n<=0){printf("n值非法\n"),exit (1);} if(n==1)returna[n-1]; elsereturna[n-1]*FF(a,n-1); } 中央广播电视大学2008-2009学年度第一学期“开放本科”期末考试 一、单选题(每小题2分.共20分) 1.由C语言目标文件连接而成的可执行文件的缺省扩展名为(D)。 A.cppB.exeC.obiD.c 2.设有两条语句为“inta=12;a+=a*a;",则执行结束后,a的值为(C)。 A.12B.144C.156D.288 3.带有随机函数调用的表达式rand()%20的值在(C)区间内。 A.1~19B.1~20C.0~19D.0~20 4.for循环语句“for(i=0;i A.(n十1)/2B.n/2+1C.n/2一1D.n-1 5.在下列的字符数组定义中,存在语法错误的是(D)。 A.chara[20]="abcdefg";B.chara[]="x+y=55.“; C.chara[15]={’1’,’2’};D.chara[10]=5’; 6.若有一个函数原型为“double*function()",则它的返回值类型为(B)。 A.实数型B.实数指针型C.函数指针型D.数组型 7.在C语言中,所有预处理命令都是以(B)符号开头的。 A.*B.#C.&.D.@ 8.假定整数指针p所指数据单元的值为30,p+1所指数据单元的位为40,则执行 *p++后,p所指数据单元的值为(A)。 A.40B.30C.70D.10 9.若要使p指向二维整型数组a[10][20],则p的类型为(D)。 A.intB.int**C.int*[20]D.int(*)[20] 10.表示文件结束符的符号常量为(C) A.eofB.EofC.EOFD.feof 二、填空题(每小题2分,共26分) 1一个函数定义由函数头和函数体两部分组成。 2.执行“printf("%c",'F'-2);”语句后得到的输出结果为D 3.int类型的长度为4 4.表达式(float)25/4的值为6.25 5.若x=5,y=10,则x<=y的逻辑值为1 6.作为语句标号使用的case和default只能用于switch或开关或分情况语句的定义体中。 7.在程序中执行到return或返回语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 8.假定二维数组的定义为“chara[M][N]”,则该数组所含元素的个数为M*N 9.存储字符’a’需要占用存储器的1个字节空间。 10.用于存储一个长度为n的字符串的字符数组的长度至少为n+l 11.假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式(*p)++后,P 所指对象的值为26 12.假定P是一个指向整数对象的指针,则用*P表示该整数对象。 13.假定一个结构类型的定义为“structB{inta[5];char*b;};",则该类型的理论长度为24 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.#include voidmain(){ inti,sl=0,s2=0 for(i=0;i<10;i++) if(i%2)sl+=i; elses2+=i; printf("%d%d\n",sl,s2) } 解: 2520 2.#include constintM=20 voidmain() { inti=2; while (1){ if(i>M/2)break; if(M%i==0)printf("%d“,i); 1++; } Printf("\n"); } 解: 24510 3.#include inta[6]={4,5,6,15,20,42}; voidmain() { Sl=s2=0; for(i=0;i<6;i++){ switch(a[i]%2){ case0: s2+=a[i];break; case1: sl+=a[i];break; } } printf("%d%d\n",sl,s2); } 解: 2042 4.#include Voidmain(){ 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"); } 解: 111320 5.#include #include StructWorker{charname[15];intage;floatpay;}; voidmain(){ structWorkerx; char*t="liouting"; intd=38;floatf=400; strcpy(x.Name,t); x.age=d;x.pay=f; x.age++;x.pay*=2; printf("%s%d%6.2f\n",xName,xage,xpay); } 解: liouting39800.00 四、写出下列每个函数的功能 1.#include intSA(inta,intb){ if(a>b)return1; elseif(a==b)return0 elsereturn一1; } 函数功能: 比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a 2.voidOutput(structIntNode*f)//f为单链表的表头指针 { if(! f)return; while(f); print{("%d",f一>data) f=f一>next; } print("\n"); } 假定structIntNode的类型定义为: structIntNode{intdata;structIntNode*next;}; 函数功能: 遍历并输出由f所指向的单链表中每个结点的值。 五、按题目要求编写程序或函数 1.编写一个程序,计算1+3+3²+…+3¹º的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 #include voidmain() { inti; intp=1; ints=1; for(i=1;i<=10;i++){p*=3;s+=p;} printf("%d\n",s); } 2.根据函数原型I'intMinta[]intn)",编写函数定义,计算并返回数组a[n」中所有元素之和。 intFF(inta[],intn) { inti,sum=0 for(i=0;i returnsum; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中央广播电视大学 程序设计