全国计算机2级C语言需要买什么资料

Python012

全国计算机2级C语言需要买什么资料,第1张

买关于关于c语言的资料就行,例如《全国计算机等级考试全能教程:2级C语言》。

全国计算机2级C语言的要求是熟悉 Visual C++ 6.0 集成开发环境、掌握结构化程序设计的方法,具有良好的程序设计风格、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

还能在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。

二级为考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。考试科目有语言程序设计(C、C++、Java、Visual Basic、Delphi)、数据库程序设计(Visual FoxPro、Access)共七个科目。

扩展资料

计算机技术的应用在我国各个领域发展迅速,为了适应知识经济和信息社会发展的需要,操作和应用计算机已成为人们必须掌握的一种基本技能。

许多单位、部门已把掌握一定的计算机知识和应用技能作为人员聘用、职务晋升、职称评定、上岗资格的重要依据之一。

鉴于社会的客观需求,经原国家教委批准,原国家教委考试中心于1994年面向社会推出了NCRE,其目的在于以考促学,向社会推广和普及计算机知识,也为用人部门录用和考核工作人员提供一个统一、客观、公正的标准。

参考资料来源:百度百科-全国计算机等级考试二级C

c语言总复习资料

一 c语言的基本组成单位——函数。1.main()2库函数;3.自定义函数。Abc()

二 函数的组成:1.函数的首部,函数的第一行语句(包括函数的返回值类型、函数名、函数参数类型及函数参数名)。()不可省略,例如:void main() 2.函数体,包括函数的声明部分(声明在该程序中所要用到的函数)、定义部分(定义函数可能要用到的变量)、执行部分(用于实现函数的功能)。

三 函数必不可少的分号。

四 输入输出所使用的函数:scanf、getchar、gets、printf、putchar、puts等。

五 注释:不能嵌套。习题94页18题。

六 大小写区分:printf与Printf之不一样。

七 C语言上机过程:编辑(.c)——>编译(.obj)——>连接(.exe)——>运行得结果。

八 C程序执行是从main()函数开始,到main函数结束处结束。

九 进制转换:着重掌握十、八、十六进制及相互转换,原补码(位运算中要用到)。

十 用户自定义标识符:1.字母、数字、下划线。2第一个字母不能为数字。3.不能与c语言所定义的关键字相同,但可以与预定义标识符同。

十一 常量:

1整形常量 十进制、八进制(以0开头)、十六进制(以0x开头)后两种无负数。

2实型常量 2.78(小数点两边至少有一边要有数字)5.48e-3(e前必有数字,e后必为整数)

3字符型常量 a.一般字符’a’ b.转义字符:一般转义字符、八\十六进制转义字符。’\n’,’\\’,’\t’,’\”’,’\64’,’\82’,’\x42’,’\xff’,’a12’.

4字符串常量 “a” vs ’a’

十二 变量 1.必须要先定义后使用;2变量三要素 变量类型 变量名 变量值

例1:下面不是c语言整形常量的是 A. 02 B. 0 C.038D.0xAL

例2:合法的实型常量是A. 5E2.0 B.E-3 C.2E0 D 1.3E

例3:若有语句char a;并要将字符a赋值给变量a,则下列正确的赋值表达式是

A.a=”a” B.a=’a’C.a=”97”D.a=’97’

例4:以下合法的定义是:

A. float _a=1.1e-1 B. double b=1+5e2.5 C.long do=0xfdaL D.float 2_and=1-e-3

十三.求余原则:1.两边都要为整数;

2.先取绝对值求余,余数与被除数符号相同。特别要注意’%’与’/’ 的区别。 -10/3 10/-3

十四. 赋值运算符及表达式:运算顺序自右致左,左边必须要是一个变量(能够存放东西)。

a=b=c=10(定义处不能这样)x+y=10x+1=10

十五. 逗号表达式:a=(b=5,b+10)b=(a=4*9,a*2),a-3要考虑优先级。

十六. 类型转换 char a=’a’int b=32float c=32.5double s,d=32s=a+b+c+d

十七.强制类型转换 float b=3.5int aa=(int)b

例5:设有int x=11;则表达式(x++*1/3)的值是 A 3 B 4

例6:设有int a=1,b=1,c=1a=a+++b+++c最终a、b、c的值是:a=4b=2c=1

