1C语言期末考试A.docx

上传人:b****3 文档编号:10755096 上传时间:2023-05-27 格式:DOCX 页数:20 大小:41.53KB
下载 相关 举报
1C语言期末考试A.docx_第1页
第1页 / 共20页
1C语言期末考试A.docx_第2页
第2页 / 共20页
1C语言期末考试A.docx_第3页
第3页 / 共20页
1C语言期末考试A.docx_第4页
第4页 / 共20页
1C语言期末考试A.docx_第5页
第5页 / 共20页
1C语言期末考试A.docx_第6页
第6页 / 共20页
1C语言期末考试A.docx_第7页
第7页 / 共20页
1C语言期末考试A.docx_第8页
第8页 / 共20页
1C语言期末考试A.docx_第9页
第9页 / 共20页
1C语言期末考试A.docx_第10页
第10页 / 共20页
1C语言期末考试A.docx_第11页
第11页 / 共20页
1C语言期末考试A.docx_第12页
第12页 / 共20页
1C语言期末考试A.docx_第13页
第13页 / 共20页
1C语言期末考试A.docx_第14页
第14页 / 共20页
1C语言期末考试A.docx_第15页
第15页 / 共20页
1C语言期末考试A.docx_第16页
第16页 / 共20页
1C语言期末考试A.docx_第17页
第17页 / 共20页
1C语言期末考试A.docx_第18页
第18页 / 共20页
1C语言期末考试A.docx_第19页
第19页 / 共20页
1C语言期末考试A.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1C语言期末考试A.docx

《1C语言期末考试A.docx》由会员分享,可在线阅读,更多相关《1C语言期末考试A.docx(20页珍藏版)》请在冰点文库上搜索。

1C语言期末考试A.docx

1C语言期末考试A

第1页共10页

扬州大学试题纸

(2013-2014学年第1学期)

全校非计算机专业统考课程C及C++语言程序设计(闭)卷

注意:

1.请用答题纸答题,将答案填于相应的题号内。

否则不给分。

2.请认真填写并仔细核对答题纸上的学院、系科、班级、学号及姓名等。

3.请将试卷和答题纸分开上交。

一、单选题(每小题2分,共30分)

1.以下叙述中,正确的是

(1)。

A.main函数必须放在程序的开始

B.main函数必须放在程序的最后

C.在一个函数体内可以定义另外一个函数

D.程序的执行总是从main函数开始,一般回到main函数结束

2.下列声明变量的语句中,错误的是

(2)。

A.int_5;B.doubleint_C.charForD.floatUS$

3.若有声明“charc='\72';”,则变量c(3)。

A.包含1个字符B.包含2个字符

C.包含3个字符D.声明明不合法

4.判断char型变量c1是否为小写字母的正确表达式为(4)。

A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)

C.('a'>=c1)||('z'<=c1)D.(c1>='a')&&(c1<='z')

5.下列语句中,能正确进行字符串赋值操作的语句是(5)。

A.chars1[5][]={"ABCDE"};B.chars2[]={'A','B','C','D','E'};

C.chars3[][10]={"ABCDE"};D.chars4[5]={'A','B','C','D','E'};

6.以下关于break和continue语句的叙述中,正确的是(6)。

A.break和continue语句都可以出现在switch语句中

B.break和continue语句都可以出现在循环体中

C.在循环语句和switch语句之外允许出现break和continue语句

D.执行循环语句中的break或continue语句都将立即终止循环

7.设有声明“inta=1,b=2,c=3,d=4,x;”,则执行下列程序段后,x的值为(7)。

