1、编写一个程序,该程序读取输入直到遇到#字符,然后报告读取空格数目,读取的换行符数目以及读取所有的其它字符数目。
#include <stdio.h>
#include <string.h>
int main(void){
int bs = 0; //统计空格符
int es = 0; //统计换行符
int th = 0; //统计其它字符
char ch;
printf("请输入字符,输入#号后结束:\n");
fflush(stdout);
while((ch = getchar()) != '#'){
if(ch == ' '){
bs++;
}
else if(ch == '\n'){
es++;
}else
th++;
}
printf("空格数:%d,换行符数:%d,其它字符 :%d\n",bs,es,th);
printf("\nend\n");
return 0;
}
2、编写一个程序。该程序读取输入直到遇到#字符,使程序打印每个输入的字符以及它的十进制ASCII码,每行打印8个字符/编码对,建 议:利用字符计数和模运符(%)在每8个循环周期时打印一个换行符。
#include <stdio.h>
#include <string.h>
int main(void){
const int LINE = 8; //每行打印8个字符
char ch;
int chsum = 0; //统计输入的字符数
printf("请输入字符串,以#号键结束:\n");
fflush(stdout);
while((ch = getchar()) != '#'){
printf("%c %d\t",ch,ch);
chsum++;
if(chsum % LINE == 0)
printf("\n");
}
printf("\n输入了%d个字符",chsum);
printf("\nend\n");
return 0;
}
3、编写一个程序,该程序读取整数,直到输入零,输入终止。输入终止后,程序应该报告输入的偶数(不包括零)总个数,偶数的平均值,输入的奇数总个数以及平均值。
#include <stdio.h>
#include <string.h>
int main(void){
int sum = 0;
int sum2 = 0;
int sum2a =0;
int sum3 = 0;
int sum3a = 0;
int n;
printf("请输入整数,结束请输入0\n");
fflush(stdout);
while(scanf("%d",&n) != 0 && n != 0){
sum++;
if((n != 0) && (n % 2 == 0)){
sum2++;
sum2a += n;
}
else{
sum3++;
sum3a += n;
}
}
printf("共%d个整数,其中%d个偶数,平均值为%d,%d个奇数,平均值为%d\n",sum,sum2,sum2a/sum2,sum3,sum3a/sum3);
printf("\nend\n");
return 0;
}
4、利用if else语句编写程序读取输入,直到遇到#号结束,用一个感叹号替换每个句号,将原有每个感叹号用两个感叹号代替,最后报告进行了多少次替代。
#include <stdio.h>
#include <string.h>
int main(void){
char ch;
int dousum = 0;
int hansum = 0;
printf("请入字符串并以#后键结束:\n");
fflush(stdout);
while((ch = getchar()) != '#'){
if(ch == '!'){
putchar(ch);
printf("!");
hansum++;
}else if(ch == '.'){
dousum++;
printf("!");
}else{
putchar(ch);
}
}
printf("\n替换了%d句号,替换了%d感叹号,总计%d处\n",dousum,hansum,dousum+hansum);
printf("\nend\n");
return 0;
}
5、用swich重做练习3
#include <stdio.h>
#include <string.h>
int main(void){
int sum = 0;
int sum2 = 0;
int sum2a =0;
int sum3 = 0;
int sum3a = 0;
int n;
int a;
printf("请输入整数