C语言题库 填空题部分+部分程序设计.docx

上传人:b****9 文档编号:23425080 上传时间:2023-05-17 格式:DOCX 页数:25 大小:23.99KB
下载 相关 举报
C语言题库 填空题部分+部分程序设计.docx_第1页
第1页 / 共25页
C语言题库 填空题部分+部分程序设计.docx_第2页
第2页 / 共25页
C语言题库 填空题部分+部分程序设计.docx_第3页
第3页 / 共25页
C语言题库 填空题部分+部分程序设计.docx_第4页
第4页 / 共25页
C语言题库 填空题部分+部分程序设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言题库 填空题部分+部分程序设计.docx

《C语言题库 填空题部分+部分程序设计.docx》由会员分享,可在线阅读,更多相关《C语言题库 填空题部分+部分程序设计.docx(25页珍藏版)》请在冰豆网上搜索。

C语言题库 填空题部分+部分程序设计.docx

C语言题库填空题部分+部分程序设计

1.完成程序填空,实现输入两个数字,若两数相等,则直接输出两个数字,若不相等,

则这两个数中的较大者等于这个较大者减去较小者,再作比较,若不相等则重复上述操作,

直到两个数字相等为止。

输出相等的两个数字。

while(a【a!

=b】)

{if(【a>b】)

a=a-b;

if(【b>a】)

b=b-a;}

2."百鸡问题":

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。

百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

完成程序填空,实现求"百鸡问题"公鸡一只5块钱,母鸡一只三块钱,小鸡三只一块钱,

一百块钱买一百只鸡应该怎么买?

也就是问一百只鸡中公鸡、母鸡、小鸡各多少?

for(x=1;x<=20;【x++】)

for(z=3;z<=99;【z+=3】)

if((【5*x+3*y+z/3==100】)&&(x+y+z==100))

3.完成程序填空,实现输出下图

*

***

*****

*******

*****

***

*

【printf(“*”)】

【printf(“\n”)】

【j<=7+i】

4.完成程序填空,将字符数组a的全部字符复制到字符数组b中(要求不用strcpy函数)。

