信息学奥赛C++语法如何区分一个程序是C语言程序还是C++程序?如果文件的扩展名是.c,那么该程序是c语言程序;如果文件的扩展名是.cpp,那么该程序是c++程序。C语言和C++之间有什么关系吗?C语言是C++的子集。在C语言的基础上再加上一些语法,就形成了C++。信息学奥赛的官网是什么?编写C/C++程序,常用的软件是什么?软件:Dev-C++软件版本:5.4.2,高版本也可NOI是什么意思?全国青少年信息学奥林匹克竞赛NationalOlympiadinInformaticsNOIP简称联赛,以省份为单位组织比赛。做题网站:(){printf(Helloworld!\n);return0;}第一个C语言程序:Helloworld!语法解释:1.C语言/C++区分大小写。格式排版:大括号对应,内容缩进。字体颜色自动变化。2.include:文件包含。cstdio这个文件是包含了标准输入输出的头文件。std:standard,标准的.i:input,输入.o:output,输出.(你暂且把它当英语短语记住,会用就行。当你学得多了,你就会明白了。)3.程序从main()函数开始执行,一句一句向下执行,执行到某句时才可能调用头文件。函数必须带括号。4.main()前面用int,最后一句是return0;int是整型,所以main()的返回值必须是整型。return是返回,main()函数的返回值一般为0.5.注释的方法两种:1.//单行注释2./**/段注释,多行注释。6.printf是输出,用双引号括起来。用双引号括起来的内容,一般原样输出。7.在输出语句中,\n是换行\n\n换了两行。8.printf中,printf(%d,3+2);用3+2的结果代替%d。(百度搜索转义字符)9.每句话后面都要有英文分号。一个分号代表一句话结束。单独的一个分号也是一句话。在.cpp文件内,应使用C++语法,而C++包括C,所以可以在.cpp文件内直接使用C语言语法。在每次新建文件时,我们都直接新建cpp文件。上面的程序,用的是C语言的语法。//2.cpp#includecstdiointmain(){inta,b;//所有的变量,都必须先声明,后使用。这句话的作用,是声明变量a,b是整型。a=5;//给a赋值,使a的值为5。b=8;printf(%d\n,a+b);printf(%d\n,a-b);printf(%d\n,a*b);printf(%d\n,a/b);//整数除以整数,结果是整数。小数部分都会被直接删掉,而不是四舍五入。printf(%d\n,b/a);//整数除以整数,结果是整数。小数部分都会被直接删掉,而不是四舍五入。printf(%d\n,b%a);//%,求余运算。如果b=-8,求余运算后结果是多少呢?printf(Helloworld!\n);return0;}//3.cpp#includecstdiointmain(){inta,b;scanf(%d,&a);//输入2,进行测试scanf(%d,&b);//输入5,进行测试printf(a+b=%d\n,a+b);printf(%d+%d=%d\n,a,b,a+b);return0;}语法解释:scanf()函数是用来输入数据的,它的第一个参数要用双引号引起来,用来控制要输入的数据的格式,后面参数是指把输入的数据依次放到内存中哪个位置(或者说,赋值给哪个变量。对于普通的变量,要在变量名称前加上&)。对于整型数据,输入输入都用%d。一个%d对应一个整数,两个%d对应两个整数。语句printf(%d+%d=%d\n,a,b,a+b);有3个%d,对应后面的3个整数,这3个数之间用两个逗号隔开。可以将scanf(%d,&a);scanf(%d,&b);这两句话合成一句scanf(%d%d,&a,&b);。注意,两个%d应紧紧相连,之间不要有空格、逗号等内容。合成一句以后,在输入时,可以先输入一个数,然后按一下回车,然后再输入下一个数,然后再按回车,这样就完成了两个数据的输入。另外,还可以先输入一个数,然后空一个或多个空格,然后再输入下一个数,最后回车。如果要输入两个整数,并且这两个数之间有一个逗号,比如5,8,此时该用什么样的输入语句呢?答案是scanf(%d,%d,&a,&b);此时,在两个%d之间有一个逗号,用这个逗号来抵消输入的逗号。如果在两个%d之间不加逗号,系统会把5,8之间的逗号当作第二个数输入。总结:用scanf()输入整数时,用%d,系统会忽略掉输入的所有空格,但不会忽略掉其它字符。用printf()输出数据时,双引号之间的大部分内容(包括空格)会原样输出,少部分内容会发生变化(比如\n)。在程序编译阶段不报错,而在运行时报错并提示“该内存不能为written”,一般有两种原因,一是在输入数据时忘记使用&符号,二是数组越界,访问了非法空间。//4.cppC++语法#includeiostreamusingnamespacestd;intmain(){inta,b;cina;//scanf(%d,&a);cinb;couta+bendl;//endlinereturn0;}cin是用来输入数据的,cout是用来输出数据的。cin和cout是c++中的语法,必须使用#includeiostream和usingnamespacestd;如果在c++中仍想使用scanf()和printf(),即使已经有了#includeiostream和usingnamespacestd;,仍然需要加上#includecstdio头文件。关于输入输出,从语法上讲,使用scanf()和printf()需要考虑数据类型(比如整数需要用到%d,字符需要用到%c),而cin和cout则不需要考虑数据类型,因而书写更方便。但并不是说cin和cout比scanf()和printf()好,因为在输入输出少量数据的时候,前者和后者所花的时间是差不多的;而当输入输出大量数据的时候,后者要比前者节省时间。顺序结构选择结构循环结构可以用流程图来表示一个算法。顺序结构选择结构选择结构循环结构//5.cpp#includeiostream#includecstdiousingnamespacestd;intmain(){inta,b,c;scanf(%d,&a);scanf(%d,&b);if(ab){//如果说,大括号里面只有一句话,那么可以省略掉大括号。但为了格式清晰,一般不省略。printf(%d,a);}else{printf(%d\n,b);}return0;}//6.cpp#includeiostream#includecstdiousingnamespacestd;intmain(){inta,b,c;scanf(%d,&a);scanf(%d,&b);if(ab){printf(%d,a);}return0;}#includeiostream#includecstdiousingnamespacestd;intmain(){inta,b,c;scanf(%d,&a);scanf(%d,&b);if(ab){printf(%d,a);}else{}return0;}//else部分,什么语句都不执行,因此,可以省略掉else,形成新的语法。//这么写,是什么含义?#includeiostream#includecstdiousingnamespacestd;intmain(){inta,b,c;scanf(%d,&a);scanf(%d,&b);if(ab);{printf(%d,a);}return0;}多了分号,有什么后果?//常用的比较运算符====//这个是等于,用于判断左右两侧是否相等!=//这个是不等于!//取反运算,它的优先级比并且高&&//并且,它的优先级比或者高||//或者,它的优先级比并且低//7.cpp判断闰年#includeiostream#includecstdiousingnamespacestd;intmain(){intn;scanf(%d,&n);if(n%400==0||n%4==0&&n%100!=0){printf(%dshirunnian\n,n);}else{printf(%dbushirunnian\n,n);}return0;}一个等号是赋值,两个等号是判断是否相等//8.cpp如何交换两个变量?//两个瓶子,一个装油,一个装醋,如何让这两个瓶子里的东西互换一下?#includeiostream#includecstdiousingnamespacestd;intmain(){inta,b,c;scanf(%d,&a);//假如输入3scanf(%d,&b);//假如输入6if(ab){c=a;a=b;b=c;}printf(%d,a);printf(%d\n,b);return0;}//9.cpp//字符和整数#includeiostream#includecstdiousingnamespacestd;intmain(){charcc,dd;cc='A';scanf(%c,&dd);//输入B测试printf(%c%c\n,cc,dd);printf(%d%d\n,cc,dd);printf(%d\n,'B');printf(%c,65);printf(=============\n);return0;}//如果想在第一行输入一个整数,//在第二行输入一个字符。//这样写,行不行?intaa;charccc;scanf(%d,&aa);scanf(%c,&ccc);printf(%d\n,aa);printf(%c\n,ccc);inta;//int的范围:-21亿到21亿之间,向两边扩展一点scanf(“%d”,&a);//longint和int是相同的。printf(“%d\n”,a);//unsignedint表示无符号整数,在0到42亿多点之间longlongb;//范围:在-1*10的19次方到1*10的19次方之间,向内收缩一点//在32位的电脑系统里,在不同的系统里面输入输出语法不一样//32位windows系统,用I64d。大写的i,不是小写的L。scanf(%I64d,&b);printf(%I64d\n,b);/*32位linux系统,用lld。小写的L,不是大写的i。scanf(%lld,&b);printf(%lld\n,b);*///在64位系统里,无论windows还是linux,用I64或lld都行。输入完数字以后的回车换行符也是字符,因此这样写接收不到第二行的字符int占4个字节,longint占4个字节,longlongint占8个字节。char占1个字节。float占4个字节,double占8个字节。sizeof()函数:求变量占几个字节。结果跟变量类型有关。在计算机里面,关于二进制的加减运算,从来都不单独处理符号。符号位也当成普通的数位进行加减运算。以4位二进制数为例:二进制数十进制数0000000011001020011301004010150110601117最大数1000-8最大数加一,变为最小数1001-71010-61011-51100-41101-31110-21111-1加一变为0,所以这儿是-100000//10.cpp//十进制、十六进制、八进制#includecstdiointmain(){inta=10;printf(%d\n,a);//以十进制形式输出printf(%X\n,a);//以十六进制输出//如果遇到字母,则输出大写字母printf(%x\n,a);