计算机二级C语言程序设计题

182 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

计算机二级C语言程序设计题

题目:

函数fun()的功能是:将两个两位数的正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a的十位和个位依次放在变量c的千位和十位上,b的十位和个位依次放在c的个位和百位上。例如,当a=45,b=12时,调用该函数后,c=4251。

#include <stdio.h> 
#include <stdlib.h> 
void fun(int a, int b, long *c) 
{
	*c=a/10*1000+b%10*100+a%10*10+b/10;
}
main()
{
	void NONO();
	int a, b;
	long c;
	printf("Input a,b:");
	scanf("%d,%d", &a, &b);
	fun(a, b, &c);
	printf("The result is:%ld\n", c);
	NONO();
	system("pause");
}
void NONO()
{/* 本函数用于打开文件,输入数据,
 调用函数,输出数据,关闭文件。 */
	FILE *rf, *wf;
	int i, a, b; 
	long c;
	rf=fopen("in.dat","r");
	wf=fopen("out.dat","w");
	for(i=0; i<8; i++)
	{
		fscanf(rf, "%d,%d", &a, &b);
		fun(a, b, &c);
		fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c);
	}
	fclose(rf);
	fclose(wf);
}

解题思路:

a的十位作为c的千位,b的个位作为c的百位,a的个位作为c的十位,b的十位作为c的个位,最后利用求商和求余进行组合计算。

参考答案:

void fun(int a, int b, long *c) 
{
	*c=a/10*1000+b%10*100+a%10*10+b/10;
}

结果如下:

6.png

补充:

求商: a/b 结果是商的整数部分。
求余数: a%b 结果就是余数。
比如: printf("a/b=%d……%d\n", a/b, a%b); 具体的代码:

#include <stdio.h>
void main() 
{ int a,b; scanf("%d%d",&a,&b);
printf("商=%d 余数=%d\n", a/b, a%b); }

利用API计算商和余数 内置API:

  1. 一共有两个函数,一个适合int、一个适合long
  2. 返回的结构体div_t有两个元素,商是quot;余数rem
div_t res;
res = div(5,3); 
printf("%d, %d\n", res.quot, res.rem);