您的位置:

c语言升级二级考试题库,c语言2级考试题库

本文目录一览:

C语言二级考试都考什么啊?那里能找到题库!

C语言二级复习纲要

一、基本知识

1.c是高级语言,结构化程序设计语言

2.程序设计的五个部分

二、变量、常量、表达式

1.常量的值是不能改变的

2.标识符的定义方法

3.c语言中二进制和八进制、十六进制的表示方法

4.算术运算符的优先级别(++和--放在变量前后的区别)

5.c程序的基本构成结构(由函数构成,函数由基本结构构成)

三、顺序结构

1.printf的格式控制串中的格式控制字符和后面的数据在数量上要一一对应,类型要匹配

2.scanf的格式控制串中不要有多余字符,后面的数据是地址,如果是变量,前面要有(取地址符)

3.两个%代表一个%

4.复合语句以及空语句

四、选择结构

if (表达式) 语句1;

else 语句2;

switch (表达式)

{ case….:……..;

.

.

.

case…:…….;}

1.关系表达式及优先级别

2.逻辑表达式及优先级别

3.关系,逻辑,算术优先级别的问题

4.if后面跟的表达式是判断真假的,switch是计算值的

5.if表达式后只能跟一个语句,如果要跟多个语句,必须用{ }括起来构成复合语句

6.switch里面的语句后面一定要跟break才能跳出switch,否则会一致执行下去

7.if语句中,语句1和语句2两个语句里面只能有一个语句被执行

五、循环结构

1.三种循环结构及其区别(while和do….while多用于循环次数未知的情况,for用于循环次数已知的情况)

2.循环中的三要素:初始值,结束条件,自增语句

3.break和continue的区别

六、字符

1.字符量是用单引号’引起来的一个字符,用双引号”引起来的字符是字符串

2.字符量等同于整形量

3.要使用putchar和getchar这两个函数,就必须在程序的开头使用#include “stdio.h”

4.连续输入

七、函数

1. 函数可以没有返回值,也可以有返回值,但是只能返回一个值,在函数中,一碰到return语句,函数立即结束,返回调用的地方

2. 函数的返回值也是有类型的,函数的首部要加以说明

3. 函数也必须遵循先定义后使用的原则

4. 函数的实际参数和形式参数必须一一对应,类型也要匹配,同时,参数是变量的,只能进行单向传递,即,参数值只能从主函数传递给函数,而不能从函数返回主函数,这种称之为:传值传递

八、指针

1. 存放地址的变量称为指针

2. “*”号在数据定义的时候作为指针定义符,在语句中作为间接引用

3. 指针一定要有指向,不能没有指向,指向空是有意义的]

4. 通过把指针作为函数参数,可以在主函数和函数之间传递数据,称之为:传地址传递

5. 指针每次移动,都移动一个单元,每个单元的长度是由指针的基类型确定的

6. 指向指针的指针是指:这个变量中存放的是指针的地址

7. 函数也可以返回指针,同样,要在函数首部定义

九、数组

1. 数组是一连串连续的存储单元的集合,他们是连续的

2. 把数组传递给函数,并且希望能改变其值,那么在函数的首部,用指针定义参数

3. 二维数组是一维数组的特殊形式,可以把二维数组看成每一个一维数组,每个元素都是一个一维数组。

4. 要把二维数组传递给函数,并且希望能改变其值,那么,在函数的首部,用一个行指针{(*sp)[ ]}来定义参数

5. 行指针和指针数组是不同的

行指针 指针数组

十、字符串

1. 字符串其实就是字符数组,一维字符数组可以存放一行字,而二维字符数组可以存放若干行字

2. 字符串的结束标志是\0,并且包含在字符串长度之内

3. 可以用字符指针指向一个字符串,其实就是指向字符数组的首地址

4. 字符串的输入输出使用puts和gets函数

十一、结构

1. 结构是一种特殊的用户自定义数据类型,他由若干个成员构成

2. 要引用成员,就要看使用什么来引用。用数据的话:结构体变量名.成员名。是指针的话:结构体指针-〉成员名

3. 成员符优先级别问题:高于++ ――

4. 传递结构体变量给函数,并且希望能改变其值,那么把该结构体变量的地址传递给函数,函数用该类型指针来接受结构体

5. 链表:在定义结构体变量的时候,在其中增加指向自己的指针,使得这种结构体变量能够指向同类型结构体变量,由这种变量首尾相连,就能构成链表。

6. 链表的建立、删除节点、增加节点,查找节点都要使用动态内存分配malloc和calloc,区别在于前者动态分配一个单元,而后者动态分配一系列单元

十一、文件

1. 文件的打开方法和打开方式及如何关闭

2. 如何对文件进行输入和输出

3. 文件指针及其操作函数

c语言计算机二级考试选择题如图?

