C练习题3.docx

上传人:b****6 文档编号:4084531 上传时间:2022-11-27 格式:DOCX 页数:16 大小:23.53KB
下载 相关 举报
C练习题3.docx_第1页
第1页 / 共16页
C练习题3.docx_第2页
第2页 / 共16页
C练习题3.docx_第3页
第3页 / 共16页
C练习题3.docx_第4页
第4页 / 共16页
C练习题3.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C练习题3.docx

《C练习题3.docx》由会员分享,可在线阅读,更多相关《C练习题3.docx(16页珍藏版)》请在冰豆网上搜索。

C练习题3.docx

C练习题3

一、填充题(每个空格2分)

1、 c语言是一种__________高级程序设计语言。

2、 c语言中规定对所用到的变量要先___________后____________。

3、 设c语言中,int类型占2个字节,则long类型数据占_____个字节;unsignedint类型数据占_____个字节;short类型数据占_____个字节;double类型数据占_____个字节;char类型数据占_____个字节。

二、选择题(每个选择3分)

1、 组成c语言程序的是

A)子程序B)过程C)函数D)主程序和子程序

 

2、 若有以下定义:

chars=’\092’;则该语句

A)使s的值包含1个字符B)定义不合法,s的值不确定

C)使s的值包含4个字符D)使s的值包含3个字符

 

3、 已知各变量的类型定义如下:

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下两组中不符合c语言语法的表达式分别是

(1)A)k=i++B)(int)x+0.4C)y+=x++D)a=2*a=3

(2)A)x%(–3)B)w+=–2C)k=(a=2,b=3,a+b)D)a+=a–=(b=4)*(a=3)

 

4、 以下两组中不符合c语言语法的赋值语句分别是

(1)A)a=1,b=2B)++i;C)a=b=5;D)y=(a=3,6*5);

(2)A)i++;B)i=i=5;C)k=2*4,k*4;D)y=float(i);

 

5、 若a为整型变量,则以下语句

a=-2L;

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

A)赋值不合法B)输出为-2C)输出为不确定D)输出为2

 

6、 找出下列符号中合法的标识符

A.“abc”B.s06C.file.cD.a&bE.10dF.c*7

 

三、计算题(每题5分)

1、 设inta=12,试写出计算表达式a+=a/=a-=a*a后a的值。

  

2、 设doublex=12.34567,写出计算x=(int)(x*100+0.5)/100.0后x的值。

 

3、 设x=3.5,a=8,y=4.3,求y+a%3*(int)((x+y)/4+0.05)/3的值。

四、读程序

1、 写出下列程序的输出结果(6分)

main()

{inta=9;

a+=a-=a+a;

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

}

 

2、 写出下列程序的输出结果(8分)

main()

{inta=4,b=7;

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

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

}

 

3、 写出下列程序的输出结果(8分)

main()

{charc1=’a’,c2=’b’,c3=’c’c4=’\101’,c5=’\102’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t%c%c”,c4,c5);

}

 

4、若a=1,那么printf(“%d”,a,++a,a--);写出输出的结果(4分)

 

5、 写出下列程序的功能(8分)

intm(intx,inty)

{intz;

if(x>y)z=y;

elsez=x;

returnz;

}

main()

{inta,b,c,d,x;

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

x=m(m(a,b),m(c,d));

printf(‘m=%d”,x);

}

 

五、填空题(12分)

以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a,b,c的值。

请填空。

main()

{inta,b,c,__

(1)__;

printf(“entera,b,c”);

scanf(“%d%d%d”,______

(2)______);

___(3)___;a=b;b=c;___(4)____;print(“a=%db=%dc=%d\n”,a,b,c);}           

练习一答案:

一、结构化定义使用42281   二、C)A)D)A)C)D)B)  三、答:

a=212.354.3       

四、

(1)0

(2)85(3)aabbccabcAB(4)1,1,1(5)求a,b,c,d中最大者 五、

(1)t

(2)&a,&b,&c(3)t=a(4)c=t               返回

C语言练习二

学号___________姓名_____________分数_____________

1、 写出下列程序段的输出结果。

(12%)

k=8567;

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

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

x=213.82631;

printf(“%-10.2f\n”,x);

printf(“%10.2fd/\n”,x);

printf(“%e\n”,x);

c=’A’;

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

 

2、 若a=3,b=4,x=1.2,y=2.4,z=-3.6,c1=’a’,c2=’b’,要得到以下输出格式,请编写程序。

(10%)

a=3b=4

a+b=72a=6

x=1.200000,y=2.4

c1=’a’or97(ASCII)

c2=’b’or97(ASCII)

 3、 编写程序计算1/2(ax+x3/4a),其中a为常数,x为实型变量(运行时输入)。

(10%)

  

4、 编写程序完成从键盘输入一个小写字母转化为大写字母输出。

(10%)

 

5、 写出下列程序的输出结果。

(10%)

main()

{inti,j,k,a=3,b=2;

i=(--a==b++)?

--a:

++b;

j=a++;k=b;

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

}

 

