广西区二级C语言试题及答案.docx

上传人:b****3 文档编号:10573294 上传时间:2023-05-26 格式:DOCX 页数:21 大小:23.66KB
下载 相关 举报
广西区二级C语言试题及答案.docx_第1页
第1页 / 共21页
广西区二级C语言试题及答案.docx_第2页
第2页 / 共21页
广西区二级C语言试题及答案.docx_第3页
第3页 / 共21页
广西区二级C语言试题及答案.docx_第4页
第4页 / 共21页
广西区二级C语言试题及答案.docx_第5页
第5页 / 共21页
广西区二级C语言试题及答案.docx_第6页
第6页 / 共21页
广西区二级C语言试题及答案.docx_第7页
第7页 / 共21页
广西区二级C语言试题及答案.docx_第8页
第8页 / 共21页
广西区二级C语言试题及答案.docx_第9页
第9页 / 共21页
广西区二级C语言试题及答案.docx_第10页
第10页 / 共21页
广西区二级C语言试题及答案.docx_第11页
第11页 / 共21页
广西区二级C语言试题及答案.docx_第12页
第12页 / 共21页
广西区二级C语言试题及答案.docx_第13页
第13页 / 共21页
广西区二级C语言试题及答案.docx_第14页
第14页 / 共21页
广西区二级C语言试题及答案.docx_第15页
第15页 / 共21页
广西区二级C语言试题及答案.docx_第16页
第16页 / 共21页
广西区二级C语言试题及答案.docx_第17页
第17页 / 共21页
广西区二级C语言试题及答案.docx_第18页
第18页 / 共21页
广西区二级C语言试题及答案.docx_第19页
第19页 / 共21页
广西区二级C语言试题及答案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

广西区二级C语言试题及答案.docx

《广西区二级C语言试题及答案.docx》由会员分享,可在线阅读,更多相关《广西区二级C语言试题及答案.docx(21页珍藏版)》请在冰点文库上搜索。

广西区二级C语言试题及答案.docx

广西区二级C语言试题及答案

2010年6月26日等级考试

(广西考区)二级’C语言’试题卷

闭卷考试考试时间:

120分钟

第一卷(本卷第1~20题每题2分,第21~30题每题3分,共70分)

第一部分:

基础知识(20项,每项2分,共40分)

1.可以从循环体内跳出,继续执行该循环外语句的是,(A)

A.break语句B.return语句C.continue语句D.空语句

2.下列语句不具有赋值功能的是:

(C)

A.a*=bB.x=1C.a+bD.a++

3.下列标识符中不是合法标识符的是:

(D)

A.hot_doB.cat1C._priD.2ab

标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。

另外,关键字不能是标识符,如main等。

在各种语言中"=="都不能赋值吧!

"="才能赋值,"=="是关系运算符,说白了也就是做比较的。

4.数学表达式ax2+bx+c所对应的C语言表达式为:

(C)

A.ax2+bx+cB.a*x2+b*x+c

C.a*x*x+b*x+cD.a*x*2+b*x+c

一元二次方程

5.若x为一个实数,那么输出x应该使用下面哪个语句:

(C)

A.printf(“x=”,x);B.printf(“x=%d”,x);

C.printf(“x=%f”,x);D.printf(“x=%”,x);

%d十进制整数

6.设i和k都是int类型,则以下对循环语句:

for(i=0,k=-1;k=1;i++,k++)

{

printf(“****\n”);

}

说法正确的是(D)

A.循环结束条件不合法B.循环体一次也不执行

C.循环体执行一次D.该循环是无限循环

i=0,k=-1是初始化i和k的值,k=1是判断循环结束的条件。

因为k=1表示将1赋值给k,其结果是返回true,所以不管后面i和k怎么变化,每次都会返回true,故循环无穷多次。

7.下面说法错误的是:

(C)

A.do…while{}语句至少执行一次循环

B.break语句可以跳出switch语句和循环语句

C.每个if一定有一个else和它对应

D.每个else一定有一个if和它对应

//A.先执行一次指定的循环体语句D.else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。

8.以下程序输出结果为:

#include“stdio.h”

main()

{

Charc=’c’;

printf(“%c”,c+2);}

输出结果是:

(B)

A.有语法错误,不能通过编译B.eC.99D.c

输出的是字符,eg:

a+1=b;c+2=e;

9.判断字符串a和b相等的正确表达式是:

(C)

A.if(a=b)B.if(strcpy(a,b))

