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

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

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

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

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

C语言程序设计习题集Finalanswer

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

一、选择题

ACDCBCCDCBD

二、填空题

1、n=20

2、a=66,b=E

第3章顺序程序设计

3.1顺序结构

一、选择题

BAAD

二、程序阅读

1、1224

012

2、2,3,2,2

3、0

三、编程

1

#include

#include

voidmain()

{

floata,b,c,s,area;

scanf("%f,%f,%f",&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,area=%f",a,b,c,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;

c=26;

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;

}

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、22

2、23

3、46

4、117

二、选择题:

1.C2.D3.B4.B5.B6.C7.C8.C9.B10.D

三、程序阅读:

1、输出:

33

2、输出:

24

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

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

5、B,A,D,C

6、D,A,B,C

7、B,C,A,D

8、A,D,D,C

9、C,C,A

10、B,D,A

11、A,D,C

四、编程

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.#include"math.h"

main()

{intj,m,k;

printf("Enteranintegernumber:

");

scanf("%d",&m);

for(j=2;j<=m-1;j++)

if(m%j==0)break;

printf("%d",m);

if(j>=m)

printf("YES\n");

else

printf("NO\n");}

4.#include

main()

{inti,num1,num2,num3;

num1=1;num2=1;

printf("%d%d",num1,num2);

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

{

num3=num1+num2;

printf("%d",num3);

num1=num2;

num2=num3;

}

}

第4章数组

一、选择题:

1.D2.D3.A4.C5.C6.C7.D8.B9.D10.B11.D12.D13.D14.A15.B

二、程序阅读:

1、A,B,B,D

2、C,D,A,B

3、B,B

4、D,C,A

5、C,D

6、C,A

7、1#2#3#1#1#3

8、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);

printf(“请输入数据:

”);

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章函数

一、选择题

(1)A

(2)B

(3)C

(4)B

(5)D

(6)C

(7)

i.B

ii.D

iii.A

iv.C

(8)

i.D

ii.C

iii.B

iv.A

(9)

i.D

ii.B

iii.B

(10)

i.C

ii.C

iii.B

iv.B

二、程序阅读题

(1)3,5

(2)4

(3)s=10

(4)5,25

三、程序设计

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)

{

inta,b,c,x=0,i;

for(i=101;i

if((int)sqrt(n)==sqrt(n))

{a=n%10;

b=(n/10)%10;

c=n/100;

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

x=x+1;

}

returnx;

}

voidmain()

{intn;

scanf("%d",&n);

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

}

第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*arg

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

当前位置:首页 > 农林牧渔 > 林学

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

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