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': 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 ...