C语言教程 第37页

C 类型转换-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 类型转换

学习C – C类型转换 要将变量的值转换为其他类型,请将要转换的类型放在变量前面的括号中。 因此,正确计算结果的语句如下: result = (float)my_variable/150*my_variable; Example #include <stdio.h> int main(void) { double result = 0.0; int a = 5; int b = 8; result = (double)(a + b)/2 - (a + b)/(double)(a*a + b*b); printf("%f", result); return 0; } 上面的代码生成以下结果。 例子 自动类型转换 #include <stdio.h> int main(void) { char ch; int i; float fl; fl = i = ch = "C"; printf("ch = %c, i = %d, fl = %2.2f\n", ch, i, fl); ch = ch + 1; i = fl + 2 * ch; fl = 2.0 * ch + i; printf("ch = %c, i = %d, fl = %2.2f\n", ch, i, fl); ch = 1107; printf("Now ch = %c\n", ch); ch = 80.89; printf("Now ch =...

C 整数类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 整数类型

学习C – C 整数类型 带符号的整数类型 我们有五种基本类型的变量来存储带符号的整数值,因此可以存储正值和负值。 每种类型由不同的关键字或关键字的组合指定,如下表所示。 类型名称 字节数 signed char 1 short 2 int 4 long 4 long long 8 以下是这些类型的变量的一些声明: short shoe_size; int house_number; long long star_count; 类型名称short,long和long long可以写成short int,long int和long long int,并且可以选择性地在前面签署关键字。 但是,这些类型几乎总是以缩写形式写成,如上表所示。 类型int也可以写为signed int。 您可以存储的值范围取决于您使用的特定编译器。 例子 #include <stdio.h> int main(void) { int ten = 10; int two = 2; printf("%d minus %d is %d\n", ten, 2, ten - two ); return 0; } 上面的代码生成以下结果。 无符号整数类型 一些数据总是正的。 对于这些数据,您不需要提供负值。 对于每个有符号整数,存在相应的无符号类型整数,无符号类型与签名类型占用相同的内存量。 每个未签名的类型名称是带有关键字unsigned的前缀的带符号类型名称。 下表显示了可以使用的无符号整数类型的基本集合。 类型名称 字节数 unsigned char 1 unsigned short 或 unsigned short int 2 unsigned int 4 unsigned long 或 unsigned long int 4 unsigned long long 或 unsigned long long int 8 使用给定的位数,可以表示的不同值的数量是固定的。 例如,32位整数变量可以存储4,294,967,296个不同的值。 使用无符号类型不会提供比对应的签名类型更多的值。 以下是无符号整数变量声明的示例: unsigned int count; unsigned long population; 以下代码显示如何声明unsigned int。 #include <stdio.h> int...

C 变量-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 变量

学习C – C变量 变量是保存一个或多个连续字节的特定内存块。 程序中的每个变量都有一个名称,它将对应于该变量的内存地址 我们使用变量名称将数据值存储在内存中或检索内存中包含的数据。 以下代码硬编码字符串中的值10。它不使用变量。 #include <stdio.h> int main(void) { printf("My salary is $10."); return 0; } 上面的代码生成以下结果。 命名变量 变量名称是以一个字母开头的一个或多个大写或小写字母,数字和下划线字符(_)的序列。 合法变量名称的示例如下: 半径直径Current_May my_Result D123 变量名不能以数字开头,因此8_value和6_size不是合法名称。 变量名不能包含字母,下划线和数字以外的字符。 声明变量 要声明一个名为myvar1的变量,请写下列内容: int myvar1; int 是数据类型。 以下是可以在C语言中使用的常见数据类型的列表。 int long float char double 我们也可以写下如下许多变量: int myvar1, myvar2; 一旦声明,这些变量可以用于根据数据类型存储数据。 赋值变量 您声明的变量可以由值赋值。 它可以使用等号(=)。 例如,变量myvar1将赋值数字100,你会写这个: int myvar1 = 100; 您还声明如下 int myvar1; myvar1 = 100; 您必须根据数据类型正确地为变量赋值。 如果没有,编译过程中会出错。 示例:使用变量 您可以重写以前的程序以使用int类型的变量,它是一个整数类型: #include <stdio.h> int main(void) { int salary; // Declare a variable called salary salary = 10000; // Store 10000 in salary printf("My salary is %d.\n", salary); return 0; } 上面的代码生成以下结果。 注意 识别您用于存储工资的内存的语句如下: int salary; // Declare a variable called salary 该语句称为变量声明,因为它声明变量的名称。 在这种情况下,名称是salary。 变量声明以分号结尾。 变量声明还指定变量将存储的数据类型。 你使用关键字int来指定变量 salary 将用于存储int类型的整数值。 关键字 int 在变量的名称之前。 这只是您可以用来存储整数的几种不同类型之一。 关键字是在C中保留的具有特殊含义的词。 您不能在代码中使用关键字作为变量或其他实体的名称。 如果这样做,您的编译器将产生错误消息。 下一个声明是: salary =...

