C语言期末练习试题1doc.docx

上传人:b****7 文档编号:9139996 上传时间:2023-02-03 格式:DOCX 页数:20 大小:31.84KB
下载 相关 举报
C语言期末练习试题1doc.docx_第1页
第1页 / 共20页
C语言期末练习试题1doc.docx_第2页
第2页 / 共20页
C语言期末练习试题1doc.docx_第3页
第3页 / 共20页
C语言期末练习试题1doc.docx_第4页
第4页 / 共20页
C语言期末练习试题1doc.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言期末练习试题1doc.docx

《C语言期末练习试题1doc.docx》由会员分享,可在线阅读,更多相关《C语言期末练习试题1doc.docx(20页珍藏版)》请在冰豆网上搜索。

C语言期末练习试题1doc.docx

C语言期末练习试题1doc

一、阅读程序,选择输出结果

1.下面程序的运行结果是ob

#include

intmain()

(charm;

m='B,+32;

printf("%c\n",m);

return0;)

2.下面程序的运行结果是o0

#include

intmain()

(intx=3,y=5;

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

return0;}

3.下面程序的运行结果是。

x=ly=2*sum*=3

10squaredis:

100#include

intmain()

(intx=1,y=2;

printf("x=%dy=%d*sum*=%d\n",x,y,x+y);

printf("10squaredis:

%d\n",10*10);

return0;}

4.下面程序的运行结果是ox+y+z=48

运行时从键盘输入:

251310/o#include

intmain()

(intx,y,z;

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

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

return0;}

5.下面程序的运行结果是o55,,A

运行时从键盘输入:

55AB/O

#include

intmain()

(intk=0;charcl='a',c2='b';

scanf("%d%c%c",&k,&cl,&c2);

printf("%d,%c,%c\n",k,cl,c2);

return0;}

6.下面程序的运行结果是oc=-l

#include

intmain()

(inta=l,b=2,c=3;

if(a>b)c=1;

elseiffa==b)c=0;

elsec=-1;

printf(,,c=%d",c);

return0;}

7.下面程序的运行结果是。

8888

运行时从键盘输入:

88/。

#include

intmain()

(inta;

scanf("%d",&a);

if(a>90)printf("%d",a);

if(a>80)printf("%d",a);

if(a>70)printf("%d",a);

return0;}

8.下面程序的运行结果是。

maxis2

#include

intmain()

(intmax(intx,inty);

inta=1,b=2,c;

c=max(a,b);

printf("maxis%d\n",c);

return0;}

intmax(intx,inty)

{intz;

z=(x>y)?

x:

y;

returnz;}

9.下面程序的运行结果是oa=l,b=2

#include

intmain()

(voidf(intx,inty);

inta=1,b=2;

f(a,b);

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

return0;}

voidf(intx,inty)

{x=100;

y=200;}

10.下面程序的运行结果是o111

#include

intmain()

(voidincrement();

increment();

increment();

increment();

return0;}

voidincrement()

(intx=0;

x+=1;

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

11.下面程序的运行结果是o84

#include

voidf(inty,int*x)

(y=y+*x;

*x=*x+y;}

intmain()

{intx=2,y=4;

f(y,&x);

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

return0;}

12下面程序的运行结果是o31

42

#include

voidfun(int*a,int*b)

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

*a=2;*b=4;}

intmain()

(intx=1,y=3;

fun(&y,&x);

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

return0;}

13.#include

intmain()

{intx=l,a=2,b=3;

switch(x)

(casel:

a-;break;

case2:

b++;break;

case3:

a++;b++;}

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

return0;}

1)程序运行时,a输出

(1)D

A.2B.0

C.6

D.1

2)程序运行时,b输出

(2)A

A.3B.5

C.0

D.1

14.#include

intmain(){intx,y,t;

x=5,y=3;if(x>y)(t=x;

x=y;

y=t;}

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

return0;}

3)程序运行时,x输出

(3)A

A.3B.5

C.6D.1

4)程序运行时,y输出

(4)C

A.2B.3

C.5D.1

15.#include

intmain()

