大学计算机部分习题答案.docx

上传人:b****6 文档编号:7797829 上传时间:2023-01-26 格式:DOCX 页数:32 大小:36.86KB
下载 相关 举报
大学计算机部分习题答案.docx_第1页
第1页 / 共32页
大学计算机部分习题答案.docx_第2页
第2页 / 共32页
大学计算机部分习题答案.docx_第3页
第3页 / 共32页
大学计算机部分习题答案.docx_第4页
第4页 / 共32页
大学计算机部分习题答案.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

大学计算机部分习题答案.docx

《大学计算机部分习题答案.docx》由会员分享,可在线阅读,更多相关《大学计算机部分习题答案.docx(32页珍藏版)》请在冰豆网上搜索。

大学计算机部分习题答案.docx

大学计算机部分习题答案

第7章

习题

一、选择题

1.C语言属于_____。

D

A.机器语言B.低级语言C.中级语言D.高级语言

2.C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的______。

B

A.适应性B.移植性C.兼容性D.操作性

3.一个C语言程序是由_____。

B

A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成

4.C语言规定,在一个源程序中,main函数的位置______。

C

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后

5.C语言程序的执行,总是起始于______。

C

A.程序中的第一条可执行语句B.程序中的第一个函数

C.main函数D.包含文件中的第一个函数

6.以下叙述不正确的是______。

D

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

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

C.C语言程序的基本组成单位是函数

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

7.下面对C语言特点,不正确描述的是_____。

C

A.C语言兼有高级语言和低级语言的双重特点

B.C语言既可以用来编写应用程序,又可以来编写系统软件

C.C语言的可移植性较差

D.C语言是一种结构式模块化程序设计语言

8.C语言程序的注释是______。

B

A.由“/*”开头,“*/”结尾

B.由“/*”开头,“/*”结尾

C.由“//”开头

D.由“/*”或“//”开头

9.C语言程序的语句都是以_____结尾。

B

A.“.”B.“;”C.“,”D.都不是

10.用C语言编写的代码程序______。

B

A.可立即执行    B.是一个源程序

C.经过编译即可执行 D.经过编译解释才能执行

二、填空题

1.一个C源程序中至少应包括一个_______。

主函数

2.在一个C语言源程序中,注释部分两侧的分界符分别是________和_______。

/*和*/

3.一个C程序的执行是从_________函数开始,到__________函数结束。

main()main()

4.将A.C(源程序文件)经___________产生A.obj文件,再经过连接可产生_________文件。

在TC系统中,从A.c到A.exe可由按键___________完成。

编译A.exeAlt-F9

第8章

二、选择题

1.下面四个选项中,均是合法整型常量的选项是A。

2.类型修饰符unsigned修饰D类型是错误的。

3.下列不正确的字符常量是C。

4.下列不正确的字符串常量是D。

5.下列正确的变量名是A。

6.下列不正确的转义字符是C。

7.下面四个选项中,均是C语言关键字的选项是B。

8.下列程序执行后的输出结果是______。

C

9.设x、y、z和k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为___C

10.若有以下定义:

  chara;intb;

  floatc;doubled;

  则表达式a*b+d-c值的类型为。

D

11.设有如下的变量定义:

  inti=8,k,a,b;

  unsingedlongw=5;

  doublex=1.42,y=5.2;

  则满足C语言语法的表达式是。

A

12.假定有以下变量定义:

  intk=7,x=12;

  则能使值为3的表达式是_____。

D

13.表示关系x≤y≤z的C语言表达式为。

A

14.已知:

inta=5;floatb=5.5;,在下列表达式中,有语法错误的是。

C

15.选出能使变量i的值变为4的选项。

D

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

D

17.设变量n为float类型,m为int型,则以下能实现将n中数据保留小数点后两位,第三位进行四舍五入运算的表达式是_____。

B

18.若有如下程序

main()

{inty=3,x=3,z=1;

printf("%d%d\n",(++x,y++),z+2);

}

运行该程序的输出结果是____。

D

19.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是_______。

C

20.下列程序执行后的输出结果是_________。

C

main()

