18春西南大学0039《C语言程序设计》作业答案_第1页
18春西南大学0039《C语言程序设计》作业答案_第2页
18春西南大学0039《C语言程序设计》作业答案_第3页
18春西南大学0039《C语言程序设计》作业答案_第4页
18春西南大学0039《C语言程序设计》作业答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单项选择题

1、假定pl和p2是已赋值的字符型指针,则下述有关运算中,非法的是()

1.匕.p2=pl+(pl-p2);printf("equal.");

2.C.if(pl==p2)

3.C.*(pl-2+p2)=getchar();0

4.C*(pl+=2)=*p2

2、循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行()

1.c无限次U

2.C不确定次

3.C4次

4.C3次

3,设有定义"inta=5,b,*p=&a;",执行下列语句后,b的值不为5的赋值语句是()。

1.Cb=*&a

2.Cb=*

3.Cb=a

4.Cb=*aU

4、语句while(!e)中的条件!e等价于()

1.Ce==0

2.Ce!=l

3.Ce!=0

4.匕~e

5、对于条件表达式(M)?(a++):(a—)来说,其中的表达式M等价于()

1.CM==0

2.CM==1

3.匕M!=0/

4.CM!=l

6、设x,y,z,t均为int型变量,则执行x=y=z=l;t=++x||++y&&++z;语句后,t的值为()

1.c不定值

2.□2

3.C1b

4.□o

7,执行下述程序后,输出的结果是()。

#include<stdio.h>

#defineSQR(X)X*X

voidmainO

{inta=10,k=2,m=l;

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

printfa);}

<br<span=""style="box-sizing:border-box;^></br<>

i.eio

2.C1/

3.09

4.匚0

8、有如下程序,输入数据12345<CR>后,y的值是()。

ttinclude<stdio.h>

voidmainO

{intx;floaty;

scanfr%3d%f',&x,&y);}

<br<span=style="box-sizing:border-box;"></br<>

1.c12.000000

2.c45.000000/

3.c12345.000000

4.c0.000000

9、若有如下程序,要求al,a2,cl,c2的值分别为10,20,A,B,正确的数据输入是()。

ttinclude<stdio.h>

voidmain()

{intal,a2;

charcl,c2;

scanf(〃%d%d”,&al,&a2);

scanf&cl,&c2);}

<br<span=""style="/box-sizing:border-box;^></br<>

1.C020AB

2.匕1020

3.Cio20AB

4.C1020AB"

10、下面程序的输出结果是()。

^include<stdio.h>

voidmainO

