江苏省计算机等级考试C语言部分资料.docx

上传人:b****8 文档编号:27917208 上传时间:2023-07-06 格式:DOCX 页数:73 大小:119.71KB
下载 相关 举报
江苏省计算机等级考试C语言部分资料.docx_第1页
第1页 / 共73页
江苏省计算机等级考试C语言部分资料.docx_第2页
第2页 / 共73页
江苏省计算机等级考试C语言部分资料.docx_第3页
第3页 / 共73页
江苏省计算机等级考试C语言部分资料.docx_第4页
第4页 / 共73页
江苏省计算机等级考试C语言部分资料.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

江苏省计算机等级考试C语言部分资料.docx

《江苏省计算机等级考试C语言部分资料.docx》由会员分享,可在线阅读,更多相关《江苏省计算机等级考试C语言部分资料.docx(73页珍藏版)》请在冰豆网上搜索。

江苏省计算机等级考试C语言部分资料.docx

江苏省计算机等级考试C语言部分资料

题型

1.选择题基础部分,10题,20分

2.选择题C语言部分,5题,10分

3.阅读程序:

10空,20分

4.完善程序1题:

4空,12分

5.改错1题,4处,共16分。

6.编程,1题,22分。

共100分。

第1章C语言概述

考点1:

C语言特点、构成、main函数及其它

重点:

(1)程序从main函数开始执行,到main函数结束,main函数的位置可以任意。

(2)书写格式自由,一行可以多句,一句可以多行。

(3)语句和数据定义后必须要有分号。

(4)注释的作用及在程序中的位置。

例.使用TURBOC系统编译C语言源程序后生成的文件名后缀是______(5)______。

例以下有关C语言函数的描述中,错误的是(21)。

A.一个完整的C程序可以有多个函数,其中必须有且只能有一个名为main的函数

B.当一个C程序包含多个函数时,先定义的函数先执行

C.函数可以嵌套调用

D.函数不可以嵌套定义

 

第2章数据类型、运算符和表达式(选择题和填空题)

考点1:

C语言的数据类型

基本类型,数组,指针,结构体,共用体,枚举类型,空类型(函数返回值,无形参)

重点:

(1)unsigned和signed的区别

(2)int,long,char占用的位数和取值范围

例.已知某编译系统中signedint类型数据长度是16位,该类型数据的最大值是_____。

A.32767B.32768C.127D.65535

例.若要声明一个无符号整型变量x,则正确的声明形式是“___intx;”。

考点2:

常量和变量

Ø整型常量

重点:

(1)十进制:

23

(2)八进制:

023

(3)十六进制:

0x23各种进制之间的转换。

(4)后缀的使用及数据类型:

12L,0234l,12u等。

例.C语言源程序中用十六进制表示整型常数必须以______

(1)___开头。

例.若要在C程序中以十六进制形式表达十进制数35,表示形式是___

(2)___。

例.以下程序运行时输出到屏幕的结果是(6)。

#include

voidmain()

{inta=011;

printf("%d",a);

}

例:

在C语言中,不能用于表示整型常数的进制是_________

Ø实型常量

(1)十进制小数形式

(2)十进制指数形式

(3)后缀的使用及数据类型

重点:

E格式针对的是常量,

不能写成1Ex

Ø字符常量*

重点:

(1)单引号括起来的一个字符,ASSIC码,字母,数字字符。

(2)转义字符,\引导,’\t’,’\n’,’\\’,’\ddd’,’\xhh’

1.已有声明“charc=’\72’;”,则变量c包含个字符。

A.1B.2C.3D.4

2.以下选项中,不能将字母A的编码保存到变量ch的声明是________。

A.charch="A";B.charch='A';C.charch='\101';D.charch=65;

Ø字符串常量

双引号括起来的字符序列,”a”和’a’区别

Ø符号常量*

符号常量的定义,引用与作用域

21.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是______。

A.#defineP3.14;B.#defineP(3.14)

C.#defineP=3.14;D.#defineP3.14

Ø标识符命名规则

重点:

构成:

字符,数字,下划线,第一个字符必须是字母或下划线。

关键字不能做标识符。

1.下面选项中可用作变量名的是______(27)_____。

A.CaseB.a—bC.$cdD.2ab

Ø关键字

C语言中常用的关键字有哪些,注意区分大小写。

例.下列四个选项中,属于C语言关键字的是__________。

A.FloatB.singleC.doubleD.real

例.以下选项中不符合C语言标识符命名规则的是:

A.printfB._00C.&aD.FOR

考点3:

类型转换*

自动转换和强制转换

重点:

(1)混合运算中的自动转换,转换规则

(2)不同长度的整数之间的赋值,常考:

长->短原则,截取低位。

