将一个数的数码倒过来c语言,C语言程序设计习题试题(编程题)

《C语言程序设计习题试题(编程题)》由会员分享,可在线阅读,更多相关《C语言程序设计习题试题(编程题)(10页珍藏版)》请在人人文库网上搜索。

1、C 语言程序设计习题(编程类)1、从键盘输入任意的字符,按下列规则进行分类计数。第一类 0 ,1 ,2 ,3 ,4 ,5 , 6 ,7 ,8 ,9第二类 + , - ,* ,/ ,% ,= 第三类 其它字符 当输入字符 时先计数,然后停止接收输入,打印计数的结果。 参考答案: #include void main( ) int class1, class2, class3 ; char ch ; class1=class2=class3=0 ; /* 初始化分类计数器 */ do ch=getch( ) ; switch(ch) case 0: case 1: case 2: case 3: 。

2、case 4: case 5: case 6: case 7: case 8: case 9:class1+;break ;/*对分类1计数*/case +: case -: case *: case /: case %: case =:class2+;break ;/*对分类 2 计数*/default: class3+ ; break ; /* 对分类3 计数 */while (ch!= ); /* 字符在C程序中要使用转义符 */printf(class1=%d, class2=%d, class3=%dn, class1, class2, class3);2、从键盘输入十个整数,用插入。

3、法对输入的数据按照从小到大的顺序进行排序,将排序后的结 果输出。参考答案:void main( ) int i,j,num,a10;for(i=0 ; i=0&ajnum ; j-)aj+1=aj;aj+1=num ;for(i=0 ; i0) printf(%d,n%10) ;n=n/10 ;4、编写程序,读入一个整数N;若N为非负数,则计算N到2XN之间的整数和;若N为一个负数,则求2XN到N之间的整数和。分别利用for和while写出两个程序。参考答案:void main() int i,n ;long s1=0,s2=0 ;printf(Please enter N:);scanf(%。

4、d,&n) ;if(n=0)for(i=n ; i=2*n ; i-)s1=s1+i ;i=n ;if(i=0)while(i=2*n)s2=s2+i- ;printf(Result1=%ld result2=%ldn,s1,s2);5、一个自然数被 8 除余 1,所得的商被 8 除也余 1,再将第二次的商被 8 除后余 7,最后得到一个商为a。又知这个自然数被17除余4, ?所得的商被17除余15,最后得到一个商是a的2倍。编写程序求这个自然数。参考答案:void main( ) int i,n,a ;for(i=0 ; i+) if(i%8=1) n=i/8;if(n%8=1) n=n/8。

5、 ;if(n%8=7) a=n/8 ;if(i%17=4) n=i/17 ;if(n%17=15) n=n/17if(2*a=n) printf(result=%dn,i)break ;6 、编写程序,输出用一元人民币兑换成1 分、 2 分和 5 分硬币的不同兑换方法。参考答案: void main( ) int f1,f2,f5,count=0;for(f5=0 ; f5 5: %4d 2: %2d 1: %2dn,+count,f5,f2,f1);7、将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称它 为对称数。求不超过 1993 的最大的二进制的对称数。参考。

6、答案:void main() int i,j,n,k,a16=0;for(i=1 ;i0) /*将十进制数转变为二进制数 */ ak+=n%2 ;n=n/2 ; for(j=0 ; j=k) printf( %d: ,i) for(j=0 ; jajj) j=i ; printf(SUN=%dnACCOM=%dna%d=%dn,s1,s2,j,ajj) 10、编写程序,以字符形式输入一个十六进制数,将其变换为一个十进制整数后输出。 参考答案:#include stdio.hvoid main() int i,n=0,a4=0;printf(Please enter a digit:);for(。

7、i=0 ;i=48&ai=65&ai=97&ai0) /* 将十进制数转变为二进制数 */ a-k=n%2 ; n=n/2 ;for(i=0 ; i=1 0; t+) at=(i%k)/(k/10) ;k/=10 ;if(f(a0)+f(a1)+f(a2)=i) printf(%d ,i) ;f(m)int m ; int i=0,t=1;while(+ibj)ck+=bj+ ; /* 将 ai 、bj 中的小者存入 ck */ else ck+=ai+ ;if(ai-1=bj) j+; /* 如果 a、b 当前元素相等,删掉一个 */while(i0) ak=n%2 ; turn(n/2,a。

8、,k-1) ; else return ;void main() int i,n,a16=0;printf(nPlease enter n:);scanf(%d,&n) ; turn(n,a,15) ; for(i=0 ; i=q) printf(YESn) ;19、编写程序,其中包括一个函数,此函数的功能是:对一个长度为N 的字符串从其第K个字符起,删去 M个字符,组成长度为N-M的新字符串(其中N、M=p)*(q+1)=*q- ;*+q=*s2+ ;p+;21、编写程序将输入的两行字符串连接后,将串中全部空格移到串首后输出。 参考答案:strcnb(s1,s2)char s1,s2 ; c。

9、har *p ; int i=1 ; p=s1;while(*p!=0) p+ ;while(*p+=*s2+)!=0) ; /* 将 s2 接于 s1 后面 */p=s1;while(*p!=0) /* 扫描整个字符串 */ if(*p= ) /* 当前字符是空格进行移位 */ while(*(p+i)= ) i+ ; /* 寻找当前字符后面的第一个非空格 */ if(*(p+i)!=0) *p=*(p+i) ; /* 将非空格移于当前字符处 */*(p+i)= ; /* 被移字符处换为空格 */else break ; /* 寻找非空格时到字符串尾,移位过程结束 */p+;22、编写程序,。

10、输入字符串,分别统计字符串中所包含的各个不同的字符及其各自字符 的数量。如:输入字符串: abcedabcdcd则输出: a=2 b=2 c=3 d=3 e=1 。参考答案:#include stdio.hstruct strnum int i ;char ch ;void main( ) char c ;int i=0,k=0 ;struct strnum s100=0,NULL ;while(c=getchar()!=n) for(i=0 ;si.i!=0 ; i+) if(c=si.ch) si.i+ ;break ;if(si.i=0) sk.ch=c ;sk+.i=1 ;i=0 ;w。

11、hile(si.i0) printf(%c=%d ,si.ch,si.i) ;i+;23、编写程序,读入磁盘上C语言源程序文件test8.c,删去程序中的注释后显示。参考答案:#include stdio.h FILE *fp;void main( ) int c, d ;if(fp = fopen(d:tctest8.c,r) = NULL)exit(0) ;while(c=fgetc(fp) != EOF)if( c=/ ) /* 如果是字符注释的起始字符 / */ if(d=fgetc(fp) = *) /*则判断下一个字符是否为 * */in_comment() ; /* 调用函数处理。

12、 ( 删除 ) 注释 */ else /* 否则原样输出读入的两个字符 */ putchar(c) ; putchar(d) ; elseif( c= | c=) /*判断是否是字符 或 */ echo_quote(c); /* 调用函数处理字符或包含的字符 */ else putchar(c) ; in_comment() int c, d ; c=fgetc(fp) ; d=fgetc(fp) ; while( c!=* | d!=/ ) /* 连续的两个字符不是 * 和 / 则继续处理注释 */c = d ;d = fgetc(fp) ;echo_quote (c)int c ; /* c 中存放的是定界符 或 */ int d ; putchar(c) ; while( d=fgetc(fp)!=c) /* 读入下一个字符判断是否是定界符 c */ putchar(c) ; /* 当不是定界符 c 时继续循环 */ if(d=) /* 若出现转义字符 */ putchar( fgetc(fp) ; /* 则下一个字符不论是何均原样输出 */ putchar(d)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值