c语言程序填空题.docx

上传人:b****1 文档编号:11094731 上传时间:2023-05-29 格式:DOCX 页数:22 大小:30.88KB
下载 相关 举报
c语言程序填空题.docx_第1页
第1页 / 共22页
c语言程序填空题.docx_第2页
第2页 / 共22页
c语言程序填空题.docx_第3页
第3页 / 共22页
c语言程序填空题.docx_第4页
第4页 / 共22页
c语言程序填空题.docx_第5页
第5页 / 共22页
c语言程序填空题.docx_第6页
第6页 / 共22页
c语言程序填空题.docx_第7页
第7页 / 共22页
c语言程序填空题.docx_第8页
第8页 / 共22页
c语言程序填空题.docx_第9页
第9页 / 共22页
c语言程序填空题.docx_第10页
第10页 / 共22页
c语言程序填空题.docx_第11页
第11页 / 共22页
c语言程序填空题.docx_第12页
第12页 / 共22页
c语言程序填空题.docx_第13页
第13页 / 共22页
c语言程序填空题.docx_第14页
第14页 / 共22页
c语言程序填空题.docx_第15页
第15页 / 共22页
c语言程序填空题.docx_第16页
第16页 / 共22页
c语言程序填空题.docx_第17页
第17页 / 共22页
c语言程序填空题.docx_第18页
第18页 / 共22页
c语言程序填空题.docx_第19页
第19页 / 共22页
c语言程序填空题.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序填空题.docx

《c语言程序填空题.docx》由会员分享,可在线阅读,更多相关《c语言程序填空题.docx(22页珍藏版)》请在冰点文库上搜索。

c语言程序填空题.docx

c语言程序填空题

三、程序填空题

ﻫ导读:

在程序填空题中,已经给出了程序得主干,读者首先要理解程序得思路,再选择正确得内容填入空白处,使程序完成既定得功能。

这类习题得设计就就是要引导读者逐步掌握编程得方法。

本节习题得难度适中,可能有些典型得程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己得编程能力。

在程序设计语言学习得中期,读者对程序设计已经有了初步得了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习得效率。

【3、1】下面程序得功能就是不用第三个变量,实现两个数得对调操作。

#include 

h>

main()

{inta,b;

scanf("%d%d”,&a,&b);ﻫprintf("a=%d,b=%d\n”,a,b);

a=①;ﻫb=②; ﻫa=③;

printf("a=%d,b=%d\n",a,b);ﻫ}

【3。

2】下面程序得功能就是根据近似公式:

π2/6≈ 1/12+1/22+1/32+…… +1/n2,求π值。

ﻫ#include<math、h〉

doublepi(long n)ﻫ{double s=0。

0;

long i;

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

s=s+①;ﻫreturn(②);ﻫ}

ﻫ【3、3】下面得程序得功能就是求一维数组中得最小元素。

ﻫfindmin(int*s,int t,int*k)

{ intp;ﻫfor(p=0,*k=p;p〈t;p++)ﻫif(s[p]〈s[*k])

① ;

}

main()

