C和指针 (pointers on C)——第四章:语句(下)习题解答

题目请见 http://download.csdn.net/download/wangpegasus/5701765

第四章以下通过VS2012

1、

#include "stdafx.h"

double sqrt(double temp)
{
	double before, after;
	before = 1.0;
	after = 1.0;
	do
	{
		before = after;
		after = (before + temp/before)/2;
	} while (before != after);
	return after;
}

int _tmain(int argc, _TCHAR* argv[])
{
	double temp,result;
	puts("input N:");
	scanf_s("%lf",&temp);
	result = sqrt(temp);
	printf("sqrt N = %lf \n",result);
	return 0;
}

2、

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int length = 100;
	puts("Prime(1~100):\n");
	for (int i = 1; i <= length; i++)
	{
		int ALU = 0;
		for (int j =1; j <= i; j++)
		{
			if (i%j == 0)
			{
				ALU++;
			}
		}
		if (ALU == 2)
		{
			printf("%d\t", i);
		}
	}
	return 0;
}

3、

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int a,b,c;
	puts("输入三边长度(a,b,c):\n");
	do
	{
		scanf_s("%d,%d,%d",&a,&b,&c);
	} while ((a+b)<=c || (a+c)<=b || (b+c)<=a);
	if ((a == b)&&(b == c))
	{
		puts("等边!");
	}
	else
		if ((a==b)||(b==c)||(c==a))
		{
			puts("等腰!");
		}
		else
		{
			puts("不等边!");
		}
	return 0;
}

4、2B方法:

void copy_n( char dst[], char src[], int n )
{
	int i,l_src;
	l_src = 0;
	for (i = 0; dst[i] == '\0'; i++)
	{
		l_src++;
	}
	if (l_src < n)
	{
		for (i = 0; i < l_src; i++)
		{
			dst[i] = src[i];
		}
		for (i = l_src; i < n; i++)
		{
			dst[i] = '\0';
		}
	}
	else
	{
		for (i = 0; i < n; i++)
		{
			dst[i] = src[i];
		}
	}
}

正确做法:

void copy_n( char dst[], char src[], int n )
{
	int dst_index, src_index;
	src_index = 0;
	for (dst_index = 0; dst_index < n; dst_index++)
	{
		dst[dst_index] = src[src_index];
		if (src[src_index] != 0)
		{
			src_index++;
		}
	}
}

5、涉及到太多字符串处理,略。

6、

void substr(char dst[], char src[], int start, int len)
{
	int dst_index, src_index, l_src;
	l_src =	src_index = 0;
	do
	{
		l_src++;
	} while (src[l_src] != '\0' );

	if (start < 0 || len < 0 || start > l_src ++)
	{
		dst[0] = '\0';
	}
	else
	{
		for ( dst_index = 0; dst_index < len; dst_index++)
		{
			dst[dst_index] = src[src_index + start];
			if (src[src_index] != '\0')
			{
				src_index++;
			}
		}
	}
}

7、

void deblank(char string[])
{
	char copy_str[] = {'\0'};

	int str_index, copy_str_index, temp = 0;
	for ( str_index = 0; string[str_index] != '\0'; str_index++)
	{
		if (string[str_index] == ' ')
		{
			if (temp > 0)
			{
				continue;
			}
			else
			{
				copy_str_index++;
				copy_str[copy_str_index] = string[str_index];
				temp++;
			}
		}
		else
		{
			copy_str_index++;
			copy_str[copy_str_index] = string[str_index];
		}
	}
	copy_str[copy_str_index++] = '\0';
	for ( copy_str_index = 0; copy_str[copy_str_index] != '\0'; copy_str_index++)
	{
		string[copy_str_index]= copy_str[copy_str_index];
	}
	string[copy_str_index + 1] = '\0';
}

C和指针 (pointers on C)——第四章:语句(下)习题解答,布布扣,bubuko.com

时间: 2024-12-28 02:26:32

C和指针 (pointers on C)——第四章:语句(下)习题解答的相关文章

第四章 语句 Lua程序设计笔记

--第四章 语句--4.1 赋值Lua支持多重赋值,先对等号右边所有元素求值,然后进行赋值.这可以用来交换变量x, y = y, x 若值的个数少于变量的个数,则多余的变量会被赋值为nil.若值的个数多余变量的个数,则多余的值会被丢弃. --4.2局部变量与块block局部变量的作用域仅限于声明它们的那个块.一个快可以是一个执行体.一个函数或者一个chunk 尽可能使用局部变量:1避免搞乱全局环境2访问局部变量更快3局部变量随其作用域结束而消失,GC可以释放其值. local foo = foo

