C语言上机练习题.docx

上传人:b****8 文档编号:8815136 上传时间:2023-02-01 格式:DOCX 页数:27 大小:21.44KB
下载 相关 举报
C语言上机练习题.docx_第1页
第1页 / 共27页
C语言上机练习题.docx_第2页
第2页 / 共27页
C语言上机练习题.docx_第3页
第3页 / 共27页
C语言上机练习题.docx_第4页
第4页 / 共27页
C语言上机练习题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言上机练习题.docx

《C语言上机练习题.docx》由会员分享,可在线阅读,更多相关《C语言上机练习题.docx(27页珍藏版)》请在冰豆网上搜索。

C语言上机练习题.docx

C语言上机练习题

1.输入一个不超过五位的正整数,输出其逆数。

例如输入12345,输出应为54321。

#include"stdio.h"

main()

{

longn;

intww,qw,bw,sw,gw;

printf("Pleaseinput:

\n");

scanf("%ld",&n);

while(n<=0||n>99999)

{

printf("\nThenumberistoolittleortoolarge.Retryplease!

\n");

scanf("%ld",&n);

}

if(n>=10000&&n<=99999)

{

ww=n/10000;

qw=n/1000%10;

bw=n/100%10;

sw=n/10%10;

gw=n%10;

printf("Theoldnumberis:

%ld\n",n);

printf("Thenewnumberis:

%d%d%d%d%d\n",gw,sw,bw,qw,ww);

}

elseif(n>=1000&&n<=9999)

{

qw=n/1000;

bw=n/100%10;

sw=n/10%10;

gw=n%10;

printf("Theoldnumberis:

%ld\n",n);

printf("Thenewnumberis:

%d%d%d%d\n",gw,sw,bw,qw);

}

elseif(n>=100&&n<=999)

{

bw=n/100;

sw=n/10%10;

gw=n%10;

printf("Theoldnumberis:

%ld\n",n);

printf("Thenewnumberis:

%d%d%d\n",gw,sw,bw);

}

elseif(n>=10&&n<=99)

{

sw=n/10;

gw=n%10;

printf("Theoldnumberis:

%ld\n",n);

printf("Thenewnumberis:

%d%d\n",gw,sw);

}

elseprintf("Theoldnumberequalsthenewnumber:

%ld",n);

}

2.计算1+2+3…+n的值,n是从键盘输入的自然数。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

intn,i;

longsum=0;

printf("1+2+3+....+n\n");

printf("Pleaseinputn:

\n");

scanf("%d",&n);

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

{

sum+=i;

}

printf("sum=%ld",sum);

}

3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#defineN20

main()

{

inta[N],i,sum=0,count=0;

printf("Pleaseinputnumbers:

\n");

for(i=0;i

{scanf("%d",&a[i]);

if(a[i]>0)

{sum+=a[i];

count++;

}

}

printf("count=%d,sum=%d",count,sum);

}

4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#defineN5

main()

{inta[N],b[N],i;

printf("Pleaseinputnumbers:

\n");

for(i=0;i

{scanf("%d",&a[i]);

b[N-i-1]=a[i];

}

printf("\nTheoldnumbersare:

\n");

for(i=0;i

printf("%-4d",a[i]);

printf("\nThenewnumbersare:

\n");

for(i=0;i

printf("%-4d",b[i]);

}

5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{inti,j,k,n;

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

for(j=1;j<=25;j++)

for(k=1;k<=50;k++)

for(n=1;n<=100;n++)

if(i*50+j*20+k*10+n*5==500)printf("num50=%d,num20=%d,num10=%d,num5=%d\n",i,j,k,n);

}

6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。

例如若n为1000时,函数值应为:

s=153.909064。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#include"math.h"

main()

{intn,s,i;

floatsum=0;

printf("Pleaseinputn:

\n");

scanf("%d",&n);

while(n<=0)

{

printf("\nErrorinput.Retryplease:

\n");

scanf("%d",&n);

}

for(i=1;i

if(i%3==0&&i%7==0)

sum+=i;

printf("Thenumberis:

%4.2f",sqrt(sum));

}

7.一辆卡车违反交通规则,撞人后逃跑。

现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。

甲说:

牌照的前两位数字是相同的;乙说:

牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:

四位的车号刚好是一个整数的平方。

请根据以上线索找出车号。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#include"math.h"

main()

{

inti,qw,bw,sw,gw;

for(i=1122;i<=9988;i++)

{if(sqrt(i)!

=(int)sqrt(i))

continue;

qw=i/1000;

bw=i/100%10;

sw=i/10%10;

gw=i%10;

if(qw==bw&&sw==gw)

{

printf("\nThenumberis:

%d\n",i);

break;

}

}

8.输入1~10之间的一个数字,输出它对应的英文单词。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

intn;

printf("Pleaseinputn:

\n");

scanf("%d",&n);

while(n<1||n>10)

{

printf("Errorinput!

Retryplease:

\n");

scanf("%d",&n);

}

switch(n)

{

case1:

printf("One!

");break;

case2:

printf("Two!

");break;

case3:

printf("Three!

");break;

case4:

printf("Four!

");break;

case5:

printf("Five!

");break;

case6:

printf("Six!

");break;

case7:

printf("Seven!

");break;

case8:

printf("Eight!

");break;

case9:

printf("Nine!

");break;

case10:

printf("Ten!

");break;

}

}

9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

inti,count=0;

for(i=106;i<596;i=i+10)

{

if(i%3==0&&i%5!

=0)

{

printf("%-4d",i);

count++;

}

}

printf("count=%-4d",count);

}

10.用自然语言描述程序逻辑如下,试写程序。

①设置环境;

②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;

③i=1;

④如果i≤100,则转⑤,否则转⑧;

⑤令s=0,求前i个自然数之和,并放于变量s之中;

⑥sum=sum+s;

⑦i增加1,转④;

8输出和sum,结束。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

inti,j;

longs=0,sum=0;

printf("1+1+2+1+2+3+1+2+3+4+....1+2+3+..+n\n");

i=1;

while(i<=3)

{

s+=i;

sum+=s;

i++;

}

printf("sum=%ld",sum);

}

11.用自然语言描述的程序逻辑为:

①设置环境;

②定义变量i、flag和password,并令flag=0,i=0;

③用户回答口令,将其赋于password变量;

④口令正确?

如果是,则flag=1,转⑥。

否则转⑤;

⑤回答三次口令了吗?

如果没有,计数器加1后(i++),转③,否则转⑥;

6根据flag之值输出相应信息。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#include"string.h"

#defineN6

main()

{

inti=0,flag=0;

charpassword[N];

printf("Thepasswordis:

123456\n");

while(i<3)

{

gets(password);

if(strlen(password)!

=6)

{printf("Thestringlengthiswrong!

Retryplease!

\n");

i++;

continue;

}

if(strcmp("123456",password)==0)

{flag=1;break;}

else{printf("Wronginput!

Retryplease!

\n");i++;}

}

if(flag==1)

printf("Rightpassword!

\n");

elseprintf("Wrongpassword!

\n");

}

12.用自然语言描述的程序逻辑如下:

①设置环境;

②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;

③输入原始正整数x;

④从x中分解出个位数字digit;

⑤合并个位digit至逆数y中;

⑥原始数x缩小10倍:

x=x/10;

⑦如果x非零,则转④;

7输出逆数y,结束

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

longdigit,x,y;/*个位数、原始数、逆数*/

printf("Pleaseinputtheoldnumber:

\n");

scanf("%ld",&x);

digit=x%10;

y=digit;

while(x!

=0)

{

x=x/10;

digit=x%10;

y=y*10+digit;

}

printf("x=%ld,y=%ld",x,y/10);

}

13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

main()

{

floata,b,c,flag;/*flag=0不能,flag=1等边,flag=2等腰,flag=3任意*/

printf("Pleaseinputangles:

\n");

scanf("%f,%f,%f",&a,&b,&c);

if(a+b<=c||a+c<=b||b+c<=a)

flag=0;

elseif(a==b&&b==c)

flag=1;

elseif(a==b||b==c||c==a)

flag=2;

elseflag=3;

if(flag==0)printf("\nCannot!

\n");

if(flag==1)printf("\nDengBian.\n");

if(flag==2)printf("\nDengYao.\n");

if(flag==3)printf("\nPutong.\n");

}

14.输入10个数,分别统计其中正数、负数、零的个数。

#include"stdio.h"

#defineN10

main()

{inta[N];

inti,count1=0,count2=0,count3=0;/*count1记录正数个数,count2记录负数个数,count3记录0的个数*/

printf("Pleaseinputnumbers:

\n");

for(i=0;i

{

scanf("%d",&a[i]);

if(a[i]>0)count1++;

if(a[i]<0)count2++;

if(a[i]==0)count3++;

}

printf("count1=%-4d,count2=%-4d,count3=%-4d",count1,count2,count3);

}

15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。

(设N为100)

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#defineN100

#include

#include

main()

{

inta[N],i;

printf("Pleaseinputnumbers:

\n");

randomize();

for(i=0;i

{a[i]=random(900)+100;

printf("%-4d",a[i]);

}

printf("\n--------------------\n");

printf("\n3,5,7:

\n");

for(i=0;i

if(a[i]%3==0&&a[i]%5==0&&a[i]%7==0)

printf("%-4d",a[i]);

}

16.用for编程找出100~200中的完全平方数。

#include"stdio.h"

#include"math.h"

main()

{

inti;

for(i=100;i<=200;i++)

if(sqrt(i)==i%100)

printf("%-4d",i);

}

17.从终端输入三个正实数,判断这三个数能否构成直角三角形。

#include"stdio.h"

main()

{

floata,b,c,flag;/*flag=0不能,flag=1能*/

printf("Pleaseinputangles:

\n");

scanf("%f,%f,%f",&a,&b,&c);

while(a<=0||b<=0||c<=0)

{printf("Wronginput!

Retryplease:

\n");

scanf("%d,%d,%d",&a,&b,&c);

}

if(a+b<=c||b+c<=a||a+c<=b)

flag=0;

elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)

flag=1;

elseflag=0;

if(flag==1)

printf("\nCan!

");

elseprintf("\nCannot!

");

}

18.输入一行字符,统计其中有多少个字母(包括大写字母和小写字母)。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#defineN10

#include"stdlib.h"

#include"ctype.h"

#include"string.h"

main()

{

charc[N];

inti,count=0;

gets(c);

i=0;

while(i!

=strlen(c))

{

if(isupper(c[i])||islower(c[i]))

count++;

i++;

}

printf("count=%-4d",count);

getch();

}

19.输入一个字串,判断它是否是对称串。

如”abcdcba”是对称串,””不是。

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#include"string.h"

#include"ctype.h"

#include"stdlib.h"

#defineN10

main()

{chara[N],b[N],i;

printf("Pleaseinputthestring:

\n");

gets(a);

if(strlen(a)>N)

{

printf("Wronginput!

Retryplease!

\n");

gets(a);

}

strcpy(b,a);

strrev(a);

if(strcmp(a,b)==0)

printf("\nYes!

\n");

elseprintf("\nNo!

\n");

}

20.随机产生N个大写字母输出,然后统计其中共有多少个元音字符。

(设N为200)

/*Note:

YourchoiceisCIDE*/

#include"stdio.h"

#include

#include

#defineN200

main()

{

intc[N],i,count=0;

randomize();

for(i=0;i

{

c[i]=random(27)+65;

printf("%c",c[i]);

if(c[i]=='A'||c[i]=='E'||c[i]=='I'||c[i]=='O'||c[i]=='U')

count++;

}

printf("\n----------------------\n");

printf("\ncount=%-4d",count);

}

找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。

#include"stdio.h"

intdata(intx);

main()

{

inti,flag=0;/*1是,0否*/

for(i=101;i<=999;i++)

{

flag=data(i);

if(flag==1)

printf("%-4d",i);

}

}

intdata(intx)

{

inti;

for(i=2;i

if(x%i==0)

return0;

if(i==x/2)

return1;

elsereturn0;

}

21.输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。

要求输出m个“#”功能由函数satr(m)函数实现。

#include"stdio.h"

voidsatr(intm);

main()

{inti,n,m;

printf("Pleaseinputn&m:

\n");

printf("n=");

scanf("%d",&n);

printf("m=");

scanf("%d",&m);

printf("\n----------------\n");

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

{

satr(m);

printf("\n");

}

}

voidsatr(intm)

{inti;

for(i=1;i<=m;i++)

printf("#");

}

22.若ax2+bx+c=0有实根,则求之。

#include"stdio.h"

#include"math.h"

main()

{

inta,b,c;

floatderta,x1,x2;

printf("Pleaseinputa,b,c:

\n");

printf("a=");

scanf("%d",&a);

printf("b=");

scanf("%d",&b);

printf("c=");

scanf("%d",&c);

derta=b*b-4*a*c;

if(derta<0)

printf("NO!

\n");

if(derta==0)

{printf("One!

\n

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1