所在的位置: c++ >> 培训学校 >> C编程题精选1

C编程题精选1

C语言编程题精选1、编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变。

#includestdio.h

main()

{charc;

printf(pleaseinputastring:);

while((c=getchar())!=\n)

{if(c=Ac=W

c=ac=w)c=c+3;

elseif(c=Xc=Z

c=xc=z)c=(c+3)-26;

printf(%c,c);

}

printf(\n);

return0;

}

2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。

#includestdio.h

#includeconio.h

voidmain()

{

intn,R,i=0,a[16]={0};

charstr[16]=ABCDEF;

clrscr();

printf(pleaseinputanintegernumber:\n);

scanf(%d,n);

printf(pleaseinputR:\n);

scanf(%d,R);

if(n0)

{

printf(%c,-);

n=-n;

}

while(n!=0)

{

a[i++]=n%R;

n=n/R;

}

while(i--0)

printf(%c,str[a[i]]);

getche();

}

3、从键盘输入一指定金额(以元为单位,如.78),然后显示支付该金额的各种面额人民币数量,要求显示元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。

#includestdio.h

main()

{inta1,a2,a3,a4,a5,a6,a7,a8,a9;

floatf;

a1=a2=a3=a4=a5=a6=a7=a8=a9=0;

printf(pleaseinputafloatnumber:);

scanf(%f,f);

while(f.0)

{f=f-.0;

a1++;

}

while(f50.0)

{f=f-50.0;

a2++;

}

while(f10.0)

{f=f-10.0;

a3++;

}

while(f5.0)

{f=f-5.0;

a4++;

}

while(f1.0)

{f=f-1.0;

a5++;

}

while(f0.5)

{f=f-0.5;

a6++;

}

while(f0.1)

{f=f-0.1;

a7++;

}

while(f0.05)

{f=f-0.05;

a8++;

}

while(f0.01)

{f=f-0.01;

a9++;

}

printf(a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,a7=%d,a8=%d,a9=%d\n,a1,a2,a3,a4,a5,a6,a7,a8,a9);

return0;

}

4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。

#includestdlib.h

#includeconio.h

voidmain()

{

inta[21],i,ran,max,min,sum,average;

clrscr();

for(i=1;i=20;i++)

{

while((ran=random(51))/10==0)//ensureranbetween20and50;

a[i]=ran;

}

max=min=a[1];//initializehere

sum=0;

for(i=1;i=20;i++)

{

printf(a[%d]=%d\n,i,a[i]);

sum+=a[i];

if(maxa[i])

max=a[i];

elseif(mina[i])

min=a[i];

}

average=sum/20;

printf(\nsum=%d,max=%d,min=%d,average=%d\n,sum,max,min,average);

puts(\nanykeytoexit!);

getche();

}

#includestdlib.h

#includeconio.h

#includetime.h

voidmain()

