




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南省计算机二级考试培训内容一、 语言基础1、 标识符的命名规则(1) 只能为字母、数字、下划线(2) 第一个不能为数字(3) 不能与关键字同名2、常量的合法性(1)整形八进制:以0开头,只能出现数字(0-7)。如0234 非法的如078,出现了数字8十六进制:以0x开头,只能为(0-9,abcdef(ABCDEF) 合法的有 0x234abf,0x698AFE 非法的如0x34AFK,出现了K(2)实型 小数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-
2、5(非法) , 1.2E-3.5(非法)(3)字符 字符常量:用单引号括起来的单个普通字符 a,H等,非法的如abd 字符串常量:用双引号(“”)括起来的字符序列 如“abc”,“a“注意:“a“与a的区别3、变量 变量定义的一般格式: 数据类型 变量1,变量2,变量n;如 int ad,max,c;(定义三个变量,变量名为ad,max,c)。整形变量占2个字节,实型变量( float占4个字节, double占8个字节),字符变量占1个字节。指针变量占2个字节,结构体变量占其内各变量空间和,共用体变量占其内占空间最大的变量的字节数。变量必须先定义后使用,且使用前变量必须有确定值。4、运算符(
3、1)运算符的优先级,结合性(2)算术运算符:+,-,*,/,%,+,-。 两整数相除,结果为整数,如3/5=0。%要求两侧均为整型数据,如3.2%2(非法)。当+,-运算符与其他运算符混合运算时,对前置+,-先自增、自减,再用自增、自减后的值参与其他运算;对后置+,-先用值参与其他运算,再自增、自减。注意:+ - 不能用于常量和表达式,如5+,(a+b)+(3)关系运算符,逻辑运算符 关系运算符: = != 逻辑运算符:! & |这2种运算符的结果只为0和1。 对逻辑运算符,只看值的真和假(1代表真,0代表假),而不管值的大小,所有的非0值都为真,即1,只有0为假。 如543,其结果为0(先作
4、54运算,得结果1,再用1和3作13运算,得结果0)。 (4)逗号运算符 形式:表达式1,表达式2,表达式n结合性:从左向右优先级: 15,只比赋值运算符高逗号表达式的值:等于表达式n的值用途:常用于循环for语句中如a=3,a=a+4,a+6。表达式的值为a+6的值,即13,而a的值为7。5、三种结构的控制语句(1) 三种结构:顺序结构,选择结构,循环结构。(2) 选择结构if else ,switch格式:if (expression) statement1 elsestatement2 if-else格式中, if可以单独出现,但else 不能单独出现,必须与if 配对(配对原则:els
5、e总是和它上面离它最近的未配对的if配对),if-else 还可以嵌套。 格式:switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case En: 语句组 n; break; default: 语句组 ; break; 说明: E1,E2,En是常量表达式,且值必须互不相同语句标号作用,必须用break跳出case后可包含多个可执行语句,且不必加 switch可嵌套多个case可共用一组执行语句(3) 循环结构while 语句: 格式:while(表达式) 循环体语句; 说明:先判断表达式,后执行循环体,循环体有可能一次也
6、不执行循环体可为任意类型语句下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,return。无限循环: while(1) 循环体;do -while 语句: 格式:do 循环体语句; while(表达式); 说明:先执行循环体,后判断表达式至少执行一次循环体do-while 可转化成while结构for 语句:格式:for(循环变量赋初值;循环条件;循环变量增值) 循环体语句;说明:for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省无限循环: for(;)相当与for(;1;)for语句可以转换成while结构 三种循环可以嵌套,如:
7、 for( ; 4次;) do while(3次); while(5次) . for循环每变化一次,do-while要循环3次,while要循环5次。 break,continue语句 break语句:功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 continue语句:功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中 6、数组 概念:构造数据类型之一数组:有序数据的集合,用数组名标识元素:属同一数据类型,用数组名和下标确定
8、 一维数组的定义:定义方式: 数据类型 数组名常量表达式;例 int a6;一维数组的初始化:int a5=1,2,3,4,5; 说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值可以只给部分数组元素赋初值当全部数组元素赋初值时,可不指定数组长度 一维数组的引用:数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式: 数组名下标其中:下标可以是常量或整型表达式 二维数组的定义:定义方式: 数据类型数组名常量表达式常量表达式;二维数组的初始化:int a23=1,2,4;二维数组的引用:数组名下标下标; 说明:数组元素的存放顺序原因
9、:内存是一维的二维数组:按行序优先字符数组:定义:例 char c10, ch34;引用:char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;常用的字符串处理函数: 字符串输出函数puts格式:puts(字符数组)功能:向显示器输出字符串(输出完,换行)说明:字符数组必须以0结束 字符串输入函数gets格式:gets(字符数组)功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加0说明:输入串长度应小于字符数组维数 字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符
10、数组1的首地址说明:字符数组1必须足够大 连接前,两串均以0结束;连接后,串1的0取消,新串最后加0 字符串拷贝函数strcpy格式:strcpy(字符数组1,字符串2)功能:将字符串2,拷贝到字符数组1中去返值:返回字符数组1的首地址说明:字符数组1必须足够大 拷贝时0一同拷贝 不能使用赋值语句为一个字符数组赋值 字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或0为止返值:返回int型整数,a. 若字符串1 字符串2, 返回正整数 c. 若字符串1= 字符串2, 返回零说明:字符串比
11、较不能用“=”,必须用strcmp 字符串长度函数strlen格式:strlen(字符数组)功能:计算字符串长度返值:返回字符串实际长度,不包括0在内7、函数 定义形式:现代形式:函数类型 函数名(形参类型说明表) 说明部分 语句部分 例 int max(int x,int y) int z; z=xy?x:y; return(z); 传统形式:函数类型 函数名(形参表)形参类型说明说明部分语句部分 例 int max(x,y) int x,y; int z; z=xy?x:y; return(z); 函数返回值 形式: return(表达式); 或 return 表达式; 或 return;
12、 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:函数中可有多个return语句若无return语句,遇时,自动返回调用函数若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换void型函数函数参数及其传递方式形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放 值传递方式方式:函数调用时,为形参分配单元,并
13、将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:形参与实参占用不同的内存单元单向传递 地址传递方式方式:函数调用时,将数据的存储地址作为参数传递给形参特点:形参与实参占用同样的存储单元“双向”传递实参和形参必须是地址常量或变量函数的嵌套与递归调用嵌套调用:C规定:函数定义不可嵌套,但可以嵌套调用函数 递归调用: 8、宏定义 不带参数宏定义一般形式: #define 宏名 宏体功能:用指定标识符(宏名)代替字符序列(宏体)例 #define PI 3.14(用标识符PI代替3.14)带参宏定义#define 宏名(参数表) 宏体例 #define POWER(x)
14、 x*x 9、指针(1) 变量与地址,地址与内容的关系(2) &与*运算符&含义: 取变量的地址单目运算符优先级: 2结合性:自右向左 *含义: 取指针所指向变量的内容单目运算符优先级: 2结合性:自右向左注意与乘法运算符区别 (3)指针变量的定义一般形式: 存储类型 数据类型 *指针名;例 int *p1,*p2; float *q ; static char *name;指针变量的初始化:一般形式:存储类型 数据类型 *指针名=初始地址值(4) 指针变量的使用 与其他变量的使用相类似,区别是一般变量存的是值,而指针变量存的是地址。 针变量必须先赋值,再使用(5) 指针与数组 int arr
15、ay10; int *p; p=&array0; p=array;/或 int *p=&array0;或 int *p=array; (组名是表示数组首地址的地址常量)针变量的赋值运算p=&a; p)(将变量a地址p=array; p)(将数组array首地址p=&arrayi; p)(将数组元素地址p1=p2; p1)(指针变量p2值整型变量p,也不能把p的值不能把一个整数指针变量与其指向的变量具有相同数据类型 指针与数组间的等价关系 对于一维数组:数组名array表示数组的首地址,即array0的地址; 数组名array是地址常量array+i是元素arrayi的地址arrayi=*(ar
16、ray+i)对二维数组 int a34:a-二维数组的首地址,即第0行的首地址a+i-第i行的首地址ai=*(a+i)-第i行第0列的元素地址ai+j=*(a+i)+j -第i行第j列的元素地址*(ai+j)=*(*(a+i)+j)=aij注意:a+i=&ai=ai=*(a+i)=&ai0值相等,含义不同a+I=&ai,表示第i行首地址,指向行ai=*(a+i)=&ai0,表示第i行第0列元素地址,指向列(6) 指针与函数函数指针:函数在编译时被分配的入口地址,用函数名表示指向函数的指针变量:定义形式: 数据类型 (*指针变量名)();如 int (*p)();函数指针变量赋值:如p=max;
17、函数调用形式: c=max(a,b); 等价c=(*p)(a,b); 指针作为函数参数 指针作函数参数,采用的是地址传递。 (7)、指针数组 定义:数组中的元素为指针变量定义形式:存储类型 数据类型 *数组名数组长度说明;例 int *p4;8、指针总结定 义 含义int i; 定义整型变量iint *p; p为指向整型数据的指针变量int an; 定义含n个元素的整型数组aint *pn; n个指向整型数据的指针变量组成的指针数组pint (*p)n; p为指向含n个元素的一维整型数组的指针变量int f(); f为返回整型数的函数int *p(); p为返回指针的函数,该指针指向一个整型数
18、据int (*p)(); p为指向函数的指针变量,该函数返回整型数int *p; p为指针变量,它指向一个指向整型数据的指针变量一、 例题(1)单选1、程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符2、下列符号中,不合法的C语言标识符是 。Aa3b B. i_f C. _xy D. 3ok3、下列表达中,是C语言合法的常量的是 。A23 B. ab C. 03 D. 3+54、程序设计所规定的三种基本控制结构是 A) 输入、处理、输出 B) 树形、网形、环形 C) 顺序、选择、循环 D) 主程序、子程序、函数5、在C语言中,合法的字符常量是( )A)084 B)x43 C)
19、ab D)06、下列标识符合法的是( )。A)long B)_point C)3abc D)main7、设有 int x=11; 则表达式 (x+ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 128、合法的数组定义是( )A)char a6=string; B)int a5=0,1,2,3,4,5;C)char s=string; D)int a =0,1,2,3,4,5;9、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是( )A) 把x和y按从大到小排列B) 把x和y按从小到大排列C) 无确定结果D) 交换x和y中的值10、若a为int类型,且
20、其值为3,则执行完表达式a+=a-=a*a后,a的值是( )A) -3 B)9 C) -12 D) 611、在C语言中,不正确的int类型的常数是A)32768 B)0 C)037 D)0xAF12、下列正确的字符常量是( ) A)105 B)* C)4F D)A13、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32) 后,x的值为( ) A)4 B)16 C)32 D)5214、下列各语句定义了数组,其中哪一个是正确的( )。 A、int a5,b2,3; B、char no(10);C、int x; D、int x5=1,2,3;15、若变量a、iI已正确定义,且
21、i已正确赋值,合法的语句是 ( )A) a=1 B) +i; C) a=a+=5; D) a=int(i);16、能正确表示逻辑关系:“a=10或a0”的C语言表达式是 A) a=10 or a=0|a=10 &a=10ab?a:bc?b:c)等价于下面哪个式子。设a,b,c都是int,且有值。 A、(!a)b?a:(bc?b:c) B、!(ab)?a:(bc?b:c)B、 (!a)b?a:b)c?b:c D、(!(ab)?a:b)c?b:c29、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。A、p=q; B、*p=*q; C、n=*q; D、p=n;30、当
22、调用函数时,实参是一个数组名,则向函数传送的是 ( )A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值湖南省计算机二级C考试程序设计题目精选 201 1 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求1,100之间第10个能被其因子数目整除的正整数。 56 #include void main() int i,n,j,k=0; clrscr(); for (i=1;i=100;i+) n=0; for (j=1;jBC,求A,B,C均小于或等于100的倒勾股数有多少组? 5 #include #in
23、clude void main() int i,n=0,j,k; for (i=1;i=100;i+) for (j=i;j=100;j+) for (k=j;k=100;k+) if (fabs(1.0/(k*k)+1.0/(j*j)-1.0/(i*i)1e-10) n+;printf(%d,%d,%dn,i,j,k); printf(%dn,n); 203 3 已知AB,且A,B为正整数,求满足个条件AB=且A+B最小的A值。 563 #include stdio.h#include math.hvoid main() long int a,b,i,j; i=; j=; for(a=3;a
24、sqrt();a+=2) for(b=a;b2*sqrt();b+=2) if(a*b=) if(a+b)(i+j) i=a;j=b; printf(a=%ld,b=%1d,i,j);204 1 求666,777范围内素数的个数。 16 #include #include void main() int i,n=0,j; for (i=666;i=777;i+) for (j=2;jsqrt(i) n+; printf(%5d,i); printf(n%5d,n); 205 2 倒勾股数是满足公式:1/A2+1/B2=1/C2的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,
25、因为:1/1562+1/652=1/602。假定ABC,求A,B,C之和小于100的倒勾股数有多少组? 2 206 3 求方程X3-2X-5=0在区间1.5,2.5上的一个实根。要求:按四舍五入的方式精确到小数点后第二位。 2.09 #include #include void main() float x,x0=2.0,f,f0; do x=x0; f=x*x*x-2*x-5; f0=3*x*x-2; x0=x-f/f0; while(fabs(x-x0)=1e-6); printf(%.2f,x); 207 1 求351,432之间所有既不能被3整除,又不能被8整除的正整数的个数。 47
26、#include void main() int i,n=0; for (i=351;iBC,且要求A,B,C均小于或等于100,求满足倒勾股数公式的A,B,C之和的最大值是多少? 235 209 3 求方程X2-3*X+1=0在区间(0,1)内的解。要求:按四舍五入的方式精确到小数点后第二位。 0.38 210 1 求444,666范围内最大的素数是多少? 661 #include #include void main() int i,j,k; for (i=444;i=666;i+) k=sqrt(i); for(j=2;j=k) printf(%5d,i); 211 2 倒勾股数是满足公
27、式:1/A2+1/B2=1/C2的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/1562+1/652=1/602。假定ABC,且要求A,B,C均小于或等于100,求满足倒勾股数公式的各组正整数(A,B,C)中A的值的和是多少? 300 212 3 已知Fibonacci数列:1,1,2,3,5,8,它可由下面公式表述:F(1)=1ifn=1F(2)=1ifn=2F(n)=F(n-1)+F(n-2)ifn2试求F(1)+F(2)+F(50)值。提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 #include main() int i; do
28、uble f50=1,1,s=0; for(i=2;i50;i+) fi=fi-2+fi-1; for(i=0;i50;i+) if(i%2=0) printf(n); s=s+fi; printf(%15.0f,fi); printf(n%15.0f,s);213 1 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13.(注:该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。要求:按四舍五入的方式精确到小数点后第二位。 39.13 #include main() float s1=2,s2=1,s,t=0,i; t=t+
29、s1/s2; for (i=1;iBC,且要求A,B,C均小于或等于100,求满足倒勾股数公式的各组正整数(A,B,C)中C值的和是多少? 180 215 3 已知AB,且A,B为正整数,求满足条件AB=且A+B最小的B值。 1273 216 1 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。问100,300之间有多少个能被其因子数目整除的数。 19 #include void main() int i,n,j,k=0; clrscr(); for (i=100;i=300;i+) n=0; for (j=1;j=B,求所有小于或等于100(
30、即:A=100,B=100)的自然数对中B之和。 1160 #include stdio.h#include math.hvoid main() int a,b,n=0;float s1,s2; for(b=1;b=100;b+) for (a=b+1;a2试求F(2)+F(4)+F(6)+F(50)值。提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 219 1 求1,5000之间能同时被3和7整除的数的个数。 238 #include stdio.hvoid main() int i,j=0; for(i=1;i=5000;i+) if (i%3=0 & i%7=0
31、) j+;printf(%5d,i); printf(n%d,j);220 2 水仙花数是一个三位正整数,它等于它的各位数字的立方之和.例如:153=13+53+33,所以153是水仙花数.试求有多少个水仙花数? 4 #include stdio.hvoid main() int i,a,b,c,n=0; for(i=100;i2试求F(45)值。提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 2007222 1 设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番? 19 void main( ) long i
32、nt i=45600; int j=0; while (i=4*45600) i=i+i*0.08;j+; printf(%d,j);223 2 勾股弦数是满足公式:A2+B2=C2(假定ABC)的一组正整数(A,B,C),例如,(3,4,5)是勾股弦数,因为:32+42=52。求A,B均小于25且A+B+C=100的勾股弦数的个数。11 #include #include void main() int i,n=0,j,k; for (i=1;i=25;i+) for (j=i;j=25;j+) for (k=j;k=100;k+) if (i*i+j*j=k*k & i+j+k2试求F(1
33、)+F(3)+F(5)+F(49)值。提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 225 1 求1,5000之间能被3或7整除的数的个数。 2142 226 2 若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于32+42=52,则5为弦数,求100,200之间弦数的数目 4 227 3 设有6个十进制数字a,b,c,d,f,e,求满足abcdfe=fdcba条件的五位数abcdf(a0,e0,e1)的个数。 2 #include void main() long int a,b,c,d,e,f,n=0; for (e=2;e=9;e+) for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=0;c=9;c+) for(d=0;d=9;d+) for(f=0;f=9;f+) if (a*10000+b*1000+c*100+d*10+f)*e=f*10000+d*1000+c*100+b*10+a) printf(%ld,%ld,%ld,%ld,%ld,%ldn,a,b,c,d,f,e); n+; printf(n%ld,n);228 1 已知24有8个因子(即:1,2,3,4,6,8,12,24),而24正好被8整除。求1,100之间第二大能被其因子数目整除的数。 88 22
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢水快速测温项目可行性研究报告
- 废水回收资源项目可行性研究报告
- 2026年高考语文总复习文言文专题-教师版-古代文化常识(知识清单)
- 贸易合同中常见风险提示
- 医疗健康市场发展前景
- 北疆就业网就业协议书5篇
- 楼房加层建筑施工承建合同3篇
- 数字支付价格创新与电子商务深度融合-洞察及研究
- 11.5机械效率 同步练习 (含解析)2025-2026学年苏科版(2024)物理九年级上册
- 部门安全知识培训计划课件
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 2023年度中国人民抗日战争纪念馆招聘4人笔试备考题库及答案解析
- 针灸治疗肩痛的技术与方法课件
- 铝合金门窗 工程监理实施细则
- 北京京剧院劳动合同制职工招考聘用模拟卷含答案
- 风电工程电气监理细则资料
- 铁路工程量清单指南
- 化妆品进货验收台帐
- 工程经济学ppt全套教学课件
- 附件4:医院血透室医疗质量检查表
- 精选艾森克人格问卷测试成人版和少年版计分方式
评论
0/150
提交评论