{printf('%d”,null);}

i.C输出o

2.匕因变量无定义,编译出错,没有输出«

3.0输出T

4.C输出0

11、求解表达式f=(3.0,4.0,5.0),(2.0,1.0,0.0)后;下列正确的选项是()

1.匕语法错误

2.C使f的值为5.0U

3.C使f的值为0.0

4.C使f的值为2.0

12、表达式(1,2,3,4)的值是()

1.C1

2.匕2

3.匕3

4.C4/

13、设intm=l,n=2;则表达式++m=的值是()

1.c0

2.C1U

3.匕2

4.C3

14、设有语句inta=3;,执行语句a+=a-=a*a;后,变量a的值是()

1.C3

2.Co

3.匕9

4.匕-127

15、下列选项中不是C语言提供的合法保留字的是()

1.Cswitch

2.Ccher/

3.Ccase

4.Cdefault

16、表达式a=(a=6,a*6,a+3);运行后,则a的值为()

1.C39

2.匕36

3.C6

4.C97

17、chars="92";的作用是()

1.C使S包含一个字符

2.匕说明不合法,S的值不定d

3.C使s包含四个字符

4.C使s包含三个字符

18、关下面语句的输出的判断中,正确的是()。

longx=-

1.C输出值为-47

2.匕赋值非法

3.匕输出值不确定

4.C输出值为4

19、char型常量在内存中存放的是()

1.CSCII码值d

2.CCD码值

3.匕内码值

4.匕十进制代码值

20、C语言提供的合法的数据类型保留字(或称关键字)是()

1.CFloat

2.CunsignedV

3.Cinteger

4.CChar

21、设inta=l,b=2,c=3;,执行表达式(a>b)&&(c=l)后c的值是()

1.匚07

2.匚1

3.C2

4.□3

22、设struct{intx;inty;}m[2]={7,3,2,1};,执行printf("%d",m[0].x/m[l].y);

1.匕10.5

2.C9/

3.匕8.0

4.匕7

23、下列叙述正确的是()

1.匕continue语句的作用是跳出循环体

2.匕while循环语句的循环体至少执行一次

3.Cdo-while循环语句的循环体至少执行一次

4.Cswitch语句中的每个case语句组必须含有break语句

24、关于函数,下列叙述正确的是()

1.匕一个函数中可以定义其它的函数

2.匕C程序总是从main。函数开始执行0

3.匕main。函数也可以被其它函数调用

4.匕一个C程序可以有多个main。函数

25、设doublex=5.168;,执行printf(“%5.3f",(int)(x*10+0.5)/10.0);后的输出结果是()

1.C5.218

2.C5.210

3.C5,200守

4.C5.168

26、正确的C语言字符常量是()<br<span=""style="box-sizing:border-box;^X/brO

1.匚w

2.C'65'

3.匕“A”

4.匕*/n,

27、能正确表达数学关系式0Wx<20的C语言表达式是()<br

1.C0<=x<20

2.亡x>=0||x<20

3.Cx>=0&&x<207

4.匕!(x<=0)&&x<20

28设inta=0,b=l;,下列语句错误的是()<br<span="style="box-sizing:border-box;*></br<>

1.Ca=b=10;

2.Ca++;

3.Cb+=a;

4.0(a+b)++;,

29、函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是()

1.c37

2.匕4

3.05

4.匕6

30、可用于C语言用户标识符的是()

1.口E.void,define

2.CF.2c,DO

3.匕For,-abc

4.匕as_b3,_123”

31、下列运算符的操作数必须是整型的是()

1.CA.

2.匕B.!

3.匕C.%/

4.UD.=

32、下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。请填空:

^include"stdio.h"

voidmain()

{inta[10],i,max;

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

scanf;

for(G);i<10;i++)

if(a[i]>a[max])(2)

printf(〃最大值为:%d,下标是:%d,z,⑶,max);)

参考答案:

i=l,max=0或max=i=0;max=i;a[max]

33、

编写C语言程序的一般步骤什么?在VC环境下,调试程序的基本步骤有哪些?调试程序中常见的

错误?

参考答案:

编写C语言程序的一般步骤:分析问题、构建算法、描述算法、编码、调试。

在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行

调试程序中常见的错误有语法错误和逻辑错误。其中语法错误通过编译来实现,逻辑错误通过单

逻辑错误。

34、一个C程序由哪些要素构成,请给出一个C语言程序进行说明。

参考答案:

一个C程序由若干函数组成,但至少一个主函数。而每个函数包括函数的首部和函数体。

实例自行给定

35、编一程序求:1+(1+2)+(1+2+3)+....+(1+2+3+....+10)。

参考答案:

参考答案

#include"stdio.h"

main()

(

inti,s=0,t=0;

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

{t+=i;s+=t;}

printfs);

)

36、C语言程序包括哪些三种基本结构?请给出这三种基本结构的传统流程图或N-S图

参考答案:

C语言程序包括哪些三种基本结构:顺序结构、选择(或分支)结构、循环结构.三种基本结才

&0slash;顺序结构

顺序结构是一种最基本、最简单的程序结构。先执行A,再执行B,A与B是按照顺序执行。

feOslash;选择(或分支)结构

根据条件是否成立而去执行不同的程序模块。当条件P为真时,执行A,否则执行B,即要《

&0slash;循环结构

循环结构是指重复执行某些操作,重复执行的部分称为循环体。

37、请简述算法、程序设计语言与程序的区别与联系

参考答案:

区别:算法(Algorithm)就是对解决某问题所采用的方法和步骤的描述。程序设计语言设计上就

由语法、语义、语用三个要素组成。一个程序一般包括数据类型和算法两个方面的内容。其中数;

中的数据进行描述,指定数据在程序中的类型和数据的组织形式,它决定了数据的在内存中所占

形式。而算法是对程序中数据的操作描述,是解决“做什么”和“怎么做”的问题,源程序中的1

著名计算机科学家沃思(NikiklausWirth)所提出的观点:程序=数据结构+算法。

联系:程序设计语言是编写程序实现算法的语言工具

38、什么是算法?算法的特征?算法的描述方法有哪些?

参考答案:

所谓算法(Algorithm)就是对解决某问题所采用的方法和步骤的描述。

一个算法应该具有以下特点:

(1)确定性:一个算法给出的每个计算步骤都必须是准确的、无二义性。在【例1.6]中每