{

inta[21],i,ran,max,min,sum,average;

srand(time(NULL));

for(i=1;i=20;i++)

{

ran=10+rand()%41;

a[i]=ran;

}

5、编程在一个已知的字符串中查找最长单词的长度,假定字符串中只含字母和空格,空格用来分隔不同单词。

#includestdio.h

#includeconio.h

voidmain()

{

charstring[80],*p;

inti=0,max=0;

clrscr();

printf(pleaseinputastring:\n);

gets(string);

//printf(\n%s\n,string);

p=string;

while(*p!=\0)

{

if(*p==)

{

if(max=i)

max=i;

i=0;

}

else

i++;

p++;

}

if(max=i)

max=i;

printf(\nmax_lengthofthestringis:%d\n,max);

getche();

}

1、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。

#includestdio.h

#includeconio.h

#includestdlib.h

#includetime.h

voidmain()

{

inti,n,A,B,C,D,abandon,ran;//abandonstandfortheoneswhoabandon

clrscr();

A=B=C=D=abandon=0;

printf(Enterthenumberofpersons:);

scanf(%d,n);//npersonstoselectfromcandidatea,b,candd.

randomize();

for(i=1;i=n;i++)

{

ran=random(5)+65;//A,B,C,Dandtheoneswhoabandon

switch(ran)

{

caseA:A++;break;

caseB:B++;break;

caseC:C++;break;

caseD:D++;break;

default:abandon++;

}

}

printf(\nA=%d,B=%d,C=%d,D=%d,abandon=%d\n\n,A,B,C,D,abandon);

i=4;

while(i--!=0)

{

if(A=BA=CA=DA!=-1)

{

printf(A=%d,,A);

A=-1;

}

if(B=AB=CB=DB!=-1)

{

printf(B=%d,,B);

B=-1;

}

if(C=AC=BC=DC!=-1)

{

printf(C=%d,,C);

C=-1;

}

if(D=AD=BD=CD!=-1)

{

printf(D=%d,,D);

D=-1;

}

}

printf(abandon=%d,\n\n,abandon);

getch();

}

7.任何一个自然数m的立方均可写成m个连续奇数之和。例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

编程实现:输入一自然数n,求组成n3的n个连续奇数。

#includeconio.h

#includestdio.h

#includemath.h//

voidmain()

{

inti,j,n,sum,count;

clrscr();

printf(\nanintegerhereplease:);

scanf(%d,n);

printf(\n);

//i=(int)floor(sqrt((float)n));

//if(i%2==0)

//i++;

i=1;//

for(;i=n*n*n;i+=2)

{

sum=0;

count=0;

for(j=i;j=n*n*n;j+=2)

{

sum=sum+j;

count++;

if((n*n*n==sum)(count==n))

break;

}

if((sum==n*n*n)(count==n))

break;

}

printf(i=%d,j=%d\n\n,i,j);

printf(%d*%d*%d=,n,n,n);

//while(n--1){printf(%d+,i);i+=2;}

for(;ij;i+=2)//

printf(%d+,i);//

printf(%d,i);

getch();

}

8、已知abc+cba=,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。#includestdio.h

#includeconio.h

voidmain()

{

intnum,a,b,c;

clrscr();

printf(Pressanykeytocalculate!\n\n);

getch();

for(num=;num0;num++)

{

a=num/;

b=num%/10;

c=num%10;

if(num+c*+b*10+a==)

printf(\n%d+%d=\n,num,c*+b*10+a);

}

while(!kbhit());

//kbhit用来检测键盘是否有按键,有则返回-1,没有则返回0.

//所以while(!kbhit()).就是没有按键的时候进行循环

}

9编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。

#includestdio.h

#includeconio.h

voidmain()

{

floatnum1,num2;

chars;

clrscr();

printf(Enterastatementplease:);

scanf(%f%c%f,num1,s,num2);

switch(s)

{

case+:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1+num2);break;

case-:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1-num2);break;

case*:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1*num2);break;

case/:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1/num2);break;

default:printf(InputError!);

}

getch();

}

2、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。

如输入:,输出:5位数

              5,6,4,3,9

              9,3,4,6,5

#includeconio.h

#includestdio.h

longpower(intn)

{

inti;

longresult=1;

for(i=1;i=n;i++)

result=10*result;

returnresult;

}

voidmain()

{

longnum,n,j;

intcount=1,tmpcount;

clrscr();

printf(Pleaseinputanumber(0-):);

scanf(%ld,num);

n=num;

while((n=n/10)!=0)

count++;

printf(\n%ldisa%ddigits.\n\n,num,count);

tmpcount=count;//temporarytmpcountforlateruseinstatementA

n=num;

while(count--1)

{

j=power(count);

printf(%d,,n/j);

n=n%j;

}

printf(%d\n,n);

n=num;

while(tmpcount--1)//statementA

{

printf(%d,,n%10);

n=n/10;

}

printf(%d\n,n);

getch();

}

3、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。

#includeconio.h

#includestdio.h

voidmain()

{

inti,k,a[12]={0};//a[0]fornouse

voidsub1(intb[]),sub2(intb[],intk);

clrscr();

printf(Pleaseinput10numbers:);

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

scanf(%d,a[i]);

getchar();

sub1(a);

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

printf(\na[%d]=%d\n,i,a[i]);

printf(\n\npleaseinputanumbertobeinsertedintothearray:);

scanf(%d,k);

sub2(a,k);

for(i=1;i=11;i++)

printf(\na[%d]=%d\n,i,a[i]);

puts(\nAnykeytoexit!);

getch();

}

voidsub1(b)

intb[];

{

inti,j,t;

for(i=1;i10;i++)//thefirstoneisalwaysthesmallest

for(j=i;j=10;j++)

if(b[i]b[j])

{

t=b[i];

b[i]=b[j];

b[j]=t;

}

}

voidsub2(intb[],intk)

{

inti;

for(i=10;i=1;i--)

{

if(kb[i])

b[i+1]=b[i];

else

{

b[i+1]=k;

break;

}

}

}

4、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否在给定的数组当中的函数----SUB2。主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK”,没有找到则输出“NOFOUND!”。

#includeconio.h

#includestdio.h

voidmain()

{

inti,key,a[11]={0},sub1(),sub2();

printf(pleaseinput10number:);

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

scanf(%d,a[i]);

getchar();

sub1(a);

for(i=0;i=10;i++)

printf(a[%d]=%d,,i,a[i]);

printf(\npleaseinputakeynumber:);

scanf(%d,key);

sub2(a,key,1,10);

getch();

}

intsub1(intb[])

{

intt,i,j,post;

for(i=1;i10;i++)

{

post=i;

for(j=i+1;j=10;j++)

if(b[post]b[j])

post=j;

if(post!=i)

{

t=b[i];

b[i]=b[post];

b[post]=t;}

}

return0;

}