例7:有以下定义和语句组:float x=1;int y=2;y+=++x*++x则最终y的值为:11

例8:int x=2;printf(“%d”,((x=4*5,x*5),x+25))45

例9:若变量已正确定义并赋值,以下符合c语言语法的表达式是

A.a:=b+1 B.a=b=c+2 C. int 18.5%3D.a=a+7=c+b

十八 输入输出格式ch=getchar()putchar(ch) scanf(“%d%f%c”,&a,&b,&c)printf(“%d,%d”,a,b)

例10:有以下程序,输出的结果是

main(){int achar c=10float f=100.0double x

a=f/=c*=(x=6.5)printf(“%d %d %3.1f %3.1f\n”,a,c,f,x)}1 65 1.5 6.5 (习题集2.13)

十九.逻辑运算及其短路现象(对于逻辑与和逻辑或而言)

二十.关系运算符及表达式a>b>c 优先级要清楚(即关>逻辑)

二十一.条件运算符及表达式a>b?a:c>d:c:d等价与a>b?a:(c>d?c:d) 设a=1,b=2,c=3,d=4 4

例11:以下程序的输出是 A. d=0 c=50 B.d=0 c=2 C.d=1 c=50D.d=1 c=2

main(){int a=3,b=4,c=2,d d=a<!b&&(c=50)>b printf(“d=%d c=%d”,d,s)}

二十二.if语句 例12:以下程序输出结果是

int i=1,j=1,k=2 if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k)2,2,2

if-else语句注意:if后只能管一个语句

main(){int a=2,b=-1,c=2if(a<b) if(b<0) c=0

else c++printf(“%d\n”,c)}

二十三.switch 语句 以下程序的输出是: main(){int x=1,a=0,b=0

switch(x) {case 0:b++case 1:a++case 2:a++b++} printf(“a=%d,b=%d\n”,a,b)} a=2,b=1

二十四.while vs do-while

main()

{int i=0,n=0

while(n!=0){i++++i} printf(“%d”,i)

}

main()

{int i=0,n=0

do {i++++i} while(n!=0) printf(“%d”,i)

}

二十五 break vs continue

注意:break语句只能出现在循环体和switch语句中而continue只出现在循体环中。

main()

{int sum,isum=0 for(i=10i>0i--) {if(i>5) continuesum=sum+i} printf("%d\n",sum)}

例13:以下程序的输出是: main(){int a,ya=5y=0a=7 y=7

do{ a+=2y+=aprintf(“a=%d y=%d\n”,a,y)if(y>10) break }while(a==7)}a=9 y=16

例14:以下程序的输出是: main(){int k=4,n=0 for(n<k){n++if(n%3!=0) continuek--;}

printf(“%d,%d\n”,k,n)} 3,3

二十六.一维数组的定义、赋初值、引用。注意:int a[10]={0}中括号例常量表达式 ,下标从0开始 例15:若有定义float y[5]={1,2,3}则下列描述正确的是:( )

A. y并不代表数组元素 B.定义此数组时不指定数组的宽度,定义效果一样

C.数组含有三个元素 D.a[3]的值是3

例16:以下程序的输出是:main(){int z,y[3]={2,3,4}z=y[y[0]]printf(“%d”,z)} 4

例17:以下程序的输出是:main(){int p[7]={11,13,14,15,16,17,18},i=0,k=0

while(i<7&&p[i]%2) {k=k+p[i]i++}printf(“%d\n”,k)} 24

例18:以下程序的输出是:

main(){int n[5]={0,0,0},i,k=2for(i=0i<ki++) n[i]=n[i]+1printf(“%d\n”,n[k])} 0

二十七.二维数组的定义、赋初值、引用

例19:main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0for(i=1i<3i++)

for(j=0j<=ij++) s+=a[i][j]printf(“%d\n”,s)} 18

例20:以下不能正确定义二维数组的是:

A int a[2][2]={{1},{2}}B int a[][2]={1,2,3}C int a[2][2]={{1},2,3}D int a[2][]={{1,2},{3,4}}

例21:若a是一个m行n列的数组,则a[i][j]是数组的第( )个元素

A i*m+jB i*m+j+1 C i*n+j D i*n+j+1