C 函数示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 函数示例

学习C – C函数示例 C中的声明函数可以写成如下 void foo(){ printf("foo() was called\n"); } 我们把这个函数放在main()函数上面。 然后,我们可以调用这个函数,forinstance foo()。 #include <stdio.h> //w w w. jav a 2 s . com void foo(){ printf("foo() was called\n"); } int main(int argc, const char* argv[]) { foo(); return 0; } 上面的代码生成以下结果。 例子 我们还可以在main()函数的下面声明一个函数,但是我们必须声明我们的函数名。 #include <stdio.h> /*from www. ja v a2 s . c om*/ // implicit declaration for functions void boo(); int main(int argc, const char* argv[]) { boo(); return 0; } void boo(){ printf("boo() was called\n"); } 上面的代码生成以下结果。 带参数和返回值的函数 您可能需要创建一个具有参数和返回值的函数。 这很容易因为你只是调用return进入你的函数。 #include <stdio.h> /*from w w w . j a v a2s .c o m*/ // implicit declaration for functions int add(int a, int b); int main(int argc, const char* argv[]) { int result = add(10,5); printf("result: %d\n",result);...

C 数组-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 数组

学习C – C数组 什么是数组? 数组包含固定数量的具有相同类型的数据项。 数组中的数据项被称为元素。 我们在名字之后放置一个方括号 [] 之间的数字。 long numbers[10]; 方括号之间的数字定义了数组包含的元素数量。 它被称为数组维。 数组索引值从零开始,而不是一个。 以下代码显示如何平均存储在数组中的十个等级。 #include <stdio.h> int main(void) { int grades[10]; // Array storing 10 values unsigned int count = 10; // Number of values to be read long sum = 0L; // Sum of the numbers float average = 0.0f; // Average of the numbers printf("\nEnter the 10 grades:\n"); // Prompt for the input // Read the ten numbers to be averaged for(unsigned int i = 0 ; i < count ; ++i) { printf("%2u> ",i + 1); scanf("%d", &grades[i]); // Read a grade sum += grades[i]; // Add it to sum } average = (float)sum/count; // Calculate the average printf("\nAverage of the ten grades entered is: %.2f\n",...

C 日期和时间函数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 日期和时间函数

学习C – C日期和时间函数 time.h标头声明产生时间和日期的函数。 获取时间值 返回时间值的最简单的函数具有以下原型: clock_t clock(void); 这个函数返回一些参考点后的处理器时间。 在程序中的某些进程的开始和结束处,调用clock()函数。 返回值的类型为clock_t,它是在time.h中定义的整数类型。 clock()函数返回的值以时钟刻度来度量。 要将此值转换为秒,请将其除以由time.h中定义的宏CLOCKS_PER_SEC生成的值。 如果发生错误,clock()函数返回-1。 time()函数返回日历时间作为类型为time_t的值。 日历时间是当前时间,通常以特定日期的固定时间为单位,以秒为单位。 固定的时间和日期通常是1970年1月1日00:00:00 GMT,这是时间值的定义的典型。 time()函数的原型是: time_t time(time_t *timer); 如果参数不为NULL,则当前日历时间也存储在定时器中。 类型time_t在头文件中定义,通常等同于long类型。 要计算time()返回的两个连续time_t值之间的经过时间(秒),可以使用具有此原型的difftime()函数: double difftime(time_t T2, time_t T1); 该函数将以秒为单位的T2 – T1值返回double类型的值。 该值是在产生time_t值T1和T2的两个time()函数调用之间经过的时间。 例子 #include <stdio.h> #include <time.h> #include <math.h> #include <ctype.h> int main(void) { time_t calendar_start = time(NULL); // Initial calendar time clock_t cpu_start = clock(); // Initial processor time int count = 0; // Count of number of loops const long long iterations = 1000000000LL; // Loop iterations char answer = "y"; double x = 0.0; printf("Initial clock time = %lld Initial calendar time = %lld\n", (long long)cpu_start, (long long)calendar_start); while(tolower(answer) == "y") { for(long long i = 0LL ; i < iterations ; ++i) x =...

C 数学函数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 数学函数

