C语言程序设计习题集.docx
《C语言程序设计习题集.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集.docx(18页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题集
第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;