河海大学级C语言期终考试试题机电学院.docx

上传人:b****1 文档编号:288368 上传时间:2023-04-28 格式:DOCX 页数:17 大小:24.17KB
下载 相关 举报
河海大学级C语言期终考试试题机电学院.docx_第1页
第1页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第2页
第2页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第3页
第3页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第4页
第4页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第5页
第5页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第6页
第6页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第7页
第7页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第8页
第8页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第9页
第9页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第10页
第10页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第11页
第11页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第12页
第12页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第13页
第13页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第14页
第14页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第15页
第15页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第16页
第16页 / 共17页
河海大学级C语言期终考试试题机电学院.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

河海大学级C语言期终考试试题机电学院.docx

《河海大学级C语言期终考试试题机电学院.docx》由会员分享,可在线阅读,更多相关《河海大学级C语言期终考试试题机电学院.docx(17页珍藏版)》请在冰点文库上搜索。

河海大学级C语言期终考试试题机电学院.docx

河海大学级C语言期终考试试题机电学院

2009-2010学年第1学期《C语言程序设计》课内考试卷(A卷)

授课班号年级专业学号姓名仓井空

题号

上机

(1)

上机

(2)

总分

审核

题分

30

20

10

20

20

得分

得分

评阅人

一、选择题(30分,每小题1分)

 

1.以下所列的C语言常量中,错误的是___B__

A.0xFFB.1.2e0.5C.2LD.'\72'

2.在下列变量名中,合法的是__BF_____

A.intB.text_01C.a*bD.3abc

E.fun(4)F._elseG.a-bc

3.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子

的C语言表达式是____A____

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

4.设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为_______

A.不定值B.4C.3D.1

5.以下语句的输出结果是B_______。

charc1=100,c2=100;printf(“%d”,(c1*c2));

A.越界(出错)B.10000C.负数 D.一个字符

6.设x为整数,C语言中能正确地表达数学式0≤x<5的是__D___________

A.0<=x<5B.x=0||x=1||x=2||x=3||x=4

C.x>=0||x<5D.!

(x<0||x>=5)

7.下面程序段执行后

inti=10;floatx;

x=5/i;

x的值为__C____

A.0.5B.0C.0.0D.1.0

8.设有说明“inta=3,b=5,m;”,则执行表达式m=a<=3&&a+b<8后,m的值为_____C_。

A.trueB.falseC.0D.1

9.下面程序段执行后

intx=5,y=7,z=8;

z+=x++||y++||++z

x,y,z的值分别是__A___。

A.6、7、9B.6、8、10C.6、8、8D.6、8、1

10.若执行以下程序时从键盘上输入9,则输出结果是_B____。

A.11B.10C.9D.8

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

elseprintf("%d\n",n--);

}

11.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是_C_____

A.B.

switch(a+b);switch(a*a+b*b) 

{case1:

y=a+b;break;{case3:

 

case0:

y=a-b;break;case1:

y=a+b;break;

}case3:

y=b-a,break;

}

C.D.

switchaswitch(a-b)

{casec1:

y=a-b;break;{default:

y=a*b;break

casec2:

x=a*d;break;case3:

case4:

x=a+b;break

default:

x=a+b;case10:

case11:

y=a-b;break;

}}

12.有以下程序段

intk=0

while(k=1)k++;

while循环执行的次数是__A___

A.无限次B.有语法错,不能执行

C.一次也不执行D.执行1次

13.以下程序执行后sum的值是__C_____

A.15B.14C.不确定D.0

main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

printf("%d\n",sum);

}

14.有以下程序段

intx=3

do{

printf("%d",x-=2);

}while(!

(--x));

其输出结果是_____C___

A.1B.30C.1–2D.死循环

15.若变量c为char类型,能正确判断出c为小写字母的表达式是D_____

A.'a'<=c<='z'B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')

16.以下程序的输出结果是__C_____

A.0B.29C.31D.无定值

voidfun(intx,inty,intz)

{

z=x*x+y*y;

}

main()

{inta=31;

fun(5,2,a);

printf("%d",a);

}

17.下列程序段的输出结果是__A___?

?

?

?

?

?

___

A.2143B.1212C.1234D.2112

voidfun(int*x,int*y)

{

printf("%d%d",*x,*y);*x=3;*y=4;

}

main()

{intx=1,y=2;

fun(&y,&x);

printf("%d%d",x,y);

}

18.下列程序的输出结果是_C______

A.非法B.a[4]的地址C.5D.3

main() 

{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

printf("%d",*--p);

}

19.下列程序的运行结果是____B_____

A.63B.36C.编译出错D.00

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}

20.下面程序的输出结果是_____C______

A.0B.1C.10D.9

main()

{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;

p=a;

printf("%d\n",*p+9);

}

21.设有以下说明语句

struct_ex{

intx;

floaty;

charz;

}example;

则下面的叙述中不正确的是____B___

A.struct结构体类型的关键字B.example是结构体类型名

C.x,y,z都是结构体成员名D.struct_ex是结构体类型

22.以下程序的输出结果是___B______

A.20B.21C.22D.23

main()

{

inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

for(i=0;i<3;i++)k+=p[i]*2;

printf("%d\n",k);

}

23.以下程序的输出结果是________C__

A.1,5,9B.1,4,7C.3,5,7D.3,6,9

main()

{

inti,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)printf("%d,",x[i][2-i]);

}

24.以下程序的输出结果是____A______

A.18B.19C.20D.21

main()

{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;i<3;i++) 

for(j=0;j<=i;j++)

s+=a[i][j];

printf("%d\n",s);

}

25.当执行下面的程序时,如果输入ABC,则输出结果是__A____

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