学习C – C数学函数 C提供数学库来操作数学运算。 你必须包括math.h以实现数学运算。 例子 以下是数学函数使用的插图代码: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float a; float b; float pi = 3.14; a = 0.5; printf("value a = % .2f \n",a); b = abs(-a); printf("abs(a)=% .2f \n",b); b = acos(a); printf("acos(a)=% .2f \n",b); b = asin(a); printf("asin(a)=% .2f \n",b); b = atan(a); printf("abs(a)=% .2f \n",b); b = atan2(a,5); printf("atan(a,5)=% .2f \n",b); b = cos(a); printf("cos(a)=% .2f \n",b); b = sin(a); printf("sin(a)=% .2f \n",b); b = tan(a); printf("tan(a)=% .2f \n",b); b = sqrt(a); printf("sqrt(a)=% .2f \n",b); return 0; } 上面的代码生成以下结果。

C 字符串-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 字符串

学习C – C字符串 字符串常量是一对双引号字符之间的字符序列。 一对双引号之间的任何内容都由编译器解释为字符串。 以下语句说明了这一点: printf("This is a string."); printf("This is on\ntwo lines!"); printf("For \" you write \\\"."); 我们可以在字符串末尾添加一个 \0 字符。 #include <stdio.h> int main(void) { printf("The character \0 is used to terminate a string."); return 0; } 上面的代码生成以下结果。 存储字符串的变量 C没有字符串变量类型,没有处理字符串的特殊操作符。 C标准库提供一系列处理字符串的函数。 您使用一个类型为char的数组来容纳字符串。 你可以这样声明一个数组变量: char my_string[20]; 此变量可以容纳最多包含19个字符的字符串,因为必须允许一个元素作为终止字符。 您可以使用此数组来存储不是字符串的20个字符。 编译器会自动将 \0 添加到每个字符串常量的末尾。 您可以在声明它时初始化一个字符串变量: char my_string[] = "This is a string."; 这里你没有明确定义数组维度。 编译器将为维度赋值一个值,该值足以容纳初始化字符串常量。 在这种情况下,它将是18.17个元素是字符,一个额外的元素是为终止\0。 您可以使用字符串初始化char类型的元素数组的一部分。 例如: char str[40] = "To be"; 编译器会将前五个元素str [0]初始化为str [4],其中字符串的字符为常量,str [5]将包含空字符’\ 0’。 为阵列的所有40个元素分配内存空间。 初始化char数组并将其声明为常量是处理标准消息的好方法: const char message[] = "This is a test."; 要引用存储在数组中的字符串,请使用数组名称。 例如,要使用printf()函数输出存储在消息中的字符串,可以这样写: printf("\nThe message is: %s", message); %s 规范用于输出一个以null结尾的字符串。 字符串格式化 #include <stdio.h> #define BLURB "Authentic imitation!" int main(void) { printf("[%2s]\n", BLURB); printf("[%24s]\n", BLURB); printf("[%24.5s]\n", BLURB); printf("[%-24.5s]\n", BLURB); return 0; } 上面的代码生成以下结果。 例子 以下代码显示如何获取字符串的长度。 #include <stdio.h>...

C 控制台输入函数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 控制台输入函数

学习C – C控制台输入 我们可以通过多种方式从键盘读取输入。 以下是从键盘读取输入的函数列表: getchar() gets() scanf() getchar()和putchar()函数 getchar()函数用于从键盘获取一个字符,putchar()函数用于向Terminal打印一个字符。 #include <stdio.h> void getchar_putchar(); int main() { getchar_putchar(); return 0; } void getchar_putchar(){ int c; printf ("Type a character: "); c = getchar(); printf ("char: %c\n",c); putchar(c); printf("\n"); } 上面的代码生成以下结果。 gets()和puts()函数 gets()用于读取文本。如果您输入换行符(ENTER键),将停止阅读。 我们可以使用fgets()来读取长度限制的文本。 #include <stdio.h> void gets_puts(); int main() { gets_puts(); return 0; } void gets_puts(){ char name[256]; printf ("Your name: "); gets (name); printf ("name: %s\n",name); puts(name); name[0] = "\0"; // clear printf ("Your name: "); fgets(name,256,stdin); printf ("name: %s\n",name); puts(name); } 上面的代码生成以下结果。 scanf()函数 另一种方法,我们可以使用scanf()函数来读取文本。 #include <stdio.h> void scanf_demo(); int main() { scanf_demo(); return 0; } void scanf_demo(){ int num; char c; char city[15]; float dec; printf("Please enter an integer value: "); scanf("%d", &num ); // %c ignores space...