6、 计算以下表达式的值。

设inta=1,b=2,c=3;(10%)

(1)   !

(a<0||b<=0)&&!

(a+b!

=c)

(2)   !

a<=0||c&&!

(a+b)+c-1

(3)   b-c&&1/2*(a+b+c)

(4)   b%2&&c>b&&b>a

(5)   !

(x=a)&&(y=b)&&1+a==b

 

7、 把以下语句改写成switch语句。

(10%)

if(s<60)m=1;

elseif(s<70)m=2;

elseif(s<80)m=3;

elseif(s<90)m=4;

elseif(s<=100)m=5;

 

8、 把以下语句改写成不嵌套的switch语句。

(12%)

if(s>0&&s<=10)

if(s>=3&&s<=6)x=2;

elseif(s>1||s>8)x=3

elsex=1;

elsex=0;

 

9、 编写程序,将键盘输入的任意三个整数a,b,c,按小到大的次序存放在a,b,c中。

(16%)   

练习二答案:

(1)/8567//8567/213.83213.832.138263e+00265A 

(2)答案见书上习题解答

(3)#definea10

main()

{floatx,y;

scanf(“%f”,&x);

y=1.0/2*(a*x+(a+x)/(4*a));

printf(“%f”,y);

}

(4)答案见书上习题解答(5)I=1,j=1,k=3(6)11000(7)答案略(8)答案略

(9)答案见书上习题解答

 返回

C语言程序设计练习三

学号姓名成绩________

一、读程写结果

1.main()(5分)

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

写出其输出结果:

________

 

2.main()(5分)

{intx=2,y=5,z;

z=3%4/(float)x+x/y*y;

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

}

写出其输出结果:

________

 

3.main()(5分)

{

inta=4,b=3,c=1,d=2,x=0;

if(a>b)

{if(c>d)x=1;}

elsex=2;

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

}

写出其输出结果:

_________

 

4.inttest(intx,inty)(6分)

{x=x+5;

y=y+2;

returnx;

}

main()

{intx,y,z;

x=1;y=2;

z=test(x,y);

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

}

写出其输出结果:

_________

5.voidfunc(inta[],intn)(8分)

{intj,temp;

for(j=0;j<=n/2;j++)

{temp=a[j];a[j]=a[n-1-j];a[n-1-j]=temp;}

}

main()

