收藏 分享(赏)

C语言程序设计习题试题(编程题).doc

上传人:精品资料 文档编号:9661136 上传时间:2019-08-21 格式:DOC 页数:12 大小:68KB
下载 相关 举报
C语言程序设计习题试题(编程题).doc_第1页
第1页 / 共12页
C语言程序设计习题试题(编程题).doc_第2页
第2页 / 共12页
C语言程序设计习题试题(编程题).doc_第3页
第3页 / 共12页
C语言程序设计习题试题(编程题).doc_第4页
第4页 / 共12页
C语言程序设计习题试题(编程题).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、1C 语言程序设计习题(编程类)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: case 4:case 5: case 6: cas

2、e 7: case 8: case 9:class1+; break; /* 对分类计数 */case +: case -: case *: case /: case %: case =:class2+; break; /* 对分类计数 */default: class3+; break; /* 对分类计数 */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、编写程序,读入一个整数;若为非负数,则计算到 2之间的整数和;若为一个负数,则求到之间的整数和。分别利用 for 和 while 写出两个程序。参考答案:void main() int i,n;long s1=0,s2=0;printf(“Please enter N:“);scanf(“%d“,&n);if(n=0)for(i=n; i=2*n;i-)

4、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,最后得到一个商为。又知这个自然数被 17 除余 4, 所得的商被 17 除余 15,最后得到一个商是的2 倍。编写程序求这个自然数。参考答案:void main( ) int i,n,a;for(i=0; ;i+) if(i%8=1) n=i/8;3if(n%8=1) n=n/8;if(n%8=7) a=n/8;if(i%17=4) n=i/

5、17;if(n%17=15) n=n/17;if(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 的最大的二进制的对称数。参考答案:void main() int i,j,n,k,a16=0;fo

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

7、进制数转变为二进制数 */ a-k=n%2;n=n/2;6for(i=0; i=10;t+) at=(i%k)/(k/10);7k/=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+; 8if(ai-1=bj) j+; /* 如果 a、b 当前元素相等,删掉一个 */while(i0) ak=n%2;turn(n/2,a,k-1);else return;void main() int i,n,a16=0;

8、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; char *p;int i=1;p=s1;while(*p!=0) p+;while(*p

9、+=*s2+)!=0) ; /* 将 s2 接于 s1 后面 */p=s1;while(*p!=0) /* 扫描整个字符串 */ if(*p= ) /* 当前字符是空格进行移位 */ while(*(p+i)= ) i+; /* 寻找当前字符后面的第一个非空格 */if(*(p+i)!=0) *p=*(p+i); /* 将非空格移于当前字符处 */*(p+i)= ; /* 被移字符处换为空格 */11else break; /* 寻找非空格时到字符串尾,移位过程结束 */p+;22、编写程序,输入字符串,分别统计字符串中所包含的各个不同的字符及其各自字符的数量。如:输入字符串: abcedab

10、cdcd则输出:a=2 b=2 c=3 d=3 e=1。参考答案:#include “stdio.h“struct 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;while(si.i0) printf(“%c=%d “,si.ch,si.i);i+;23、编写程序,读入磁盘上语言源程序文件“

11、test8.c“,删去程序中的注释后显示。参考答案:#include “stdio.h“ FILE *fp;void main( ) int c, d;if(fp = fopen(“d:tctest8.c“,“r“) = NULL)exit(0);12while(c=fgetc(fp) != EOF)if( c=/ ) /* 如果是字符注释的起始字符 / */if(d=fgetc(fp) = *) /* 则判断下一个字符是否为* */in_comment(); /* 调用函数处理( 删除)注释 */else /* 否则原样输出读入的两个字符 */ putchar(c);putchar(d);e

12、lseif( 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);

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报