全国计算机二级考试试题题库(附答案)

下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题

卡相应位置上涂黑,答在试卷上不得分。

(1) 应用软件是指

A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件

C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件

(2) 下列述叙中错误的是

A) 计算机要经常使用不要长期闲置不用

B) 为了延长计算机的寿命,应避免频繁开关计算机

C) 在计算机附近应避免磁场干扰

D) 计算机用几小时后,应关机一会儿再用

(3) 下列字符中,ASCII码值最小的是

A) A B) a C) Z D) x

(4) 用晶体管作为电子器件制成的计算机属于

A) 第一代 B) 第二代 C) 第三代 D) 第四代

(5) 下列各不同进制的四个无符号数中,最小的数是

A) ()2 B) (37)8 C) (75)10 D) (2A)16

(6) 二进制数转换成十六进制数是

A) B) C) D)

(7) 下列各无符号十进制数中,能用八位二进制表示的是

A) 296 B) 333 C) 256 D) 199

(8) 计算机的软件系统可分类为

A) 程序与数据 B) 系统软件与应用软件

D) 操作系统与语言处理程序 D) 程序、数据与文档

(9) 486机中的CPU同时能处理的二进制位数为

A) 8 B) 16 C) 32 D) 64

(10) 在使用计算机的过程中,需要重新启动DOS,则要

A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键

(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机

电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为

A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①

(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是

A) CD.. B) RD \A\C\B

C) TYPE \A\C\B\ D) TYPE C\B\

(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件

的内容,应使用命令

A) TYPE \AB B) TYPE \AB\

C) TYPE \ D) DIR \AB\

(14) 自动批处理文件必须放在

A) C盘根目录中 B) A盘根目录中

C) 启动盘的任一个目录中 D) 启动盘的根目录中

(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正

确执行的是

A) RD C:\USER\XY\P B) RD USER\XY\P

C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y

(16) 下列DOS命令中,合法的是

A) DISKCOMP B) TYPE

C) COMP A: B: D) COMP A: A:

(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错

误的是

A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:

(18) 下列DOS命令中错误的是

A) TYPE PRN B) TYPE PRN

C) COPY *.TXT PRN D) COPY CON PRN

(19) 下列四组DOS命令中,互相等价的一组是

A) COPY A:*.* B:与DISKCOPY A: B:

B) COPY +与TYPE

C) COPY + 与COPY +

D) TYPE *.FORCON与COPY *.FOR CON

(20) 设C盘目录结构如下:

且C盘根目录下文件的内容为

CD FORTRAN

CD \TC

如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统

文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是

A) COPY A:\*.C B) COPY A:\*.C TC

C) COPY A:\*.C FORTRAN D) CD USER

(21) C语言提供的合法的数据类型关键字是

A) Double B) short C) integer D) Char

(22) 在C语言中,合法的长整型常数是

A) 0L B) 4962710 C) D)

(23) 表达式:10!=9的值是

A) true B) 非零值 C) 0 D) 1

(24) 合法的C语言中,合法的长整型常数是

A) '\t' B) "A" C) 65 D) A

(25) 若有说明和语句:

int a=5;

a++;

此处表达式a++的值是

A) 7 B) 6 C) 5 D) 4

(26) 在下列选项中,不正确的赋值语句是

A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;

(27) 若有说明:int i,j=7, *p=i;,则与i=j;等价的语句是

A) I= *P; B) *P=*J; C) i=j; D) i=* *p;

(28) 不能把字符串:Hello!赋给数组b的语句是

A) char b[10]={'H','e','l','l','o','!'};

B) char b[10];b="Hello!";

C) char b[10];strcpy(b,"Hello!");

D) char b[10]="Hello!";

(29) 若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='a',d,g;

则数值为4的表达式是

A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]

(30) 若有以下说明:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的表达式是

A) *p+6 B) *(p+6) C) *p+=5 D) p+5

(31) 若有以下说明:

int w[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

则数值为4的表达式是

A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]

(32) 若程序中有下面的说明和定义

struct abc

{int x;char y;}

struct abc s1,s2;

则会发生的情况是

A) 编译进错 B) 程序将顺利编译`连接`执行

C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错

(33) 能正确表示a≥10或a≤0的关系表达式是

A)a=10 or a=0 B)a=10│a=0

C)a=10││a=0 D)a=10 ││a=0

(34) 下面程序的输出是

main()

{ int x=3,y=6,a=0;

while(x++!=(y+=o1))

{ a+o=1;

if(y

#include

main()

{ char ss[10]="12345";

strcat(ss,"6789");

gets(ss);printf("%s\n",ss);

}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(35) 下面程序的输出是

main()

{ char *a="";

int v1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{ default:v4++;

case '1': v1++;

case '3': v3++;

case '2': v2++; }

printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }

A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8

(36) 下面程序的输出是

main()

{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b

(37) 若有以下程序段,w和k都是整型变量:

w=k;

LB: if(w==0) go to LE;

w--;

printf("*");

goto LB;

LE: ┆

则不能与上面程序段等价的循环语句是

A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");

C)w=k; D)w=k;

while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);

(38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是

A)*p=a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);

