C语言程序设计习题集Finalanswer.docx
《C语言程序设计习题集Finalanswer.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集Finalanswer.docx(27页珍藏版)》请在冰豆网上搜索。
![C语言程序设计习题集Finalanswer.docx](https://file1.bdocx.com/fileroot1/2023-7/1/9a80c940-d079-4d71-8d3e-7bbe68b5a3d8/9a80c940-d079-4d71-8d3e-7bbe68b5a3d81.gif)
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;iscanf("%d",&a[i]);
printf("\n");
for(j=0;jfor(i=j+1;iif(a[j]>a[i])
{t=a[j];a[j]=a[i];a[i]=t;}
printf("Thesortednumbers:
\n");
for(i=0;iprintf("%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;ifor(j=0;jscanf(“%d”,&a[i][j]);
max=a[0][0];x=0;y=0;
for(i=0;ifor(j=0;jif(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,nm3,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(maxmax=a[i][j];
}
returnmax;
}
3
#include
#include
intisTheFineNumber(intn)
{
inta,b,c,x=0,i;
for(i=101;iif((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