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

104 阅读2分钟

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

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

题目:

请编写函数proc(),其功能是:将str所指字符串中除下标为偶数的字符删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,当str所指字符串中的内容为abcdefg最后t所指的数组中的内容应是bdf。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void proc(char *str, char t[])
{
?
}
main()
{
	char str[100], t[100];
	void NONO ();
	printf("\nPlease enter a string:"); 
	scanf("%s", str);
	proc(str, t);
	printf("\nThe result is:%s\n", t);
	NONO();
	system("pause");
}
void NONO ()
{/* 本函数用于打开文件,输入数据,
 调用函数,输出数据,关闭文件。 */
	char str[100], t[100];
	FILE *rf, *wf;
	int i;
	rf=fopen("in.dat","r");
	wf=fopen("out.dat","w");
	for(i=0; i<8; i++) 
	{
		fscanf(rf, "%s", str);
		proc(str, t);
		fprintf(wf, "%s\n", t);
	}
	fclose(rf);
	fclose(wf);
}

解题思路:

除ASCII码值为奇数的字符外,其余的字符都删除,其中字符b的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符a的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除。

参考答案:

void proc(char *str, char t[])
{
	int i, j=0;
	for(i=1; i<strlen(str); i+=2)
	{
		t[j++]=str[i];
	}
	t[j]='\0';
}

结果如下:

2.png

补充:

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统;它是一种标准的单字节字符编码方案,用于基于文本的数据;它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646,适用于所有拉丁文字字母。 计算机中数据储存和运算都要用二进制(高低电平表示为1和0),但是其中每一个二进制代表什么东西,每个人都可以制定一套标准(编码)。所以要想全世界每个人都能在同一屋檐下交流,统一的编码应运而生。 常见的字符:ASCII码 A----Z  65----90 a------z  97----122 0-----9   48---57