ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:33KB ,
资源ID:26177971      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26177971.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序的设计填空题及答案复习用.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序的设计填空题及答案复习用.docx

1、C语言程序的设计填空题及答案复习用导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include main() int a,b;scanf(%d%d,&a,

2、&b);printf(a=%d,b=%dn,a,b);a= ; b= ; a= ;printf(a=%d,b=%dn,a,b);【3.2】下面程序的功能是根据近似公式:2/6 1/12+1/22+1/32+ +1/n2,求值。#include double pi(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) int p;for(p=0,*k=p;pt;p+)if(sps*k) ; main() int a10,i,

3、*k=&i;for(i=0;i10;i+)scanf(%d,&ai);findmin(a,10,k);printf(%d,%dn,*k,a*k);【3.4】下面程序的功能是计算1-3+5-7+ -99+101的值。main() int i,t=1,s=0;for(i=1;i=101;i+=2) ;s=s+t; ;printf(%dn,s);【3.5】有以下程序段:s=1.0;for(k=1;kamax) amax=x; if( ) amin=x;scanf(%f,&x);printf(namax=%fnamin=%fn,amax,amin);【3.7】下面程序的功能是将形参x的值转换为二进制数

4、,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。fun(int x,int b) int k=0,r;do r=x% ;bk+=r;x/= ;while(x);【3.8】下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字26,数位上数字的乘积12大于数字之和8。main() int n,k=1,s=0,m;for(n=1;ns)printf(%d,n);【3.9】下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。main() int i,j,k,count=0;for(i=1;i=9;i+)for(j=0;j=9;j+)if(

5、 ) continue;else for(k=0;k=9;k+)if( ) count+;printf(%d,count);【3.10】下面程序的功能是输出100以的个位数为6、且能被3整除的所有数。main() int i,j;for(i=0; ;i+) j=i*10+6;if( ) countinue;printf(%d,j);【3.11】下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。hcf(int m,int n) int r;if(mn) r=m; ;n=r;r=m%n;while( ) m=n;n=r;r=m%n; ;【3.12】下面程序的功能是使用冒泡法对输入的10个

6、浮点数从小到大进行排序。排好序的10个数分两行输出。程序如下:#include main() ; int i,j;printf(Input 10 numbers pleasen);for(i=0; ;i+ ) scanf(%f, &ai);printf(n);for(i=2; ;i+ ) for(j=0; ;j+ )if( ) x=aj; ;aj+1=x;printf(The sorted 10 numbers;n);for(i=0; ;i+ ) if( ) printf(n);printf(%ft,ai);printf(n);【3.13】下面程序的功能是读入20个整数,统计非负数个数,并计算

7、非负数之和。#include stdio.hmain() int i,a20,s,count;s=count=0;for(i=0;i20;i+ )scanf(%d, );for(i=0;i20;i+) if(ai0) ;s+=ai;count+;printf(s=%dt count=%dn,s,count);【3.14】下面程序的功能是删除字符串s中的空格。#include main() char *s=Beijing ligong daxue;int i,j;for(i=j=0;si!=0;i+)if(si!= ) ;else ;sj= 0;printf(%s,s);【3.15】下面程序的功

8、能是将字符串s中所有的字符c删除。请选择填空。#includemain( ) char s80;int i,j;gets(s);for(i=j=0;si!= 0;i+ )if(si!= c) ;sj= 0;puts(s);【3.16】下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#include char x=programming;char y=Fortran;main() int i=0;while(xi!= 0 & yi!= 0)if(xi=yi)printf(%c, );elsei+;【3.17】下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已

9、排好序。#include main() char a20=cehiknqtw;char s=fbla;int i,k,j;for(k=0;sk!= 0;k+ ) j=0;while(sk=aj & aj!= 0 )j+;for( ) ;aj=sk;puts(a);【3.18】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。#include main() char str1100,str2100,c;int i,s;printf(Enter string 1: ); g

10、ets(str1);printf(Enter string 2: ); gets(str2);i=0;while(str1i = str2i & str1i!= ) i+;s= ;printf(%dn, s);【3.19】下面的函数expand在将字符串s复制到字符串t时, 将其中的换行符和制表符转换为可见的转义字符表示,即用n表示换行符,用t表示制表符。expand(char s,char t) int i,j;for(i=j=0;si!= 0;i+ )switch (si) case n: t = ;tj+ = n;break;case t: t = ;tj+ = t;break;defa