if(a

if(c

elseif(a

x=2;

elsex=3;

elsex=6;

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

裁剪框

学院___________系____________班级_____________学号____________姓名_____________

------------------------------------------------装---------------------------------------订-------------------------------------------线-----------------------------------------------

8.sizeof(float)是(8)。

A.一种函数调用B.一个不合法的表达式

C.一个整型表达式D.一个浮点表达式

9.下列数组声明中,错误的是(9)。

A.inta[][3]={1};

B.inta[2][3]={{1,2},{3,4},{5,6}};

C.inta[][3]={{1,2,3},{4,5,6}};

D.inta[2][3]={1,2,3,4,5,6};

10.若有声明:

inta[10]={1,2,3,4,5,6,7,8},*p=&a[3];,则p[0]的值是(10)。

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

11.下列程序段运行时的输出结果是(11)。

chars[]="China";

printf("%s",s+2);

A.ChinaB.C

C.字符'i'的地址D.ina

12.若有程序:

#defineSUB(x,y)x*y

main()

{

inta=1,b=2;

a=SUB(a+1,b+1);

printf(“%d”,a);

}

则执行该程序后,a的值为(12)。

A.4B.5C.6D.7

13.下列不是死循环的是(13)。

A.inti=100;while

(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=0;do{++k;}while(k>=0);

D.ints=36;while(s);--s;

14.C语言规定,函数返回值的类型是由(14)。

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定

15.若有结构定义及结构变量声明如下:

structpupil

{charname[20];

intage;

charsex;

}pup[5],*p;

p=pup;

则下列scanf函数调用语句中,对结构变量成员引用错误的是(15)。

A.scanf(“%s”,pup[0].name);B.scanf(“%d”,pup[0].age);

C.scnaf(“%c”,&(p->sex));D.scanf(“%d”,&(*p).age);

第2页共10页

裁剪框

第3页共10页

二、填空题(每空1分,共20分)

1.除goto语句外,C语言中的转移语句还有return,

(1),

(2)。

2.设有变量声明如下:

inta=9;floaty=3.5;

则表达式a%5和7/4+y的值分别为(3)、(4)。

3.在C语言中,分别用(5)和(6)表示逻辑“真”值和逻辑“假”值。

4.把数学表达式

改写成C语言表达式为(7),计算这类表达式时通常要包含头文件(8)。

5.在C语言中,根据生存期的不同,可将变量分为静态存储类别和动态存储类别。

具体有extern、register、(9)和(10)。

6.C语言中有!

、&&、||三个逻辑运算符,其中优先级高于算术运算符的是(11),三个运算符中,优先级最低的是(12)。

7.设有声明“intx,a=5,b=8;”,则执行语句“x=7;x+=x-=x+x;”后,x的值为

(13)。

而程序段“a+=b;b=a-b;a-=b;”的功能是(14)。

8.若有声明语句如下:

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

则执行该语句后,a[1][2]=(15),a[2][1]=(16)。

9.若有声明“chars[10]="China";”,则表达式sizeof(s)的值为(17);表达式strlen(s)的值为(18)。

10.在C语言源程序中,以“#”开头的命令被称为(19)命令,它们是在

(20)被处理的。

裁剪框

第3页共8页

第4页共10页

三、阅读程序写出结果(每小题4分,共20分)

1.运行以下程序,若输入数据为:

2014↙,则输出结果为。

注:

用↙表示回车。

main()

{inta,t=0;

scanf("%d",&a);

while(a)

{t=t*10+a%10;

a/=10;

}

printf("%d",t);

}

2.以下程序运行时的输出结果是。

#include

voidmain()

{

inti=4;

while(i>0)

{switch(i%2)

{case0:

i--;

case1:

i--;break;

}

i--;

}

printf("%d",i);

}

3.以下程序运行时的输出结果是。

#include

voidfun(int*x,inty)

{

*x=*x+y;

y=5;

}

voidmain(void)

{inta[2]={1,2};

fun(&a[0],a[1]);

printf("%3d%3d\n",a[0],a[1]);

}

裁剪框

第4页

4.下列程序运行时的输出结果是。

#include

voidmain()

{

chara[20]="2013",b[10]="14";

inti=0,j=0;

while(a[i])i++;

while(b[j])

a[i++]=b[j++];

a[i]='\0';

printf("%s",a+2);

}

5.下列程序运行时,若输入数据为10,则输出结果是。

#include

voidmain()

{

intb[16],x,k,r,i;

printf("inputx:

");

scanf("%d",&x);

k=-1;/*变量k用作b数组的下标*/

while(x!

=0)

{

r=x%2;

b[++k]=r;

x/=2;

}

for(i=k;i>=0;i--)

printf("%d",b[i]);

}

四、完善程序题(每空1分,共30分)

1.下列程序的功能是输出100以内的个位数为6且能被6整除的所有整数。

#include

voidmain()

{inti,j;

for(i=0;

(1);i++)

{j=i*10+6;

if(

(2))continue;

printf("%d",j);

}

}

第5页共10页

裁剪框

2.以下程序中,函数fun的功能是实现N行N列方阵的转置,即实现a[i][j]与a[j][i]的交换。

算法提示:

以主对角线为界,上三角区域中的元素与下三角区域中的对应元素交换。

#include"stdio.h"

#defineN3

voidfun(inta[][N])

{inti,j,t;

for(i=0;i

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

{

(4);

a[i][j]=a[j][i];

(5);

}

}

voidmain()

{intb[N][N],i,j;

for(i=0;i

for(j=0;j

scanf("%d",(6));

fun(b);

for(i=0;i

{for(j=0;j

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

printf("\n");

}

}

3.下列程序中,函数gcd的功能是用欧几里德算法求两个正整数的最大公约数。

#include"stdio.h"

intgcd(intm,intn)

{

intr;

while(n!

=0)

{

r=(7);

m=n;

n=(8);

}

return(9);

}

voidmain()

{

inta,b,t;

printf("Pleaseinputaandb:

");

scanf("%d%d",&a,&b);

if(a

printf("result=%d\n",gcd((10)));

}

第6页共10页

裁剪框

4.以下程序从键盘输入一个较大的整数n(n>=6),然后验证6到n之间的所有偶数都可以分解为两个素数之和。

#include"stdio.h"

#include"math.h"

intprime(intm)

{

intg,h=sqrt(m);

for((11);g<=h;g++)

if(m%g==0)return0;

(12);

}

voidmain()

{intk,j,n,limit;

do

{printf("Inputanumber>=6:

");

scanf("%d",&limit);

}while(limit<6);

for(n=6;n<=limit;n+=2)

for(k=3;k<=n/2;k+=2)

if(prime(k)&&prime(j=(13)))

{printf("%d=%d+%d\n",n,k,j);

break;

}

}

5.用迭代法求

的近似值。

迭代公式为:

要求前后两次求出值的差的绝对值小于10-6时迭代中止。

#include

#include

floatsquare(floata)

{floatx0,x1;

x0=a/2;

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

while(fabs((14))>=1.0e-6)

{x0=x1;

x1=(15);

}

returnx1;

}

voidmain()

{

floata;

scanf("%f",&a);

if(a<0)printf("\nxisanegative\n");

elseprintf("sqrt(%.1f)=%.3f\n",a,(16));

}

第7页共10页

裁剪框

第8页共10页

6.下列程序是利用插入排序法将n个数从大到小进行排序,插入排序的算法思想如下:

从一个空表开始,将待排序的数一个接一个插入到已排好序的有序表中(空表视为有序),从而得到一个新的、记录数增1的有序表。

例如:

当n=7时,待排序的数及每一趟有序表的变化情况如下:

趟数

有序表

剩余待排序数

初始状态

49 38 65 97 76 13 27

第1趟

49

38 65 97 76 13 27

第2趟

49 38

65 97 76 13 27

第3趟

65 49 38

97 76 13 27

第4趟

97 65 49 38

76 13 27

第5趟

97 76 65 49 38

13 27

第6趟

97 76 65 49 38 13

27

第7趟

97 76 65 49 38 27 13

请完善下列程序。

#include

voidsort(inta[],intn)

{

inti,j,t;

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

{t=a[i];

j=(17);

while((j>=0)&&(t>a[j]))

{(18);

j--;

}

(19);

}

}

voidmain()

{

inta[10],i;

printf("\nEnter10number:

");

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

scanf("%d",&a[i]);

(20);

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

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

}

裁剪框

7.下列程序中,函数seln的功能是按下列要求产生随机数:

(1)产生的随机数在[x,y]内;

(2)产生的随机数的个数为n个;

(3)这n个随机整数互不相同且不同于a指向的长度为m的数组中的任何一个;

(4)把产生的符合条件的随机整数依次写入b指向的数组中。

请完善程序。

#include

#include

#defineN10

voidseln(int*a,intm,int*b,intn,intx,inty)

{

inti,j,k,t;

srand(time(NULL));/*srand为随机数发生器的初始化函数*/

i=0;

while(i

{t=(rand()%(y-x))+(21);

/*rand为随机数发生器,产生一个[x,y]内的随机整数*/

for(j=0;j

if(t==a[j])break;

if((22))

{

for(k=0;k

if(t==b[k])break;

if(k==i)

(23)=t;

}

}

}

main()

{

inta[6]={1,11,21,5,15,25},b[20],i;

seln((24),b,N,1,30);

for(i=0;i

printf("(25)",b[i]);

printf("\n");

}

第9页共10页

第10页共10页

8.下列程序中,函数fun的功能是:

统计str指向的一行以“.”结束的文本中单词的个数,并计算单词的平均长度(取整数),单词的个数存放于n所指向的变量中,函数返回单词的平均长度。

请完善程序。

#include

#include

intfun(charstr[],int*n)

{

inti,ave,flag=0,count;

count=strlen(str)-1;

for(i=0;str[i]!

='.';i++)

if(str[i]=='')

{(26);

count--;

}

else

if(flag==0)

{(27);

flag=1;

}

ave=(28);

return(29);

}

voidmain()

{

charstr[80]="Mustpasstheexamination";

inti,n=0,aver;

aver=fun((30));

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

getch();

}

裁剪框

一、单选题(根据题号依次填入,每小题2分,共30分。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

二、填空题(每空1分,共20分)

(1)

(2)(3)

(4)(5)(6)

(7)(8)(9)

(10)(11)(12)

(13)(14)(15)

(16)(17)(18)

(19)(20)

三、阅读程序写出结果(每小题4分,共20分)

1.2.

3.4.

5.

四、完善程序题(每空1分,共30分)

(1)

(2)(3)

(4)(5)(6)

(7)(8)(9)

(10)(11)(12)

(13)(14)(15)

(16)(17)(18)

(19)(20)(21)

(22)(23)(24)

(25)(26)(27)

(28)(29)(30)

《C及C++语言程序设计》答题纸

学院___________班级_____________学号_____________姓名__________

题目

总分

得分

合分人

阅卷人

复核人

核分人

《C及C++语言程序设计》

一、单选题(每小题2分,共30分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

D

D

A

D

C

B

A

C

B

D

D

A

C

D

B

二、填空题(每空1分,共20分)

(1)continue

(2)break(

(1)

(2)可交换)(3)4

(4)4.5(5)1(6)0

(7)sqrt(x+y)/(a+b)(8)math.h(9)static

(10)auto((9)(10)可交换)(11)!

(12)||

(13)0(14)交换a,b的值(15)0

(16)7(17)10(18)5

(19)预处理(20)编译前

三、阅读程序写出结果(每小题4分,共20分)

1.41022.-1

3.3,24.1314

5.1010

四、完善程序题(每空1分,共30分)

(1)i<10或i<=9

(2)j%6!

=0或j%6(3)j

(4)t=a[i][j](5)a[j][i]=t(6)&b[i][j]

(7)m%n(8)r(9)m

(10)a,b(11)g=2(12)return1

(13)n-k(14)x0-x1或x1-x0(15)0.5*(x0+a/x0)

(16)square(a)(17)i-1(18)s[++i]

(19)a[j+1]=t(20)sort(a,10)(21)x+1

(22)j==m(23)b[i++](24)a,6

(25)%5d(26)flag=0(27)(*n)++

(28)count/(*n)(29)ave(30)str,&n

答案

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

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

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

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