{inta[10],i,*k=&i;ﻫfor(i=0;i<10;i++)ﻫscanf(”%d",&a[i]);

findmin(a,10,k);

printf(”%d,%d\n”,*k,a[*k]);

}

【3.4】下面程序得功能就是计算1—3+5-7+……-99+101得值。

ﻫmain()ﻫ{inti,t=1,s=0;

for(i=1;i<=101;i+=2)ﻫ{① ;ﻫs=s+t;

②;

}

printf("%d\n",s);ﻫ}

ﻫ【3、5】有以下程序段:

ﻫs=1、0;ﻫfor(k=1;k<=n;k++)ﻫs=s+1、0/(k*(k+1));ﻫprintf(”%f\n”,s);ﻫ填空完成下述程序,使之与上述程序得功能完全相同。

s=0.0;ﻫ① ;ﻫk=0;

doﻫ{s=s+d;ﻫ②;

d=1。

0/(k*(k+1));

}while(③);

printf("%f\n",s);

【3.6】下面程序得功能就是从键盘上输入若干学生得学习成绩,统计并输出最高成绩与最低成绩,当输入为负数时结束输入。

ﻫmain()

{floatx,amax,amin;

scanf("%f",&x);ﻫamax=x;ﻫamin=x;

while(①)

{ if(x>amax)amax=x;

if(② ) amin=x;ﻫscanf(”%f",&x);

printf(”\namax=%f\namin=%f\n",amax,amin);ﻫ}

【3。

7】下面程序得功能就是将形参x得值转换为二进制数,所得得二进制数放在一个一维数组中返回,二进制数得最低位放在下标为0得元素中、ﻫfun(intx,int b[])ﻫ{intk=0,r;ﻫdoﻫ{r=x% ①;

b[k++]=r;

x/=②;

}while(x);

【3、8】下面程序得功能就是输出1到100之间每位数得乘积大于每位数得与得数。

例如数字26,数位上数字得乘积12大于数字之与8、

main()ﻫ{int n,k=1,s=0,m;ﻫfor(n=1;n〈=100;n++)

{ k=1;ﻫs=0;ﻫ①;

while(②) 

{ k*=m%10;ﻫs+=m%10;

③;

}ﻫif(k〉s)ﻫprintf(”%d”,n);

}

ﻫ【3。

9】下面程序得功能就是统计用0至9之间得不同得数字组成得三位数得个数、ﻫmain()

{inti,j,k,count=0;ﻫfor(i=1;i<=9;i++)

for(j=0;j<=9;j++)ﻫif(① ) continue;ﻫelsefor(k=0;k<=9;k++)ﻫif(②) count++;

printf(”%d",count);ﻫ} 

ﻫ【3。

10】下面程序得功能就是输出100以内得个位数为6、且能被3整除得所有数。

main()

{inti,j;ﻫfor(i=0;① ;i++)

{j=i*10+6;

if(②)countinue;ﻫprintf("%d",j);ﻫ}

}

【3、11】下面程序得功能就是用辗转相除法求两个正整数m与n得最大公约数。

ﻫhcf(intm,intn)

{intr;

if(m〈n)

{r=m;ﻫ①;

n=r;

}ﻫr=m%n;

while(②)

{m=n;

n=r;ﻫr=m%n;ﻫ}

③ ;ﻫ}

【3。

12】下面程序得功能就是使用冒泡法对输入得10个浮点数从小到大进行排序。

排好序得10个数分两行输出。

程序如下:

ﻫ#include

main()ﻫ{①; 

inti,j;

printf(”Input10numbersplease\n”);ﻫfor(i=0;② ;i++ ) ﻫscanf(”%f",&a[i]);ﻫprintf("\n”);

for(i=2;③;i++)

for(j=0; ④;j++)ﻫif( ⑤)ﻫ{x=a[j];

⑥;ﻫa[j+1]=x;

}ﻫprintf("The sorted10 numbers;\n”);ﻫfor(i=0; ⑦;i++)ﻫ{if(⑧)ﻫprintf(”\n");ﻫprintf("%f\t",a[i]);

printf("\n");

【3.13】下面程序得功能就是读入20个整数,统计非负数个数,并计算非负数之与。

#include"stdio。

h”

main()ﻫ{int i,a[20],s,count;

s=count=0;ﻫfor(i=0;i〈20;i++)ﻫscanf(”%d",① );

for(i=0;i<20;i++)ﻫ{if(a[i]〈0)

② ;ﻫs+=a[i];ﻫcount++;ﻫ}

printf(”s=%d\tcount=%d\n",s,count);ﻫ}

【3.14】下面程序得功能就是删除字符串s中得空格。

#include<stdio.h〉

main()

{char*s=”Beijingligongdaxue";ﻫinti,j;ﻫfor(i=j=0;s[i]!

='\0’;i++)

if(s[i]!

=' ’) ①;ﻫelse②;ﻫs[j]='\0';

printf(”%s",s);

}

ﻫ【3。

15】下面程序得功能就是将字符串s中所有得字符'c’删除、请选择填空。

ﻫ#include<stdio、h>ﻫmain()

{chars[80];ﻫint i,j;

gets(s);ﻫfor(i=j=0;s[i]!

='\0';i++)ﻫif(s[i]!

= ’c')① ;

s[j]= '\0';

puts(s);ﻫ}

【3.16】下面程序得功能就是输出两个字符串中对应相等得字符。

请选择填空。

#include<stdio、h>ﻫcharx[]="programming";

chary[]="Fortran”;

main()

{int i=0;ﻫwhile(x[i]!

='\0’&& y[i]!

= '\0')ﻫif(x[i]==y[i])

printf(”%c",①);

elseﻫi++;ﻫ}

【3。

17】下面程序得功能就是将字符串s中得每个字符按升序得规则插到数组a中,字符串a已排好序。

ﻫ#include 〈string。

h>ﻫmain()ﻫ{chara[20]="cehiknqtw”;ﻫchar s[]=”fbla”;ﻫinti,k,j;

for(k=0;s[k]!

='\0’;k++)

{j=0;

while(s[k]>=a[j] &&a[j]!

='\0')ﻫj++;ﻫfor(①) 

②;ﻫa[j]=s[k];

puts(a);

}

ﻫ【3。

18】下面程序得功能就是对键盘输入得两个字符串进行比较,然后输出两个字符串中第一个不相同字符得ASCII码之差。

例如:

输入得两个字符串分别为"abcdefg"与”abceef”,则输出为-1。

ﻫ#include<stdio。

h〉ﻫmain()ﻫ{charstr1[100],str2[100],c;ﻫinti,s;ﻫprintf("Enter string 1:

 ");gets(str1);ﻫprintf("Enter string2:

”);gets(str2);ﻫi=0;

while((str1[i] ==str2[i] &&str1[i]!

= ①))ﻫi++;

s=② ;ﻫprintf(”%d\n",s);ﻫ}

ﻫ【3。

19】下面得函数expand在将字符串s复制到字符串t时,将其中得换行符与制表符转换为可见得转义字符表示,即用’\n'表示换行符,用'\t’表示制表符、

expand(chars[],chart[])ﻫ{int i,j;

for(i=j=0;s[i]!

= ’\0';i++)

switch (s[i])ﻫ{case'\n':

 t[① ]=②;

t[j++]= 'n';ﻫbreak;

case ’\t':

t[③]=④;

t[j++] ='t';

break;ﻫdefault:

 t[ ⑤]=s[i];ﻫbreak;

t[j]=⑥;

}

【3.20】下面得函数index(char s[],chart[])检查字符串s中就是否包含字符串t,若包含,则返回t在s中得开始位置(下标值),否则送回-1。

ﻫindex(chars[],chart[])ﻫ{inti,j,k;

for(i=0;s[i]!

=’\0’;i++)ﻫ{for(j=i,k=0;① &&s[j]==t[k];j++,k++);ﻫif(② ) ﻫreturn(i);ﻫ}ﻫreturn(-1);

}ﻫn

【3、21】下面程序得功能就是计算S=k!

ﻫk=0ﻫlongfun(int n)

{inti;

longs;ﻫfor(i=1;i① ;i++)ﻫs*=i;

return( ② );

}ﻫmain()

{ intk,n;

long s;

scanf("%d”,&n);

s=③;ﻫfor(k=0;k<=n;k++)ﻫs+= ④ ;ﻫprintf(”%ld\n",s);ﻫ}

【3、22】下面程序得功能就是显示具有n个元素得数组s中得最大元素。

ﻫ#defineN20

main()

{inti,a[N];ﻫfor(i=0;i〈N;i++)ﻫscanf("%d”,&a[i]);ﻫprintf("%d\n",①);

}ﻫfmax(ints[],int n)ﻫ{intk,p;ﻫfor(p=0,k=p;p<n;p++)

if(s[p]>s[k])②;

return(k);ﻫ}

【3。

23】下面程序得功能就是由键盘输入n,求满足下述条件得x、y:

ﻫnx与ny得末3位数字相同,且x≠y,x、y、n均为自然数,并使x+y为最小。

ﻫ#include<stdio。

h〉

pow3(intn,intx)

{inti,last;

for(last=1,i=1;i〈=x;i++)

last= ①;

return(last);ﻫ}

main()

{ intx,n,min,flag=1;ﻫscanf(”%d”,&n);ﻫfor(min=2;flag;min++)

for(x=1;x〈min&&flag;x++)

if( ②&&pow3(n,x)==pow3(n,min-x))

{printf("x=%d,y=%d\n”,x,min-x);

③;

}ﻫ}

ﻫ【3。

24】下面得程序就是用递归算法求a得平方根。

求平方根得迭代公式如下:

#include〈math、h>

doublemysqrt(double a,doublex0)

{doublex1,y;

x1=①;

if(fabs(x1—x0)>0.00001)

y=mysqrt(②);

elsey =x1;

return(y);ﻫ}ﻫmain()

{doublex;

printf("Enterx:

 ");

scanf(”%lf",&x);

printf("Thesqrtof %lf=%lf\n",x,mysqrt(x,1、0));ﻫ}

ﻫ【3、25】以下程序就是计算学生得年龄、已知第一位最小得学生年龄为10岁,其余学生得年龄一个比一个大2岁,求第5个学生得年龄。

ﻫ#include〈stdio、h〉

age(intn)

{ intc;ﻫif(n==1)c=10;ﻫelsec=①;ﻫreturn(c);

}

main()

{int n=5;ﻫprintf("age:

%d\n”,② );ﻫ}

【3。

26】下面得函数sum(intn)完成计算1~n得累加与。

 sum(int n)ﻫ{if(n<=0)ﻫprintf("dataerror\n”);

if(n==1)①;ﻫelse②;

【3。

27】下面得函数就是一个求阶乘得递归调用函数。

facto(intn)ﻫ{if(n==1 )①;

elsereturn( ②);

}

【3、28】组合问题,由组合得基本性质可知:

(1) C(m,n)=C(n-m,n)

(2)C(m,n+1)=C(m,n)+C(m-1,n)ﻫ公式

(2)就是一个递归公式,一直到满足C(1,n)=n为止、当n<2*m时,可先用公式

(1)进行简化,填写程序中得空白,使程序可以正确运行、ﻫ#include"stdio.h"ﻫmain()ﻫ{intm,n;

printf("Inputm,n=");

scanf("%d%d”, &m,&n);ﻫprintf("Thecombination numbeersis%d\n",combin(m,n));

}ﻫbin(intm,intn)ﻫ{int;ﻫif(n〈2*m )m=n—m;ﻫif( m==0)=1;

elseif(m==1)①;ﻫelse②;ﻫreturn();ﻫ}

【3、29】下列函数就是求一个字符串str得长度、ﻫ intstrlen( char *str)

{if( ①)return(0);ﻫelsereturn ( ②);

ﻫ【3、30】用递归实现将输入小于32768得整数按逆序输出。

如输入12345,则输出54321。

#include”stdio.h"

main()

{intn;ﻫprintf("Input n:

 ");

scanf(”%d",①);ﻫr(n);

printf(”\n");ﻫ}ﻫr(intm)

{printf("%d”, ②);ﻫm=③ ;ﻫif(④)

⑤;ﻫ}

【3。

31】输入n值,输出高度为n得等边三角形。

例如当n=4时得图形如下:

***ﻫ*****ﻫ*******ﻫ#include <stdio。

h>ﻫvoidprt(charc,intn)ﻫ{if(n>0 )

{ printf( "%c",c);

①;

}

}ﻫmain()ﻫ{inti,n;

scanf("%d”,&n);

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

{ ②; 

③; 

printf("\n");ﻫ}ﻫ}

ﻫ【3、32】下面得函数实现N层嵌套平方根得计算。

doubley(doublex,intn)ﻫ{ if( n==0)

return(0);ﻫelsereturn (sqrt(x+(①)));

ﻫ【3.33】函数revstr(s)将字符串s置逆,如输入得实参s为字符串”abcde",则返回时 s为字符串"edcba"。

递归程序如下:

ﻫrevstr(char *s )

{char*p=s,c;

while(*p) p++;

① ;ﻫif(s<p)ﻫ{c=*s;ﻫ*s=*p;ﻫ② ;

revstr(s+1);

③;ﻫ}ﻫ}

  如下就是由非递归实现得revstr(s)函数:

ﻫrevstr(s)

char*s;ﻫ{ char*p=s,c;ﻫwhile(*p)p++;

④;ﻫwhile( s<p)

{c=*s;

⑤ =*p;ﻫ*p—-=c;

}ﻫ}

ﻫ【3、34】下面函数用递归调用得方法,将str中存放得长度为n得字符串反转过来,例如原来就是”ABCDE”,反序为"EDCBA”、

voidinvent(char*str,intn)ﻫ{ chart;ﻫt=*str;*str=*(str+n-1);*(str+n-1)=t;if( n〉2)invent(①,n-2);

else② ;

}

ﻫ【3。

35】从键盘上输入10个整数,程序按降序完成从大到小得排序。

#include<stdio、h〉ﻫintarray[10];

sort(int*p,int*q)

{int*max,*s;

if(① )ﻫreturn;ﻫmax=p;for(s=p+1;s<=q;s++)

if( *s>*max)ﻫ② ; swap(③ );ﻫsort( ④ );}ﻫswap(int *x,int*y ){inttemp;ﻫtemp=*x;

*x=*y;

*y=temp;ﻫ}ﻫmain()ﻫ{inti;printf(”Enterdata:

\n");for(i=0; i〈10;i++)ﻫscanf(”%d",&array[i]);sort(⑤ );

printf("Output:

”);

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

printf("%d ”,array[i]);

ﻫ【3.36】下面函数得功能就是将一个整数存放到一个数组中。

存放时按逆序存放。

例如:

483存放成"384”。

ﻫ#include〈stdio。

h>

voidconvert(char*a,intn)ﻫ{inti;

if((i=n/10)!

=0)ﻫconvert( ①,i ); ﻫ*a =② ;

}ﻫcharstr[10]="";ﻫmain()ﻫ{intnumber;ﻫscanf("%d”,&number);

convert(str, number);ﻫputs(str);ﻫ}

ﻫ【3。

37】下面程序得功能就是实现数组元素中值得逆转。

#include <string。

h>ﻫmain()

{inti,n=10,a[10]={1,2,3,4,5,6,7,8,9,10};ﻫinvert(a,n-1);ﻫfor(i=0;i<10;i++)

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

printf("\n");ﻫ}ﻫinvert(int*s,int num)ﻫ{ int*t,k;ﻫt=s+num;

while(①) ﻫ{k=*s;

*s=*t;ﻫ*t=k;

② ;

③ ;

}

}

【3。

38】下面程序通过指向整型得指针将数组a[3][4]得内容按3行×4列得格式输出,请给printf()填入适当得参数,使之通过指针p将数组元素按要求输出。

#include〈stdio.h〉

inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p=a;

main()ﻫ{inti,j;ﻫfor(i=0;i〈3;i++ )ﻫ{ for(j=0;j〈4;j++)ﻫprintf("%4d ",① );ﻫ}ﻫ}

【3、39】下面程序得功能就是:

从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。

#include<stdio。

h>ﻫmain ()

{ char str[81],*sptr;ﻫint i;

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

{str[i]=getchar();ﻫif(str[i]== ’\n')break;

}

str[i]=①;

sptr=str;ﻫwhile(*sptr)ﻫputchar(*sptr ② );ﻫ}

ﻫ【3.40】下面函数得功能就是将字符变量得值插入已经按ASCII码值从小到大排好序得字符串中。

void fun(char*w,char x,int *n)ﻫ{ inti,p=0;

while(x〉w[p])①;ﻫfor(i=*n;i>=p;i--)②;

w[p]=x;

++*n;

}

ﻫ【3。

41】下面程序得功能就是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后得字符串按ASCII码值从小到大排序,并删去相同得字符。

#include〈stdio。

h>

strmerge(a,b,c) /* 将已排好序得字符串a、b合并到c*/

char*a,*b,*c;ﻫ{char t,*w;ﻫw=c;ﻫwhile(*a!

= '\0' ①*b!

='\0’)ﻫ{ t= ②?

*a++:

*b〈*a?

 *b++ :

(③);/* 将*a、*b得小者存入t*/

if(*w ④’\0' )*w=t;ﻫelseif(t⑤ *w) *++w=t;/*将与*w不相同得t存入w*/ﻫ}

while( *a!

='\0’)/* 以下将a或b中剩下得字符存入w */

if(*a!

=*w ) *++w=*a++;

else a++;ﻫwhile(*b!

= '\0')ﻫif(*b!

= *w)*++w=*b++;ﻫelse b++;ﻫ*++w=⑥ ;ﻫ}ﻫstrsort(char*s) /*将字符串s中得字符排序*/ﻫ{ inti,j,n;ﻫchart,*w;ﻫ⑦ ;

for(n=0;*w!

='\0';⑧)ﻫw++;

for(i=0;i〈n-1;i++)ﻫfor(j=i+1;j〈n;j++)ﻫif( s[i]>s[j])ﻫ{ ⑨}ﻫ}ﻫmain()

{chars1[100],s2[100],s3[200];

printf("\nPleaseInputFirstString:

”);ﻫscanf(”%s”,s1);ﻫprintf("\nPlease InputSecondStr

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

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2