C语言程序设计习题集答案.docx

上传人:b****8 文档编号:11308506 上传时间:2023-02-26 格式:DOCX 页数:26 大小:19.29KB
下载 相关 举报
C语言程序设计习题集答案.docx_第1页
第1页 / 共26页
C语言程序设计习题集答案.docx_第2页
第2页 / 共26页
C语言程序设计习题集答案.docx_第3页
第3页 / 共26页
C语言程序设计习题集答案.docx_第4页
第4页 / 共26页
C语言程序设计习题集答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题集答案.docx

《C语言程序设计习题集答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集答案.docx(26页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题集答案.docx

C语言程序设计习题集答案

第1~2章C语言概述、算法、数据类型、运算符与表达式

一、选择题

ACDBBCCDCBD

二、填空题

1、n=20

2、a=66,b=E

第3章顺序程序设计

一、选择题

BAAD

二、程序阅读

1、1224

012

2、2,3,2,2

3、0

三、编程

1

#include

#include

voidmain()

{

inta,b,c;

floats,area;

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

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

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

printf("a=%f,b=%f,c=%f,s=%f,area=%f",a,b,c,s*2,area);

}

2

#include

#include

voidmain()

{

floata,b,c,del,x1,x2;

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

del=b*b-4*a*c;

if(del>=0)

{

x1=(-b+sqrt(del))/(2*a);

x2=(-b-sqrt(del))/(2*a);

printf("x1=%f,x2=%f",x1,x2);

}

else

printf("没有实根");

}

3

#include

voidmain()

{

intc,f;

printf(“inputc:

\n”);

scanf(“%d”,&c);

f=9.0/5.0*c+32;

printf("%d的华氏温度是%d",c,f);

}

3.2选择结构程序设计

一、选择题

DBBCDC

二、程序阅读

1、|a|+|b|=61

2、PQ

3、-1

4、60~69

60

Error!

5、0,1

6、a+b+c=15

三、编程

1

#include

voidmain()

{

inta,b,c,min;

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

min=a;

if(min>b)min=b;

if(min>c)min=c;

printf(“%d,”,min);

}

2

#include

voidmain()

{

inta;

scanf("%d",&a);

if(a%3==0&&a%5==0&&a%7==0)

printf("yes");

else

printf("no");

}

3

#include

#include

voidmain()

{

floatx,y;

scanf("%f",&x);

if(x<0)

y=fabs(x);

elseif(x>=0&&x<=2)

y=sqrt(x+1);

elseif(x>=2&&x<4)

y=pow(x+2,3);

else

y=2*x+5;

printf("x=%f,y=%f",x,y);

}

4

#include

voidmain()

{

floatrate,tax,salary;

scanf("%f",salary);

if(salary<=850)

rate=0;

elseif(salary>1350&&salary<=2850)

rate=0.1;

elseif(salary>2850&&salary<5850)

rate=0.15;

else

rate=0.2;

tax=rate*(salary-850);

printf("salary=%f,rate=%f,tax=%f",salary,rate,tax);

}

 

3.3循环控制

一、填空题:

1.222.233.464.117

二、选择题:

CDBBBCCCBD

三、程序阅读:

1、输出:

33

2、输出:

24

3、2#4#7#11#16#

4、3#2#0#0#1#

5、BADC

6、DABC

7、BCAD

8、ADBC

9、CCA

10、BDA

11、ADC

四、编程

1.#include

#include

voidmain()

{intx;

printf("xsqrt(x)\n");

for(x=5;x<=1000;x++)

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

}

2.#include

#include

main()

{

inti,flag;

doublepi,item;

i=1;

flag=1;

pi=0;

item=1.0;

while(fabs(item)>=0.00001)

{item=flag*1.0/i;

pi=pi+item;

flag=-flag;

i=i+2;

}

pi=pi*4;

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

}

3.教材126页例6.8

4.#include

main()

{inti,a,b,c;

a=1;b=1;

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

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

{

c=a+b;

printf("%d",c);

a=b;

b=c;

}

}

第4章数组

一、选择题:

DDADCCDBDBDDDAB

二、程序填空:

ABBD

CDAB

BB

DCA

CD

CA

1#2#3#1#1#3

298

三、编程:

1、#include

voidmain()

{

intmark,a,p,f;

a=p=f=0;

printf("Enterscores:

");

scanf("%d",&mark);

while(mark>0){

if(mark>=85)a++;

elseif(mark>=60)p++;

elsef++;

scanf("%d",&mark);

}

printf(">=85:

%d\n",a);

printf("60-84:

%d\n",p);

printf("<60:

%d\n",f);

}

2、#include

voidmain()

{inta[10],count=0,i;

floataverage,sum=0;

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

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

sum=sum+a[i];

}

average=sum/10;

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

if(a[i]>average)count=count+1;

printf("平均值为%f大于平均值的数有%d个",average,count);

}

3.

#include

main()

{inta[10];

inti,j,t,n;

printf(“请输入一个正整数n(1

”);

scanf(“%d”,&n);

for(i=0;i

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

printf("\n");

for(j=0;j

for(i=j+1;i

if(a[j]>a[i])

{t=a[j];a[j]=a[i];a[i]=t;}

printf("Thesortednumbers:

\n");

for(i=0;i

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

}

4.#include

voidmain()

{inta[6][6],n,i,j,x,y,max;

printf(“请输入一个正整数n(1≤n≤6):

”);

scanf(“%d”,&n);

printf(“请输入一个n行n列的矩阵:

\n”);

for(i=0;i

for(j=0;j

scanf(“%d”,&a[i][j]);

max=a[0][0];x=0;y=0;

for(i=0;i

for(j=0;j

if(fabs(a[i][j])>max){max=a[i][j];x=i;y=j;}

printf(“绝对值最大的元素为:

%d,下标分别为:

%d,%d\n”,max,x,y);

}

第5章函数

一、选择题

ABCBDC

7)BDAC

8)DCBA

9)DBB

10)CCBB

二、程序阅读题

(1)3,5

(2)4

(3)s=10

(4)5,25

7,15

三、程序设计

1

#include

#include

intisprime(intm)

{intk,n,res;

if(m==1)return0;

res=1;

n=(int)sqrt(m);

for(k=2;k<=n;k++)

if(m%k==0){

res=0;

break;

}

returnres;

}

voidmain()

{

intm,n;

intsum=0;

inti;

do

{

printf("Inputm,nm

3,10\n");

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

}while(m<0||n<0||m>n);

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

{

if(isprime(i))

{

sum+=i;

}

}

printf("Theallprimes'sumis:

%d\n",sum);

}

 

2

intmax_value(intarr[][4])

{

inti,j,max;

max=arr[0][0];

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

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

{

if(max

max=a[i][j];

}

returnmax;

}

3

 

#include

#include

intisTheFineNumber(intn)

{

intflag=0;

inta,b,c;

if((int)sqrt(n)==sqrt(n))//Íêȫƽ·½Êý

{

a=n%10;

b=(n/10)%10;

c=n/100;

if(a==b||b==c||c==a)

flag=1;

}

returnflag;

}

 

voidmain()

{

intn;

inti;

scanf("%d",&n);

for(i=101;i

if(isTheFineNumber(i))

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

 

}

第7章预处理命令

CBBBDDDBC

第8章指针

一、选择题:

1、D

2、A

3、D

4、A

5、D

6、B

7、C

8、D

9、B

10、D

11、D

二、程序阅读题:

1、C

2、A

3、B

4、C

5、A

三、程序设计题:

1

#include

voidmain()

{voidswap(int*pointer1,int*pointer2);

int*p1,*p2;

inta=1,b=2;

p1=&a;

p2=&b;

swap(p1,p2);

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

}

voidswap(int*p1,int*p2)

{

inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

}

2

#include

voidmain()

{inta[10],*p1,i,j,temp;

p1=a;

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

scanf("%d",p1+i);

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

{p1=a;

for(j=0;j<10-i;j++,p1++)

if(*p1>*(p1+1))

{

temp=*p1;

*p1=*(p1+1);

*(p1+1)=temp;

}

}

p1=a;

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

printf("%d",*p1);

}

3

#include

voidmain()

{

intupper=0,lower=0,digit=0,space=0,other=0,i=0;

char*p,s[20];

printf("inputstring:

");

while((s[i]=getchar())!

='\n')i++;

p=&s[0];

while(*p!

='\n')

{if(('A'<=*p)&&(*p<='Z'))

++upper;

elseif(('a'<=*p)&&(*p<='z'))

++lower;

elseif(*p=='')

++space;

elseif(('0'<=*p)&&(*p<='9'))

++digit;

else++other;

p++;

}

printf("uppercaseis:

%dlowercase:

%d",upper,lower);

printf("space:

%ddigit:

%dother:

%d",space,digit,other);

}

4

strmcpy(chars[],chart[],intm)

{char*p1,*p2,i;

p1=s;

p2=t+m;

while(*p2!

='\0')

{

*p1=*p2;

p1++;

p2++;

}

}

5

#include

voidmain()

{

ints[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int*p,i,j,t;

p=&s[0][0];

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

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

{t=*(p+4*i+j);

*(p+4*i+j)=*(p+4*j+i);

*(p+4*j+i)=t;

}

}

第9章结构体共用体

一、选择题:

1.D、D、D、D、C

2.D

3.A

4.BC(选项B改为(*p).pk,结果为C)

5.D

二、选择填空题:

1.B

2.C

三、编程题:

1

#include

struct

{

intyear;

intmonth;

intday;

}date;

voidmain()

{intdays;

printf("inputyear,month,day:

\n");

scanf("%d%d%d",&date.year,&date.month,&date.day);

switch(date.month)

{

case1:

days=date.day;break;

case2:

days=date.day+31;break;

case3:

days=date.day+59;break;

case4:

days=date.day+90;break;

case5:

days=date.day+120;break;

case6:

days=date.day+151;break;

case7:

days=date.day+181;break;

case8:

days=date.day+212;break;

case9:

days=date.day+243;break;

case10:

days=date.day+273;break;

case11:

days=date.day+304;break;

case12:

days=date.day+334;break;

}

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

=0||date.year%400==0)

&&date.month>=3)days+=1;

printf("%d/%disthe%dthdayin%d\n",date.month,date.day,days,date.year);

}

2

#include

struct

{

inthour;

intmin;

intsec;

}time1,time2,time3;

voidmain()

{

printf("inputthefirsttimehour,min,sec:

\n");

scanf("%d%d%d",&time1.hour,&time1.min,&time1.sec);

printf("inputthesecondtimehour,min,sec:

\n");

scanf("%d%d%d",&time2.hour,&time2.min,&time2.sec);

time3.sec=time2.sec-time1.sec;

if(time3.sec<0)

{time3.sec+=60;

time2.sec--;

}

time3.min=time2.min-time1.min;

if(time3.min<0)

{time3.min+=60;

time2.min--;

}

time3.hour=time2.hour-time1.hour;

printf("timelagishour:

%dmin:

%dsec:

%d",time3.hour,time3.min,time3.sec);

}

3

#include

#defineN5

structstudent

{

charnum[6];

charname[6];

intscore[4];

}stu[N];

voidmain()

{voidprint(structstudentstu[6]);

inti,j;

for(i=0;i

{

printf("ninputscoreofstudent%d:

\n",i+1);

printf("No.:

");

scanf("%s",stu[i].num);

printf("name:

");

scanf("%s",stu[i].name);

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

{

printf("score%d:

",j+1);

scanf("%d",&stu[i].score[j]);

}

printf("\n");

print(stu);

}

}

voidprint(structstudentstu[6])

{inti,j;

printf("\nNo.namescore1score2score3\n");

for(i=0;i

{

printf("%5s%10s",stu[i].num,stu[i].name);

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

printf("%9d",stu[i].score[j]);

printf("\n");

}

}

第10章文件

一、选择题

CCBBACCDDCDDD

二、编程

1.

#include

#include

voidmain()

{

FILE*fp;

charstr[80];

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

printf("error\n");

while(!

feof(fp))

{

fscanf(fp,"%s\n",str);

if(strstr(str,"for")!

=NULL)

printf("%s\n",str);

}

fclose(fp);

}

2.

#include

#include

voidmain()

{

FILE*fp;

intn,sum=0;

if((fp=fopen("in.txt","a+"))==NULL)

printf("error\n");

while(!

feof(fp))

{

fscanf(fp,"%d\n",&n);

sum+=n;

}

fprintf(fp,"\nsum=%d\n",sum);

fclose(fp);

}

3.

#include

#include

voidmain(intargc,char*argv[])

{

FILE*in,*out;

charch;

if(argc!

=3)

{

printf("Youforgottoenterafilename\n");

exit(0);

}

if((in=fopen(argv[1],"r"))==NULL)

{

printf("cannotopeninfile\n");

exit(0);

}

if((out=fopen(argv[2],"w"))==NULL)

{

printf("cannotopenoutfile\n");

exit(0);

}

while(!

feof(in))fputc(fgetc(in),out);

fclose(in);

fclose(out);

}

4.

#include

#include

voidmain()

{

FILE*fp;

intn,a=0,b=0,c=0

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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