二十八 字符数组的定义、赋初值、引用

1.char arr[10]={‘h’,’e’,’l’,’l’,’o’} 2.char arr[]={‘h’,’e’,’l’,’l’,’o’,’\0’}

3.char arr[10]={“hello”} 4.char arr[10]=”hello”

二十九 字符串输入输出 若char str[10]=”hello”,arr[10]=”me”

scanf(“%s”,str) printf(“%s”,str) gets(str) puts(str)

strcpy(arr,str) strcmp(str,arr) strlen(str) strcat(str,arr)

例22:以下程序的输出是:

main(){char st[20]=”hel\0lo\t”printf(“%d%d\n”,strlen(st),sizeof(st))} 3,20

例23:以下程序的输出是:char s[]=”\\141\141abc\t”printf(“%d\n”,strlen(s))9

三十 指针与字符串 char *aa=”hello”char a[10]a=”hello”

例24:以下选项中正确的语句组是:( ) A.char s[8]s={“Beijing”}

B.char *ss={“Beijing”} C.char s[8]s=”Beijing”D.char *ss=”Beijing”

三十一 有参函数的声明、定义、与调用。

float add(float x,float y)/*函数的声明*/

mai()

{int a=3.5,b=4.0,d

d=add(a,b)/*函数的调用*/

}

float add(float x,float y)/*函数的定义*/

{return x+y}

三十二 函数的嵌套调用与递归调用

double fun1(double a) {return a*=a}

double fun2(double x,double y)

{ double a=0,b=0

a=fun1(x)b=fun1(y)

return (int)(a+b)}

main()

{double ww=fun2(1.1,2.0)

printf("%f\n",w)} /*嵌套调用*/

long fib(int n)

{if(n>2) return (fib(n-1)+fib(n-2))

else return 2}

main(){printf(“%d\n”,fib(3))}/*递归调用*/

三十三 函数中的值传递与地址传递(不管是传递什么,实质都是传值,只不过一个是传递地址值而已)

func(int a){a=100}func(int a[]) {a[0]=100}

main(){int a=10func(a)printf(“%d”,a)} main(){int a[1]a[0]=10func(a)printf(“%d”,a[0])}

三十四 局部变量与全局变量:局部变量的存储类型分为自动型(auto)、寄存器型(register)、静态类型(static),其中auto型和register型的变量的存储空间是动态的,程序一结束,其值就消失。而static类型的变量,程序结束后其值仍然存在。全局变量是静态的变量。

int a=5

fun(int b) {static int a=10a+=b++printf(“%d”,a)}

main(){int c=20fun(c)a+=c++printf(“%d\n”,a)} 3025 如果在main中再加一个fun(c)呢?305025

三十五 宏命令与文件包含

#define N 10

#define S(x) x*x/*只要把这三个define语句放到一个文件hong.h里面*/

#define f(x) (x*x)/*再在主函数前加一个#include “hong.h”,程序运行结果一样*/

main(){int i1,i2 i1=1000/S(N) i2=1000/f(N) printf(“%d %d”,i1,i2)}1000 10

三十六 指针变量的定义、初始化、运算

main()

{int n=5,*p=&nprintf(“the address is :%d\n”,p)

printf(“the data is:%d\n”,*p)

printf(“&*p is:%d\n”,&*p)

printf(“*&nis:%d\n”,*&n)}

例24:设有定义int n=0,*p=&n则正确的赋值语句是:A. p=1B.*p=&nA选项不行,因p中应存放一个地址值对于B选项,因p已经指向了n这个存储单元,实际上相当于n=5 。

三十七 指针与一维数组

int a[10],*p/*a与p是不同的,a是数组名是常量,不能执行a++a+=1的操作,p则可以*/

p=&a[0]p=a/*这两个语句等价,都是让p指针指向这个数组*/

执行上述语句后:p[i]等价于a[i]*(p+i)等价于*(a+i)

三十八 指针与二维数组:下面给出了引用二维数组第i行第j列元素的不同方式

1. a[i][j]

2. 因a[i]表示第i行的首地址,a[i]+j表示第i行第j列的地址,所以*(a[i]+j)表示第i行第j列的值。

3. 又因a[i]可以写成*(a+i),所以2中的表达式又可以写成*(*(a+i)+j)。