11、ult: t = si;break;tj = ;【3.20】下面的函数index(char s, char t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。index(char s, char t) int i,j,k;for(i=0;si!= 0;i+ ) for(j=i,k=0; & sj=tk;j+,k+) ;if( ) return (i);return(-1);n【3.21】下面程序的功能是计算S= k! 。k=0long fun(int n) int i;long s;for(i=1;i ;i+) s*=i;return( );main

12、() int k,n;long s;scanf(%d,&n);s= ;for(k=0;k=n;k+)s+= ;printf(%ldn,s);【3.22】下面程序的功能是显示具有n个元素的数组s中的最大元素。#define N 20main() int i,aN;for(i=0;iN;i+)scanf(%d,&ai);printf(%dn, );fmax(int s,int n) int k,p;for(p=0,k=p;psk) ;return(k);【3.23】下面程序的功能是由键盘输入n,求满足下述条件的x、y:nx和ny的末3位数字相同,且xy,x、y、n均为自然数,并使x+y为最小。#i

13、nclude pow3(int n,int x) int i, last;for(last=1,i=1;i=x;i+ )last= ;return(last);main() int x,n,min,flag=1;scanf(%d, &n);for(min=2;flag;min+)for(x=1;xmin & flag;x+ )if( & pow3(n,x)=pow3(n,min-x) printf(x=%d,y=%dn, x, min-x ); ;【3.24】下面的程序是用递归算法求a的平方根。求平方根的迭代公式如下:#include double mysqrt( double a, doub

14、le x0 ) double x1, y;x1 = ;if( fabs(x1-x0)0.00001 )y = mysqrt( );else y = x1;return( y );main() double x;printf(Enter x: );scanf(%lf, &x);printf(The sqrt of %lf=%lfn, x, mysqrt( x, 1.0) );【3.25】以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。#include age( int n ) int c;if( n=1 ) c=10;else c=

15、 ;return(c);main() int n=5;printf(age:%dn, );【3.26】下面的函数sum(int n)完成计算1n的累加和。 sum(int n) if(n=0)printf(data errorn);if(n=1) ;else ;【3.27】下面的函数是一个求阶乘的递归调用函数。facto(int n) if( n = 1 ) ;else return( );【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为止。当n2*m

16、时,可先用公式(1) 进行简化,填写程序中的空白,使程序可以正确运行。#includestdio.hmain() int m,n;printf(Input m,n=);scanf(%d%d, &m, &n);printf(The combination numbeers is %dn, combin(m,n);combin( int m, int n) int ;if( n2*m ) m=n-m;if( m=0 ) =1;else if(m=1) ;else ;return();【3.29】下列函数是求一个字符串str的长度。 int strlen( char *str ) if( ) ret

17、urn (0); else return ( );【3.30】用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321。#includestdio.hmain() int n; printf(Input n : );scanf(%d, );r(n);printf(n); r( int m ) printf(%d, );m = ;if( ) ;【3.31】输入n值,输出高度为n的等边三角形。例如当n=4时的图形如下:*#include void prt( char c, int n ) if( n0 ) printf( %c, c ); ;main() int i, n

18、;scanf(%d, &n);for( i=1; i=n; i+ ) ; ; printf(n);【3.32】下面的函数实现N层嵌套平方根的计算。double y(double x, int n) if( n=0 )return(0);else return ( sqrt(x+( ) );【3.33】函数revstr(s)将字符串s置逆,如输入的实参s为字符串abcde, 则返回时 s 为字符串edcba。递归程序如下:revstr( char *s ) char *p=s, c;while(*p) p+; ;if(sp) c=*s;*s=*p; ;revstr(s+1); ; 如下是由非递归

19、实现的revstr(s)函数:revstr (s)char *s; char *p=s, c;while( *p ) p+; ;while( s2 ) invent ( ,n-2);else ;【3.35】从键盘上输入10个整数,程序按降序完成从大到小的排序。#include int array10;sort( int *p, int *q ) int *max, *s;if( )return;max=p; for( s=p+1; s *max ) ; swap( );sort( ); swap( int *x, int *y ) int temp;temp=*x;*x=*y;*y=temp;

20、main() int i; printf(Enter data :n); for( i=0; i10; i+)scanf(%d, &arrayi); sort( );printf(Output:);for( i=0; i10; i+)printf(%d , arrayi);【3.36】下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483存放成384。#include void convert(char *a, int n) int i;if(i=n/10) !=0 ) convert( , i ); *a = ;char str10= ;main() int number

21、;scanf(%d, &number);convert( str, number );puts(str);【3.37】下面程序的功能是实现数组元素中值的逆转。#include main() int i,n=10,a10=1,2,3,4,5,6,7,8,9,10;invert(a,n-1);for(i=0;i10;i+)printf(%4d,ai);printf(n);invert(int *s,int num) int *t,k;t=s+num;while( ) k=*s;*s=*t;*t=k; ; ;【3.38】下面程序通过指向整型的指针将数组a34 的容按行列的格式输出,请给printf(

22、 )填入适当的参数,使之通过指针p将数组元素按要求输出。#include int a34=1,2,3,4,5,6,7,8,9,10,11,12, *p=a;main() int i,j;for(i=0;i3;i+ ) for(j=0;j4;j+ )printf(%4d , );【3.39】下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。#include main ( ) char str81, *sptr;int i;for(i=0;iwp) ;for(i=*n;i=p;i-) ;wp=x;+*n;【3.41】下面程序的功能是从键盘上输入两个字符串,对两个字符串分

23、别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。#include 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;else if( 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中的字符排序 */ int i,j,n;char t,*w; ;for( n=0;*w != 0; )w+;for( i=0;in-1;i+ )fo

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

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