中央广播电视大学C程序设计.docx

上传人:b****4 文档编号:4678880 上传时间:2023-05-07 格式:DOCX 页数:18 大小:22.25KB
下载 相关 举报
中央广播电视大学C程序设计.docx_第1页
第1页 / 共18页
中央广播电视大学C程序设计.docx_第2页
第2页 / 共18页
中央广播电视大学C程序设计.docx_第3页
第3页 / 共18页
中央广播电视大学C程序设计.docx_第4页
第4页 / 共18页
中央广播电视大学C程序设计.docx_第5页
第5页 / 共18页
中央广播电视大学C程序设计.docx_第6页
第6页 / 共18页
中央广播电视大学C程序设计.docx_第7页
第7页 / 共18页
中央广播电视大学C程序设计.docx_第8页
第8页 / 共18页
中央广播电视大学C程序设计.docx_第9页
第9页 / 共18页
中央广播电视大学C程序设计.docx_第10页
第10页 / 共18页
中央广播电视大学C程序设计.docx_第11页
第11页 / 共18页
中央广播电视大学C程序设计.docx_第12页
第12页 / 共18页
中央广播电视大学C程序设计.docx_第13页
第13页 / 共18页
中央广播电视大学C程序设计.docx_第14页
第14页 / 共18页
中央广播电视大学C程序设计.docx_第15页
第15页 / 共18页
中央广播电视大学C程序设计.docx_第16页
第16页 / 共18页
中央广播电视大学C程序设计.docx_第17页
第17页 / 共18页
中央广播电视大学C程序设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

中央广播电视大学C程序设计.docx

《中央广播电视大学C程序设计.docx》由会员分享,可在线阅读,更多相关《中央广播电视大学C程序设计.docx(18页珍藏版)》请在冰点文库上搜索。

中央广播电视大学C程序设计.docx

中央广播电视大学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;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2