(2)有穷性:一个算法必须在执行有穷多个计算步骤后终止。在【例1.6】中执行4个步骤

(3)有效性:算法中的每一个步骤必须能够有效地执行,并能够得到确定的结果。

(4)输入:一个算法可以有0个或1个以上的输入。在【例1.6]中需要输入a,b,c三个数。

(5)输出:一个算法有1个或多个的输出,一个算法得到的结果就是算法的输出。t

算法的描述方法有:自然语言、流程图、N-S图等。

39、在下列程序中,函数fun的功能是什么?该程序的运行结果是多少?

♦♦include"stdio.h"

intfun(intnum)

{intk=l;

do

{k*=num%10;

num/=10;

}while(num>0);

returnk;

)

intmainO

{intx=651,y=123;

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

)

参考答案:

函数f的功能是求任意整数的各位数字之积,

该程序的运行结果是15,6

40、在下列程序中,函数sort的功能是什么?该程序的运行结果是多少?

ttinclude"stdio.h"

voidsort(intx[],intn)

{inti,j,k,t;

for(i=0;i<n-l;i++)

{k=i;

for(j=i+l;j<n;j++)

if(x[k]>x[j])k=j:

if(i!=k)

{t=x[k];x[k]=x[i];x[i]=t;}

)

)

intmain()

{inta[10]={34,50,89,67,102,11,75,30,125,145},i;

sort(a,10);

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

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

)

参考答案:

函数P的功能是对n个整数排序

该程序的运行结果是11303450677589102125145

41、结构化程序设计方法的内容是什么?划分模块的基本原则?采用结构化方法的好处?

参考答案:

结构化程序设计方法是一种自顶向下、逐步求精、模块化的程序设计方法。按照结构化程序

一个功能较多的复杂问题合理地划分为若干个较简单的子问题,还可以将这些子问题再分解为若

个子任务看作一个模块),以便于“分而治之”

在模块划分时,应该尽可能地保证数据的独立性和模块功能的唯一性。也就是说,各模块间

最好像是一个黑盒子,模块间的数据交换要尽量少;模块的内聚性要尽量强,即每个模块只完成

结构化程序设计强调程序设计风格和程序结构的规范化,提倡结构清晰。良好的程序设计方

使程序代码便于维护。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。

采用结构化程序设计方法的好处是:可以使每个模块功能明确,模块间的关系简单、清晰