C.if(strcmp(a,b)==0)D.if(a==b)

Strcmp代表两个字符串是否相同

10.C语言程序中,函数返回值的类型是由(D)决定:

A.return语句中的表达式类型B.调用该函数的主调函数类型

C.调用该函数的形参类型D.在定义该函数时所指定的函数类型

11.下列叙述中不正确的是:

(D)

A.C程序的注释部分放在“/*”和“*/”之间,“/”和“*”之间不能有空格

B.一个C源程序可由一个或多个函数组成

C.一个可正确运行C语言程序必须有一个且只能有一个main函数.

D.C程序编译时注释部分的错识将被发现.

//1、一个源程序文件由一个或多个函数组成.

2、一个c程序由一个或多个源程序文件组成.

12.为了用宏名PR表示常量printf,以下宏定义中符合C语言语法的是():

A.#definePR,printfB.definePRprintf

C.#definePRprintfD.#definePRprintf

13.与y=a>b?

a:

b语句等价的程序段的是:

(A)

A.if(a>b)y=a;elsey=b;B.if(a>b)y=b;elsey=a;

C.if(a>b)y=a;y=b;D.if(a>b)y=b;y=a;

14.一个C语言程序总是从(C)开始执行的:

A.编译预处理B.输出语句

C.主函数D.排在前面的语句

c语言规定,程序总是从main()主函数,开始执行的

15.对于程序段:

int*p,a=5;

p=&a;

下列表达式中代表地址的是(B)

A.a,p,*&aB.&*a,&a,*p

C.*p,*&p,&aD.&a,&*p,p

16.有说明“intn=2,*p=&n,*q=p”,则以下非法的赋值语句是:

(A)

A.p=n;B.*p=*q;C.n=*q;D.p=q;

17.运行以下程序段时编译出错,其原因是:

()

charc1=’a’,c2=’123’;

printf(“%c,%d\n”,c1,c2);

A.字符串要用“123”表示

B.’123’只能赋值给字符数组

C.C2是字符变量,不能用%d格式输出

D.’123’不是正确的字符常量,不能赋值给字符变量C2

18.以下程序段运行的结果是:

()

enumwd{a=1,b,c,d,e}wk=e;printf(“%d\n”,wk));

A.4B.5C.-1D.e

19.设整型变量a为5,使b不为2的表达式是:

(C)

A.b=a/2B.b=6-(-a)

C.b=a%2D.b=a>3?

2:

1

A.b=a/2求商,结果为2

B.b=6-(--a)运算,--a在运算执行前使a=4,结果为2

C.b=a%2求余,结果为1

D.b=a>3?

2:

1条件判断,if(a>3){b=2}else{b=1},当a=5时,结果为2

20.对于定义:

inta[3][5],下列描述中正确的数组元素引用语句是:

(A)

A.a[2][3]B.a[3,2]C.a[1+2][2]D.a(3)

(2)

第二部分:

简单程序(10项,每项3分,共30分)

21.下列程序执行后输出的结果是(B)

main()

{

intx=6,y=10,z=15,m;

z++;

m=x*y+z;

printf(“%d\n”,m);

}

A.75B.76C.31D.32

22.在执行下列程序时输出的结果是(D):

main()

{intx=4,y=7;

x-=y;y+=x;

printf(“%d%d”,x,y)

}

A.47B.-3-3C.-311D.-34

23.下列程序输出的结果是(B):

main()

{intn=1,sum=0;

do

{sum=sum+n;

n=n+4;

}while(n<1);

printf(“%d\n”,sum)

}

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

Sum求和

24.下列程序执行后输出结果是:

main()

{

intm=3;

printf(“f(%d)=%d”,m,(m>=0?

1:

0))

}

A.f(3)=1B.f(3)=0C.f(3)=3D.f

(1)=3

25.下列程序执行后输出结果是:

main()

{intx=1,y=2,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;

case1:

b++;

}

break;

case2:

a++;b++;break;

}

printf(“a=%d,b=%d\n”,a,b);

}

A.a=0,b=0B.a=1,b=0C.a=0,b=1D.a=1,b=1

26.下列程序执行后输出结果是:

main()

{inti,n=1;

for(i=3;i<5;i++)n++;

printf(“%d”,n);

}

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

27下列程序执行后输出结果是:

main()

{inti,a[3]={0};

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

{a[i]=a[i-1]*2+1;

printf(“%d”,a[i]);

}}

A.01B.02C.12D.13