{charx=0xFFFF;

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

}

21.下列程序执行后的输出结果是_________。

A

main()

{intx='f';

printf("%c\n",'A'+(x-'a'+1));

}

三、计算下列表达式的值

1.3.5*3+2*7-'a'-72.5

2.26/3+34%3+2.511.5

3.45/2+(int)3.14159/223

4.已知inta,b;

a=3*5,a=b=3*215

5.已知inta=3,b,c;

A)a=b=(c=a+=6)9B)(int)(a+6.5)%2+(a=b=5)6

6.已知inta=7;floatx=2.5,y=4.7;

x+a%3*(int)(x+y)%2/42.5

7.已知inta=2,b=3;floatx=3.5,y=2.5;

(float)(a+b)/2+(int)x%(int)y3.5

8.已知inti=10,j=5;

A)++i-j--(6)B)i=i*=j(50)C)i=3/2*(j=3-2)

(1)

9.已知inta=5,b=3;

A)!

a&&b++(0)B)a||b+4&&a*b

(1)C)a=1,b=2,a>b?

++a:

++b(3)

D)++b,a=10,a+5(15)E)a+=b%=a+b(8)F)a!

=b>2<=a+1

(1)

10.已知inti=3,j=4,k=5,x,y;

A)'i'&&'j'

(1)B)i<=j

(1)

C)i||j+k&&j-k

(1)D)!

((i

k||1)(0)

E)i+j>k&&j==k(0)F)i||j+k&&j-k

(1)

G)!

(i>j)&&!

k||1

(1)H)!

(x=i)&&(y=j)&&0(0)

I)!

(i+j)+k-1&&j+k/2

(1)

四、在所给已知条件下,分别写出下列个表达式运算后a的值

已知inta=12,n=5;

1.a+=a24

2.a-=321

3.a*=2+3105

4.a/=a+a0

5.a%=(n%=2)0

6.a+=a-=a*=a0

五、程序设计

1.从键盘上输入两个整型数,比较其大小,并输出显示其中小的。

#include

main()