#include"stdio.h"

#include"string.h"

main()

{charss[10]="12345";

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

26.以下程序的输出结果是__A____

A.1B.2C.3D.4

longfun(intn)

{longs;

if(n==1||n==2)

s=2;

else

s=n-fun(n-1);

returns;

}

main()

{

printf("%d\n",fun(3));

}

27.以下程序的输出结果是_B_____

A.16B.2C.9D.1

#defineSQR(X)X*X

main()

{

inta=16,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf("d\n",a);

}

28.若定义了以下函数:

voidf(......)

{......

*p=(double*)malloc(10*sizeof(double));

......

}

p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是__C____

A.double*pB.float**pC.double**pD.float*p

29.以下程序的输出是(C)

A.10B.11C.51D.60

struct_st{

intx;

int*y;

}*p;

intdt[4]={10,20,30,40};

struct_staa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};

main()

{p=aa;

printf("%d\n",++(p->x));

}

30.while(!

x)中的(!

x)与下面条件__A_________等价

A.x==0B.x!

=1C.x==1D.x!

=0

得分

评阅人

二、读程序,写结果(20分,每题2分)

1.下面程序的输出结果是___fisNOT1.0__________

voidmain()

{

floatf=0.0;

inti;

for(i=0;i<10;i++)

f+=0.1;

if(f==1.0)

printf("fis1.0\n");

else

printf("fisNOT1.0\n");

}

2.下列程序的输出结果是___*#*#*#$_________________

voidmain(void)

{inti;

for(i=1;i<=5;i++)

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

}

printf("$\n");

}

3.下列程序段的输出结果是__5359求质数________________________

voidmain()

{

for(t=50,k=0;t<=60;t++)

{

for(i=2;i

if(t%i==0)break;

if(i==t)

printf("%5d",t);

}

}

4.下列程序的输出是____123______?

_________

voidincrement(void)

{staticintx=0;

x++;

printf("%d\t",x);

}

main()

{increment();

increment();

increment();

}

5.下列程序的输出结果是_____24最大公约数______________

intxy(inta,intb)

{intr,t;

if(a

t=a;a=b;b=t;

}

r=a%b;

while(r!

=0)

{

a=b;b=r;r=a%b;

}

returnb;

}

voidmain()

{

inta=72,b=96;

printf("%d",xy(a,b));

}

6.下列程序的输出结果是43535______倒续__

#include

main()

{

intx=53534,r;

while(x!

=0)

{

r=x%10;x=x/10;printf(“%d”,r);

}

}

7.写出下面程序的运行结果____75求最大________

voidmain()

{

intm,a[]={25,64,38,40,75,66,38,54};

m=a[0];

for(inti=1;i<8;i++)

if(a[i]>m)

m=a[i];

printf("%d\n",m);

}

8.写出下面程序的运行结果________1,1,20____行列值_____

#include

voidmain()

{

inta[3][4]={{7,5,14,3},{6,20,7,8},{14,6,9,18}};

inti,j,r,c,m;

m=a[0][0];

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(a[i][j]>m)

{

m=a[i][j];

r=i;

c=j;

}

printf("%d,%d,%d\n",r,c,m);

}

9.写出下列程序的运行结果____123456789排序____________

voidxyz(inta[],intn)

{inti,j,key;

for(i=1;i<=n-1;i++)

{key=a[i];

for(j=i-1;j>=0;j--)

{

if(key

a[j+1]=a[j];//将a[j]向后移动一个位置

else

break;

}

a[j+1]=key;

}

}

voidmain()

{

inta[]={5,2,9,1,3,4,6,8,7};

inti,n=9;

xyz(a,n);

for(i=0;i

printf("%4d",a[i]);

printf("\n");

}

10.下面程序的输出结果是___65423__________

voidfun(intn)

{

if(n==0)return;

else{

printf("%d",n%10);

fun(n/10);

}

}

voidmain()

{

inta=32456;

fun(a);

}

得分

评阅人

三、完善程序(10分,每空2分)

1.下列程序的功能是用牛顿迭代法求实数a的平方根,迭代公式是

.

doublemysqrt(doublea)

{doublex1,x2,eps=1e-5;

x2=a/2;

do{

x1=x2;

x2=0.5*(x1+a/x1);

}while(___[1]x1>eps________);

returnx2;

}

2.链表算法

typedefstruct_lnode

{

intdata;//数据元素,可以是任何类型,这里我们使用整型数据元素

struct_lnode*next;//指向后继节点的指针

}Lnode;

/*用头插法创建链表.用值e构造节点s,始终将节点s插入到首节点前面,并且将first指针指向新的首节点*/

Lnode*list_create(Lnode*first,inte)

{

Lnode*q,*s;

s=(Lnode*)malloc(sizeof(Lnode));//给新结点分配空间,构造新节点

s->data=e;

s->next=0;

if(first==NULL)//空链表

first=s;

else

{

__[2]___s->next=first____________;

__[3]____first=s,p++___________;

}

returnfirst;

}

/*在first所表示的链表中查找值为e的节点,如果找到,返回该节点,否则,返回空指针*/

Lnode*list_find(Lnode*first,inte)

{

Lnode*p;

p=first;

while(p)

{

if(p->data==e)

returnp;

_[4]___________;

}

returnNULL;

}

3.下面的程序实现字符串拷贝,即将字符串src中的内容拷贝到字符串desc中,返回字符串desc。

要求desc必须已经分配空间,并且空间足够大以便容纳src的内容。

char*StrCopy(char*desc,constchar*src)

{char*p;

p=desc;

while(_[5]___________);

returnp;

}

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

当前位置:首页 > 自然科学 > 物理

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

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