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

7,933 阅读2分钟

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

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

题目:

函数fun()功能:将s所指字符串中ASCII值为奇数的字符删去,s所指串中剩余的字符形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中,字符A的ASCII码值为奇数、...、字符串1的ASCII码值也为奇数、...因此必须删除,其它依此类推。最后t所指的数组中的内容应是:“BDF24”。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char *s, char t[])
{
	
}
main()
{
	char s[100], t[100];
	void NONO ();
	printf("\nPlease enter string s:"); 
	scanf("%s", s);
	fun(s, t);
	printf("\nThe result is:%s\n", t);
	NONO();
	system("pause");
}
void NONO ()
{/* 本函数用于打开文件,输入数据,
 调用函数,输出数据,关闭文件。 */
	char s[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", s);
		fun(s, t);
		fprintf(wf, "%s\n", t);
	}
	fclose(rf);
	fclose(wf);
}

题目分析:

将字符串中ASCII值为奇数的字符删去就是遍历字符串,如果当前下标对2取余不为且当下标对应的字符的AC码值对2取余为0,则什么也不做,反之将当符合条件的字符添加到结果数组中。主函数main():定义字符数组s和t,控制台给值,最终结果保存在数组中.

解题思路:

首先获得字符串的长度,利用长度控制循环,在循环中使用if判断语句对每一个字符的ASCII值得奇偶进行判断,如果是偶数,则将次字符复制到指定字符串中,最后以“\0”作为字符串结尾。

参考答案如下:

	int i,j=0,n;
	n=strlen(s);
	for(i=0; i<n; i++)/*找出ASCII码值为偶数的字符依次存入数组中*/
	{
		if(s[i]%2==0)
		{
			t[j]=s[i];
			j++;
		}
	}
	t[j]='\0';

效果如下:

2.png

补充:

ASCII码值如下:空格的ASCII码值为32;数字0到9的ASCII码值分别为48到57;大写字母“A”到“Z”的ASCII码值分别为65到90;小写字母“a”到“z”的ASCII码值分别为97到到122。