{inta,b;

printf("请输入两个整数(a,b):

");

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

printf("小的一个为%d\n",a

a:

b);

}

2.编程实现输入公里数,输出其英里数。

已知1英里=1.60934公里(用符号常量)。

#include

#defineYL1.60934

main()

{floatyl,gl;

printf("请输入公里数:

");

scanf("%f",&gl);

yl=gl/YL;

printf("英里为:

%f\n",yl);

}

3.从键盘上输入任意一个小写字母,然后将该字符转换为对应的大写字母输出。

并同时输出该字母的ASCII编码。

#include

main()

{charc;

printf("请输入一个小写字母:

");

scanf("%c",&c);

c=c-32;

printf("字母%c对应的ASCII编码为%d\n",c,c);

}

第9章

上机练习

修改下列程序中的错误并调试。

1.下面的程序用来计算:

正确的如下:

main()

{intx,y;

scanf(“%d”,&x);

y=0;

if(x!

=0)

if(x>0)

y=1;

else

y=-1;

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

}

2.下面的程序按百分制记分,若100分显示满分,99~90显示优秀,89~80显示优良,79~70显示良好,69~60显示及格,59分以下显示不及格。

#include

main()

{intx;

printf("请输入成绩:

");

scanf("%d",&x);

x=x/10;

switch(x)

{case10:

printf("满分");break;

case9:

printf("优秀");break;

case8:

printf("优良");break;

case7:

printf("良好");break;

case6:

printf("及格");break;

case5:

case4:

case3:

case2:

case1:

case0:

printf("不及格");

}

}

3.打印出以下图案:

*

***

*****

********

*****

***

*

#include

main()

{inti,j,k;

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

{for(j=0;j<=3-i;j++)

printf("");

for(k=1;k<=2*i-1;k++)

printf("*");

printf("\n");

}

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

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

printf("");

for(k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

}

4.下面的三个程序都用来计算n!

1

#include

main()

{intn,i=1;longintp=1;

printf("请输入一个整数:

");

scanf("%d",&n);

while(i<=n)

{p=p*i;

i++;}

printf("%d!

=%ld\n",n,p);

}

2

#include

main()

{inti,n;longintp;

printf("请输入一个整数:

");

scanf("%d",&n);

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

p=p*i;

printf("%d!

=%ld\n",n,p);

}

3

#include

main()

{inti=0,n;longintp=1;

printf("请输入一个整数:

");

scanf("%d",&n);

do

{i++;

p=p*i;

}while(i

printf("%d!

=%ld\n",n,p);

}

习题

一、选择题

1.下列程序执行后的输出结果是______。

(︺表示空格)C

main()

{inta=6699;

printf("|%-8d|",a);}

2.下列程序执行后的输出结果是______。

B

main()

{printf("s1=|%15s|s2=|%-12s|","NorthWest","University");}

3.若int类型数据占两个字节,则下列语句的输出为______。

D

main()

{intk=-1;printf("%d,%u\n",k,k);}

4.阅读以下程序

main()

{inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n",a,b,c);}

执行时从键盘上输入9876543210'(符号'表示回车),则上面程序的输出结果是___。

C

5.若有说明语句:

inta;floatb;,以下输入函数正确的是_______。

C

6.在“if(表达式)语句”语句中,用作判断的“表达式”是____。

D

7.下列程序执行后的输出结果是______。

C

main()

{inta=2,b=3;

printf(a>b?

"***a=%d":

"###b=%d",a>b?

a:

b);}

8.下列程序执行后的输出结果是______。

D

main()

{inta=1,b=2,c=2,t=0;

while(a

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

9.已知intx=10,y=20,z=30;以下程序段执行后x,y,z的值是_____。

B

if(x>y)z=x;x=y;y=z;

10.下列程序执行后的输出结果是______。

C

main()

{intm=5;

if(m++>5)printf("%d\n",m);

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

11.以下语法不正确的语句是____。

B

12.若w、x、y、z、m均为int型变量,则执行下面语句后的m值是____。

A

w=1;x=2;y=3;z=4;

m=(w

w:

x;

m=(m

m:

y;

m=(m

m:

z;

13.下面有关for循环的正确描述是____。

D

14.若i为整型变量,则以下循环体执行的次数是____。

B

for(i=2;i==0;)printf("%d",i--);

15.执行语句for(i=1;i++<4;);后变量i的值是____。

C

16.以下正确的说法是____。

B

17.分析下列程序执行后的输出结果是______。

得出要完成两个整型变量值交换可以不借助其他变量。

D

main()

{inta=20,b=30;

a=a+b;b=a-b;a=a-b;

printf("a=%d,b=%d\n",a,b);}

18.下列程序执行后的输出结果是______。

A

main()

{

intx=1,y=9,m=1,n=2;

while(x<=y)

switch((m+n+x+y)%4)

{case0:

x*=2,m++;

case1:

switch(n%3)

{case0:

x++;break;

case1:

y*=2;break;

case2:

x+=3;

}

case2:

n++;y--;break;

case3:

x/=2;y+=2;

}

printf("x=%d,y=%d\n",x,y);}

19.执行下面的程序段后,变量x和i的值分别为____。

A

inti,x;

for(i=0,x=5;i<10;i++)

{if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3 ;

}

20.有以下程序段

main()

{inti=1,sum=0,n;

scanf("%d",&n);

do

{i+=2;

sum+=i;

}while(i!

=n);

printf("%d",sum);}

若使程序的输出值为8,则应该从键盘输入的n的值是______。

C

二、编程题

1.编一个程序统计几个同学的平均年龄。

要求通过键盘输入每位同学的年龄,若输入年龄为-1,则表示所有同学年龄已输入完毕。

main()

{intage,n=1;

floatave;

printf("请输入第%d个同学的年龄",n);

scanf("%d",&age);

do{ave+=age;

n++;

printf("请输入第%d个同学的年龄",n);

scanf("%d",&age);

}while(age!

=-1);

ave=ave/(n-1);

printf("平均年龄为%.2f\n",ave);

}

2.从键盘输入三条边长a,b,c。

若它们能组成三角形,就用下列公式计算由它所组成的三角形的面积。

公式为:

       p=(a+b+c)/2

(s为三角形面积)

按题意编制程序。

#include"math.h"

main()

{floata,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

if(a+b>c&&a+c>b&&b+c>a)

printf("area=%f",area);

else

printf("no");

}

3.雨淋湿了算术书的一道题,9个数字只能看清楚4个,第一个数字虽然模糊不清,但可看出不是1:

 [口*(口3+口)]2=8口口9

 其中口表示淋湿的数字,请编程序将这些数字找出来。

main()

{intx,y,z,i,j;

for(x=2;x<10;x++)

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

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

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

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

if((x*(y*10+3+z))*(x*(y*10+3+z))==(8009+i*100+j*10))

printf("x=%d,y=%d,z=%d,i=%d,j=%d\n",x,y,z,i,j);

}

4.有一个数,被3除余2,被5除余3,被7除余2,问该数至少应多大?

main()

{intx=1;

while

(1)

{if(x%3==2&&x%5==3&&x%7==2){printf("x=%d\n",x);break;}

x++;

}

}

5.程序如下:

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;

s=s+i;

}}}

试问程序中判断i>j共被执行了多少次?

6.求:

1!

+3!

+5!

+……+11!

1.程序分析:

此程序只是把累加变成了累乘。

2.程序源代码:

#include"stdio.h"

#include"conio.h"

main()

{

floatn,s=0,t=1;

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

{

t*=n;

s+=t;

}

printf("1+2!

+3!

...+20!

=%e\n",s);

getch();

}

7.有一序列:

2/1,3/2,5/3,8/5,13/8,21/13,…… 求这个序列前20项之和。

提示:

后一项的分母为前一项的分子,后一项的分子为前一项分子与分母之和。

1.程序分析:

请抓住分子与分母的变化规律。

2.程序源代码:

#include"stdio.h"

#include"conio.h"

main()

{

intn,t,number=20;

floata=2,b=1,s=0;

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

{

s=s+a/b;

t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/

}

printf("sumis%9.6f\n",s);

getch();

}

8.指出下列程序的运行结果:

①main()

{intx=1,i=1;

for(;x<50;i++)

{if(x>=10)

break;

if(x%2!

=0)

{x+=3;

continue;

}

x-=1;

}

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

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

}

②main()

{intm=7,n=50,i=1;

do

{if(i%m==0)

if(i%n==0)

{printf("%d\n",i);

break;

}

i++;}

while(i!

=0);

}

9.编写一程序,要求用户在键盘上输入一个4位整数,并把每位数字转换为英文。

例如:

输入1024时,输出OneZeroTwoFour。

main()

{intx,y=0,i=0;

printf("请输入一个不超过4位整数:

");

scanf("%d",&x);

do

{y=y*10+x%10;

i++;}

while(x=x/10);

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

do

{i--;

switch(y%10)

{case0:

printf("Zero");break;

case1:

printf("One");break;

case2:

printf("Two");break;

case3:

printf("Three");break;

case4:

printf("Four");break;

case5:

printf("Five");break;

case6:

printf("Six");break;

case7:

printf("Seven");break;

case8:

printf("Eight");break;

case9:

printf("Nine");break;

}}

while(y=y/10,i);

getch();

}

10.输入10对整数,请计算每对数中较大者之和,并输出结果。

#include

main()

{intx,y,sum=0,i;

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

{printf("请输入第%d对整数(x,y):

",i);

scanf("%d,%d",&x,&y);

sum+=x>y?

x:

y;

}

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

}

11.输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。

每年中1、3、5、7、8、10、12月份有31天,4、6、9、11月份有30天,对于2月份来说,闰年有29天,平年有28天,所以应该判断年份是否闰年。

main()

{intyear,month;

printf("请输入年,月:

");

scanf("%d,%d",&year,&month);

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

printf("该月份为31天\n");break;

case4:

case6:

case9:

case11:

printf("该月份为30天\n");break;

case2:

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

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

printf("该月份

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

当前位置:首页 > 经管营销 > 经济市场

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

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