28.以下程序执行后输出的结果是:

main()

{chars[]=”abcdefg”;

s[5]=’\0’

printf(“%s\n”,s);

}

A.abcdB.abcdeC.abcdefD.abcdefg

chars[]字串和char*s字串

29.以下程序执行后输出的结果是:

main()

{inta,b,x=45;

a=b=0;

if(!

a)x--;

if(b)x=30;

elsex=40;

printf(“x=%d\n”,x);

}

A.x=0B.x=30C.x=40D.x=44

30.以下程序执行后输出的结果是:

main()

{inta,m;

for(m=10;m<25;m++)

{m=m%10;

if(a==5&&m%3==0)

{

printf(“%d”,m);

}}}

A.5B.10C.15D.25

==等于运算符%求余运算符

第二卷(本卷10项,每项3分,共30分)

第二卷均为填空题,在阅读和原题程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符,语句,以构成一个正确的C语言程序。

1.以下程序输出的结果是:

1

intfund(inti)

{printf(“%d”,i);

return++i;

}

main()

{

inti=2;

printf(“%d”,fund(i));

}

2.以下程序输出的结果是:

9

main()

{intx=5;

while(x<10);

{x++;

if(x%4!

=1)continue;

elseprintf(“%d\t”,x);

}

3.以下程序运行后输出结果是:

intisnumber(charc){return((c>='0'&&c<='9')?

1:

0);}

main()

{chara[]="a1b23c45d6",*p=a;

intk=0;

while(*p!

='\0')

{if(isnumber(*p)==0)

a[k++]=*p;

p++;

}

a[k]='\0';

printf("%s\n",a);

}

 

4.以下程序是计算S=1-2+3-4...+99-100并输出结果,填空完成程序。

intfun(intn)

{ints=0,f=1,i;

for(i=1;i<=n;i++)

{s=s+f*i

f=-f;

}

returns;

}

main()

{intfun(intn);

printf("S=1-2+3-4...+99-100=%d\n",6);

 

5.以下程序的功能是输入一个字符串S,将所有空格删除后再输出。

请填空完成程序。

main()

{chars[80];

intx,y;

printf("pleaseenterastringtos");

get(s);

for(x=0,y=0;s[x]!

=’\0’;x++)

{ifs[x]!

='')

{

s[y]=s[x];

y++;

}

}

s[y]=‘\0’;

printf(“%s”,s);

}

 

(广西考区)二级C语言试题

2010年12月25日

闭卷考试考试时间:

120分钟

第一卷

本卷共70分,其中第1~26题每题2分,第27~32每题3分。

第一部分:

基础知识

1.C语言的程序一行写不下时,可以()。

A.用逗号换行B.用分号换行

C.在任意一空格处用回车符换行D.用短横线换行

2.C语言中要求参加运算的数必须是整数的运算符是()。

A./B.!

C.%D.==

3.C语言程序的基本单位是()。

A.函数B.过程C.子程序D.子例程

4.C语言中定义一个变量,该变量代表内存中的一个()。

A.区域B.单元C.地址D.容量

5.下列语句中正确的是()。

A.a=1,b=2B.i++;B.a=b=5D.y=int(x);

6.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是()。

A.float型B.int型C.long型D.double型

7.为了把100和765.12分别赋给int类型变量i和float类型变量f,可用

scanf("i=%d,f=%f",&i,&f);语句进行输入,正确的输入是()。

A.100<空格>765.12B.100765.12

C.i=100,f=765.12D.i=100<空格>f=765.12

8.语句if(!

e)中e等于()是为真。

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

9.设有语句chara=’\x68’,则变量a()。

A.包含2个字符B.包含3个字符C.说明不合法D.包含一个字符

10.已知字母D的ASCII码为十进制数68,且c2为字符型,则执行语句c2=’D’+’6’-’3’;后c2的值为()。

A.GB.71C.不确定的值D.F

11.下面有关for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判定表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

12.执行语句for(i=1;i++<4;);后变量i的值是()。

A.3B.4C.5D.不定

13.用数组名作为函数调用时的参数,实际上传递给函数的是()。

A.数组全部元素B.数组第一个元素的值

C.数组首地址(指向数组的指标)D.数组元素的个数

14.以下不能正确定义二维数组的选项是()。

A.inta[2][]={1,2},{3,4};B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},{2,3}};D.inta[2][2]={{1},{2}};

15.以下能正确定义整数变量a、b和c,并全部赋初值5的语句是()。