的修改尽可能不影响其他模块(即独立性好),同时每个模块的正确性容易验证(即可维护性好

42、通过你对C语言程序设计课程的学习,你认为C语言程序设计具有哪些特点?并简要说明。C

限性,是如何解决这些问题的?

参考答案:

(1)c语言是一种结构化的语言

一个C语言程序是由一个或多个函数组成,函数是C语言的基本单位。

(2)C语言有强大的表现能力和处理能力

C语言具有丰富的运算符和数据类型,并且引入了结构、指针、地址、位运算、寄存器存储

编程操作,大大提高了C语言的表现能力和处理能力。

(3)C语言程序易于移植

同汇编语言相比,C语言将与硬件相关的部分也通过库函数或其他相关函数来实现,不再依:

了各种类型计算机上,从而体现了C语言的易移植性。

(4)C语言的运行效率高

用C语言编写的程序可通过编译获得高效的可执行代码

C语言也存在着一些局限:

(1)C语言的类型检查机制相对较弱,使得程序中的一些错误不能在编译时由编译程序指出

(2)C语言缺乏支持代码重用的语言结构;

(3)C语言不适合开发大型程序,当程序的规模达到一定程度时,程序员很难控制程序的复

C++语言正是为了解决上述问题而设计的。C++语言继承了C语言的精髓,如高效率、灵活性等,

语言不支持代码重用的不足,这对于开发大型的程序非常有效。C++语言成为一种既可用于表现过

的优秀的程序设计语言。

43、程序的功能是从键盘上任意输入一个正整数,求各位数字之和。请用模块化方法改写下列程J

itinclude"stdio.h"

voidmain()

{intn;

intr,s=0;

scanf("%d",&n);

do{r=n%10;

s+=r;n=n/10;

}while(n>0);

printf("%d”,s);

)

参考答案:

参考答案

Sinclude"stdio.h"

intadd(intn)

{intr,s=0;

do{r=n%10;

s+=r;n=n/10;

}while(r)>0);

return(s);

)

voidmain()

{intm;

scanf(“%d”,&m);

printf("%d”,add(m));

44、有如下程序

^include"stdio.h"

intfun(intx)

{intp;

if(x=0||x==l)return3;

elsep=x-fun(x-2);

returnp;

}

intmain()

{printfC%d”,fun(9));

}

该程序的输出结果是多少?

参考答案:

该程序的输出结果是7

45、下列函数的功能是什么

intfun(char*x)

{char*y=x;

while(*y++);

returny-x-1}

参考答案:

函数的功能是求字符串的长度

46、从键盘上任意输入20个2位或3位整数存放在array数组中,找出array数组中的能够被7整除的数存充

排列。

要求:

(a)编写一个sort(intword,inta口)函数实现排序功能。

(b)除sort函数外,其余在主函数内完成,但主函数必须调用sort函数实现排序功能。

(c)程序必须有输入输出提示。

参考答案:

ttinclude"stdio.h"

voidsort(inta[],intn)

inti,j,t;

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

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

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

(

t=a[j];

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

a[j+1]=t;

)

printf("排序以后的数:“);

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

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

printf('\n");

)

intmain()

(

intarray[20];

intb[20];

inti,j=0;

printf(〃请输入20个整数:”);

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

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

if(array[i]%7==0)

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

)

printf(“这20个整数中,能被7整除的有:“);

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

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

printf('\n");

sort(b,j);

return0;

47、依据下列提供的程序回答问题

ttinclude"stdio.h"

doublefun(inta[],intm)

{inti;

doublesum=0;

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

return(sum/m);

)

voidmain()

{intx,count=0,a[300];

for(x=l;x<=30;x++)

if(x%2=0){

a[count]=x;

count++;

)

printfC\n这些偶数的平均值是:%6.01f\n",aver(a,count));

)

(1)上述提供程序中,函数fun的功能是什么?

(2)请依据上述程序思想,画出其中的传统流程图或N-S图。

(3)在VC6.0环境下,运行上述程序时,其输出结果是什么?

参考答案:

(1)fun的功能是求m个数的平均值

(2)依据学生答题评定分数

(3)这些偶数的平均值是16

48、编写一个函数计算函数f(x,y)=xz+y2+sin(x)的值,要求有输入输出提示,结果保留小数点后3位

参考答案:

Sinclude<stdio.h>

Sinclude<math.h>

voidmain()

{

doublex,y,result;

printf(“请分别输入x,y的值:”);

scanf&x,&y);

result=x*x+y*y+sin(x);

printf(“函数f(虬01f,%.01f)=%.31f\n〃,x,y,result);

49、输出100-900之间的所有奇数,并求出这些奇数的平均值输出

参考答案:

Sinclude"stdio.h"

voidmain()

intx,sum=0,count=0;

for(x=100;x<=900;x++)

if(x%2!=0){

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

sum+=x;

count++;

)

printf("\n这些奇数的平均值是:%d\n〃,sum/count);

)

50、编写一个函数fun求出分数序列的前n项之和,再写一主函数测试其功能

参考答案:

Winclude〃stdio.h〃

voidfun(intn){

doubles=0.0,tl=1,t2=2,temp;

inti;

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

(

s=s+t2/tl;

temp=t2;

t2=tl+t2;

tl=temp;

}

printf("此数列的前N项的和是:%.llf\n",s);

)

voidmain(){

intn;

printf("请输入自然数N数>1):\n");

scanf&n);

fun(n);

51、输出L500之间的所有偶数,并求出这些偶数的平均值输出。

参考答案:

Sinclude"stdio.h"

voidmain()

[

intx,sum=0,count=0;

for(x=1;x<=500;x++)

if(x%2==0){

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

sum+二x;

count++;

}

printf(〃\n这些偶数的平均值是:%d\n〃,sum/count);

)

52、依据下列提供的程序回答问题

ttinclude^stdio.h"

intfun(inta,intb)

{intr;

r=a%b;

while(r!=0)

{a=b;b=r;r=a%b;}

return(b);

)

voidmainO

{intnuml,num2,a;

printf(^Inputnumlnum2:");

scanf("%d%d”,&numl,&num2);

printf("numl=%d,num2=%d\n\n”,numl,num2);

a=fun(numl,num2);

printf(*Themaximuncommondivisoris%d\n\n",a);

)

(1)上述提供程序中,函数fun的功能是什么?

(2)请依据提供的函数fun代码画出其中的传统流程图或N-S图。

(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为24,,36其输出结果是什么?

参考答案:

(1)上述提供程序中,函数fun的功能是求最大公约数

(2)请依据提供的函数fun代码画出其中的传统流程图或N-S图。

依据考生答题给分

(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为24,,36其输出结果是:

numl=24,num2=36

Themaximuncommondivisorisl2

53、编写程序打印下列图案

*1

***

****

参考答案:

Sinclude"stdio.h〃

voidmain(){

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

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

printf(〃*〃);

)

printf(〃\n〃);

)

)

54、编写一个函数firn计算公式的前n项之和,再写一主函数测试其功能。

参考答案:

Sinclude"stdio.h〃

voidfun(intn){

doubles=0.0,t;

inti;

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

t=2*i;

s=s+(t-1)*(t+1)/(t*t);

printf("此数列的前N项的和是:虬31f\n",s);

)

voidmain(){

intn;

printf("请输入自然数N数>1):\n");

scanf("%d",&n);

fun(n);

)

55、写一个函数将一个字符串中的大写字母转换为小写,再写一个测试函数测试其功能。不允许使用strlwrE

参考答案:

#include"stdio.h"

voidconvert(char*str)

{

for(inti=0;str[i]!='\0';i++){

if(str[i]>='A'&&str[i]<='Z"){

str[i]=str[i]-'A'+'a';

}

}

)

intmain()

{

charstr[20]="aZcdABxDEF123”;

convert(str);

printfC%s\nz/,str);

return0;

56、编写一个函数计算函数的值,要求有输入输出提示,结果精度为3位

参考答案:

Sinclude"stdio.h〃

Sinclude"math.h〃

voidmain()

[

doublex,y,result;

printf(“请分别输入x,y的值:“);

scanf(〃%lf%lf〃,&x,&y);

result=sqrt(x+1)+y*y*y;

printf(〃函数f(%.01f,%.01f)=%.31f\n〃,x,y,result);

)

57^^include"stdio.h"

doubleaver(inta[],intm)

{inti;

doublesum=0;

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

return(sum/10);

voidmain()

{inta[10],i,max;

doublesum=0;

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

printf(“平均分数:%6.01f\n*,aver(a,10));

max=0;

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

if(a[i]>a[max])max=i;

printf("最大值为:%d,最大值下标是:%d\n",a[max],max+1);

)

(1)所提供程序中,函数aver的功能是什么?

(2)请依据提供上述程序,画出其的传统流程图或N-S图或自然语言描述。。

(3)若输入的数据分别为:45,87,89,90,77,88,88,78,78,78,则在VC6.0环境下运行上述程序,其输出结果

参考答案:

(1)求m个数的平均值

⑵依据考生答题评定成绩

(3)平均分80

最大值为:90,最大值下标是:4

58、依据下列提供的程序回答问题

♦♦include"stdio.h"

^include"math,h”

int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论