答
使用的是visual studio 2015 企业版,源文件的名字一个后缀为结尾,.cpp。
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>\
int main()
{
return 0;
}
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>\
int main()
{
return -1;
}
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The ji of " << v1 << "and " << v2
<< "is" << v1 * v2 << std::endl;
return 0;
}
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" ;
std::cout << std::endl;
int v1 = 0;
int v2 = 0;
std::cin >> v1;
std::cin >> v2;
std::cout << "The ji of ";
std::cout << v1;
std::cout << "and ";
std::cout << v2;
std::cout << "is";
std::cout << v1 * v2;
std::cout << std::endl;
return 0;
}
std::cont<<"The sum of " << v1;
<<"and" << v2;
<< "is" << v1 + v2 << std::endl;
如果程序是合法的,它输出是什么呢?如果程序不合法,原因何在?应该如何修正?
答:不合法。第一行和第二行的输出流被分号终止了。
修改:
std::cont<<"The sum of " << v1
<<"and" << v2
<< "is" << v1 + v2 << std::endl;
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
/*
// 简单主函数
/* 读取两个数,求它们的和
*/
*/
int main()
{
return 0;
}
结果
std::cout << "/*";
std::cout << "*/";
std::cout << /* "/*" */;
std::cout << /* "*/" /* "/*" */;
答:第一、二、四个合法;第三个错误。
第一个:
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "/*";
return 0;
}
第二个:
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "*/";
return 0;
}
第四个:
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << /* " */" /* "/* " */ ;
return 0;
}
修正第三个:去掉/* */
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << " /*" ;
return 0;
}
代码
int sum = 0, val = 50;
int main()
{
while (val <= 100) {
sum = sum + val;
val = val + 1;
}
std::cout << "the sum of 50 to 100 is " << sum << std::endl;
return 0;
}
结果:
代码:
#include "stdafx.h"
#include <iostream>
int val = 10;
int main()
{
while (val >= 0) {
std::cout << val << std::endl;
val = val - 1;
}
return 0;
}
结果:
代码:
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
int val = 0, i = 0;
std::cout << "Please Enter two numbers:" << std::endl;
std::cin >> val >> i;
while (val >= i) {
std::cout << i << std::endl;
++i;
}
return 0;
}
}
结果:
int sum = 0;
for (int i = -100;i <= 100;++i)
sum += i;
答案
对-100到100的求和;sum的终值为0。
1.9: 代码
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
for (int val = 10; val >= 0; --val) {
std::cout << val << std::endl;
}
return 0;
}
结果:
1.10: 代码
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
int sum = 0;
for (int val = 10; val >= 0; --val) {
sum = sum + val;
}
std::cout << "the sum of 50 to 100 is " << sum << std::endl;
return 0;
}
结果
1.11: 代码
#include "stdafx.h"
#include <iostream>
int main()
{
int val = 0, i = 0;
std::cout << "Please Enter two numbers:" << std::endl;
std::cin >> val >> i;
for (int i; i <= val; ++i) {
std::cout << i << std::endl;
}
return 0;
}
结果
答
两者的概念: while:执行过程中交替地检测condition条件和执行关联的语句statement,直至condition为假时停止。 for:包含两部分:循环头和循环体。循环头控制循体的执行次数,它由三部分组成:一个初始化语句(init-statement)、一个循环条件(condition)以及一个表达式(expression)。
总结: for:形式较简洁,且特别适用于循环次数已知的情况。 while:循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。 两种形式各有优点,但它们在功能上是等价的,可以相互转换。
错误的分类:
语法错误:
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
//错误:main的参数列表漏掉了
int main({
//错误:endl后使用了冒号而非分号
std::cout << "Read each file." << std::endl:
// 错误:字符串字面常量的两侧漏掉了引号
std::cout << Update master. << std::endl;
// 错误: 漏掉了第二个输出运算符
std::cout << "Write new master." std::endl;
// 错误: return 语句漏掉了分号
return 0
}
类型错误: c++中每个数据项都有其类型。例如,10的类型是int(或者通俗的说,“10 是一个int型数据”)。单词“hello”,包括两侧的双引号标记,则是一个字符串字面值常量。一个类型错误的例子是,向一个期望参数为int的函数传递了一个字符串字面值常量。
声明错误: c++程序中的每个名字都要先声明后使用。 常见错误:对来自标准库的每个名字忘记使用std::、标识符名字拼写错误。
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
int v1 = 0, v2 = 0;
std::cin >> v >> v2; // 错误:使用了“v”而非“v1”
// 错误:cout未定义;应该使用std;:cout
cout << v1 + v2 << std::endl;
return 0;
}
代码
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
int v1 = 0,v2 = 0,v3 = 0;
std::cin >> v1 >> v2 >> v3;
std::cout << "the sum of the numbers is "<< v1 + v2 + v3<< std::endl;
}
结果