资源描述
习题1
1、算法描画要紧是用两种全然办法:第一是自然语言描画,第二是应用公用货色停顿算法描画
2、c语言次序的构造如下:
1〕c语言次序由函数形成,每个次序必须存在一个main函数作为次序的主控函数。
2〕"/*"与"*/"之间的内容形成c语言次序的正文部分。
3〕用预处理命令#include可以包含有关文件的信息。
4〕大小写字母在c语言中是有区不的。
5〕除main函数跟标准库函数以外,用户可以自己编写函数,次序一般由多个函数形成,这些函数制定理论所需要做的任务。
比如:
voidmain()
{
inta,b,c,s;
a=8;b=12;c=6;
s=a+b*c;
printf("s=%d\n",s);
}
3、c语言的特征:
1〕c语言存在构造语言的特征,次序之间特不随便完成段的共享;
2〕c语言的要紧结形因素为函数,函数可以在次序中被定义完成独破的任务,独破地编译成代码,以完成次序的模块化。
3〕c语言运算符丰富,运算包含的范围特不广;
4〕c语言数据典范丰富。
5〕c语言赞同开门见山访征询物理所在,即可开门见山对硬件停顿把持,完成汇编语言的大年夜部分功能;
6〕c语言语法限制不太严峻,次序方案自由度大年夜,如斯是c语言可以添加对次序员的束缚;
7〕用c语言编程,生成的目标代码质量高,次序实行效能高,可移植性好;
4、合理标识符:AB12、leed_3、EF3_3、_762、PAS、XYZ43K2
不合法标识符:a*b2、8stu、D.K.Jon、if、ave#xy、#_DT5、C.D
5、F2:将当前编辑器中文件存盘
F10:调用主菜单
F4:次序运行到光标所内行
Ctrl+F9:当前编辑状况下,停顿编译、连接且运行次序;
Alt+F5:将窗口切换到DOS下,反省次序运行结果
6、(1):
********************
welcomeyou
verygood
********************
(2):
pleaseinputthreenumber;5,7,8
maxnumberis:8
7、main8、Userscreen、Alt+F5
9、标识符必须是字母或下划线开头,大小写字母含义差异。由数字、字母跟下划线形成;
关键字是一种语言中规那么存在特定含义的标识符。关键字不克不迭作为变量或函数名来应用,用户只能按照系统的规那么应用它们。
10、选择主菜单File项下拉子菜单中Save项或开门见山按F2键存盘。
习题2
1、符合C语法则那么的常数为:0x1e、"ab\n"、1.e5
2、(1):
差错如下:intx,y=5,z=5,aver;
x=7;
aver=(x+y+x)/3;
结果如下:AVER=5
(2):
差错如下:charc1='a',c2='b',c3='c';
printf("a=%db=\'%c\'\"end\"\n",a,b);
结果如下:a=3b='A'"end"
aabccabc
3、4、(1):9,11,9,10(2):3,1,0,0(3):11,19,31,1
5、(1):0(2):0(3):9.500000(4):90(5):10(6):10(7):65(8):4
(9):4.500000(10):1(11):0(12):20(13):0
6、(5)7、求x的绝对值8、c>(max=a>b?a:b)?c:max;9、B10、D
习题3
1、输出函数scanf的参数差错,该当为:scanf("%f",&k);
2、|12341234|3、ff104、1,3,1
5、原字符串左边加空格再加字符串本身,字符个数总跟为5个
6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);
7、printf("a+b=%d\n",a+b);
printf("a-b=%d\n",a-b);
printf("a*b=%d\n",a*b);
printf("a/b=%d\n",a/b);
printf("(float)a/b=%f\n",(float)a/b);
printf("a%b=%d\n",a%b);
8、voidmain()
{floatr;
floats,c;
printf("pleaseinputthenumber:");
scanf("%f",&r);
if(r>=0)
{s=3.14*r*r;
c=2*3.14*r;
printf("s=%f,c=%f\n",s,c);
}
else
printf("youinputnumberiserror!");
}
9、voidmain()
{intn;
printf("pleaseinputthenumber:");
scanf("%d",&n);
if(n>=100&&n<=999)
printf("%d%d%d",n%10,(n/10)%10,n/100);
else
printf("youinputnumberiserror!");
}
10、voidmain()
{inti,j,k;
scanf("%d,%d,%d",&i,&j,&k);
((i%2!=0?1:0)+(j%2!=0?1:0)+(k%2!=0?1:0))==2?printf("YES\n"):printf("NO\n");
}
11、voidmain()
{chara;
scanf("%c",&a);
printf("%c,%c,%c",a-1,a,a+1);
printf("%d,%d,%d",a-1,a,a+1);
}
12、voidmain()
{floata,b,c,s,Area;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c||a+c>b||b+c>a)
{s=(a+b+c)/2;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",Area);
}
else
printf("youinputthenumberiserror!\n");
}
习题4
1:02:203:(x<30&&x>20)||(x<-100)4:***a=25,b=14,c=16***
5:37
6:if(a<=b)printf("1");
elseprintf("2");
7、#include<stdio.h>
voidmain()
{chara,b,t1,t2;
scanf("%c,%c",&a,&b);
t1=a>b?a:b;
t2=a<b?a:b;
if((t1-t2)%2==0)printf("%c,%c",a+1,b+1);
else printf("%c,%c",a-1,b-1);
getch();
}
8、#include<stdio.h>
voidmain()
{inttemp1=0,temp2=0,x,y,i=1;
printf("Pleaseinput(x,y):");
scanf("%d,%d",&x,&y);
while((i*y)<=x)
{ if(x==(i*y)){temp1=1;break;}
temp2=i;
i++;
}
if(temp1)
printf("%d/%d=%d",x,y,i);
else
printf("%d/%d--->shang=%d,yushu=%d",x,y,temp2,x-y*temp2);
getch();
}
9、#include<stdio.h>
voidmain()
{floatx,y,m=0,n=0;
scanf("%f,%f",&x,&y);
n=(x-2)*(x-2);
m=(y-2)*(y-2);
if((m+n)<=1)
printf("(%.3f,%.3f)Intheyuan",x,y);
else
printf("(%.3f,%.3f)outoftheyuan",x,y);
getch();
}
10、#include<stdio.h>
voidmain()
{inttemp=0,month,year;
printf("Pleaseinput(year,month):");
scanf("%d,%d",&year,&month);
if((year%400==0)||(year%4==0&&year%100!=0))
temp=1;
if(month==2)
{ if(temp)printf("%dyear%dmonthhave29",year,month);
elseprintf("%dyear%dmonthhave28",year,month);
}
elseif(month%2==0)
printf("%dyear%dmonthhave30",year,month);
elseprintf("%dyear%dmonthhave31",year,month);
getch();
}
11、switch(a/10)
{case5:m=4;break;
case4:m=3;break;
case3:m=2;break;
case2:m=1;break;
default:m=5;
}
12、办法一:
#include<stdio.h>
voidmain()
{ intx,y;
scanf("%d",&x);
if(x<0&&x>-5)
y=x-1;
elseif(x==0)
y=x;
elseif(x>0&&x<8)
y=x+1;
printf("%d",y);
getch();
}
办法二:
#include<stdio.h>
voidmain()
{ intx,y;
scanf("%d",&x);
if(x<8&&x>-5)
{ if(x==0)y=x;
elseif(x>0&&x<8)y=y=x+1;
elsey=x-1;
printf("%d",y);
}
elseprintf("Inputerror!!!");
getch();
}
办法三:
#include<stdio.h>
voidmain()
{ intx,y,i;
scanf("%d",&x);
if(x<8&&x>-5)
{ if(x==0)i=1;
elseif(x>0&&x<8)i=2;
elsei=3;
}
elsei=4;
switch(i)
{ case1:y=x;printf("%d",y);break;
case2:y=x+1;printf("%d",y);break;
case3:y=x-1;printf("%d",y);break;
case4:printf("Inputerror!!");break;
}getch();
}
习题5
1、voidmain()
{intn,value;
inti,count=0;
floataverage=0;
longintsum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{ scanf("%d",&value);
if(value%2==0)
{ sum+=value;
count++;
}
}
average=sum/(float)count;
printf("theaverageis%f\n",average);
}
2、#include"stdio.h"
voidmain()
{charch;
intzm=0,sz=0;
ch=getchar();
while(ch!='*')
{ if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<'z'))
zm++;
if(ch>='0'&&ch<='9')
sz++;
ch=getchar();
}
printf("zm=%d;sz=%d\n",zm,sz);
}
3、voidmain()
{longi_value;
intsum=0;
inttemp=0;
scanf("%ld",&i_value);
if(i_value<0){printf("youinputtheintiserror!\n");return;}
for(;;)
{ temp=i_value%10;
i_value=i_value/10;
sum+=temp;
printf("%d+",temp);
if(i_value==0)break;
}
printf("\b=%d\n",sum);
}
4、#include"stdio.h"
voidmain()
{charch;
ch=getchar();
while(ch!='.')
{if((ch>='A'&&ch<='Z'))
{ch=ch+32;
putchar(ch);
}
elseif((ch>='a'&&ch<'z'))
{ch=ch-32;
putchar(ch);
}
else
{putchar(ch);
}
ch=getchar();
}
printf("\n");
}
5、voidmain()
{floatsum=200;
intcount=0;
for(;;)
{sum=sum+sum*0.045;
count++;
if(sum>500)break;
}
printf("the%dyearslatercomplete!\n",count);
}
6、voidmain()
{inti,temp=0,bit=0;
for(i=1;i<=999;i++)
{if(i%3==0)
{ temp=i;
for(;temp!=0;)
{ bit=temp%10;
if(bit==5){printf("%d,",i);break;}
temp=temp/10;
}
}
}
printf("\b\n");
}
7、#include<stdio.h>
intmain(void)
{intsteps=29,i=1;
while(steps%7)
{steps=(30*++i)-1;
}
printf("Totalsteps:%d\n",steps);
return0;
}
8、main()
{inti,j,k,n;
printf("thenarcissusnumberis:\n");
for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)printf("%d\n",n);
}
}
9、main()
{floati,j,temp,n,sum;
intt;
i=2;j=1;sum=0;
scanf("%d",&t);
for(n=1;n<=t;n++)
{sum=sum+i/j;
temp=i;i=i+j;j=temp;
}
printf("2/1+3/2+5/3+8/5+13/8+...=%f\n",sum);
}
10、voidmain()
{intnWidth,a,b;
scanf("%d",&nWidth);
for(a=(nWidth%2);a<=nWidth;a+=2)
{for(b=0;b<nWidth;b++)
{charchOut='';
intnleft=(nWidth-a)/2;
intnright=(nWidth+a)/2;
if(b>=nleft&&b<nright)
{chOut='*';
}
printf("%c",chOut);
}
printf("\n");
}
}
11、voidmain()
{inti=1,j=1;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
printf("\n")
}
}
12、#include"stdio.h"
voidmain()
{charc;
//count1是负数的个数
//count2是负数的个数
intcount1=0,count2=0;
//sum1是负数之跟
//sum2是负数之跟
intsum1=0,sum2=0;
intflage=0;
c=getchar();
while(c!='*')
{if(c=='-')flage=1;
if(flage==0)
{sum1+=(c-48);count1++;}
else
{if(c!='-')
{sum2-=(c-48);flage=0;count2++;
}
}
c=getchar();
}
printf("%d,%d\n",count1,count2);
printf("%f,%f\n",sum1/count1,sum2/count2);
}
13、voidmain()
{
inti,j;
ints=0;
for(i=100;i<=999;i++)
{
s=0;
for(j=1;j<i-1;j++)
{ if(i%j==0)s=s+j;
}
if(s==i)printf("%5d",i);
}
}
14、#include<stdio.h>
#include<math.h>
voidmain()
{intn;
longk=1;
floate=1;
n=1;
clrscr();
while(fabs(1.0/k)>=0.000001)
{
n++;
e=e+1.0/k;
k=k*n;
}
printf("%f\n",e);
}
15、#include"math.h"
main()
{floatx0,x1,x2,f0,f1,f2;
x1=-10;
f1=2*x1*x1*x1-4*x1*x1+3*x1;
x2=10;
f2=2*x2*x2*x2-4*x2*x2+3*x2;
do
{x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0;
if((f0*f1)<0)
{x2=x0;f2=f0;}
else
{x1=x0;f1=f0;}
}
while(fabs(f0)>1e-6);
printf("______2*x*x*x-4*x*x+3*x=0______\n");
printf("therootis%f\n",x0);
}
习题6
1、#include<stdio.h>
intdivisor(inta,intb)
{intr;
while((r=a%b)!=0)
{ a=b;
b=r;
}
returnb;
}
intmultiple(inta,intb)
{ intd;
d=divisor(a,b);
returna*b/d;
}
voidmain()
{ inta,b,c,d;
printf("intput(a,b):");
scanf("%d,%d",&a,&b);
c=divisor(a,b);
d=multiple(a,b);
printf("\ndivisor=%d\t\tmultiple=%d",c,d);
}
2、#include<stdio.h>
voidtongji(chara[])
{intb[3]={0,0,0},i=0;
while(a[i]!='\0')
{ if((a[i]<=90&&a[i]>=65)||(a[i]<=122&&a[i]>=97)、 b[0]++;
elseif(a[i]<=57&&a[i]>=48)
b[1]++;
else
b[2]++;
i++;
}
printf("zimuhave:%d;shuzihave:%d;qitahave:%d",b[0],b[1],b[2]);
getch();
}
voidmain()
{ chara[100];
printf("Pleaseinputastring:");
gets(a);
tongji(a);
}
3、#include<stdio.h>
intflower(intn)
{ intx=0,i,j,k;
i=(n%10);
j=(n/10%10);
k=(n/100);
x=i*i*i+j*j*j+k*k*k;
if(x==n)return1;
elsereturn0;
}
voidmain()
{ inti,n;
printf("Pleaseintputn:");
scanf("%d",&n);
if(n>999||n<100)printf("Inputerror!!!");
else
{ for(i=100;i<n;i++)
if(flower(i))printf("%d",i);
}getch();
}
4、#include<stdio.h>
#defineSWAP(a,b)t=b;b=a;a=t;
main()
{ floatx,y,t;
printf("Entertwonumber(x,y):");
scanf("%f,%f",&x,&y);
SWAP(x,y);
printf("\n\nExchanged:x=%f,y=%f",x,y);
getch();
}
5、#include<stdio.h>
intfib(intn)
{intp;
if(n==0)p=0;
elseif(n==1)p=1;
elsep=fib(n-1)+fib(n-2);
returnp;
}
voidmain()
{ intn;
printf("Pleaseinputfib:");
scanf("%d",&n);
printf("\n\nfibonacci=%d",fib(n));
}
6、#include<stdio.h>
longfac(intn)
{ longf;
if(n==0) f=1;
else f=n*fac(n-1);
returnf;
}
voidmain()
{ intm,n;
longf;
printf("Pleaseinput(m,n):");
scanf("%ld,%ld",&m,&n);
f=fac(n+m)+fac(n);
printf("\n\nfibonacci=%ld",f);
}
7、#include<stdio.h>
voidlist()
{ inti,j;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
voidmain()
{ list();
}
8、#include<stdio.h>
inthe(intn)
{ inti,s=0;
for(i=1;i<n;i++)
if(n%i==0)s+=i;
returns;
}
voidmain()
{ inti,j;
for(i=1;i<30000;i++)
{for(j=1;j<30000;j++)
if((he(i)==j)&&(he(j)==i)&&(i!=j))
printf("%d<--->%d",i,j);
}
}
9、#include<stdio.h>
#definemax100
structwork
{longsid;
charname[15];
}worker[max];
intsize=0;
structwork*set_list()
{ do
{ printf("\n\nPleaseinput(sid,name):");
scanf("%ld,%s",&worker[size].sid,worker[size].name);
size++;
}while(worker[size-1].sid!=0);
returnworker;
}
voidpaixu(structworka[])
{ inti,j,k;longt;charv[15];
for(i=0;i<size-1-2;i++)
{ k=i;
for(j=i;j<size-2;j++)
if(a[i].sid>a[j].sid)k=j;
if(k!=i)
{ t=a[i].sid;a[i].sid=a[j].sid;a[j].sid=t;
strcpy(v,a[i].name);strcpy(a[i].name,a[j].name);strcpy(a[j].name,v);
}
}
for(i=0;i<=size-2;i++)
printf("sid:%ld\tname:%s\n\n",a[i].sid,a[i].name);
getch();
}
voidselect(structworka[])
{ inti=0,found=1;longnum;
printf("Inputselectsid:");
scanf("%ld",&num);
for(i=0;i<=size-2;i++)
{ if(a[i].sid==num)
{found=0;
printf("%ld:%s",num,a[i].name);
break;
}
}
if(found)printf("\n\nNOthissid!!!");
getch();
}
voidmain()
{ structwork*p;
p=set_list();
paixu(p);
select(p);
}
10、#include<stdio.h>
floatjiecheng(intn)
{ longs=1;inti;
for(i=1;i<=n;i++)
s=s*i;
returns;
}
floatchengfang(floatx,intn)
{ floats=1;inti;
for(i=1;i<=n;i++)
s=s*x;
returns;
}
floatf(floatx,intn)
{ floats=1,t=0;inti=1,j=-1;
for(i=1;i<=n;i++)
{ t=j*chengfang(x,2*i)/jiecheng(2*i);
s+=t;
j=j*j;
}
returns;
}
main()
{ floats1=0,s2=0,s3=0,s4=0,x=5.6;intn=7;
s1=f(x,n);
s2=f(x+2.3,n);
s3=f(x-3.2,n+3);
s4=s1/(s2+s3);
printf("%f",s4);
getch();
}
习题7
1:1〕D;2〕A;3〕D;4〕B;5〕D
2:〔1〕1544
678
23
4
〔2〕6333
3:1〕a[8]=data;k>=0a[k]=tempbreakk<=8
2)"%s"str[i]<='Z'c[str[i]+26-'a']++i+'a'
4、/*题目:求一构效果的平均分数以及高于平均分的效果。*/
#include<stdio.h>
#definemax100
voidmain()
{
floata[max],s=0,average=0;
inti,n;
printf("PleaseinputN:");/*输出要处理元素的个数*/
scanf("%d",&n);
printf("\nPleaseinput%dgeshu:",n);/*输出90,85,92,77,80,62*/
for(i=0;i<n;i++)
{
scanf("%f",&a[i]);
s+=a[i];
}
average=s/n;
printf("\naverage=%.2f\n",average);/*输出81.00*/
for(i=0;i<n;i++)
if(a[i]>average)
printf("%.2f",a[i]);/*输出90.00,85.00,92.00*/
}
5、/*题目:编写次序,输出一组整数,将他们排序后由小到大年夜输出。*/
#include<stdio.h>
#definemax100
voidmain()
{
inta[max],j,i,k=0,t=0,n=0;
printf("PleaseinputN:");/*输出要处理元素的个数*/
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)/*比较n-1遍*/
{ k=i;
for(j=i+1;j<n;j++)/*每遍比较n-(i+1)次*/
if(a[k]>a[j])
k=j;
if(k!=i)/*元素排序前下标与排序后下标不符,那么交换其值*/
{t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("\n\n");
for(i=0;i<n;i++)
printf("%d",a[i]);
}
6、/*题目:从键盘输出一个4x4的整数矩阵,以主对角线〔\〕为对称轴*/
/*将左下角元素中较大年夜者交换右上角元素,并将右上角含对称轴输出。*/
#include<stdio.h>
#include<string.h>
voidmain()
{
intd[4][4]={{0,0,0,0}},i,j;
clrscr();
printf("\nPleaseinput16num:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&d[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(d[i][j]>d[j][i])/*左下角元素大年夜于右上角元素那么交换*/
d[j][i]=d[i][j];
for(i=0;i<4;i++)
{ printf("\n\n\n\n\n");/*为了保持每行的间隔与每列的一样*/
for(j=0;j<4;j++)
if(j>=i)
printf("\t%d",d[i][j]);/*为了使位数差其他数输出依然保持三角型*/
else
printf("\t");
}
}
7、*题目:输出一个3x4的二维数组,然后分不按行跟按列输出。*/
#include<stdio.h>
#include<string.h>
voidmain()
{
intd[3][4]={{0,0,0,0}},i,j;
printf("Pleaseinput12num:");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&d[i][j]);
printf("\n\nAnhang:");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
printf("%d",d[i][j]);
printf("\n\nAnlie:");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%d",d[j][i]);
}
8、/*题目:编写次序,将两个字符串连接起来,不必strcat函数。*/
#include<stdio.h>
#include<string.h>
voidmain()
{ chars1[50],s2[50];
inti=0,j=0,t=0;
printf("Inputone:");
gets(s1);
while(s1[i]!='\0')i++;/*统计s1中字符个数*/
printf("\n\nInputsecond:");
gets(s2);
while(s2[j]!='\0')j++;/*统计s2中字符个数*/
for(t=0;t<=j;t++)/*把s2中字符连接到s1后面*/
{s1[i]=s2[t];i++;}
printf("\n\none+second:");
puts(s1);
}
9、/*输出一行字符串,统计字符对ab的个数。*/
#include<stdio.h>
#include<string.h>
#defineMAX100
voidmain()
{
charstr[MAX];
inti=0,flage=0;
intcount=0;
printf("\nPleaseinputastring:");
gets(str);
while(str[i])
{ if(str[i]=='a')
flage=1;
elseif(str[i]=='b')
{
if(flage==1)
{count++;flage=0;}
}
elseflage=0;
i++;
}
printf("thedoublechar\"ab\"countis%d\n",count);
}
10、
#include<stdio.h>/*相对于第一种办法,这种办法能把同为最大年夜的字符串全部打印出来。*/
#include<string.h>
intpaixu(inta[],intn)/*构造对长度为n的数组排序的函数*/
{
inti,j,t,k,temp;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{t=a[i];
a[i]=a[k];
a[k]=t;
}
}
temp=a[n-1];
returntemp;/*前去最大年夜字符串的长度的值*/
}
voidmain()
{
charstr1[50],str2[50],str3[50],str4[50],str5[50],str6[50];
charstr7[50],str8[50],str9[50],str1
展开阅读全文