intsub2(intc[],intk,intn0,intn1)

{

inti=n0,j=n1,m;

m=(i+j)/2;

while(i=j)

{

if(kc[m])

j=m-1;

if(kc[m])

i=m+1;

if(k==c[m])

break;

m=(i+j)/2;

}

if(k==c[m])

printf(OK!\n);

else

printf(NOFOUND!\n);

return0;

}

5、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排列,然后将这两个数组合并成一个升序数组。

#includestdio.h

#includeconio.h

voidmain()

{

inti,j,k,a[6]={0},b[6]={0},c[11]={0},sub1();

clrscr();

printf(\npleaseinput5intnumberstoarray1:);

for(i=1;i=5;i++)//a[0]fornouse

scanf(%d,a[i]);

getchar();

sub1(a,5);

printf(\npleaseinput5intnumberstoarray2:);

for(i=1;i=5;i++)//b[0]fornouse

scanf(%d,b[i]);

getchar();

sub1(b,5);

printf(\nthesortedarrayais:\n\n);

for(i=1;i=5;i++)

printf(a[%d]=%d,i,a[i]);

printf(\n);

printf(\nthesortedarraybis:\n\n);

for(i=1;i=5;i++)

printf(b[%d]=%d,i,b[i]);

k=i=j=1;

while(i=5j=5)

if(a[i]b[j])

c[k++]=a[i++];//c[0]fornouse

else

c[k++]=b[j++];

if(ij)//appendingtherestonesinarraya

for(;i=5;i++)

c[k++]=a[i];

else//appendingtherestonesinarrayb

for(;j=5;j++)

c[k++]=b[j];

printf(\n\n);

printf(\nthemergedarraycis:\n\n);

for(k=1;k=10;k++)

{

if(k==6)

printf(\n);

printf(c[%d]=%d,k,c[k]);

}

while(!kbhit());

}

intsub1(intb[],intn)

{

intt,i,j,post;

for(i=1;in;i++)

{

post=i;

for(j=i+1;j=n;j++)

if(b[post]b[j])

post=j;

if(post!=i)j

{j

t=b[i];

b[i]=b[post];

b[post]=t;

}

}

return0;

}

6、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。

/*

//approachone

#defineN13

#includestdio.h

#includeconio.h

structperson

{

intnumber;//itsorderintheoriginalcircle

intnextp;//recorditsnextperson

};

structpersonlink[N+1];//link[0]fornouse

voidmain()

{

inti,count,next;//countfor12persons,and

//nextforthepersonnotoutofcircleyet

clrscr();

for(i=1;i=N;i++)

{

link[i].number=i;//numberingeachperson

if(i==N)

link[i].nextp=1;

else

link[i].nextp=i+1;//numberingeachnextperson

}

printf(\nThesequenceoutofthecircleis:\n);

for(next=1,count=1;countN;count++)//countuntil12persons

{

i=1;

while(i!=3)//icounts1,2,3

{

do//skiptheoneswhosenumbersarezero

next=link[next].nextp;

while(link[next].number==0);//endofdo

i++;

}

printf(%3d,link[next].number);

link[next].number=0;//indicateoutofcirclealready

do//startfromtheoneswhosenumbersarenotzeronexttime

next=link[next].nextp;

while(link[next].number==0);

}

printf(\n\nThebetrayerofthemis:);

for(i=1;i=N;i++)

if(link[i].number)

printf(%3d\n,link[i].number);

getch();

}

*/

//approachtwousingcycliclist

#defineN13

#defineLENsizeof(structperson)

#includestdio.h

#includeconio.h

#includealloc.h

#includestdlib.h

//structperson//permitstructplacedhere//

//{

//intnumber;

//structperson*next;

//};

voidmain()

{

inti,count;

structperson//orpermitstructplacedherealso//

{

intnumber;

structperson*next;

};

structperson*head,*p1,*p2;

clrscr();

head=p2=NULL;

for(i=1;i=N;i++)

{

p1=(structperson*)malloc(LEN);

p1-number=i;

if(head==NULL)

head=p1;

else

p2-next=p1;

p2=p1;

}

p2-next=head;

printf(\nthesequenceoutofthecircleis:\n);

for(count=1;countN;count++)

{

i=1;

while(i!=3)

{

p1=head;

head=head-next;

i++;

}

p2=head;

printf(%3d,p2-number);

p1-next=head=p2-next;

free(p2);

}

printf(\nThebetrayerofthemis:\n%3d,head-number);

getch();

}

还可以去望麓自卑论坛







































北京白癜风去哪个医院
北京治疗白癜风医院哪个最好



转载请注明:http://www.nydjfy.com/pxxx/8473.html