C与指针——基本概念

K&R C

(Kernighan和Ritchie合写的C语言)

转义符 意义
\a 警告字符
\b 退格键
\f 进纸字符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
\ddd 三位八进制数字
\xddd 两位十六进制

编程练习:

1.

编写一个程序,它由3个函数组成,每个函数分别保存在一个单独的源文件中。函数increment接受一个整形参数,它的返回值是该参数的值加1.。increment函数应该位于文件increment.c中。第2个函数称为negate,它也接受一个整形参数,它的返回值是该参数的负值(例如,若参数是25,函数返回-25;若参数是-612,函数返回612)。最后一个函数是main,保存于文件main.c中,它分别用参数10,0和-10调用另外两个函数,并打印出结果。

程序如下:

//increment函数
#include
int increment(int x)
{ 
return x+1;
}
//negate函数
#include
int negate(int y)
{
return -y;
}
//main函数
#include 

int increment(int x);
int negate(int y);

int main(){
printf("%d ",increment(10));
printf("%d ",increment(0));
printf("%d\n",increment(-10));
printf("%d ",negate(10));
printf("%d ",negate(0));
printf("%d\n",negate(-10));
return 0;
}

运行结果:
在这里插入图片描述
注: 每个程序分别保存在一个单独的源文件中。

2

编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确地成对出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。

代码如下:

#include 
#include 
int main()
{
    int ch;
    int braces= 0;
	//逐字符读取程序
    while ((ch = getchar()) != EOF)
    { //{始终合法
        if (ch == '{')
            braces++;
        //}只有当它和一个{匹配时才合法
        if (ch == '}')
        {   if(braces==0)
                printf("Extra closing brace!\n");
            else 
				braces--;
		}
        //无更多输入,验证不存在任何未被匹配的{
		if(braces>0)
			printf("%d unmatched opening brace(s)!\n",braces);
		return EXIT_SUCCESS;
    }
}

运行结果:
C与指针——基本概念_第1张图片
注: 这里的左右大括号需要用英文输入。

最开始接触编程的时候觉得Dev比VC++6.0好用太多
现在才慢慢意识到,学校实验室电脑上安装VC++6.0也是有其一定道理的
当然,若要论炫酷拉风界面观感,VS肯定是要更胜一筹了。

你可能感兴趣的:(编程)