C语言四套题附答案Word下载.docx

上传人:b****6 文档编号:16187659 上传时间:2022-11-21 格式:DOCX 页数:29 大小:33.71KB
下载 相关 举报
C语言四套题附答案Word下载.docx_第1页
第1页 / 共29页
C语言四套题附答案Word下载.docx_第2页
第2页 / 共29页
C语言四套题附答案Word下载.docx_第3页
第3页 / 共29页
C语言四套题附答案Word下载.docx_第4页
第4页 / 共29页
C语言四套题附答案Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言四套题附答案Word下载.docx

《C语言四套题附答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言四套题附答案Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

C语言四套题附答案Word下载.docx

if(‘A’<

=c1&

&

c1<

=’Z’)运行结果:

67,D

printf(“%d,%c”,c1,c1+1);

elseprintf(“%c”,c1);

[程序3]

viodmain()

{inta=0,n=5;

1,5,4,3,2,0

for(;

;

{a++;

n--;

printf(“%d,”,a);

a=n;

if(n==0)break;

printf(“%d”,a);

[程序4]

main()

{inti,j;

1,2,4,8,16,32,64,128,256,512

staticinta[10]={1,1,1,1,1,1,1,1,1,1};

for(i=0;

i<

10;

i++)

for(j=0;

j<

i;

j++)

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

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

[程序5]

intk=2;

f(intm)运行结果:

6,8

{m+=k;

k+=m;

5,9

printf(“%d,%d\n”,m,k++);

{inti=4;

for(i++);

printf(“%d,%d\n”,i,k);

[程序6]

{staticinta[10],i;

13579

a[i]=i+1;

i=i+2)

printf(“%d”,*(a+i));

三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共21分,每空3分)

(一) 

以下程序输出所有大写字母和其对应的ASCII码值。

voidmain()

{intch;

for(ch=’A’;

ch<

=’Z’;

ch++)

printf(“字母%c的ASCII码值是:

%d\n”,ch,1);

答案:

ch

(二)以下函数的功能是将一个字符串S的内容颠倒过来。

voidreserve

(2)答案:

chars[]

{inti,j,k;

for(i=0,j=strlen(s)-1;

3;

i++,j--)答案:

i<

j

{k=s[i];

s[i]=s[j];

s[j]=k;

}

(三)由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积。

math.h>

{floata,b,c,s,s1;

scanf(“%f%f%f”,4);

&

a,&

b,&

c

if((a+b)>

c&

(a+c)>

b&

(b+c)>

a)

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

s1=s*(s-a)*(s-b)*(s-c);

s=5;

sqrt(s1)

printf(“\n三角形面积为:

%f\n”,s);

else

printf(“\n不是三角!

\n”);

(四)从键盘输入一个字符串,把它输出到文件中,文件名由键盘输入。

{FILE*fp;

charch,*fn;

scanf(“%s”,fn);

if((fp=fopen(fn,6))==NULL)答案:

“w”

{printf(“打开文件出错\n”);

exit

(1);

while((ch=getchar())!

=EOF)

{fputc(7);

ch,fp

putchar(ch);

fclose(fp);

四、编程题(共21分)

1.从键盘输入3个整数,输出其中最大数。

(5分)

{inti=0,x,mx=-32768;

while(i++<

3)

{scanf(“%d”,&

x);

if(x>

mx)mx=x;

printf(“\n%d\n”,mx);

2.编写一函数uf(s),将字符串s中的第一个和最后一个字母改写成大写字母(如原来不是字母或已是大写字母,则不变)。

uf(char*s)

{inti;

i=strlen(s);

if(i==0)return;

if(s[0]>

=’a’&

s[0]<

=’z’)

s[0]+=’A’-‘a’;

if(s[i-1]>

s[i-1]<

=‘z’)

s[i-1]+=’A’–‘a’;

{chars[]=”asdfgh”;

uf(s);

printf(“\n%s\n”,s);

3.从键盘输入10个浮点数,输出其平均值及所有低于平均值的数。

#include<

main()

{

floata[10],ave=0;

inti;

scanf(“%f”,&

a[i]);

ave+=a[i];

ave/=10;

if(a[i]<

ave)

printf(“%f\t”,a[i]);

}

习题二

(一)正确的C语言自定义标识符是。

A)file_bakB)abc(10)C)continueD)class+3

(二)设intx=8,y,z;

执行y=z=x++;

x=y==z后,变量x的值是。

A)0B)1C)8D)9

(三)字符串“w\x53\\\np\103q”的长度是。

A)7B)9C)15D)16

(四)设inta=9,b=8,c=7,x=1;

则执行语句

if(a>

7)if(b>

8)if(c>

9)x=2;

elsex=3;

后x的值是。

A)0B)2C)1D)3

