广西区二级C语言试题及答案.docx
- 文档编号:24355267
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:21
- 大小:23.66KB
广西区二级C语言试题及答案.docx
《广西区二级C语言试题及答案.docx》由会员分享,可在线阅读,更多相关《广西区二级C语言试题及答案.docx(21页珍藏版)》请在冰豆网上搜索。
广西区二级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.12
C.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); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广西 二级 语言 试题 答案