例.已有声明“doublex=3.5;",表达式“(int)x+x”值的类型为

(2)

例.已有声明“charc=255;”,执行语句“c++;”后变量c的值是___

(1)___。

例.以下程序运行时,输出到屏幕的结果中第一行是(10),第二行是11)。

#include

intmain()

{intx;

chara;

a=x=266;

printf("%d\n%d",x,a);

return0;

}

例:

执行程序段“charc=255;c=c+1;printf(“%d”,c);”后,输出结果为________

A.256B.-255C.1D.0

考点4:

运算符和其表达式

重点:

%、/++--&&||

(1)%两边必须是整数。

(2)/整除还是一般除法

(3)前++,--,后++,--

(4)&&,||运算符优化。

例.已有声明“intx=0,y=2;”,则执行语句“y=--x||++y;”后,变量y的值为。

A.0B.1C.2D.3

例.已有预处理命令“#include"和声明“inta=4,b;”,以下语句中语法正确的是。

A.if(a%2=1)b=a;B.if(sqrt(a)%2)b=a;

C.if(a==1)b=a;D.if(a==1)b=*a;

例.已有声明“inta,b;”且a和b的值均大于0,表达式“a%b+a/b*b==a"的值为.

例.判断char型变量c1的值是否为小写字母的正确表达式为。

A.’a’<=c1<=’z’B.c1>=a&&c1<=z

C.’a’>=c1‖’z’<=c1D.c1>=’a’&&c1<=’z’

例.表示数学式“0

例。

以下选项中,可作为C语言合法表达式的是______________。

A.3.0%2B.3=2=1=0C.{3,2,1,0}D.(3,2,1,0)

例.表达式”3<2||-1&&!

0”的值是:

A.2B.1C.0D.-1

考点5:

赋值运算符和表达式

重点:

(1)优先级。

(2)左边必须是变量,不能是常量或表达式

例.if(a%2=1)b=a;错

例.已有声明“intn=12;doublea;”,则执行语句“a=n/=5;”后,a的值为________。

考点6:

逗号运算符

重点:

(1)逗号运算符的运算规则,整个表达式的值为最后一个表达式的值。

(2)比赋值运算符优先级要低。

例.假如a=1,b=1;

求c=a++,a+b;和c=(a++,a+b);后a,b,c的值。

例.已有声明“intt=1;”,则执行“printf("%d",(t+5,t++));”时输出的结果是___。

A.1B.6C.2D.7

考点7:

条件运算符

重点:

(1)优先级和运算次序。

例.已有声明“inta=3,b=4,c=5,d=0;”,执行语句

“printf("%d",d=a>b?

(a>c?

a:

b):

(b>c?

b:

c));”时输出____。

A.3B.4C.5D.0

考点8:

位运算

重点:

按位与&,或|,异或^,取反~,左移<<,右移>>,最近几年没有出现位运算题目。

第三章常用的函数

考点1:

scanf和getchar

Ø常用的格式控制符(d,u,c,x,o,f,lf,s)

Ø输入格式

例.已有声明“inta;charb;”,执行语句“scanf("%d%c",&a,&b);”时,若要求将整数2输入到变量a、将字符u输入到变量b,则以下输入形式中正确的是_______。

A.2uB.2uC.2,uD.2'u'

考点2:

printf和putchar

重点:

(1)区别

(2)printf语句输出格式控制符

例.已有声明“intx=0,*p=&x;”,以下语句中有语法错误的是________。

A.printf("%d",*x);B.printf("%d",&x);

C.printf("%d",*p);D.printf("%d",x);

例.如已有声明“chars[]="Hello",i;”,以下语句中,与“for(i=0;s[i];i++)putchar(s[i]);”的执行效果相同的是_______。

A.putchar(s);B.printf("%c",*s);

C.printf("%c",s);D.printf("Hello");

考点3:

puts

例.已有声明“staticchar*p="Apple";”,则执行语句“puts(p+2);”时输出为_______。

A.AppleB.CppleC.ppleD.ple

考点4:

字符串操作函数

重点:

(1)strcpy,strcat

(2)strcmp函数返回值情况

(3)strlwr,strupr

例。

charpl[80]="NanJing”,p2[20]="Young",*p3="Olympic";

strcpy(p1,strcat(p2,p3));