课本第四章-不定积分习题整理

三角函数相关类型 1. 利用三角变化以及三角恒等式,比如 $\sin^2 x + \cos^2 x=1$ 以及二倍角公式,和差化积,积化和差. 比如:  4-1 的 1-(5), 令 $1=\sin^2 x+ \cos^2 x$ 即可; 4-1 的 1-(6), 二倍角公式 4-1 的 1-(7), 二倍角公式 $\cos 2x =\cos^2 x  -\sin^2 x$ 4-2 的 1-(12), 积化和差公式 4-3 的 1-(5), $\tan^2 x=\sec^2 x -1$ 2. $\

JAVA-初步认识-第四章-语句-函数-格式

函数名在定义时,如果是两个以上的单词构成,第一个单词的首字母是小写,第二个是大写.这和标识符的定义不符.用小括号来确定函数中用到的数据.参数的数目不确定,也可以不定义? return有两个作用,一个是返回值,另一个是结束函数.所以在return 返回值; 后面不要再书写语句,执行不到,会报错.

《Metasploit魔鬼训练营》第四章(下)

p163 XSSF 默认kali 2.0中没有xssf,先下载:https://code.google.com/archive/p/xssf/downloads 将下载下来的zip文件解压,将其中的data, plugins, lab等文件夹合并到/usr/share/metasploit-framework/中的相应文件夹,然后即可在msfconsole中load xssf. 按照书上的做,但是最后的攻击并没有成功! msf auxiliary(browser_autopwn) > xssf_

奋斗吧,程序员——第四十四章 八百里分麾下炙,五十弦翻塞外声

和东哥小陆他们踢了几场球,又去他们宿舍参加了几个赌局,彼此逐渐熟悉起来. 我们通常踢完球,穿着球衣一身臭汗去酒店喝酒. "elber,你那里那个黄浩有问题,要提防着点."酒过三巡,东哥醉醺醺地提醒我. "的确是个极品,上次在过道里和他碰到,他居然跟我说'好狗不挡道,让开!',妈的,毕业这么多年,还没受过这等鸟气." 小陆年纪比我们都小,给我斟了点酒,说道:"这家伙的简历我查过了,假的,根本不是某某大学毕业的." "靠,这个可是猛料啊!&

第四章 语句

1.空语句 2.for(初始化部分;条件部分;调整部分){循环体} 3.EOF 是一个宏 ,一般定义为-1.(Linux中遇到文件结尾返回EOF也就是-1) EOF用来判断文件结束的标记(end of file) 用在文件操作中,可以查下msdn 看它的定义:EOF is returned by an I/O routine when the end-of-file (or in some cases, an error) is encountered(Ctrl+Z) EOF表示输入流的结束. 

C和指针 (pointers on C)——第四章:语句(上)

第四章--语句(上) 总结总结!!! C没有布尔类型,所以在一些逻辑判断时候必须用整型表达式,零值为假,非零值为真. for比while把控制循环的表达式收集起来放在一个地方,以便寻找. do语句比while语句类似,但是前者能够保证循环体至少执行一次. 不要用goto. switch...case...在没有加break时候多半有问题,我有一篇文章曾专门说这个事儿. 详情见http://blog.csdn.net/liyakun1990/article/details/24942191 空语句

XSS的原理分析与解剖:第四章(编码与绕过)*******************未看**********************

0×01前言 很抱歉,这第四章被我推了几个月,今天是元旦难得有空,就把第四章写下.我先把主要使用的编码说下,介绍完会说下绕过. 本文建议与<杂谈如何绕过WAF>一同阅读. 0×02 URL编码 URL只允许用US-ASCII字符集中可打印的字符(0×20-0x7x),其中某些字符在HTTP协议里有特殊的意义,所以有些也不能使用.这里有个需要注意的,+加号代表URL编码的空格,%20也是. URL编码最长见的是在用GET/POST传输时,顺序是把字符改成%+ASCII两位十六进制(先把字符串转成

C和指针 (pointers on C)——第十四章:预处理器

第十四章 预处理器 我跳过了先进的指针主题的章节. 太多的技巧,太学科不适合今天的我.但我真的读,读懂.假设谁读了私下能够交流一下.有的小技巧还是非常有意思. 预处理器这一章的内容.大家肯定都用过.什么#include,#define #ifdef #undef这些,可是绝对用的不多.作为全面了解学C,还是应该都看一看. 预处理器使用方法非常讲究,用不好会失误,用好了会大大加快执行时速度(不是编译速度). 总结: C程序的第一个步骤就是预处理.预处理器共包括下面几个符号: 1.#define 定