C的32个关键字9种控制语句34个运算符_第1页
C的32个关键字9种控制语句34个运算符_第2页
C的32个关键字9种控制语句34个运算符_第3页
C的32个关键字9种控制语句34个运算符_第4页
C的32个关键字9种控制语句34个运算符_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C的32个关键字9种控制语句34个运算符2022年1月5日星期三一、32个关键字(一)分类:32个关键字每个都有不同的意义,大体上根据其意义可以分为以下几类(下划线表示不同分类中有交集):非常见:auto、register、volatile、goto存储相关:const、extern、register、volatile、static、auto、signed、unsigned数据类型:char、short、int、long、float、double、struct、union、enum、void逻辑控制:if、else、for、while、do、break、continue、return、defa

2、ult、switch、case、goto特殊用途:sizeof、typedef(二)含义:C语言32个关键字含义分述如下:1、auto :声明自动变量 2、short :声明短整型变量或函数 3、int: 声明整型变量或函数4、long :声明长整型变量或函数 5、float:声明浮点型变量或函数 6、double :声明双精度变量或函数 7、char :声明字符型变量或函数 8、struct:声明结构体变量或函数 9、union:声明共用体数据类型 10、enum :声明枚举类型 11、typedef:用以给数据类型取别名 12、const :声明只读变量/常变量 13、unsigned:声

3、明无符号类型变量或函数 14、signed:声明有符号类型变量或函数 15、extern:声明变量是在其他文件中已定义/声明 16、register:声明寄存器变量 17、static :声明静态变量 18、volatile:说明变量在程序执行中可被隐含地改变。即设置内存变量在CPU访问时直接内存读写方式,即不经过CPU中的高速缓冲cache或寄存器。volatile意“易变的”,在程序中,当未使用volatile关键字定义的变量,如int x;在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本

4、线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。当使用volatile关键字定义的变量,如volatile int x;每次读取x值时均从内存读取,而不经过速度较快的寄存器或cache。即volatile应该解释为“直接存取原始内存地址”比较合适。19、void :声明函数无返回值或无参数,声明无类型指针 20、if:条件语句 21、else :条件语句否定分支(与 if 连用) 22、switch :用于开关语句23、case:开关语句分支 24、for:一种循环语句 25、do :循环语句的循环体 26、while :循环语句的循环条件 27、goto:无条件跳转语句

5、28、continue:结束当前循环,开始下一轮循环 29、break:跳出当前循环/当前switch结构30、default:开关语句中的“其他”分支 31、sizeof:计算数据类型长度 32、return :函数返回语句(可以带参数,也可不带参数)二、C语言9种控制语句if( )else     条件语句for( )        循环语句while( )      循环语句dowhile( )  &

6、#160; 循环语句continue       结束本次循环语句break          中止执行switch或循环语句switch         多分支选择语句goto           无条件转向语句return   

7、;      从函数返回语句三、34种运算符按优先级由高向低排序如下:  其中第14至第31种运算符均为双目,按左结合律。 1、 () 圆括号 2、 下标 3、->指针型结构成员 4、.结构成员直接指定 5、!逻辑非 6、按位非 7、+自增 8、-自减 9、-取负 10、(类型)类型转换 11、*取内容/间接访问12、&取地址 13、sizeof求字节 

8、 注:第513均为单目运算,且都为右结合律。14、*乘 15、/除 16、%求余 17、+加 18、-减 19、<<左移 20、>>右移 21、<小于 22、<=小于等于 23、>大于 24、>=大于等于 25、=等于 26、!=不等于 27、&按位与 28、按位异或 29、|按位或 30、&&逻辑与 31、|逻辑或 32、?:条件运算

9、 注:第32种运算符为三目运算,右结合律。33、=赋值运算 注:另有10个扩展符+=,-=,*=,/=,%=,>>=,<<=,&=,=,|= 34、,逗号运算。C语言程序设计统考试题编程:输入一不包含空格的字符串,判断输入的字符串是否为回文。回文算法:回文是相对中心左右对称的字符串。如字符串“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。要求判断字符串是否为回文的功能用函数实现。“level”也是回文字符串。答案1:#include<stdio.h> #include<string.h>

