经典练习C语言编程的题目及答案整理
1.逆序输出正三位数#include int main(){int input,output= 0; scanf("%d",&input);while(input != 0) { output = output*10 + input%10; input /= 10;} printf("%d\n",output);
return 0;}2.百元找零函数#include
int main(){int amount=100; int price=0;printf("请输入金额(元)");scanf("%d",&price); printf("请输入票面");scanf("%d",&amount); int change=amount-price;printf("找您%d元。\n",change);return 0;}3.求平均数#include
int main(){int a,b;scanf("%d %d",&a,&b); double c=(a+b)/2.0;/*scanf("%d",&amount); 这是注释,我随便放的,没意义int change=amount-price;*/printf("%d和%d的平均值是%f\n",a,b,c);return 0;}4.写出程序的输出:int?i=1; switch?(?i/3?)?{ case?0:?printf("zero"); case?1:?printf("one"); case?2:?printf("two"); }
正确答案是:zeroonetwo。5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13?+ 53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3<=N<=7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407#include int main(void) {int i, j, n, low = 1, high, temp, sum, item, remainder;scanf("%d", &n);for(i = 1; i < n; ++i)low *= 10;/* 得到n位数的下限 */high = low * 10;/* 得到n位数的上限 */for(i = low; i < high; ++i) {temp = i;sum = 0;while(temp > 0) {remainder = temp % 10;item = remainder;for(j = 1; j < n; ++j)item *= remainder;sum += item;temp /= 10;}if(i == sum)printf("%d\n", i);}return 0;}6.时间换算UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。提醒:要小心跨日的换算。
输入格式:一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输出格式:一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输入样例:903
输出样例:103时间限制:500ms内存限制:32