期终考试命题稿18.docx

上传人:b****7 文档编号:10547549 上传时间:2023-02-21 格式:DOCX 页数:12 大小:30.11KB
下载 相关 举报
期终考试命题稿18.docx_第1页
第1页 / 共12页
期终考试命题稿18.docx_第2页
第2页 / 共12页
期终考试命题稿18.docx_第3页
第3页 / 共12页
期终考试命题稿18.docx_第4页
第4页 / 共12页
期终考试命题稿18.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

期终考试命题稿18.docx

《期终考试命题稿18.docx》由会员分享,可在线阅读,更多相关《期终考试命题稿18.docx(12页珍藏版)》请在冰豆网上搜索。

期终考试命题稿18.docx

期终考试命题稿18

浙江工业大学期终考试命题稿

2009/2010学年第一学期

课程名称

C++程序设计I

使用班级

信息学院09级

教师份数

10

学生份数

540

命题人

张健、陈晋音

审核人

张健

命题总页数

8页

每份试卷需用白纸

3大张

命题注意事项:

一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑墨水书写,保持字迹清晰,页码完整。

二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处抽定A、B卷。

三、命题稿必须经学院审核,并在考试前两周交教务处。

 

浙江工业大学2009/2010学年

第一学期试卷

课程C++程序设计I姓名__nail_________________________

班级____________________________授课教师

题序

总评

计分

试题一、选择题(每题2分,共20分)

(1)若x是double型变量,n是int型变量,执行b,并输入31.25后,x=1.25,n=3。

A、scanf("%d%lf",&n,&x);B、scanf("%lf%d",&x,&n);

C、scanf("%lf%d",&n,&x);D、scanf("%d%,lf",&n,&x);

(2)若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C表达式

是d。

A、(x%3!

=0)||(y%3!

=0)B、(x%3!

=0)&&(y%3!

=0)

C、(x%3==0)||(y%3==0)D、(x%3==0)&&(y%3==0)

(3)while(b)等价于while(x)。

A、x==0B、x!

=0

C、x==1D、x!

=1

(4)若intx=0,*p=&x;则语句a是不正确的。

A、p=&(x+1);B、p=&x;

C、p=&x+1;D、p=&x,p++;

(5)设变量定义如下,则表达式d是正确的。

structstudent{

intnum;

charname[20];

floatscore;

}stud[10];

A、stud[2]=stud[1]+3B、stud[1]==stud[2]

C、stud[1]=stud[1]-stud[2]D、stud[1]=stud[2]

(6)下列程序的输出结果是d。

#include

voidmain()

{inty;

doubled=3.4,x;

x=(y=d/2.0)/2;

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

}

A、(0.00,1)B、(0.85,1.7)C、(0.50,1)D、以上都不对

(7)程序段d的功能是将变量u、s中的最大值赋给变量t。

A、if(u>s)t=u;t=s;B、t=u;if(t>s)t=s;

C、if(u>s)t=s;elset=u;D、t=s;if(u>t)t=u;

(8)对于以下递归函数f,调用f(3)的返回值是b。

intf(intn)

{if(n)returnf(n-1)+n;

elsereturnn;

}

A、10B、6C、3D、0

(9)不正确的C程序描述是b

A、每个语句的最后必须有个分号

B、一个C程序的书写格式要求严格,一行只能写一个语句

C、C语言的本身没有输入、输出函数

D、一个C程序总是从main()函数开始执行

(10)若有宏定义如下:

#defineX5

#defineYX+1

#defineZY*X/2

则执行一下程序段后,输出结果是d

inta;

a=Y;

printf(“%d”,Z);

printf(“%d\n”,--a);

A、76B、126C、125D、75

试题二、程序选择题(每空1分,共19分)