4. 把1中的a[i]变成*(a+i),后面的不变,故又可写成(*(a+i))[j]。

三十九 通过行指针引用二维数组

int a[4][4],(*p)[4]p=a

四十 通过指针数组引用二维数组元素

int *p[4],a[4][4] for(i=0i<4i++) p[i]=a[i]

以上两个知识点,像以上这样赋值后,要引用第i行第j列元素时,只需要把a改成p即可。

四十一 函数指针与指针函数

int f(int x) {……} main() {int (*p)()int a,b=2p=fa=(*p)(b) a=f(b)a=p(b)……}

函数指针:返回值是指针(地址)的函数。 int *func(int a,int b)

例25:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i其中0<=i<=9,下列对数组引用不正确的是:

A. a[p-a] B. *(&a[i]) C. p[i] D.a[10]

例 26:若定义int a[3][2]能正确表示t数组元素的地址的表达式是 A. &a[3][2] B.a[3] C. a[1]D.*a[2]

例28:以下程序输出结果是:A. 69825 B.63825 C.6385 D.693825

main(){char ch[2][5]={“6937”,”8254”},*p[2]int i,j,s=0for(i=0i<2i++) p[i]=ch[i]

for(i=0i<2i++) for(j=0p[i][j]>’\0’j+=2) s=10*s+p[i][j]-‘0’printf(“%d\n”,s)}

四十二 结构体的定义、赋初值

struct student {int numchar name[10]} *p,stu[2]={{123,”zhang”},{124,”li”}}p=stu

typedef struct student {} STU在这个语句后就可以用STU来定义结构体变量了。

例:STU a,*p;等价于 struct student a,*p

四十三 结构体变量的引用

printf(“%d”,stu[1].num)printf(“%d”,stu[1].name )printf(“%d”,p[1]->num)

printf(“%d”,p[1]->name) printf(“%d”,stu)则不对

四十四 malloc、calloc、free函数及链表的操作 链表操作见书p120int *p,*pintfloat *qp=(int*)malloc(sizeof(int))q=(float*)malloc(sizeof(float))pint=(int*)calloc(10,sizeof(int))free(p)习题集12章16题。

例29:下列赋值语句正确的是 struct worker {int numchar *name}*p,a

A. worker.num=1 B.p.num=1 C.*p.num=1 D.a.num=1

例30:在16位pc环境下,下列程序运行的结果是:(此题大家有印象即可,不必深究)

struct worker {int numchar *name}a main(){printf(“%d”,sizeof(a))} 4(若32位则是8)

例31:设有如下定义:struct ss{char name[10]:int age:char sex:}stu[3],*p=std下面各输入语句错误的是:( )

A. scanf(“%d”,&(*p).age) B.scanf(“%s”,&std.name) C.scanf(“%c”,&std[0].sex) D.scanf(“%c”,&(p->sex))

因为std是表示是地址,而地址表示不应该是这样的,应该是&(std->name)

四十五 位运算 ~、<<、>>、|、&、^、例5.4

四十六 文件的打开及对文件的操作 FILE *fpchar str[10]=”hello”int a,b

1. if((fp=fopen(“in.dat”,”rb”))==NULL) printf(“Unable to open the file!”)/*重点注意打开文件的方式,特别注意以”w”,”r+”,”w+”,”a”方式打开,对文件的影响。*/

2. fclose(fp)/*关闭文件*/ feof(fp)/*测试文件是否结束,如到了则返回1,否则返回0*/

3. fseek(fp,12,SEEK_SET) /*将文件指针移动到文件起始位置后面的第12个字节处*/

4. fseek(fp,12,SEEK_END)/* 将文件指针移动到文件倒数第12个字节处*/

5. fseek(fp,0,SEEK_SET) /*将文件指针移动到文件起始位置同rewind(fp)函数*/

6. fseek(fp,12,SEEK_END)/* 将文件指针移动到文件末尾*/

7. ftell(fp) ch=fgetc(fp) putc(ch,fp) fgets(str,n,fp) fputs(str,fp)

8. fscanf(fp,”%d%d”,&a,&b)/*从fp所指向的文件中取出的两数分别存放在a和b中*/

9. fprintf(fp,”%d%d”,a,b)/*把a和b中所存放的数据输出(存放)到fp所指向的文件中*/