printf("%s\n”,p1);

执行该程序段后的输出是_______。

A.NanJingYoungOlympicB.YoungOlympic

C.OlympicD.NanJing

例.已知声明“char*s1="China",s2[10],*s3="Nanjing",*s4;”,以下字符串赋值语句在执行时可能出现错误的是____。

A.strcpy(s3,s1);B.strcpy(s4,s1);

C.strcpy(s2,s1);D.strcpy(s2,s3);

例.已有声明“inta;chars[80]=”123456”;”,执行语句“strcpy(s+4,"123456");a=strlen(s);”后变量a的值是。

例.已有声明“chars1[4],*s2="character";”,能实现“将s2指向的字符串中最后3个字符组成的子串复制到s1数组”功能的语句是____29____。

A.s1=s2+strlen(s2)-3;B.s1[0]=s2[strlen(s2)-3];

C.strcpy(s1[0],s2[strlen(s2)-3]);D.strcpy(s1,s2+strlen(s2)-3);

考点6:

数学及字符函数

需要掌握的数学函数包括:

1.intabs(intx)求整数的绝对值

2.doublefabs(doublex)求实数的绝对值

3.doublepow(doublex,doubley)求xy

4.doublesqrt(doublex)求平方根

需要掌握的字符函数包括:

1.intisalpha(intch)检查ch是否为字母,是字符返回为1,否则返回为0.

2.intisdigit(intch)检查ch是否为数字,是数字返回为1,否则返回为0.

3.其它islower,isupper,tolower,toupper

第四章C语言的流程控制

这是程序的基本,必须掌握。

考点1:

选择结构if和switch

重点:

(1)if语句的三种结构,if语句中的语句只有一条,可以是逗号语句。

(2)if语句的条件表达式可以是任意的合法C语言的表达式。

(3)else语句的配对问题。

(4)switch后的表达式只能是整型(字符)表达式(值)

(5)case后只能是整型或字符常量

例:

以下关于if语句和switch语句的叙述中错误的是___。

A.if语句和switch语句都可以实现算法的选择结构

B.if语句和switch语句都能实现多路(两路以上)选择

C.if语句可以嵌套使用

D.switch语句不能嵌套使用

例:

以下程序运行时,输出到屏幕的结果是______。

#include

voidmain()

{inta=0,b=1,d=10;

if(a)

if(b)

d=20;

else

d=30;

printf("%d\n",d);

}

例:

设有声明“inta=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是________。

A.if(a>b)c=a,a=b,b=c;

B.if(a>b){c=a,a=b,b=c;}

C.if(a>b)c=a;a=b;b=c;

D.if(a>b){c=a;a=b;b=c;}

考点2:

循环结构

重点:

(1)三种循环的结构,while和do-while的区别

(2)理解循环嵌套的执行过程

例.如果一个循环结构的循环体至少要执行一遍,则最适合描述该循环结构的语句是________语句。

例.以下关于while语句和do-while语句的描述中,错误的是______。

A.while语句和do-while语句都可以使一段程序重复执行多遍

B.while语句和do-while语句都包含了控制循环的表达式

C.while语句和do-while语句都包含了循环体

D.while语句和do-while语句的循环体至少都会被执行一次

例.执行以下程序后的结果是_________。

#include

voidmain()

{intx=3;

do

{

printf("%d\t",x=x-3);

}while(!

x);

}

A.输出一个数:

0B.输出一个数:

3

C.输出2个数:

0和-3D.无限循环,反复输出数

例.2.以下程序运行时,输出到屏幕的结果是 ______。

     #include  

    int main() 

    { int a=6,b=15,t=a; 

     while (t%b!

 =0) 

       t+=a; 

    printf("%d",t); 

    return 0; 

 }

考点3:

break和continue

重点:

(1)break功能,跳出switch语句和提前结束整个循环

(2)continue功能,提前结束本次循环。

例.除goto语句外,在循环结构中执行___

(1)___语句可提前结束本次循环直接进入下—次循环。

第五章函数*

考点1:

函数的定义、声明和调用

重点:

(1)定义:

类型标识符函数名(形参列表)

{声明语句},注意形参的写法

(2)调用:

函数名(实参列表)

注意实参的写法

(3)声明:

类型说明符函数名(类型形参1,类型形参2.。

类型说明符函数名(类型,类型,。

(4)形参和实参的关系

(5)一般变量,指针做函数参数的区别(必考)

(6)在上机改错题中,经常有函数头部改错,返回值类型,形参实参如何写。

例.以下程序运行时输出到屏幕的结果中第一行是(9),第二行是_(10)。

#include

intf(int*a)

{intb;

printf("%d\n",b=*a);

a++;

returnb+*a;

}

voidmain()

{inta[3]={2,3,4};

a[0]=f(&a[0]);

printf("%d\n",a[0]);

例.以下程序运行时,输出到屏幕的结果中第一行是___(8)___,第二行是___(9)___。

#include

voidfun(int*x,inty)

{x++,y++;

*x=y;

}

intmain()

{inta[2]={0};

fun(a,a[0]);

printf("%d\n%d",a[0],a[1]);

return0;

}

例.假定一个函数的头部为“char*func(intn)”,则该函数返回值的类型是24。

A.intB.int*C.charD.char*

例.已知fun函数的头部为“voidfun(intx[],intn)",main函数中有声明“inta[10]={1},b=10;",欲在main函数中调用fun函数,则以下调用语句中正确的是25。

A.fun(a,fun(a,b));B.fun(a[10],b);C.fun(a,a[0]);D.fun(b,a);

例.以下程序运行时,输出到屏幕的结果是(8)。

#include

intfun(intx,inty,intz)

{returnx*y*z;}

intmain()

{printf("%d",fun(1.5,2.5,3.5));

return0;

}

例.已有fun函数定义:

voidfun(intx[],intn)

{while(n>0)x[--n]++;}

若main函数中已声明“inta[6]={0};”,则以下main函数调用fun函数的语句中,正确的是____27____。

A.fun(a);B.fun(a,a);C.fun(a,1);D.fun(1,a);

例.已知main函数中有声明“inta=3,b=4;”,若在main函数中通过执行语句“swap(&a,&b);”交换a、b变量的值,则下列swap函数定义中正确的是____28____。

A.voidswap(intx,inty){intt;t=x;x=y;y=t;}

B.voidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}

C.voidswap(int*x,int*y){int*p;p=x;x=y;y=p;}

D.voidswap(int*x,int*y){int*p;p=*x;*x=*y;*y=p;}

上机改错题中中,如下错误:

intfun(charstr[],charpag[][])

{inti,k=0,j,flag=1;

}

主函数中调用出现的错误2012年

insert(string[]);

2011年秋(01)

if(allprime(j,a[]))

考点2:

递归函数调用(必考)*

重点:

递归函数的调用执行过程,一般出现在运行结果题目中。

例.以下程序运行时,输出到屏幕的结果中第一行是____(15)_____,第二行是_____(16)____。

#include

intfun1(intp[],intn)

{inti,s=0;

for(i=0;i

s+=p[i];

returns;

}

intfun2(int*s,intn)

{if(n==1)

return*s;

else

return(*s)+fun2(s+1,n-1);

}

voidmain()

{inta[]={1,2,3,4,5};

printf("%d\n%d",fun1(a,3),fun2(a,3));

例.以下程序运行时输出到屏幕的结果中第一行是_(14),第二行是(15)。

#include

voidfun1(int*x,intn)

{inti,t;

for(i=0;i

{t=x[i];x[i]=x[n-1-i];x[n-1-i]=t;}

}

voidfun2(int*x,intn)

{intt;

if(n==1)return;

t=x[0];x[0]=x[n-1];x[n-1]=t;

fun2(x+1,n-2);

}

voidmain()

{inti,a[5]={1,2,3,4,5};

fun1(a,5);

for(i=0;i<5;i++)

printf("%d",a[i]);

printf("\n");

fun2(a,5);

for(i=0;i<5;i++)

printf("%d",a[i]);

}

考点3:

变量的作用域和存储类别*

重点:

(1)全局变量:

不在任何函数内定义的变量,从定义开始,下面所有函数能调用

(2)局部变量:

在函数内定义的或形参,只在函数内有效

(3)静态变量特征,重点掌握局部静态变量

(4)静态变量和动态变量区别(初值)

例.以下叙述中错误的是(27)。

A.函数外声明的变量是全局变量

B.函数内声明的变量是局部变量

C.局部变量的生存期总是与程序运行的时间相同

D.形式参数的生存期与所在函数被调用执行的时间相同

例.以下程序运行时输出到屏幕的结果中第一行是(7),第二行是_(8)。

#include

intfun(intx)

{staticinty=1,z=0;

y*=x;

z+=y;

returnz;

}

voidmain()

{intx;

for(x=1;x<3;x++)

printf("%d\n",fun(x));

}

例.以下叙述中错误的是(27)。

A.函数外声明的变量是全局变量

B.函数内声明的变量是局部变量

C.局部变量的生存期总是与程序运行的时间相同

D.形式参数的生存期与所在函数被调用执行的时间相同

第六章编译预处理

考点1:

无参数宏定义

重点:

(1)宏定义一般不加分号

(2)必须定义在函数之外

(3)编译之前的处理,不做语法检测,如果有错误,在编译过程中。

例.以下关于预处理命令的叙述中错误的是_________(21)______。

A.预处理命令由预处理程序解释

B.程序中的预处理命令是以#开始的

C.若在程序的一行中出现多条预处理命令,这些命令都是有效的

D.预处理命令既可以出现在函数定义的外部,也可以出现在函数体内部

例.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是____(21)___。

A.#defineP3.14;B.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1