1.【程序说明】输入1个正整数n(n>=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。

菲波那契(Fibonacci)序列:

1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。

运行示例:

Entern:

10

11235813213455

【程序】

#include

main()

{intcount,i,n,x1,x2,x;

printf("Entern:

");

scanf("%d",&n);

x1=x2=1;

printf("%6d%6d",x1,x2);

count=2a

(1);

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

x=x1+x2b

(2);

printf("%6d",x);

count++;

if((i+2)%6==0c(3))

printf("\n");

x1=x2;

x2=xb(4);

}

}

【供选择的答案】

(1)A、count=2B、count=0C、count=1D、count=-1

(2)A、x=x1-x2B、x=x1+x2C、x=x1D、x=2

(3)A、count/6==0B、count%6!

=0C、count%6==0D、count/6!

=0

(4)A、x=x1+x2B、x2=xC、x1=x2D、x1=x

2.【程序说明】

输入100个整数,将其中的前20个数从小到大排序,然后输出这100个数。

#include"stdio.h"

voidsort((5)b)

{inti,k,m,t;

for(i=0;i

k=i;for(m=i+1;m

(7)c

}

}

voidmain()

{intk,a[100];

for(k=0;k<100;k++)scanf("%d",&a[k]);

(8)a;

for(k=0;k<100;k++)printf("%d",a[k]);}

(5)A、inta,intnB、int*a,intnC、int*a,int*nD、inta[]

(6)A、a[m-1]>a[m]B、a[m-1]a[m]

(7)A、a[k]=a[i];a[i]=a[k];B、a[k]=t;a[k]=a[i];a[i]=t;C、t=a[k];a[k]=a[i];a[i]=t;D、a[i]=a[k];a[k]=a[i];

(8)A、sort(a,20)B、sort(a[],20)C、sort(a[20])D、sort(a[])

3.【程序说明】输入一个正整数n,计算下列算式的前n项之和。

运行示例:

Entern:

2

Sum=0.67

【程序】

#include

main()

{intdenominator,flag,i,n;

doubleitem,sum;

printf("Entern:

");

scanf("%d",&n);

denominator=1;

(9)d;

sum=0;

for(i=1;d(10);i++){

(11)d;

sum=sum+item;

(12)c;

denominator=denominator+2;

}

printf("Sum=%.2f\n",sum);

}

(9)A、flag=0B、flag=-1C、flag=nD、flag=1

(10)A、i>=nB、inD、i<=n

(11)A、item=flag/denominatorB、item=1/denominator

C、item=flag*1.0/denominatorD、item=1.0/denominator

(12)A、flag=-1B、flag=0C、flag=-flagD、flag=flag

4.【程序说明】以下程序的功能是将文件file1.txt的内容输出到屏幕上并复制到文件file2.txt中,请填入适当的内容。

#include

voidmain()

{

FILE(13)

charch;

fp1=fopen(“file1.txt”,”r”);

(14)

while(!

feof(fp1))putchar(fgetc(fp1));

(15)

while(!

feof(fp1))

{ch=fgetc(fp1);

fputc((16));}

fclose(fp1);

fclose(fp2);

}

(13)A、fp1;B、*fp1;C、fp1,fp2;D、*fp1,*fp2;

(14)A、fp1=fopen(“file1.txt”,”w”);B、fp1=fopen(“file2.txt”,”wb”);

C、fp2=fopen(“file1.txt”,”r”);D、fp2=fopen(“file2.txt”,”w”);

(15)A、ch=fgetc(fp1);B、rewind(fp1);

C、ftell(fp1);D、fseek(fp1,1,SEEK_SET)

(16)A、ch,fp2B、ch,fp1C、fp1D、fp2

5.【程序说明】函数create用于建立一个链表(结构体类型标识符node定义如下)。

structnode

{intdata;

structnode*next;};

intn;

structnode*create()

{

structnode*head,*p1,*p2;

n=0;/*全局变量n表示链表结点个数,初值为0*/

head=NULL;/*head表示链表的头,初值为NULL*/

(17)

scanf("%d",&p1->data);

while(p1->data!

=-1)

{n=n+1;

if(n==1)

head=p1;

else

p2->next=p1;

(18)

p1=(structnode*)malloc(LEN);

scanf("%d",&p1->data);

}

p2->next=NULL;

(19)

return(head);

}

(17)A、p1=p2=(structnode*)malloc(LEN);B、p1=(structnode*)malloc(LEN);

C、p1=p2=(structnode)malloc(LEN);D、p1=p2=head;

(18)A、p1=p2;B、p2=p1;

C、p2->next=p1;D、p1->next=p2;

(19)A、free(head);B、free(p2);

C、free(p1,p2);D、free(p1);

试题三、程序阅读题(每题5分,共25分)

程序1(-1

2

7

6)

#include

voidmain()

{intm=18,s=0;

do{

switch(m%7){

case2:

m/=2;s+=2;break;

case3:

m/=3;s+=3;break;

case5:

m/=5;s+=5;break;

default:

m--;s--;

};

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

}while(m);

}

程序2()

#include

intmain(*****

********

***

******

*******

*********)

{

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

inti,j;

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

{

printf("%d:

",a[i]);

for(j=0;j

printf("*");

printf("\n");

}

return0;}

3.程序3(10.0

0.0

9.0

9.0)

#include

voidmain()

{floata[4][3]={{3,2,5},{-3,2,1},{4,3,2},{5,1,3}};

inti,j;floatv;

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

{

v=a[i][0];

for(j=1;j<3;j++)v+=a[i][j];

printf("%6.1f",v);

printf("\n");

}

}

4.程序4()

#include

#include

#defineLENsizeof(structline)

structline

{intnum;structline*next;

};

voidmain()

{intk;

structline*p,*head;

head=NULL;

for(k=10;k>0;k--){

p=(structline*)malloc(LEN);

p->num=k;p->next=head;head=p;

}

while((p->next)!

=NULL){

printf("%d",p->num);p=p->next;

}}

5.程序5()

#include

voidmain()

{inti=0,n;

chars[10]="298h01";

n=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]<='9'&&s[i]>='0')n=n*10+(s[i]-'0');elsebreak;

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

试题四、程序设计题(第1,2小题每题10分,第3小题16分,共36分)

1.输入两个正整数m和n(m

要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被1或自身整除的自然数)。

2.定义函数cal(x,e)计算下列算式的值,直到最后一项的值小于e,函数形参x和e的类型都是double,函数类型是double。

要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x,n)计算x的n次幂。

3.定义一个structstudent结构体类型,输入若干个学生的学号、姓名和四门课的成绩,编程实现如下功能(每个功能要求写成一个函数):

1.计算出每个学生的平均成绩以及各分数段的人数(以平均成绩为准,分数段为:

90~100,80~89,70~79,60~69和<60)。

2.计算出各门功课的平均成绩及总平均成绩,并输出。

3.统计平均成绩高于总的平均成绩的学生人数,输出他们的学号、姓名、各科成绩及人数。

4.根据学生平均成绩从大到小排序,并输出经过排序后的学生学号、姓名、各科成绩。

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

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1