信阳师院计算机期末试题附答案 doc.docx

上传人:b****2 文档编号:11404901 上传时间:2023-05-31 格式:DOCX 页数:22 大小:24.44KB
下载 相关 举报
信阳师院计算机期末试题附答案 doc.docx_第1页
第1页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第2页
第2页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第3页
第3页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第4页
第4页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第5页
第5页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第6页
第6页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第7页
第7页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第8页
第8页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第9页
第9页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第10页
第10页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第11页
第11页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第12页
第12页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第13页
第13页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第14页
第14页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第15页
第15页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第16页
第16页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第17页
第17页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第18页
第18页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第19页
第19页 / 共22页
信阳师院计算机期末试题附答案 doc.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

信阳师院计算机期末试题附答案 doc.docx

《信阳师院计算机期末试题附答案 doc.docx》由会员分享,可在线阅读,更多相关《信阳师院计算机期末试题附答案 doc.docx(22页珍藏版)》请在冰点文库上搜索。

信阳师院计算机期末试题附答案 doc.docx

信阳师院计算机期末试题附答案doc

模拟一

第一题:

选择题(总题数:

10总分数:

20) 

1:

一个C语言程序是由

A)一个主程序和若干子程序组成B)函数组成

C)若干过程组成D)若干子程序组成

2:

C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

A)必须为字母B)必须为下划线

C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符

3:

已经x为float类型的变量。

x=213.82631;printf("%-4.2f",x);则以上语句______

A)输出格式描述答的域宽不够,不能输出B)输出为213.83

C)输出为213.82D)输出为-213.82

4:

以下不正确的if语句是:

A)if(x>y$$x!

=y);B)if(x==y)x+=y;

C)if(x!

=y)x++;elsex--;D)if(x

5:

以下描述正确的是

A)goto语句只能用于退出多层循环

B)switch语句中不能出现continue语句

C)只能用continue语句来终止本次循环

D)在循环中break语句不能独立出现

6:

若有说明:

inta[10];则对a数组元素的正确引用是__

A)a[10]B)a[3.5]C)a[5.5]D)a[10-10]

7:

fun((exp1,exp2),(exp3,exp4,exp5)),以上函数调用语句中含有实参的个数为:

A)1B)2C)4D)5

8:

以下叙述不正确的是

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

9:

已有如下定义和输入语句,inta1,a2;charc1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:

A)1020AB(回车)B)1020(回车)AB(回车)

C)1020AB(回车)D)1020AB(回车)

10:

设有说明:

charw;intx;f1oaty;double?

z;则表达式w*x+z一y值的数据类型为:

A)floatB)charC)intD)double

第二题:

C语言改错题(总题数:

4总分数:

20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中

1:

求ax^2+bx+c=0方程的根,a,b,c由键盘输入,设b^2-4ac>0

行号语句

1:

 #include 

2:

 #include 

3:

 main() 

4:

 { 

5:

 floata,b,c,disc,x1,x2,p,q; 

6:

 scanf(“a=%f,b=%f,c=%f”,&a,&b,&c); 

7:

 disc=b*b-4*a*c; 

8:

 p=-b/2a; 

9:

 q=sqrt(disc)/(2*a); 

10:

 x1=p+q;x2=p-q; 

11:

 printf(“x1=%5.2fx2=%5.2f”,x1,x2); 

12:

 } 

错误行号为:

8。

正确答案为:

p=-b/(2*a);

2:

设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。

用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 floatpi,h,r,l,v; 

5:

 pi=3.1415926; 

6:

 printf(“inputr&h:

”); 

7:

 scanf(“%f%f”,&r,&h); 

8:

 l=2*pi*r; 

9:

 v=1/3*pi*r*2*h; 

10:

 printf(“l=%6.2fv=%6.2f”,l,v); 

11:

 } 

错误行号为:

9。

正确答案为:

v=1/3*pi*r*r*h;

3:

求前100个自然数的和。

行号语句

1:

 #include 

2:

 voidmain() 

3:

 { 

4:

 inti,sum; 

5:

 i=1; 

6:

 while(i<=100) 

7:

 { 

8:

 sum+=i; 

9:

 i++; 

10:

 } 

11:

 printf(“%d”,sum); 

12:

 } 

错误行号为:

4。

正确答案为:

inti,sum=0;

4:

求前10个自然数的阶乘之和

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 longf,s; 

5:

 intk; 

6:

 s=0;f=0; 

7:

 for(k=1;k<=10;k++) 

8:

 { 

9:

 f*=k; 

10:

 s+=f; 

11:

 } 

12:

 printf(“sum=%d”,s); 

13:

 } 

错误行号为:

6。

正确答案为:

s=0;f=1;

第三题:

C语言程序填空题(总题数:

2总分数:

20)根据试题要求将正确答案填到空中(每空5分)

1:

从键盘输入一个年份,判断是否是闰年。

#include

main()