{intx[5]={2,5,1,7,8},len=5,k;

func(x,len);

for(k=0;k

printf(“%2d”,x[k]);

}

写出其输出结果:

_____________________

 

6.intsearch(ints[],intn,intkey)(12分)

{intlow,hig,mid;

low=0;hig=n-1;

while(low<=hig)

{mid=(low+hig)/2;

if(s[mid]==key)break;

elseif(s[mid]

elsehig=mid-1;

}

if(low<=hig)returnmid;

elsereturn–1;

}

main()

{intkey,result;

inta[8]={10,13,15,17,19,21,25,28};

scanf(“%d”,&key);

result=search(a,8,key);

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

}

当输入数据为25↙时,程序的输出结果为________.

当输入数据为11↙时,程序的输出结果为________.

 

7.main()(6分)

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

intj,s=0;

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

s=s+a[j][j];

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

}

写出其输出结果:

_____________________

 

8.intcount(charc[])(6分)

{intI=0;

while(c[I++]!

=’\0’);

returnI-1;

}

main()

{charstr[]=”LanguageProgramming”;

printf(“length=%d”,count(str));

}

写出其输出结果:

_____________________

 

9.#include(10分)

intf(intn)

{staticints=1;

 while(n)s*=n--;

   returns;

     }

   main()

   {inti,j;

   i=f(3);j=f(4);

   printf("\nTheoutputis:

\n\n");

       printf("i=%dj=%d\n",i,j);

   }

写出其输出结果:

_____________________

 

10、main()(10分)

{intI,j,k,temp;

inta[6]={7,5,9,3,6,2},n=6;

for(I=0;I

{k=I;

for(j=I+1;j

if(a[j]

if(I!

=k){temp=a[k];a[k]=a[I];a[I]=temp;}

}

for(j=0;j

}

写出其输出结果:

_____________________

二、完成下列冒泡排序程序(每个空格3分)

voidbubblesort(intr[],intn)

{intI,j,temp;

for(I=0;I

for(j=

(1);j>=I+1;j--)

if(

(2))

{temp=r[j];r[j]=r[j-1];(3);}

}

main()

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

intj,n=6;

bubblesort((4));/*函数调用*/

for(j=0;j

}

三、编写程序从键盘输入20个学生的成绩,求最高分,最低分和平均分。

(15分)    

 练习三答案:

一、

(1)2,1

(2)1(3)0(4)1,2,6(5)87152(6)6-1(7)s=15(8)length=20(9)Theoutputis:

_i=6j=144(10)235679

二、

(1)n-1

(2)r[j]

三、答案略

 返回

C语言程序设计练习四

学号_________姓名_____________分数______________

一.单项选择题(在下列每小题四个备选答案中选出一个正确答案,并将其字母号填入题目后面的括号内。

每小题2分)

1.已知a=2,b=3,执行下面条件语句后,b的值是()。

if(a<0)if(b<0)b++;elseb--;

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

2.下面()是C语言的有效实数。

A.+3.14B.47C.1,234.00

3.a和b是实数变量,c和d是整数变量,下面()赋值语句是正确的。

A.a=a%c/b;B.c+1=b+d;C.a=c/d;D.c=”a”;

4.以下运算符中优先级最高的是()。

A.?

:

B.==C.%D.++

5.阅读以下程序:

main()

{intcount;floatsum=0.0;

for(count=1;count<8;count++)

switch(count)

{case1:

case4:

case5:

sum+=count;break;

case2:

case3:

case7:

sum=1.0;

}

printf(“%4.1f”,sum);

}

程序的执行结果为()

A.23.0B.10.0C.11.0D.1.0

6.阅读以下程序:

main()

{intx=3,p=1,I,sum=0;

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

p*=x;

sum+=p;

printf(“%d”,sum);

}

程序的执行结果为()

A.6B.27C.9D.28

7.以下叙述正确的是()

A.while语句的循环体至少执行一次B.do-while语句的循环体至少执行一次

C.for语句的循环体至少执行一次D.while语句用于循环次数已知的循环

8.for(j=-1;j<2;j++){循环体},则循环执行()次。

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

二.改错题(指出所给程序中的错误,在错误位置处打上横线标记,并注明错误原因。

每题6分)

1.#definePI3.14;  去掉;

main()

{ints;floatr;      应是float

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

s=PI*r*r;

printf(“s=%6.2f”,s);

}

2.#define“stdio.h”

main()

{charc1=”a”;c; 单引号,逗号

c=getchar; 加函数括号

if(c1=c)printf(“c1==c\n”); 双等号

elseprintf(“c1!

=c\n”);

}

3.程序功能:

求n以内的偶数之和。

main()

{intsum=0,n=100;

for(j=2;j<=n;j++);去除

{sum=0;去除

sum=sum+j:

j++;

}

printf(sum=%d,&sum);加双引号,去掉&

}

 4.输入x(|x|<1),计算S,S=x+x2/2+x3/3+x4/4+…,直到最后一项的绝对值小于10-6为止。

main()

{floatx,s,term;

intn;

scanf(“%f”,&x);term=x;

s=0;n=1;       应为s=term

do

{n++;

term=term*x/n;    改为term=term*x

s=s+term;    改为s=s+(float)term/n;

}whilefabs(term)

printf(“s=%6.3f”,s);

}

三.读程序(阅读给出的程序,将其运行结果写在横线上。

每题6分)

1. main()

{inta=5,b=4,c=9;

printf(“***%d”,a++<=5&&b--<=2&&c++);

}

程序的运行结果为_。

 2.main()

{inta=5;

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

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

}

程序的运行结果为_______。

3.main()

{intI,k,n,s=0;

scanf(“%d”,&n);

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

{scanf(“%d”,&k);

if(k%2==0)s+=k;elses+=k/2;

}

printf(“%d”,s);

}

执行该程序,当输入81526133428172522↙

时,输出为___________________。

 4.main()

{inta,b,c;

a=2;b=3;c=-1;

if(a>b)

if(a>c)

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

else

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

printf(“%d%o%x%u\n”,c,c,c,c);

}

程序的运行结果为____________。

四.编程题(阅读给出的程序,在横线上填入适当的语句、表达式或其他成分,以完善程序。

每个空格3分)

1. 输入任意一整数,计算其各位数字之和与各位数字之积。

main()

{inta,n,m,s,p;

scanf(“%d”,&n);

(1);

(2);m=n;

while((3))

{(4);m/=10;

s+=a;p*=a;

}

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

}

  2. 从输入的整数中,统计大于零的整数个数和小于零的整数个数。

用输入零来结束输入。

main()

{

(1)n,i,j;

i=j=0;

scanf(“%d”,&n);

while(

(2))

{if(n>0)i=(3);

if(n<0)j=(4);

(5);

}

printf(“i=%4dj=%4d\n”,i,j);

}

 3. π的近似值可用以下公式求得:

当n取值10000时结束。

#include“math.h”

main()

{longi;

(1)pi;

pi=0.0;

for(i=1;i<10000;i++)pi+=

(2);

pi=sqrt(6.0*pi);

printf(“(3)“,pi);

}    

练习四答案:

一、

(1)A

(2)A(3)C(4)D(5)D(6)B(7)B(8)B

二、见题目中红色处三、

(1)***0

(2)-20(3)143(4)-1,177777,ffff,65535,

四、1、

(1)s=0

(2)p=1(3)m!

=0(4)a=m%10

2、

(1)int

(2)n(3)i+1(4)j+1(5)scanf(“%d”,&n);

3、

(1)double

(2)1.0/(i*i)(3)%f                         

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

当前位置:首页 > 初中教育 > 政史地

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

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