C语言知识程序设计习题集试题(编程题)

(12页)

'C语言知识程序设计习题集试题(编程题)'
.\C语言程序设计习题(编程类)1、从键盘输入任意的字符,按下列规则进行分类计数。     第一类 '0','1','2','3','4','5','6','7','8','9'     第二类 '+','-','*','/','%','='     第三类 其它字符当输入字符'\'时先计数,然后停止接收输入,打印计数的结果。参考答案:#include <stdio.h>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': 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=%d\n", class1, class2, class3);}2、从键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。参考答案:void main( ){ int i,j,num,a[10];for(i=0;i<10;i++){ printf("Enter No. %d:", i+1);scanf("%d",&num);for(j=i-1;j>=0&&a[j]>num;j--)a[j+1]=a[j];a[j+1]=num;}for(i=0;i<10;i++)printf ("No.%d=%d\n", i+1, a[i]);}3、输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。参考答案:void main(){ int n;printf("Please enter n:");scanf("%d",&n);while(n>0){ printf("%d",n%10);n=n/10;}} 4、编写程序,读入一个整数N;若N为非负数,则计算N到2×N之间的整数和;若N为一个负数,则求2×N到N之间的整数和。分别利用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++)s1=s1+i;elsefor(i=n;i>=2*n;i--)s1=s1+i;i=n;if(i>=0)while(i<=2*n)s2=s2+i++;elsewhile(i>=2*n)s2=s2+i--;printf("Result1=%ld result2=%ld\n",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;if(n%8==7) a=n/8;}}if(i%17==4){ n=i/17;if(n%17==15) n=n/17;}if(2*a==n){ printf("result=%d\n",i);break;}}}6、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。参考答案:void main( ){ int f1,f2,f5,count=0;for(f5=0;f5<=20;f5++)for(f2=0;f2<=(100-f5*5)/2;f2++){ f1=100-f5*5-f2*2;if(f5*5+f2*2+f1==100)printf("No.%2d >> 5: %4d 2: %2d 1: %2d\n",++count,f5,f2,f1);}} 7、将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称它为对称数。求不超过1993的最大的二进制的对称数。参考答案:void main(){ int i,j,n,k,a[16]={0};for(i=1;i<=1993;i++){ n=i;k=0;while(n>0) /* 将十进制数转变为二进制数 */{ a[k++]=n%2;n=n/2;}for(j=0;j<k;j++)if(a[j]!=a[k-j-1]) break;if(j>=k){ printf(" %d: ",i);for(j=0;j<k;j++)printf("%2d",a[j]);printf("\n");}}} 8、十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14 块,第十个小孩20块。然后所有的小孩同时将自己手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖?参考答案:void main(){ int i,count=0,a[11]={0,10,2,8,22,16,4,10,6,14,20};while(1){ for(i=1;i<=10;i++)a[i-1]=a[i-1]/2+a[i]/2;a[10]=a[10]/2+a[0];for(i=1;i<=10;i++)if(a[i]%2==1) a[i]++;for(i=1;i<10;i++)if(a[i]!=a[i+1]) break;if(i==10) break;else{ a[0]=0;count++;}}printf("count=%d number=%d\n
关 键 词:
语言 知识 程序设计 习题集 试题 编程
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:C语言知识程序设计习题集试题(编程题)
链接地址: https://www.wenku365.com/p-43428475.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开