C) p=a;scanf("%lf",a); D)p=a; scanf("%le",p);

(39) 当执行下面程序且输入:ABC时,输出的结果是

#include

#include

main()

{ char ss[10]="12345";

gets(ss);printf("%s\n",ss); }

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(40) 若有以下的说明和语句:

main()

{int t[3][2], *pt[3],k;

fpr(k=o; k3;k++)pt[k]=t[k];

}

则以一选项中能正确表示t数组元素地址的表达式是

A) t[3][2] B) *pt[0] C) *(pt+1) D) pt[2]

(41) 下面程序输出数组中的最大值,由s指针指向该元素.

main()

{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;

flr(p=a, s=a; p-a10; p++)

if(---?---)s=p;

printf("The max:%d",*s):

}

则在if语句中的判断表达式应该是

A) ps B) *p*s C) a[p]a[s] D) p-ap-s

(42) 下面程序的输出是

#include

main()

{ char*a="abcdefgh";

fun(a);puts(a); }

fun (char * s)

{ int x=0,y;char c;

for(y=strlen(s)-1;x

A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba

(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句

中实参的个数是

A)3 B)4 C)5 D)6

(44) 下面程序的输出是

main()

{ int t=1; fun(fun(t));}

fun(int h)

{ static int a[3]={1,2,3};

int k;

for(k=0;k3;k++) a[k]+=a[k]-h;

for(k=1;k3;k++) printf("%d",a[k]);

printf("\n"); return(a[h]);}

A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,

1,5,9, 1,3,5, 0,4,8, -1,3,7,

(45) C语言中,函数的隐含存储类别是

A)auto B)static C)extern D)无存储类别

(46) 下面程序的输出是

int w=3;

main()

{ int w=10; printf("%d\n",fun(5)*w); }

计算机二级c语言考试题型及分值

计算机二级c语言考试题型有单项选择题、程序填空题、程序改错题、程序设计题四大类题型。

各题型分值如下:

一、单项选择题

单项选择题共四十题,四十分,每一个选择分值为1分,其中单项选择中含公共基础知识,该部分十道题,占10分。

二、程序填空题

程序填空题有2-3个空,占比分值18分,该题型为上机题,其三个空占比18分,可想而知其重要性。

三、程序改错题

程序改错题有2-3处错误,该题型分值占比也是18分,难度比程序填空题略难。该题型也为上机题,也许重视该类题型。

四、程序设计题

程序设计题是计算机二级C语言考试重点,该题为一大题,占比分值24分,该题型也为上机题,为考试重点,需多加练习。

注:二级公共基础知识在各科考试选择题中体现。程序设计部分,主要考查考生对程序设计语言使用和编程调试等基本能力,在选择题和操作题中加以体现。

计算机二级c语言考试考试要求:

一、熟悉Visual C++2010 Express集成开发环境。

二、掌握结构化程序设计的方法,具有良好的程序设计风格。

三、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

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

以上便是计算机二级c语言考试题型及分值说明。

c语言二级考试题目

第一题:\141的值是"a"(a的8进制ASCII码值是141),\\的值是"\",所以s打印出来就是\141aabc,当然后面有一个\t,所以长度是9。

第二题:32位机器中,int值占4个字节,这里char占4个字节(由于32位机器按4字节对齐,char占一个字节后,剩下的3个字节不足以放下4个字节的float,所以这里char后面的3个字节会被浪费,看起来char占了4个字节),float占4个字节。

union里面的所有数据一起占用一块内存,此内存为union内占用内存最多的数据的大小,也就是int[2]的大小,所以union占8个字节。

加起来就是20个字节。

不是你把题抄错了,就是没有正确答案,或者没说明机器是多少位的机器。现在一般不说明机器的位数,默认情况下都是32位的。

第三题:ps=s后,ps会指向s的第一行第一列的位置,ps+1和*(ps+1)都等于s第二行第一列的地址,对ps的操作都是对内存地址的操作,答案中只有ps[ ][ ]能取到s中的元素。

第四题:因为pb比b1大3,所以while会循环3次,第一次因为*bp 从第三个字符开始,所以*bp = “ddwer”,所以b2=“ddwer”,第二次b2=“oddwer”,第三次b2=“goddwer”,所以strlen(b2)最终等于7。

第五题:答案是3,ASCII值中“\08”表示空格,所以s实际上等于“012xy”,而n记录字符值在0到9之间的字符的个数,所以n=3。