(inta[3][4]=(0,1,2,3,4,5,6,7,8,9,10,11};

ints[3]={0};

inti,j;

二、程序选择填空或程序改错

1.将所有的A变成E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y

变成C,Z变成D;非字母字符保持原状不变。

#include

intmain()

(charch;

printf("pleaseenter:

\n");

ch=getchar();

while(ch!

='\n')

(if((ch>='a'&&ch<='z')||(ch>=W&&ch<='Z'))(ch=ch+4;

if((ch>Z'&&ch<=Z+4)||(ch>'z'))

ch=ch-26;)

printf(”%c”,ch);

ch=getchar();)

printf(H\nn);

return0;)

2.计算100至1000之间有多少个数其各位数字之和是5o

#include

intmain()

(inti,s,k,count=0;

for(i=100;i<=1000;i++)

{s=0;

k=i;

while(k)

(s=s+k%10;

k=k/10;)

if(s!

=5)

continue;

else

count++;}

printf(H%dn,count);

return0;)

3.计算:

s=l+12+123+1234+12345。

#include

intmain()

(intt=0,s=0,i;

fbr(i=1;i<=5;i++)

{t=i+t*10;

s=s+t;}

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

return0;}

4.用公式++…求》的近似值,直到发现某一项的绝对值小于10一6为

4357

止(该项不累加)。

#include

#include

intmain()

(intf=1;

floatpi=0.0,n=1,t=1;

while(fabs(t)>=le-6)

{pi=pi+t;

n=n+2;

f=-f;

t=f/n;}

pi=pi*4;

printf(”pi=%8.6fm”,pi);

return0;)

5.计算100以内能被3整除,且个位数为4的所有整数。

#include

intmain()

{inti,j;

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

(j=i*10+4;

if(j%3!

=0)

continue;

printf(H%d\nn,j);}

return0;)

6.从终端输入字符,直到输入琳,为止,统计输入的字符中每个大写字母的个数,存放在num数组中,其中num[0]表示字母A的个数,num[l]表示字母B的个数,以此类推。

#include

intmain()

(intnum[26]={0},i;

charc;

while((c=getchar())!

='#')

if(c>='A'&&c<='Z*)

num[c-'A']+=1;

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

if(num[i])

printf(”%c:

%d\n”,i+A,num[i]);

return0;}

7.根据下面的定义,能打印出字母z的语句是oD

structstudent

(charname[10];

intage;};

structstudentstu[3]=("lixiang",17,"zhangsan",18,"wangwu",18);

A.printf("%c\n",stu[2].name);B.printf("%c\n",stu[2].name[l]);

C.printf("%c\n",stu[l].name[l]);D.printf("%c\n",stu[l].name[0]);

8.有一个一维数组score,内放10个学生成绩,统计不及格的学生人数。

#include

intmain()

(intfun(floatarray[10]);

floatscore[10];

inti,count=0;

printf("input10scores:

\n");

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

scanf("%f",&score[i]);

count=fun(score);

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

return0;}

intfun(floatarray[10])

(inti,count=0;

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

if(array[i]<60)

count++;

returncount;}

9.下面程序中,函数fun的功能是:

统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。

#include

#defineN3

typedefstruct

(intnum;

charnam[10];

charsex;

}SS;

intfun(SSperson[])

(inti,n=0;

for(i=0;i

if(person[i].sex=='M')

n++;

returnn;}

intmain()

(SSW[N]={{1,”AA”,F},{2,”BB”,M},{3,”CC”,M}};

intn;

n=fun(W);

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

return0;)

10.下面程序的功能是统计文件letter.txt中小写字母c的个数。

#include

intmain()

(charch;

longn=0;

FILE*fp;

if((fp=fopen("letter.txt","r"))==NULL)

(printf("Cannotopenfile!

\n");

exit(0);)

while(!

feof(fp))

{ch=fgetc(fp);

if(ch='c‘)

n++;}

printf(”n=%ld\n”,n);

fclose(fp);

return0;}

11.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

程序分析:

可填在百位、十位、个位的数字都是1、2、3、4O组成所有的排列后再去掉不满足条件的排列。

【程序】

#include

voidmain()

(inti,j,k;

printf(H\nn);

for(i=l;i<5;i++)/*以下为三重循环*/for(j=l;

(1);j++)//B

for(k=1;k<5;

(2))//A

{if(i!

=k&&(3)&&i!

=k)/*C确保i、j、k三位互不相同*/printf(“%d(4)%d\n",i,i,k);}//B

}

【供选择的答案】

(DA.j=l

B.j<5

C.j<4D.j=0

(2)A.k++

B.k

C.k=0D.k-

(3)A.i=j

B.else

C.i!

=jD.i=k

(4)A.%c

B.%d

C.%sD.%o

12.猴子第一天摘下许多个桃子,

当即吃了一半,还不过瘾,又多吃了一个,第二天早

上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,只剩下一个桃子了。

求第一天共摘了多少。

#includeintmain()(intday,xl,x2;

day=9;

x2=⑸;//Alwhile(day>0)

{(6);/*A.xl=(x2+l)*2第1天的桃子数是第2天桃子数加1后的2倍*/x2=xl;

(7);}//B.day-

printf("thetotalis%d\nn,(8));/B.x2return0;}/

【供选择的答案】

(5)A.1B.OC.2D.9

(6)A.xl=(x2+l)*2;B.x2=(xl+l)*2;C.xl=x2*2;D.x2=xl*2;

(7)A.day+1B.day—C.day++D.day-1

(8)A.xlB.x2C.dayD.x2+xl

13.功能:

计算100至1000之间有多少个数其各位数字之和是5【程序】

#includeintmain()

(inti,s,k,count=0;

for(i=100;i<=1000;i++)

{s=0;

(9);//A.k=iwhile(k)

(s=(10);//D.s+k%10

k=k/10;}

if((11)〃C.s!

=5

continue;

else

count++;}

printf("%d",(12):

//A.count

return0;}

【供选择的答案】

(9)A.k=i

B.k=0C.k=1

D.k=100

(10)A.s+k*10

B.s*k%10

C・s夫k*

D.s+k%10

(11)A.s=5

B.s!

=10C.s!

=5

D.s=10

(12)A.count

B.kC.sD.i

14.程序读入20个整数,统计非负数个数,并计算非负数之和.

#include

intmain()

(inti,s,count,n=20;

inta[20];

s=count=0;

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

scant("%d",&a[i]);

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

{if(a[i]<0)

continue;

s+=a[i];

count++;}

printf("s=%dcount=%d\n",s,count);

return0;}

15.功能:

判断一个数是否是素数

运行事例:

Pleaseinputn(n>l):

13

Yes

#include

#include

intmain()

(intnJ;

printf("Pleaseinputn(n>l):

\n");

scanf("%d",&n);

for(i=2;(5);i++)//D.i<=sqrt(n)

if((6))(7);//(6)C.n%i==0(7)A.break

if(i>sqrt(n))

printf(,,Yes\n");

else

printf("No\n");

return0;)

【供选择的答案】

(5)A.i>=sqrt(n)B.i>nC.i<=nD.i<=sqrt(n)

(6)A.n%i=0B.i%n==0C.n%i==0D.i%n=0

(7)A.breakB.return0C.n=iD.i=n

(8)A.i>=sqrt(n)B.isqrt(n)D.i<=sqrt(n)

三、程序编写

1.编写一个程序,输出所有的水仙花数。

若一个三位数等于其各位上数字的立方和,则称这个三位数为水仙花数。

例如,153是一个水仙花数,因为153=「+53+33。

#include

intmain()

{

intn,i,j,k;

printf("Output:

\n");

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

i=n%10;/*个位*/

j=(n/10)%10;/*十位*/

k=n/100;/*百位*/

if(n==i*i*i+j*j*j+k*k*k)

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

return0;

}

2.编写一个程序,输入两个整数,用辗转相除法计算其最大公约数和最小公倍数。

#include

intmain()

{inti,m,n,t,P,k;

printf("Pleaseinput:

");

scant("%d,%d",&m,&n);

if(m

{t=n;

n=m;

m=t;}

p=m*n;

while(n!

=0)/*余数不为0,继续相除,直到余数为0*/

(i=m%n;

m=n;

n=i;}

k=p/m;

printf("%d,%d\n",m,k);

return0;

}

3.编写一个程序,计算s=l!

+2!

+3!

+—+n!

o其中n由输入决定。

#include

intmain()

t=l;

sum=0;

printf("Pleaseinput:

n=");

scanf("%d",&n);

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

t=t*i;

sum=sum+1;

printf("l!

+2!

+...+%d!

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

return0;

}

4.编写一个程序,计算$=1—4+?

—!

+|+".+上。

其中m由输出决定。

2345m

#include

intmain()

(inti,m;

doublesum=0,k=1;

printf("Pleaseinput:

m=");

scanf(,&m);

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

(sum=sum+k/i;

k=-k;

printf("sum=%4.2f\n",sum);

return0;

5.超市节日蓝莓优惠促销活动,购买数量W1公斤,50元/公斤;1斤〈购买数量W2公斤,45元/公斤;购买数量33公斤,40元/公斤。

利用if……elseif语句编写一个程序,输入龙虾的数量以及顾客的付款数,显示出龙虾的数量、应付款数以及找给顾客的钱数。

当输入数量以及顾客的付款数不合要求时,通知用户"DataError!

",结束程序。

#include

intmain()

{

floatzl,je,yfk;

printf("请输入重量(公斤):

");

scanf("%f",&zl);

printf("\n");

if(zl<=l)

je=zl*50;

elseif(zl<=2)

je=zl*45;

else

je=zl*40;

printf(”您购买蓝莓重量:

%.lf公斤\n",zl);

printfC您应付金额为:

%.lf元\n”,je);

printf("\n");

printff"顾客所付金额:

");

scanf(”%f”,&yfk);

if(yfk

printf("DataError!

\n");

return0;

}

printf("应找您:

%.2f元\n",yfk-je);

return0;

}

6.从键盘上输入10个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩。

#include

intmain()

(intscore[10],n=0,i;

floatsum=0.0,avg;

printf("pleasrent

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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