(五)有如下程序

main()

{intx=23;

do{printf(“%d”,x--);

while(!

x);

该程序的执行结果是。

A)321B)23

C)不输出任何内容D)陷入死循环

(六)定义一个具有8个元素的整型数组,应使用语句。

A)inta[8];

B)inta[2,4];

C)inta[];

D)int*a[8];

(七)设intx[]={4,3,2,1},q,*p=&

x[1];

q=(*--p)++后,变量q的值为。

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

(八)函数调用时,下列说法中不正确的是。

实际参数和形式参数可以同名

若用值传递方式,则形式参数

主调函数和被调函数可以不在同一个文件中

函数间传递数据可以使用全局变量

(九)下列数据类型中不属于构造类型的是。

A)数组型B)结构型C)共用型D)枚举型

(十)存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是。

A)3,2B)2,5C)5,5D)5,2

二、阅读下列程序,写出运行结果(共20分,每题4分)

【程序1】

#include<

main()

{intx=1,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++;

case2:

b++;

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

}

运行结果:

【程序2】

space(intm)

{while(m--)printf(“%c”,32);

{inti,j;

printf(“\n”);

for(i=5;

i>

=1;

i--)

{

space(i);

printf(“*”);

for(j=3;

j>

=2*(i/5)+2;

j--)

{

space(4-i);

printf(“*”);

}

printf(“\n”);

}

运行结果:

【程序3】

longff(intn)

{if(n>

3)return(ff(n-1)+ff(n-2));

elsereturn(3);

main()

{printf(“%d\n”,ff(4));

【程序4】

{inti,a[5];

for(i=0;

5;

i++)

a[i]=9*(i-2+4*(i>

2))%5;

for(i=4;

=0;

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

【程序5】

unionpw

{inti;

charch[2]

}a;

{

a.ch[0]=13;

a.ch[1]=0;

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

三、阅读下列程序,在处填上适当的内容使程序(或函数)完整。

(共20分,每空2分)

(一)下面程序用于计算n!

的值。

{

inti,s,n;

s=1;

printf(“entern:

”);

scanf(“%d”,&

n);

for(i=1;

=n;

(1);

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

}

(二)下面函数pi()的功能是根据以下公式求π值(直到最后一项小于10-5为止)

doublepi()

doubles=0.0,t=1.0;

intn;

for

(2);

t>

=1e-5;

n++)

s+=t;

t=3;

return(2.0*4);

(三)从键盘上输入一行字符(不多于40个,以会车换行符作为输入结束标记),将其中的大写字母该为小写字母,其它字符不变,然后逆向输出。

{chara[40];

intn=0;

do{scanf(“%c”,&

a[n]);

if(5)

a[n]+=32;

n++;

}while(6!

=’\n’);

n=n-2;

while(n>

=0)

printf(“%c”,a[n--]);

(四)从终端读入的文本(用@作为文本结束标志)复制到一个名字C.DAT的新文件中。

FILE*fp;

{charch;

if((fp=7)==NULL)exit(0);

while((ch=getchar())!

=’@’)

fpute(8);

fclose(fp);

(五)输入10个整数存入一维数组,从中查找某个整数(该数从键盘上读取),查到则输出其是第几个数,查不到则输出“NotFind!

”。

{inta[10],*p=a,x,n,flag=0;

for(;

p<

a+10;

p++)scanf(“%d”,p);

scanf(“%d”,&

for(n=1,p=a;

9;

p++,n++)

if(10)

{flag=1;

break;

if(!

flag)printf(“NotFind!

\n”);

elseprintf(“%d\n”,n);

四、编程题(共20分)

1、按下列公式s(n)=12+22+......+n2编写计算并输出s值,其中的n值由键盘输入。

(7分)

2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。

3、求两个整数m和n最大公约数。

(6分)

习题二参考答案

一、语言基础

(一)单项选择题

1.A 

2.B3.A 

4.C5.B

6.A 

7.A8.B 

9.D10.B

(二)运行程序

【程序1】 

a=1,b=1

【程序2】*

***

***

***

【程序3】6

【程序4】400-4-3

【程序5】13

(三)填空

s=s*1

n=1

n*t/(2*n+1)

s

(’A’<

=a[n])&

(a[n]<

=’Z’)

a[n-1]

a+10

*p==x

fopen(”c.dat”,”w”)

ch,fp

(四)编程

{floata();

intn;

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

floats(intn)

{floats=0.0;

if(n==1)return(1.0);

elsereturn(s(n-1)+n*n);

{inti;

floatave=0,a[10];

scanf(“%f”,&

i++)ave+=a[i];

printf(“%10.4f\n”,ave/10);

{intm,n,a,r;

scanf(“%d,%d”,&

m,&

a=m,b=n;

do{r=a%b;

a=b;

b=r;

}while(r!

=0);

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

 

习题三

一、语言基础(共20分,每题2分)

若a为float类型变量,且a=4.6785,则表达式(int)(a*100+0.5)/100.0

的值为4.68。

(二)设有intx=11,y=10;

则以下表达式的值为10。

x-->

y?

10:

11>

y++?

’a’:

’z’

(三)若所有变量都已正确定义为int型则执行下列程序段后x的值为79。

x=80;

a=10b=16;

y=9;

z=0;

if(a<

b)

if(b!

=15)

if(!

y)x=81;

elseif(!

z)x=79;

(四)i,j为int型的变量,则下面程序中的循环体的执行次数为5。

i=1;

j=0;

while(i+j<

=10)

{if(i>

jj=j+2);

elsei=i+2;

(五)若有数组a[10],类型为int型,元素及值如下所示:

数组元素:

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]

元素中的值:

9483267015

则*(a+a[9])的值为6。

(六)以下函数调用语句中实参的个数为3.

Sub((x1,x2),(x3,x4,x5),x6)

(七)若有以下函数定义:

  int(*hs)()

……/*函数体*/

则函数hs返回的值是整形。

(八)某C编译程序规定,int型数据存储占2个字节,float型数据存储占4个字节,char型数据存储占1个字节,现有记录描述如下:

 structstu

union

{

charbj[5];

intbh[2];

}class;

charxm[8];

floatcj;

}xs;

则sizseof(xs)的值为17。

(九)设有以下定义:

#definea6

#defineba+4

则执行语句c=b*10(c为int型数据)后,c的值为46。

(十)在C中,文件指针变量的类型只能是FILE。

二、阅读下列程序,写出运行结果(共20分,每题4分)

[程序1]

  #include<

inti;

i=18,J=29.44

floatj;

i=18;

j=29.4361;

printf(“i=%4d,j=%2.2f”,i,j);

[程序2]

{intk=10;

charc=’b’;

do

swith(c++)运行结果:

12

case‘a’:

k++;

case‘b’:

k--;

case‘c’:

k+=3;

case‘d’:

k=k%4;

while(c!

=’c’);

     printf(“%d\n”,k);

[程序3]

chara[]=”computer”;

chart;

inti,j=0;

utrpomec

for(i=0;

I<

8;

I++)

for(j=i+1;

j++)

if(a[i]<

a[j])

t=a[i];

a[i]=a[j];

a[j]=t;

printf(“%s”,a);

[程序4]

char*p,s[]=”abcdefg”;

for(p=s;

*p!

=’\0’);

abcdefg

printf(“%s\n”,p);

p++;

if(*p!

=’\0’)

elsebreak;

三、阅读下列程序,在 线处填上合适的内容使程序(或函数)完整(共18分,每空2分)

1. 

下面程序的功能是判断输入的一个年份是否是闰年。

(闰年能够被4整除,但不能被100整除;

或能被400整除)

#include“stdio.h”

intyear,leap;

printf(“inputyear:

scanf(“%d,&

year);

if(year%400==0)leap=1;

elseif(year%4==0)&

(year%100!

=0)leap=1;

elseleap=0;

if(leap!

=0)

printf(“%disaleapyear.\n”,year);

else

printf(“%disnotaleapyear.\n”,year);

2. 

以下程序的功能是求三个数的最小公倍数。

max(intx,inty,intz)

if(x>

y&

x>

z)

return(x);

elseif(y>

=x&

y>

z)

return(y);

return(z);

inta,b,c,I=1,j,s;

scanf(“%d%d%d”,&

a,&

b,&

c);

s=max(a,b,c);

while

(1)

j=s*i;

if((j%a==0)&

(j%b==0)&

(j%c==0))

break;

i++;

prinf

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

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

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

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