10、; void huiwen(char* str,int n); void main() char str10; int len; printf("请输入字符串:"); scanf("%s",str); len=strlen(str); huiwen(str,len); void huiwen(char* str,int n) int net=0; int i,j; for(i=0,j=n-1;i<n/2;i+,j-) if(stri=strj) net+; if(net=(int)n/2) printf("%s:是回文字符串.n"

11、;,str);else printf("%s:不是回文字符串.n",str);答案2:#include<stdio.h> #include<string.h> void main() char s255;int i,j,b=1; printf("Input a string:"); scanf("%s",s); i=strlen(s); for(j=1;j<=i/2;j+) b=b&&(sj-1=si-j); printf(b?"Yesn":"Non"

12、;);回文数是指正读和反读都一样的正整数。例如,5775"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。基本情况1千以内在自然数中,最小的回文数是0,其次是1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,323,333,343,353,363,373,383,393,404,414,4

13、24,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999.平方回数定义:一个回文数,它同时还是某一个数的平方,这样的数字叫做平方回数。例如:121。100以上至1000以内的平方回数只有3个,分别

14、是:121、484、676。其中,121是11的平方。484是22的平方,同时还是121的4倍。676是26的平方,同时还是169的4倍。举例说明任意某一个数通过以下方式相加也可得到如:29+92=121 还有 194+491=685,586+685=1271,1271+1721=2992不过很多数还没有发现此类特征(比如196,下面会讲到)另外个别平方数是回文数1的平方=111的平方=121111的平方=123211111的平方=1234321依次类推3×51=1536×21=1264307×62=2670349×7×533=33579上面这

15、些算式,等号左边是两个(或三个)因数相乘,右边是它们的乘积。如果把每个算式中的“×”和“=”去掉,那么,它们都变成回文数,所以,我们不妨把这些算式叫做“回文算式”。还有一些回文算式,等号两边各有两个因数。请看:12×42=24×2134×86=68×43102×402=204×2011012×4202=2024×2101不知你是否注意到,如果分别把上面的回文算式等号两边的因数交换位置,得到的仍是一个回文算式,比如:分别把“12×42=24×21”等号两边的因数交换位置,得到算式是:42

16、×12=21×24这仍是一个回文算式。还有更奇妙的回文算式,请看:12×231=132×21(积是2772)12×4032=2304×21(积是48384)这种回文算式,连乘积都是回文数。四位的回文数有一个特点,就是它决不会是一个质数。设它为abba,那它等于a*1000+b*100+b*10+a,1001a+110b。能被11整除。六位的也一样,也能被11整除还有,人们借助电子计算机发现,在完全平方数、完全立方数中的回文数,其比例要比一般自然数中回文数所占的比例大得多。例如112=121,222=484,73=343,113=133

17、1,114=14641都是回文数。研究现状人们迄今未能找到自然数(除0和1)的五次方,以及更高次幂的回文数。于是数学家们猜想:不存在nk(n2,k5;n、k均是自然数)形式的回文数。在电子计算器的实践中,还发现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。这也仅仅是个猜想,因为有些数并不“驯服”。比如说196这个数,按照上述变换规则重复了数十万次,仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数,也不知道需要再运算多少步才能最终得到回文数。用visual basic6.0for i = 100 t

18、o 99999 '这里从100开始 后面可以随便填,我这里填99999 表示所有3位数到五位数之间的回文数if StrReverse(i)=i then print i '用StrReverse函数 判断倒序后的数和原来数是否相同,如果相同者表示此数为回文数next用C语言编程#include<stdio.h>int x,y;separate(int *data,int n)int i,j;y=0;while(n!=0)*(data+y)=n%10; n=n/10; y+;*(data+y)='0'for(i=0,j=y-1; i<=j; i+

19、,j-)if(*(data+i)=*(data+j)printf("%d 是回文!n",x);break;else printf("%d 不是回文 !n",x);break;void main()int a99;printf("请输入一个正整数:");scanf("%d",&x);separate(a,x);另外一种实现方法(c+)更简便#include<iostream>using namespace std;bool symm(long m)long temp = m,n=0;while (

20、temp)n = n*10+temp%10;temp = temp/10;return (m = n);int main(int argc, _TCHAR* argv)long m;cout<<"请输入一个整数:"cin>>m;cout<<"输入了"<<symm(m)<<"个回文数!"return 0;回文字符串是具有回文特性的字符串:即该字符串从左向右读,与 从右向左读都一样.如:凤落梧桐梧落凤,abcba等。#include <stdio.h>#include <string.h>int main( ) int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论