全国计算机等级考试二级教程——C语言程序设计(年版)
编程题答案(第6章):
[6.19]
请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCⅡ代码值,每行输出三对。
答:
#includestdio.h
main()
{intk=0;
charx;
while((x=getchar())!=\n)
{printf("%c%d",x,x);
k++;
if(!(k%3))printf("\n");
}
}
[6.20]
请编写程序,输入一行数字字符(用回车结束),每个数字前后都有空格。请编程,把这一行中的数字转换成一个整数。例如,若输入(CR代表Enter键):
CR
则输出整数:。
答:
#includestdio.h
#includectype.h
main()
{charx;
doublea,b=0.0,k=1.0;
x=getchar();
while(x!=\n)/*回车结束输入*/
{if(isdigit(x))/*判断是否为数字*/
{k*=10;
a=(x-0)/k;/*将字符转化为数字*/
b+=a;
}
x=getchar();
}
b*=k;
printf("%.f",b);
}
[6.21]
请编写程序统计输入的行数,用!号来结束输入,!号所在行不计入行数。
答:
#includestdio.h
main()
{charx;
intk=0;
while((x=getchar())!=!)
{if(x==\n)
k++;
}
printf("%d行",k);
}
[6.22]
请编写程序统计输入的一行中小写字母的个数。
答:
#includestdio.h
#includectype.h
main()
{charx;
intk=0;
x=getchar();
while(x!=\n)
{if(islower(x))/*判断是否为小写字母*/
k++;
x=getchar();
}
printf("小写字母%d个",k);
}
[6.23]
请编写输出以下图案的程序,图案的行数由输入的整数值确定(每行中字符之间没有空格)。
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
答:
#includestdio.h
main()
{charx;
inta,b,c,k;
printf("输入行数");
scanf("%d",a);
b=a;/*a要用作下面的判定条件,不能变*/
for(x=65;x65+a;x++)/*控制字母*/
{for(c=b-1;c0;c--)/*控制空格数量*/
printf("");
for(k=2*(x-64)-1;k0;k--)/*控制字母数量*/
printf("%c",x);
b--;
printf("\n");
}
}