printf("str1:

【%s】\n",str1);

for(i=0;str1[i]【!

=’\0’】;i++)

str2[i]=【str1[i]】;

5.将a++或++a或a--或--a填入程序填空中,实现如图所示的输出。

(填入其他无效)

【a++】

【a--】

【--a】

6.完成程序填空,实现输入4个整数,要求按由小到大的顺序输出。

{t=a;【a=c】;c=t;}

{t=b;b=c;【c=t】;}

{【t=c】;c=d;d=t;}

7.完成程序填空,输出所有的水仙花数。

水仙花数是一个三位数,

其个、十、百位数字三次方之和为这个数。

例如:

371=3*3*3+7*7*7+1*1*1

for(num=100;【num<=999】;num++)

shi=【num/10%10】

if(【num==bai*bai*bai+shi*shi*shi+ge*ge*ge】)

8.完成程序填空,实现的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

for(j=4;j>=1;j--){

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

{x=(j-1)*4+i;

printf("%4d",x);}}

9.【a=’B’】;

b='O';

c='Y';

putchar(a);

putchar(b);

putchar(c);

putchar(‘\n’);

10.完成程序填空实现输入两个数a、b,判断如果a

按照先a后b的顺序输出即可。

if(【?

】)a

{t=a;a=b;【?

】;}b=t

printf("%5.2f,%5.2f\n",a,【?

】);b

11.完成程序填空实现输入三个数,按代数值由大到小输出。

if(【?

】)a

{t=a;a=b;b=t;}

if(a

{t=a;a=c;【?

】;}c=t

if(b

{t=b;【?

】;c=t;}b=c

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

12.完成程序填空,实现已知三个数a,b,c,找出最大值放于max中。

if(a>=b)【?

】;max=a

elsemax=b;

if(【?

】)max=c;c>max

printf("max=%d\n"【?

】);,max

13.完成程序填空,实现求s=1+3+5+……+99.

【i=1;】

s=1;

while(【?

】)i<99

{i=i+2;

【s=s+i;】}

14.完成程序填空,用do-while结构实现s=1+3+5+……+99.

【sum=0;】

i=1;

item=2*i-1;

do

{sum=sum+item;

i++;

item=【2*i-1;】}

while(【item<100】);//循环结束后,请考虑item的值是多少?

printf("1+3+5+...99=%ld\n",sum);

15.完成程序填空,实现输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的数。

while((【c=getchar()】)!

='\n'){

if(c>='a'【&&c<=’z’】||c>='A'&&c<='Z')letters++;

elseif(c=='')space++;

elseif(【c>=’0’&&c<=’9’】)digit++;

elseother++;

}

16.一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时,共经过多少米,第十次反弹多高?

floatheight【=100】;

sum=sum+height;

while(【i<=10】){

height=【height/2】;

sum+=2*height;

i++;}

17.完成程序填空,实现猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。

第二天早上有将剩下的挑子吃掉一半,又多吃了一个。

后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃是,只剩下一个挑子了。

求第一天共摘了多少桃子?

{intday【=10】;

intm=0;

intn=1;

while(day>1)

{m=【2*(n+1)】;

【n=m】;

day--;}

18.完成程序填空,实现输出以下图案:

*

***

*****

*******

for(i=1;【i<=4】;i++){

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

printf("");

for(j=1;j<=2*i-1;j++)

printf(【"*"】);

printf(【”\n”】);}

19.完成程序填空,实现找出1000之内的所有完数,并按如图所示格式输出其因子。

一个数如果恰好等于它的公约数之和,这个数就称为"完数"。

例如:

6=1+2+3。

6就是一个完数。

for(a=2;a<=【1000】;a++){

b=0;

for(i=1;i

f(a%i==0)

b=【b+i】;

if(a==b){

printf("%ditsfactorsare1",a);

for(i=2;i

if(【a%i==0】)

printf(",%d",i);

printf("\n");}

20.完成程序填空,实现求1+1/3+1/5+...之和,直到某一项的值小于10的-6次方时停止累加。

n【=1;】

while(1.0/n【>=1e-6】){

s=s+1.0/n;

【n=n+2;】}

21.完成程序填空,输出如下数阵:

1

121

12321

1234321

123454321

for(i=1;【i<=5】;i++){

for(k=1;【k<=10-i】;k++)

printf("");

for(j=1;【j<=2*i-1】;j++)

printf("%d",i-abs(i-j));

printf("\n");}

22.两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单,有人向队员打听比赛的名单。

a说他不和x比,c说他不和x、z比,请完成程序填空,实现找出三队赛手的名单。

chari,j,k;//i是a的对手,j是b的对手,k是c的对手

for(i='x';i<='z';i++)

for(j='x';j<='z';j++)

{if(【i!

=j】)//a和b不能是同一个对手

【for】(k='x';k<='z';k++)

{if(i!

=k&&j!

=k)//a、b、c不能是同一个对手

{if(i!

='x'&&k!

='x'&&【k!

=’z’】)

printf("a-----%c\nb-----%c\nc-----%c\n",i,j,k);}

}

23.完成程序填空,实现打印下列的图形

123456789

23456789

3456789

456789

56789

6789

789

89

9

for(i=1;【i<=9】;i++)

{for(j=i;j<=9;【j++】)

printf("%2d",【j);】

24.在数组a中,存放着10个整型数据,数据是从下标0开始存放的,完成程序填空,实现顺序输出下标为奇数的各数组元素的值。

inti,a[10]={0,1,2,3,4,5,6,7,8,9【}】};

for(i=1;i<=9;【i=i+2】)

printf("%d",【a[i]】);

printf("\n");

25.完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。

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

printf("\n");

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{t=a[i];

a[i]=a[i+1];

【a[i+1]=t;】

printf("thesortednumbers:

\n");

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

printf("%d",【a[i]】);

26.完成程序填空,实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。

例如153=13+53+33,故153是一个水仙花数。

for(n=100;【n<1000】;n++)

{a=n/100;

b=n/10-a*10;

c=n%10;

if(【a*a*a+b*b*b+c*c*c==n】)

{m[k]=n;

【k++;】}

}

27.有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。

while(find【==0】&&left<=right)a[i+1]=【a[i]】;for(i=N-1;i>=left;【i--】)

28.在字符数组str1[81]和str2[81]中分别存放着2个字符串,完成程序填空,实现将两个字符串连接起来构成一个新的字符串,并将新生成的字符串存放在字符数组str1[81]中(要求不用strcat函数)。

【gets】(str1);

for(i=0;str1[i]【!

=’\0’】;i++)

for(j=0;str2[j]!

='\0';j++,【i++】)

29.完成程序填空,进行两个字符串str1和str2的比较,若str1>str2,

输出一个正数;若str1=str2,输出0;若str1<str2,输出一个负数,

输出的数是两个字符的Ascii码值的差(要求不用strcmp函数)。

【gets】(str1);

for(i=0;str1[i]【==str2[i]】&&str1[i]!

='\0';i++)

printf("thecompareresultis:

%d\n",【x】);

30.完成程序填空,实现编程输出以下图案。

*****

*****

*****

*****

*****

for(i=0;【i<5】;i++)

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

puts(【str】;

31.功能:

输出9*9口诀。

for(i=1;【?

】;i++)i<10

{for(j=1;j<10;【j++】)

{result=i*j;

printf("%d*%d=%-3d",i,j,【result】);}

32.功能:

将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。

小写字母的转换规则同样。

while((c=【getchar()】)!

='\n')

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))【c+=4】;

if((c>'Z'【&&】c<='Z'+4)||c>'z')c-=26;

33.功能:

输入一个学生的生日(年:

y0、月:

m0、日:

d0),并输入当前日期(年:

y1、月:

m1、日:

d1)。

求出该学生的年龄(实足年龄)。

【scanf】("%d,%d,%d",&y0,&m0,&d0);

if(m0【>】m1)age--;

if((m0【==】m1)&&(d0>d1))age--;

34.完成程序填空,实现求两数最小公倍数.

if(【i%m==0】)

if(i%n【==0】)

{printf("%d\n",i);【break】;}

二、程序设计

1.功能:

求1到w之间的奇数之和。

(w是大于等于100小于等于1000的整数)

longd,s=1;

while(n>0)

{d=n%10;

s*=d;

n/=10;

}

returns;

2.功能:

对某一正数的值保留2位小数,并对第三位进行四舍五入。

inti;

i=(int)(h*1000)%10;

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;

3.功能:

产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求其中的最小值。

inti,j,s;

s=a[0][0];

for(i=0;i<5;i++)

for(j=0;j<4;j++)

if(s>a[i][j])s=a[i][j];

return(s);

4.功能:

编写程序求无理数e的值并输出。

计算公式为:

e=1+1/1!

+1/2!

+1/3!

+......+1/n!

longintj;

inti,k;

floate,jc;

i=1;

e=0.0;

jc=1.0;

while(jc>=0.000001)

{

e=e+jc;

j=1;

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

j=j*k;

jc=1.0/j;

i++;

}

returne;

5.功能:

对任意输入的x,用下式计算并输出y的值。

5x<10

y=0x=10

-5x>10

intm;

if(n<10)

m=5;

else

if(n==10)m=0;

elsem=-5;

returnm;

6.功能:

判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

intk,s=0;

do

{s=s+(w%10)*(w%10);

w=w/10;

}while(w!

=0);

if(s%5==0)k=1;

elsek=0;

return(k);

7.功能:

编写函数求3!

+6!

+9!

+12!

+15+18!

+21!

inti,j;

floatt,s=0;

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

{t=1;

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

t=t*j;

s=s+t;}

return(s);

8.功能:

编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。

例如:

3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。

longints=0,t=0;

inti;

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

{t=t+d;

s=s+t;

d=d*10;

}

returns;

9.给定N个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)

inti,k;

k=0;

for(i=1;i

if(s[i]

return(k);

10.求一批数中最大值和最小值的积。

inti,max,min;

max=min=a[0];

for(i=1;i

if(a[i]>max)max=a[i];

elseif(a[i]

return(max*min);

11.从键盘上输入任意实数x,求出其所对应的函数值z=(x-4)的二次幂,z=x的八次幂(x>-4),z=4/(x*(x+1)(x>-10),z=|x|+20(其他).

floatz;

if(x>4)z=sqrt(x-4);

elseif(x-4)z=pow(x,8);

elseif(x>-10)z=4/(x*(x+1));

elsez=fabs(x)+20;

return(z);

12.求出N*M整形数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。

.

intmax,i,j;

max=array[0][0];

Row=0;

Col=0;

for(i=0;i

{for(j=0;j

if(max

{max=array[i][j];

Row=i;

Col=j;}

}

return(max);

13.求一个n位自然数的各位数字的积。

(n是小于10的自然数)

longd,s=1;

while(n>0)

{d=n%10;

s*=d;

n/=10;}

returns;

14.计算n门课程的平均值,计算结果作为函数值返回。

例如:

若有5门课程的成绩是:

92,76,69,58,88,则函数的值为76.599998

inti;

floaty=0;

for(i=0;i

y+=a[i];

y=y/n;

returny;

15.求一批数中小于平均值的个数。

inti,sum=0,k=0;

floataverage;

for(i=0;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);

16.编写函数判断一个整数m的个位数字之和能否被7整除,可以被7整除则返回1,否则返回0.调用该函数找出100~200之间满足条件的所有数。

intk,s=0;

do

{s=s+m%10;

m=m/10;

}while(m!

=0);

if(s%7==0)k=1;

elsek=0;

return(k);

17.编写函数fun用比较法对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果。

intk,j,t;

for(k=0;k

for(j=k+1;j

if(array[k]

{t=array[k];

array[k]=array[j];

array[j]=t;}

18.将字符串中的小写字母转换为对应的大写字母,其他字符不变。

inti;

for(i=0;str[i]!

='\0';i++)

if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

19.求给定正整数m以内的素数之和。

inti,k,s=0;

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

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s+i;}

returns;

20.编写程序,实现矩阵(3行3列)的转置.

inti,j,t;

for(i=0;i<3;i++)

for(j=0;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}

21.功能:

从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

请编写fun函数。

intmin,i;

min=x[0];

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

{if(x[i]

min=x[i];}

returnmin;

22.用do-while语句求1~100的累计和。

inti=1,sum=0;

do

{sum=sum+i;i++;}

while(i<=n);

returnsum;

23.调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输出判断结果。

请编写fun函数。

说明:

所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。

例如:

153是一个水仙花数,因为153=1+125+27。

inta,b,c;

a=n%10;

b=n/10%10;

c=n/100;

if(a*a*a+b*b*b+c*c*c==n)

return1;

elsereturn0;

24.功能:

判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

使用DOWHILE

intk,s=0;

do

{s=s+(w%10)*(w%10);w=w/10;}

while(w!

=0);

if(s%5==0)k=1;

elsek=0;

return(k);

25.功能:

求一个n位自然数的各位数字的积。

(n是小于10的自然数)

longd,s=1;

while(n>0)

{d=n%10;

s*=d;

n/=10;}

returns;

26.功能:

把20个随机数存入一个数组,然后输出该数组中的最大值。

inti,j=0;

for(i=0;i

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

j=i;

returnj;

27.功能:

求一批数中小于平均值的数的个数。

inti,sum=0,k=0;

floataverage;

for(i=0;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);

28.功能:

编写函数求1~100中奇数的平方和。

结果为166650。

floats=0;inti,j;

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

s=s+i*i;

return(s);

29.功能:

产生20个[30,120]上的随机整数放入二维数组a[5][

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

当前位置:首页 > 表格模板 > 书信模板

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

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