北工大 c语言题库Word文档格式.docx
《北工大 c语言题库Word文档格式.docx》由会员分享,可在线阅读,更多相关《北工大 c语言题库Word文档格式.docx(36页珍藏版)》请在冰点文库上搜索。
intcountdigit(longnumber,intdigit);
%ld"
in);
count=countdigit(in,2);
count=%d\n"
count);
intcountdigit(longnumber,intdigit)
inti,count=0,t;
if(number<
0)
number=-number;
;
i++){
t=number%10;
if(t==digit)count++;
number=number/10;
if(number==0)
break;
returncount;
统计素数并求和
math.h"
intcount,i,m,n,sum;
intprime(intm);
%d%d"
&
m,&
sum=0;
count=0;
for(i=m;
if(prime(i)==1){
count++;
sum=sum+i;
}
count=%d,sum=%d\n"
count,sum);
intprime(intm)
if(m==1)return0;
if(m>
1){
for(i=2;
=m/2;
if(m%i==0){
return0;
}
if(i>
m/2)return1;
求完数
inti,m,n;
longfactorsum(intnumber);
if(i==factorsum(i))
printf("
%d"
i);
\n"
);
longfactorsum(intnumber)
inti,sum=0;
if(number==1)return1;
number;
if(number%i==0)
sum=sum+i;
returnsum;
输出Fibonacci序列
intmain()
longf;
longfib(intn);
f=fib(i);
if(f>
=m&
&
f<
=n)printf("
%ld"
f);
n)break;
longfib(intn)
inti,a=1,b=1,t;
if(n==1)return1;
if(n==2)return1;
for(i=3;
t=a+b;
a=b;
b=t;
returnt;
求各位数字的立方和等于它本身的数
intis(intnumber);
if(i==is(i))
intis(intnumber)
intt,sum=0;
do{
sum=sum+t*t*t;
}while(number!
=0);
将一个整数逆序输出
#include<
stdio.h>
intri,repeat;
longin,res,k;
longreverse(longnumber);
ri<
ri++){
if(in<
0){
in=-in;
k=1;
elsek=0;
res=reverse(in);
if(k==1)
res=-res;
%ld\n"
res);
longreverse(longnumber)
inta,b;
b=0;
while(number!
=0){
a=number%10;
b=b*10+a;
returnb;
循环移动(调试示例error08_1)
voidmov(int*x,intn,intm);
intmain(void)
inti,m,n,*p;
inta[80];
n,&
m);
for(i=0;
i<
n;
i++)
a[i]);
mov(a,n,m);
Aftermove:
"
a[i]);
voidmov(int*x,intn,intm)
inti,j,k;
for(i=0;
m;
k=x[n-1];
for(j=n-1;
j>
0;
j--)
x[j]=x[j-1];
x[0]=k;
在数组中查找指定元素
inti,index,n,res,x;
intrepeat,ri;
inta[10];
intsearch(intlist[],intn,intx);
for(ri=1;
ri<
=repeat;
x);
res=search(a,n,x);
if(res!
=-1)
index=%d\n"
else
Notfound\n"
intsearch(intlist[],intn,intx)
inti,res;
res=-1;
n;
if(list[i]==x)
res=i;
returnres;
使用函数的选择法排序
voidsort(inta[],intn);
inti,n;
sort(a,n);
Aftersorted:
voidsort(int*p,intn)
intk,i,index,t;
for(k=0;
k<
n-1;
k++){
index=k;
for(i=k+1;
if(p[i]<
p[index])
index=i;
t=p[index];
p[index]=p[k];
p[k]=t;
使用函数删除字符串中的字符
#include<
voidmain()
charc;
charstr[80];
voiddelchar(char*str,charc);
getchar();
gets(str);
%c"
c);
/*---------*/
delchar(str,c);
result:
puts(str);
voiddelchar(char*str,charc)
inti,j;
for(i=j=0;
str[i]!
='
\0'
;
if(str[i]!
=c)
str[j++]=str[i];
str[j]='
使用函数实现字符串复制
string.h>
chars[80],t[80];
intm;
voidstrmcpy(char*s,char*t,intm);
gets(t);
if(strlen(t)<
m)
errorinput"
else{
strmcpy(s,t,m);
puts(s);
voidstrmcpy(char*s,char*t,intm)
j=0;
for(i=m-1;
t[i]!
s[j++]=t[i];
s[j]='
判断回文字符串
chars[80];
intmirror(char*p);
gets(s);
if(mirror(s)!
=0)
printf("
YES\n"
NO\n"
intmirror(char*p)
char*q;
q=p;
while(*q!
)
q++;
p--;
while(p<
q){
if(*p!
=*q)
p++;
q--;
return1;
分类统计字符个数
char*p;
intblank,digit,lower,other,upper;
upper=lower=blank=digit=other=0;
for(p=s;
*p!
p++)
if(*p>
A'
*p<
Z'
upper++;
elseif(*p>
a'
z'
lower++;
0'
9'
digit++;
elseif(*p=='
'
blank++;
else
other++;
upper:
%dlower:
%dblank:
%ddigit:
%dother:
%d\n"
upper,lower,blank,digit,other);
显示水果的价格
intchoice;
floatprice;
[1]apples\n"
[2]pears\n"
[3]oranges\n"
[4]grapes\n"
choice);
if(choice==0)
price=0"
switch(choice){
case1:
price=3.00;
break;
case2:
price=2.50;
case3:
price=4.10;
case4:
price=10.20;
price=%.2f\n"
price);
求n!
doublefact;
fact=1;
fact=fact*i;
%.0f\n"
fact);
求最大值
inti,max,n,x;
max=n;
scanf("
if(max<
x)
max=x;
%d\n"
max);
求整数的位数以及各位数之和
intnumber,sum;
number=0;
sum=sum+in%10;
in=in/10;
number++;
}while(in!
number=%d,sum=%d\n"
number,sum);
求a+aa+aaa+aa…a
longinta,sn,tn;
%ld%d"
a,&
sn=a;
tn=a;
=n-1;
tn=10*tn+a;
sn=sn+tn;
sn);
求平均值
intmain(void)
{
inti,n,sum;
doubleaver;
sum=0;
i++){
sum=sum+a[i];
aver=sum/(n*1.0);
average=%.2f\n"
aver);
交换最小值和最大值
inti,index,n,t;
index=0;
for(i=0;
if(a[i]<
a[index])
t=a[0];
a[0]=a[index];
a[index]=t;
if(a[i]>
t=a[n-1];
a[n-1]=a[index];
Afterswap:
i++)
将数组中的数逆序存放
inti,n,temp;
n/2;
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
选择法排序
inti,index,k,n,temp;
for(k=0;
index=k;
for(i=k+1;
if(a[i]>
a[index])index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
调