A.inta=b=c=5B.inta,b,c=5;C.inta=5,b=5,c=5;D.inta=5;b=5;c=5

16.以下不正确的说法为()。

A.在不同的函数中可以使用相同的名字的变量

B.全局变量的作用域是从定义变量开始的位置到程序结束之处

C.在函数内定义的变量只在本函数范围内有效

D.形式参数不属于局部变量

17.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。

A.a,point,*&aB.&*a,&a,*pointC.*&point,*point,&aD.&a,&point,point

18.以下程序段运行后,b中的值是()。

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

b=p[5];

A.5B.6C.8D.9

19.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()

A.c=*p1+p2B.p2=cC.p1=p2D.c=*p1*(*p2);

20.以下程序的运行结束是()。

#include"stdio.h"

main()

{union{longa;

intb;

charc;

}m;

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

}

A.2B.4C.6D.8

 

第二部分:

简单程序

21.若运行时给变量x输入12,以下程序运行结果是()。

main()

{intx,y;

scanf("%d",&x);

y=x>12?

x+10:

x-12;

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

}

A.0B.12C.22D.10

22.以下程序的运行结果是()。

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

A.a=2,b=8B.a=3,b=11C.a=4,b=9D.a,=1,b=-1;

23.以下程序的运行结果是()。

main()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(y!

=10)

if(!

ok1)

a=1;

else

if(ok2)a=10;

a=-1;

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

}

A.1B.-1C.0D.不确定

 

24.以下程序的运行结果是()。

main()

{intk=0;charc='A';

do

{switch(c++)

{case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k=k%2;continue;

case'E':

k=k*10;break;

default:

k=k/3;

}

k++;

}while(c<'G');

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

}

A.k=3B.k=2C.k=0D.k=4

25.以下程序的运行结果是()。

main()

{intx=5,y=3,z,m;

z=x|y;

m=x<<1;

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

}

A.52B.72C.510D.710

26.以下程序的运行结果是()。

main()

{charch[7]={"12ab56"};

inti,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0';

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

}

A.1256B.12C.1D.12ab56

 

27.以下程序的运行结果是()。

main()

{inti,b,k=0;

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

{b=i%2;

while(b-->=0)k++;

}

printf("%d,%d",k,b);

}

A.3,-1B.8,-2C.8,-1D.3,0

28,以下程序的运行结果是()。

#defineSQR(X)X*X

main()

{inta=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);

}

A.10B.1C.9D.0

29.以下程序的运行结果是()。

intfun(inta)

{staticintc=5;

return(a+3*c++);

}

main()

{ints;

for(s=1;s<3;s++)printf("%d\t",fun(s));

}

A.515B.1012C.1620D.2016

30.以下程序的运行结果是()。

fun(intx,int*y)

{intz;

x-=4,(*y)++;

z=x%(*y);

returnz;

}

main()

{intm=30,n=8,k=3;

k=fun(m,&n);

printf("%d,%d,%d",m,n,k);

}

A.30,9,8B.30,8,3C.26,9,8D.26,8,3

31.以下程序的运行结果是()。

main()

{staticcharm[]="Cprogram";

char*ptr;inti;ptr=m;

for(i=0;*ptr!

='\0';ptr++,i++)

printf("%c",*ptr);

printf("%d",i);

}

A.program9B.program7C.Cprogram9D.Cprogram8

32.以下程序运行的结果是()。

abc(char*p)

{inti,j;

for(i=j=0;*(p+i)!

='\0';i++)

if(*(p+i)>='d'){*(p+j)=*(p+i);j++;}

*(p+j)='\0';

}

main()

{charstr[]="cdalb";

abc(str);puts(str);

}

A.dalbB.cdC.cD.d1

第二卷

说明:

(1)第二卷均为填空题,在阅读和理解原题程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符、语句,已构成一个正确的C语言程序。

(2每空栏3分,10个空栏共30.

试题一下面程序的功能是输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写的字母,则把他变成大写的字母;其他字母不变。

#include

main()

{charch;

scanf("%c",1);

if

(2)ch=ch+32;

elseif(ch>='a'&&ch<='z')3;

printf("%c",ch);

}

试题二下列程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。

#include

main()

{intn,count,max,t;

count=max=4;

scanf("%d",&n);

do

{t=5;

if(t==0)++count;

elseif(max

n/=10;

}while(n);

printf("count=%d,max=%d",count,max);

}

 

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2