计算机系C语言编程50题含答案.docx

上传人:b****8 文档编号:11313922 上传时间:2023-02-26 格式:DOCX 页数:40 大小:23.92KB
下载 相关 举报
计算机系C语言编程50题含答案.docx_第1页
第1页 / 共40页
计算机系C语言编程50题含答案.docx_第2页
第2页 / 共40页
计算机系C语言编程50题含答案.docx_第3页
第3页 / 共40页
计算机系C语言编程50题含答案.docx_第4页
第4页 / 共40页
计算机系C语言编程50题含答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

计算机系C语言编程50题含答案.docx

《计算机系C语言编程50题含答案.docx》由会员分享,可在线阅读,更多相关《计算机系C语言编程50题含答案.docx(40页珍藏版)》请在冰豆网上搜索。

计算机系C语言编程50题含答案.docx

计算机系C语言编程50题含答案

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

#include"stdio.h"

main()

{

intx;

printf("pleaseinputx(1-10):

\n");

scanf("%d",&x);

switch(x)

{

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("server");break;

case8:

printf("eight");break;

case9:

printf("nine");break;

case10:

printf("ten");break;

}

}

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

①设置环境;

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

③i=1;

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

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

⑥sum=sum+s;

⑦i增加1,转④;

⑧输出和sum,结束。

#include"stdio.h"

main()

{

inti,j,s;

longsum=0;

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

{

s=0;

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

{

s=s+j;

}

sum=sum+s;

}

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

}

3、用自然语言描述的程序逻辑为:

(假设正确口令为123456)

①设置环境;

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

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

④口令正确?

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

否则转⑤;

⑤回答三次口令了吗?

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

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

#include"stdio.h"

main()

{

longi=0,flag=0,password;

printf("pleaseinputpassword:

\n");

scanf("%ld",&password);

do

{

if(password==123456)

flag=1;

i++;

}while(i<3);

if(flag==1)

printf("口令正确!

");

else

printf("口令不正确!

");

}

4、用自然语言描述的程序逻辑如下:

①设置环境;

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

③输入原始正整数x;

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

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

⑥原始数x缩小10倍:

x=x/10;

⑦如果x非零,则转④;

⑧输出逆数y,结束

#include"stdio.h"

main()

{

intdigit,x,y=0;

printf("pleaseinputx:

\n");

scanf("%d",&x);

do

{

digit=x%10;

y=y*10+digit;

x=x/10;

}while(x);

printf("%d",y);

}

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

#include"stdio.h"

main()

{

floata,b,c;

printf("pleaseinputa,b,c:

\n");

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

if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b)

{

if(a==b&&a==c&&b==c)

{

printf("等边三角形!

");

}

else

{

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

{

printf("等腰三角形!

");

}

else

{

printf("任意三角形!

");

}

}

}

else

{

printf("不能构成三角形!

");

}

}

 

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

#include"stdio.h"

#defineN10

main()

{

inti,zsum=0,fsum=0,lsum=0;

floatx;

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

{

printf("请输入第%d个数:

",i);

scanf("%f",&x);

if(x>0)

zsum++;

elseif(x==0)

lsum++;

else

fsum++;

}

printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);

}

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

(设N为100)

#include"stdio.h"

#include"stdlib.h"

#include"time.h"

#defineN100

main()

{

inti,x;

randomize();

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

{

x=random(900)+100;

printf("%d\t",x);

if(x%3==0&&x%5==0&&x%7==0)

printf("\n*%d*\n",x);

}

}

 

8、已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。

  y=0,x=a||x=-a;  y=sqrt(a*a-x*x),-aa.

#include"stdio.h"

#include"math.h"

main()

{

floatx,y,a;

printf("从键盘输入a,x:

\n");

scanf("%f,%f",&a,&x);

if(x==a||x==-a)

{

y=0;

}

elseif(x>-a&&x

{

y=sqrt(a*a-x*x);

}

else

{

y=x;

}

printf("y=%f",y);

}

9、计算:

1/2-2/3+3/4-4/5……,前100项。

#include"stdio.h"

main()

{

inti,t=1;

floatsum=0;

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

{

sum=sum+(t*i*1.0)/(i+1);

t=-t;

}

printf("%f",sum);

}

 

10、从终端输入3个数a、b、c,按从大到小的顺序输出。

#include"stdio.h"

#defineN3

main()

{

intx[N],i,j,temp;

for(i=0;i

{

printf("pleaseinputdi%dgeshu:

",i+1);

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

}

for(i=0;i

{

for(j=i+1;j

{

if(x[j]>x[i])

{

temp=x[i];

x[i]=x[j];

x[j]=temp;

}

}

}

for(i=0;i

{

printf("%d\t",x[i]);

}

}

11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。

#include"stdio.h"

#include"math.h"

main()

{

inti,gw,sw,bw;

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

{

gw=i%10;

sw=i/10%10;

bw=i/100%10;

if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))

printf("%d\n",i);

}

}

12、求下列式子的值:

1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。

#include"stdio.h"

main()

{

inti,t=1;

floatsum=0;

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

{

sum=sum+(1.0*t)/(i+1);

t=-t;

}

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

}

13、编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。

#include"stdio.h"

main()

{

inta,b;

printf("pleaseinputa,b:

\n");

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

if(a>100&&b>100)

{

printf("%d,%d",a/100,b/100);

}

else

{

printf("%d",a+b);

}

}

 

14、输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:

90~100:

A级;  80~89:

B级;  70~79:

C级;  60~69:

D级;  0~59:

E级;

#include"stdio.h"

main()

{

intchengji;

printf("pleaseinputchengji:

\n");

scanf("%d",&chengji);

if(chengji>=90&&chengji<=100)

printf("A");

elseif(chengji>=80)

printf("B");

elseif(chengji>=70)

printf("C");

elseif(chengji>=60)

printf("D");

else

printf("E");

}

15、把100~200之间的不能被3整除的数输出。

#include"stdio.h"

main()

{

inti;

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

if(i%3!

=0)

printf("%d\t",i);

}

 

二数组循环部分:

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

#include"stdio.h"

#defineN5

main()

{

floatx[N],sum=0;

inti,count=0;

for(i=0;i

{

printf("pleaseinputdi%dgeshu:

",i+1);

scanf("%f",&x[i]);

if(x[i]>0)

{

count++;

sum+=x[i];

}

}

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

}

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

#include"stdio.h"

#defineN5

main()

{

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

for(i=0;i

{

printf("pleaseinputdi%dgeshu:

",i+1);

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

}

for(i=0;i

{

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

}

for(i=0;i

{

printf("%d\t",b[i]);

}

}

 

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

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

甲说:

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

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

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

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

include"stdio.h"

#include"math.h"

main()

{

intx;/*x表示四位车号*/

intgw,sw,bw,qw;

for(x=0;x<=9999;x++)

{

gw=x%10;/*个位*/

sw=x/10%10;/*十位*/

bw=x/100%10;/*百位*/

qw=x/1000%10;/*千位*/

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

=bw&&sqrt(x)==(int)sqrt(x))

printf("%d\t",x);

}

}

19安人员审问四名窃贼嫌疑犯。

已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。

在回答公安人员的问题中:

甲说“乙没有偷,是丁偷的”,乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。

请根据这四人的答话判断谁是盗窃者

#include"stdio.h"

main()

{

inta,b,c,d;

for(a=0;a<=1;a++)

for(b=0;b<=1;b++)

for(c=0;c<=1;c++)

for(d=0;d<=1;d++)

if(b+d==1&&b+c==1&&a+b==1)

printf("%d,%d,%d,%d\n",a,b,c,d);

}

 

20"百钱百鸡"问题。

百钱买百鸡,

鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?

*/

#include"stdio.h"

main()

{

intjiweng,jimu,jichou;

for(jiweng=1;jiweng<=33;jiweng++)

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

{

jichou=100-jiweng-jimu;

if(jiweng*3+jimu*2+jichou*1.0/3==100)

printf("%d,%d,%d\n",jiweng,jimu,jichou);

}

}

21B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛.

(1)A参加时,B也参加;

(2)B和C只有一个人参加;

(3)C和D或者都参加,或者都不参加;

(4)D和E中至少有一个人参加;

(5)如果E参加,那么A和D也都参加。

(程序有误)

#include"stdio.h"

main()

{

inta,b,c,d,e;/*用表示参加,表示未参加*/

for(a=0;a<=1;a++)

for(b=0;b<=1;b++)

for(c=0;c<=1;c++)

for(d=0;d<=1;d++)

for(e=0;e<=1;e++)

{

if(a==1)b=1;

if(b==1)

c=0;

else

c=1;

if(c==1)

d=1;

elseif(c==0)

d=0;

if(d||e)

}

}

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

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

#include"stdio.h"

#include"string.h"

main()

{

chars[50];

inti,flag=1;;

gets(s);

for(i=0;i<=strlen(s)/2-1;i++)

{

if(s[i]!

=s[strlen(s)-i-1])

{flag=0;break;}

}

if(flag==1)

{printf("%s是对称串",s);}

else

{printf("%s不是对称串",s);}

}

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

(设N为200)

#include"stdio.h"

#include"stdlib.h"

#include"time.h"

#defineN200

main()

{

inti,count=0,ch;

randomize();

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

{

ch=random(26)+65;

printf("%c\t",ch);

if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U')

count++;

}

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

}

24从键盘输入长度不等的两个字串,将长串连接于短串之后输出。

include"string.h"

main()

{

chars1[50],s2[100];

gets(s1);/*输入长串*/

gets(s2);/*输入短串*/

puts(strcat(s2,s1));

}

25键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。

#include"stdio.h"

#include"string.h"

main()

{

chars1[100],s2[100];

gets(s1);

gets(s2);

if(strlen(s1)

{

puts(s1);

printf("\n%d",strlen(s1));

}

else

{

puts(s2);

printf("\n%d",strlen(s2));

}

}

26入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

#include"stdio.h"

#include"string.h"

main()

{

chars[100];

inti,ywcount=0,spcount=0,szcount=0,qtcount=0;

gets(s);

for(i=0;i

{

if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')

ywcount++;

elseif(s[i]=='')

spcount++;

elseif(s[i]>='0'&&s[i]<='9')

szcount++;

else

qtcount++;

}

printf("英文字母=%d,空格=%d,数字=%d,其他字符=%d",ywcount,spcount,szcount,qtcount);

}

27个字符串中的元音字母复制到另一字符串,然后输出“另一字符串”。

#include"stdio.h"

#include"string.h"

main()

{

chars1[100],s2[100];

inti,j=0;

gets(s1);

for(i=0;i<=strlen(s1);i++)

{

if(s1[i]=='a'||s1[i]=='e'||s1[i]=='i'||s1[i]=='o'||s1[i]=='u')

{

s2[j]=s1[i];

j++;

}

}

puts(s2);

}

28字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。

#include"stdio.h"

#include"string.h"

main()

{

charstr1[100],str2[100];

inti,j=0;

gets(str1);

for(i=0;i<=strlen(str1);i=i+2)

{

str2[j]=str[i];

j++;

}

puts(str2);

29入一行英文,已知各单词之间用1个空格或一个标点符号相隔(设第一个单词前没有空格),统计这行英文有多少个单词。

#include"stdio.h"

#include"string.h"

main()

{

chars[100];

inti,count=0;

gets(s);

for(i=0;i

{

if(s[i]=='')count++;

}

printf("count=%d",count+1);

}

30输入一行字符串,按如下规则加密:

如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。

试写加密程序。

#include"stdio.h"

#include"string.h"

main()

{

chars[100];

inti;

gets(s);

for(i=0;i

{

if(s[i]>='A'&&s[i]<='Z')

s[i]=s[i]+32;

elseif(s[i]>='a'&&s[i]<='z')

s[i]=s[i]-32;

}

puts(s);

}

 

31随机产生N个两位自然数,降序排列后输出。

(设N为20)

#include"stdio.h"

#include"stdlib.h"

#include"time.h"

#defineN20

main()

{

intx[N],i,j,temp;

randomize();

for(i=0;i

{

x[i]=random(90)+10;

}

for(i=0;i

for(j=i+1;j

{

if(x[j]>x[i])

{

temp=x[i];x[i]=x[j];x[j]=temp;

}

}

for(i=0;i

{

printf("%d\t",x[i]);

}

}

32求s=a+aa+aaa+aaaa+......+aa...a的值,其中a是1~9之间的一个数字,表达式项数从键盘输入(设不超过10项)。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

#include"stdio.h"

#include"m

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

当前位置:首页 > 求职职场 > 简历

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

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