10. fread(str,size,count,fp)/*从fp所指向的文件中取出size*count个字节存放到str数组中*/

11. fwrite(str,size,count,fp)/*把str数组中的size*count个字节存放到fp所指向的文件中*/

你有相关的书吗?这是我当年考试用过的一些资料呀!希望对你有帮助!!

计算机二级是高校的热门考试之一,那么计算机二级C语言考试的内容有哪些呢?下面是由我为大家整理的“计算机二级C语言考什么 该怎么备考”,仅供参考,欢迎大家阅读本文。

计算机二级C语言考试内容

一、C 语言程序的结构

1. 程序的构成,main 函数和其他函数。

2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。

3. 源程序的书写格式。

4. C 语言的风格。

二、数据类型及其运算

1.C 的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。

2. C 运算符的种类、运算优先级和结合性。

3. 不同类型数据间的转换与运算。

4. C 表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

三、基本语句

1. 表达式语句,空语句,复合语句。

2. 输入输出函数的调用,正确输入数据并正确设计输出格式。

四、选择结构程序设计

1. 用 if 语句实现选择结构。

2. 用 switch 语句实现多分支选择结构。

3. 选择结构的嵌套。

五、循环结构程序设计

1. for 循环结构。

2. while 和 do-while 循环结构。

3. continue 语句和 break 语句。

4. 循环的嵌套。

六、数组的定义和引用

1. 一维数组和二维数组的定义、初始化和数组元素的引用。

2. 字符串与字符数组。

七、函数

1. 库函数的正确调用。

2. 函数的定义方法。

3. 函数的类型和返回值。

4. 形式参数与实际参数,参数值的传递。

5. 函数的正确调用,嵌套调用,递归调用。

6. 局部变量和全局变量。

7. 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

八、编译预处理

1. 宏定义和调用(不带参数的宏,带参数的宏)。

2. “文件包含”处理。

九、指针

1. 地址与指针变量的概念,地址运算符与间址运算符。

2. 一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。

3. 用指针作函数参数。

4. 返回地址值的函数。

5. 指针数组,指向指针的指针。

十、结构体(即“结构”)与共同体(即“联合”)

1. 用 typedef 说明一个新类型。2. 结构体和共用体类型数据的定义和成员的引用。

3. 通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。

十一、位运算

1. 位运算符的含义和使用。

2. 简单的位运算。

十二、文件操作

只要求缓冲文件系统(即高级磁盘 I / O 系统),对非标准缓冲文件系统(即低级磁盘 I / O 系统)不要求。

1. 文件类型指针(FILE 类型指针)。

2. 文件的打开与关闭(fopen,fclose)。

3. 文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf 函数的应用),文件的定位(rewind,fseek 函数的应用)。

计算机二级C语言该怎么备考

一、了解试卷,胸中有数

综观近几年全国计算机等级二级基础部分和C语言程序设计的题目,笔试中大多数考题是与大纲要求的基本内容一致的,难度不高,但内容十分广泛,应牢固掌握。所以,全面复习非常重要。

二、深刻理解,强化概念

对于计算机的基础知识和体系,应注意理解,切忌死记硬背。采用对照、总结、联想的方法来复习这些内容,比死记硬背效果要好得多。

三、归纳整理,适当记忆

另一部分需要记忆的知识是计算机基础知识、基本概念。这些内容看似不起眼,但如果不适当加以记忆,考试时因此失分十分可惜。我们可以在理解的基础上归纳整理,适当记忆。需要适当记忆的内容对初学者来说还有许多。

四、注重实践,融会贯通

计算机是一门理论性、实践性都很强的学科,对二级考试的参加者来说,基础理论方面要求不是特别深入,卷面中的题目大多数都可以上机实践。因此,注重实践,更显得重要。考生应在对基本知识理解的同时注意多上机实践,通过实践,将所学知识融会贯通。

五、多做练习,查漏补缺

在认真地学完考试指定用书后,再找一些题集,认真地测试一下,一则可以看看你究竟学习得如何,二则可以查漏补缺,将还没有掌握的内容补起来,以备正式考试时万无一失。即使在平时,也应这样。多做练习,多加思考,在解题中下功夫,是学好计算机的关键。