{

intyear,leap;

printf(“inputtheyear:

”);

scanf(“%d”,&year);

if((year%4==0&&year%100!

=0)||(year%400==0))

leap=1;

else

leap=0;

if(leap==1)

printf(“%disaleapyear!

”,year);

else

printf(“%disnotaleapyear!

”,year);

}

2:

下面程序的功能是检查一个二维数组是否对称(即:

对所有i和j都有a[i][j]=a[j][i])。

请填空

#include

main()

{

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

inti,j,found=0;

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

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

if(a[j][i]!

=a[i][j])

{

found=1;

break;

}

if(found==1)

printf(“No”);

else

printf(“Yes”);

}

第四题:

C语言编程题(总题数:

2总分数:

40) 

1:

编写程序,用矩形法求一元函数f(x)=ln(x+1)+x/2(其中ln为自然对数),在区间[1,5]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)。

#include

#include

main()

{

doublea=1,b=5,h,s0,s=0,f0,x;

intn=15;

h=(b-a)/n;

x=a;

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

{

f0=log(x+1)+x/2;

s0=f0*h;

s=s+s0;

x=x+h;

}

printf("方程的近似根为%.2lf.\n",s);

}

/*

方程的近似根为10.95.

Pressanykeytocontinue*/

2:

任意使用一种方法将数据14,35,82,33,22,61,26,12,43,12按从小到大的顺序排序,并输出排序前、排序后的数据。

#include

main()

{

inti,j,t;

inta[10]={14,35,82,33,22,61,26,12,43,12};

printf("冒泡法排序前的顺序为:

\n");

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

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

printf("\n");

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

{

for(j=0;j<10-1-i;j++)

{

if(a[j]>a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

printf("排序后的顺序为:

\n");

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

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

printf("\n");

}

/*

冒泡法排序前的顺序为:

14358233226126124312

排序后的顺序为:

12121422263335436182

Pressanykeytocontinue*/

 

模拟二

第一题:

选择题(总题数:

10总分数:

20) 

1:

解释程序和编译程序的主要区别之一在于______

A)单用户与多用户的差别B)对用户程序的查错能力

C)机器执行的效率D)是否生成目标程序

2:

已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为

A)DB)68C)不确定的值D)C

3:

以下程序的运行结果是:

main(){intm=5;if(m++>5)printf("%d",m);elseprintf("%d",m--);}

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

4:

为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与(?

)配对。

A)缩排位置相同的ifB)其之前最近的if

C)之后最近的ifD)同一行上的if

5:

以下描述正确的是

A)goto语句只能用于退出多层循环

B)switch语句中不能出现continue语句

C)只能用continue语句来终止本次循环

D)在循环中break语句不能独立出现

6:

以下能对二维数组a进行正确初始化的语句是__

A)inta[2][]={{1,0,1},{5,2,3}};

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

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

D)inta[][3]={{1,0,1,0},{},{1,1}};

7:

以下说法不正确的是:

A)在不同函数中可以使用相同名字的变量

B)形参是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

8:

C程序的基本组成单位是

A)文件B)函数C)程序D)工程

9:

有输入语句:

scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是

A)132(回车)B)1,3,2(回车)

C)a=1b=3c=2(回车)D)a=1,b=3,c=2(回车)

10:

设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为

A)intB)floatC)doubleD)不确定

第二题:

C语言改错题(总题数:

4总分数:

20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中

1:

设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。

用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 floatpi,h,r,l,v; 

5:

 pi=3.1415926; 

6:

 printf(“inputr&h:

”); 

7:

 scanf(“%f%f”,&r,&h); 

8:

 l=2*pi*r; 

9:

 v=1/3*pi*r*2*h; 

10:

 printf(“l=%6.2fv=%6.2f”,l,v); 

11:

 } 

错误行号为:

9。

正确答案为:

v=1/3*pi*r*r*2*h;

2:

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 floata=10,b=5,c; 

5:

 c=(int)a%(int)b/n; 

6:

 printf("%d",c); 

7:

 } 

错误行号为:

4。

正确答案为:

floata=10,b=5;intc,n;

3:

求解分段函数的值

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 intx,y; 

5:

 scanf(“%d”,&x); 

6:

 if(x>=0); 

7:

 if(x==0) 

8:

 y=0; 

9:

 elsey=1; 

10:

 elsey=-1; 

11:

 printf(“x=%d,y=%d”,x,y); 

12:

 } 

错误行号为:

6。

正确答案为:

if(x>=0)(无“;”)

4:

输入30名学生一门课的成绩,计算平均分,找出最高分和最低分

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 intmax,min,x,k; 

5:

 floatsum,ave; 

6:

 scanf(“%d”,&x); 

7:

 max=min=sum=x; 

8:

 for(k=1,k<30,k++) 

9:

 { 

10:

 scanf(“%d”,&x); 

11:

 sum+=x; 

12:

 if(max

13:

 elseif(min>x)min=x; 

14:

 } 

15:

 ave=sum/30; 

16:

 printf(“average=%6.2fmax=%dmin=%d”,ave,max,min); 

17:

 } 

错误行号为:

7。

正确答案为:

max=min=x;sum=0;

第三题:

C语言程序填空题(总题数:

2总分数:

20)根据试题要求将正确答案填到空中(每空5分)

1:

输入一个小写字母,按大写输出。

#include

main()

{

charch;

ch=getchar();

putchar(ch-32);

}

2:

以下程序的功能是求数组num中小于0的数据之和。

请填空。

#include

main()

{

intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};

intsum=0,i;

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

{

if(num[i]<0)

sum=sum+num[i];

}

printf(“sum=%6d”,sum);

}

第四题:

C语言编程题(总题数:

2总分数:

40) 

1:

编写程序,用牛顿切线法求方程f(x)=2x+cosx-2.6=0在区间[0,4]上的近似实根r,迭代初值自选,精确到0.0001。

〔提示:

牛顿切线法的计算公式为x=x-f(x)/f’(x)〕。

#include

#include

main()

{

doublex,x0,f,f1;

x=2;

do

{

x0=x;

f=2*x0+cos(x0)-2.6;

f1=2-sin(x0);

x=x0-f/f1;

}while(fabs(x-x0)>=1e-4);

printf("方程的近似根为:

%.4lf.\n",x);

}

/*方程的近似根为:

1.0521.

Pressanykeytocontinue*/

2:

任意使用一种方法将数据14,35,82,33,22,61,26,12,43,12按从小到大的顺序排序,并输出排序前、排序后的数据。

(同模拟一)

模拟三

第一题:

选择题(总题数:

10总分数:

 

1:

一个C语言程序是由

A)一个主程序和若干子程序组成B)函数组成

C)若干过程组成D)若干子程序组成

2:

假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:

A)7B)8C)6D)2

3:

能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

4:

intx=10,y=20,z=30;if(x>y)z=x;x=y;y=z;以上语句执行后,x,y,z的值是:

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

5:

以下描述正确的是

A)goto语句只能用于退出多层循环

B)switch语句中不能出现continue语句

C)只能用continue语句来终止本次循环

D)在循环中break语句不能独立出现

6:

在c语言中,引用数组元素时,其数组下标的数据类型允许是__

A)变量B)表达式

C)整型常量或整型表达式D)任何类型的表达式

7:

以下说法不正确的是:

A)在不同函数中可以使用相同名字的变量

B)形参是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

8:

C程序的基本组成单位是

A)文件B)函数C)程序D)工程

9:

putchar函数可以向终端输出一个:

A)整型变量表达式值B)实型变量值

C)字符串D)字符或字符型变量值

10:

设有说明:

charw;intx;f1oaty;double?

z;则表达式w*x+z一y值的数据类型为:

A)floatB)charC)intD)double

第二题:

C语言改错题(总题数:

4总分数:

20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中

1:

行号语句

1:

 #include 

2:

 #defineN10 

3:

 main() 

4:

 { 

5:

 floata=10,b=5,c; 

6:

 c=(int)a%(int)b/N; 

7:

 printf("%d",c); 

8:

 } 

错误行号为:

7。

正确答案为:

printf(“%f”,c);

2:

设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。

用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 floatpi,h,r,l,v; 

5:

 pi=3.1415926; 

6:

 printf(“inputr&h:

”); 

7:

 scanf(“%f%f”,&r,&h); 

8:

 l=2*pi*r; 

9:

 v=1/3*pi*r*2*h; 

10:

 printf(“l=%6.2fv=%6.2f”,l,v); 

11:

 } 

错误行号为:

9。

正确答案为:

v=1/3*pi*r*r*2*h;

3:

把100~200之间的不能被3整除的数输出。

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 intn; 

5:

 for(n=100;n<=200;n++) 

6:

 { 

7:

 if(n%3==0) 

8:

 break; 

9:

 printf(“%d”,n); 

10:

 } 

11:

 printf(“”); 

12:

 } 

错误行号为:

8。

正确答案为:

continue;else

4:

输入30名学生一门课的成绩,计算平均分,找出最高分和最低分

行号语句

1:

 #include 

2:

 main() 

3:

 { 

4:

 intmax,min,x,k; 

5:

 floatsum,ave; 

6:

 scanf(“%d”,&x); 

7:

 max=min=sum=x; 

8:

 for(k=1,k<30,k++) 

9:

 { 

10:

 scanf(“%d”,&x); 

11:

 sum+=x; 

12:

 if(max

13:

 elseif(min>x)min=x; 

14:

 } 

15:

 ave=sum/30; 

16:

 printf(“average=%6.2fmax=%dmin=%d”,ave,max,min); 

17:

 } 

错误行号为:

7。

正确答案为:

max=min=x;sum=0;

第三题:

C语言程序填空题(总题数:

2总分数:

20)根据试题要求将正确答案填到空

1:

输入两个正整数m和n,求最大公约数和最小公倍数。

#include

main()

{

intp,r,n,m,temp;

printf(“Pleaseinputtwonumbers:

”);

scanf(“%d%d”,&n,&m);

if(n

{

temp=n;

n=m;

m=t

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

当前位置:首页 > 工程科技 > 能源化工

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

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