广西区计算机等级考试二级C语言笔试试题及答案Word文档下载推荐.docx
- 文档编号:19840768
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:10
- 大小:18.98KB
广西区计算机等级考试二级C语言笔试试题及答案Word文档下载推荐.docx
《广西区计算机等级考试二级C语言笔试试题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《广西区计算机等级考试二级C语言笔试试题及答案Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
C.1209
D.625
6、C语言中函数返回值的类型是(
A.return语句中的表达式类型
B.调用函数的类型
C.总是int型
D.定义函数时所指定的函数类型
7、凡是在函数中未指定存储类别的变量,其隐含的存储类别是(
A.自动
B.静态
C.外部
D.寄存器
8、在源程序的一个文件中定义的全局变量的作用域是(
A.本文件的全部范围
B.该程序的全部范围
C.一个函数的范围
D.从定义该变量的位置开始至该文件的结束
9、以下不正确的描述是(
A.break语句只能用于循环语句和switch语句
B.在switch语句中,break语句的作用也可用continue语句来替代
C.在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行
D.在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环
10、若有宏定义
#define
mod(x,y)
x%y
则执行以下程序段后,输出为(
z,a=15,b=100;
z=mod(b,a);
printf(“%d\n”,z++);
A.11
B.10
C.6
D.宏定义不合法
11、若有说明语句:
char
s1[4]=”12”;
*ptr;
则执行下列语句后输出为(
ptr=s1;
printf(“%c\n”,*(ptr+1));
A.字符‘2’
B.整数2
C.字符串“12”
D.字符‘1’
12、若有以下语句
x[]={2,4,6,8,10,12},*ptr;
ptr=x;
则对数组元素的正确引用为(
A.x
B.x[6]
C.*(--ptr)
D.
*(++ptr)
13、若有说明语句:
i,x[3][4];
则不能实现将x[1][1]的值赋给变量i的语句是(
A.i=*(*(x+1)+1)
B.i=*(*(x+1))
C.i=x[1][1]
D.i=*(x[1]+1)
14、若已定义了如下的共用体类型变量x,则x所占用的字节数(在16位PC机条件下)为(
union
data{
i;
ch;
double
f;
}x;
A.7
B.11
C.8
D.10
15、如下说明语句:
enum
A
{A0=1,A1=3,A2,A3,A4,A5};
B;
执行:
B=A3;
printf(“%d\n”,B);
输出的是(
A.5
D.编译时出错
16、while(!
x)中的条件表达式(!
x)与下面条件(
)等价。
A.x==0
B.x==1
C.x==0||
x==1
D.x!
=0
17、有以下说明语句,则对结构体变量s的成员num的不正确引用是(
struct
student{
num;
age;
}s,*p;
A.s.num
B.*p.num
C.p->
num
D.(*p).num
18、说明语句int
(*p)[10]定义了p是(
A.指针数组
B.指向数组的指针
C.返回值为整型的函数指针
D.指向整型数的指针
19、下面对文件操作函数描述正确全面的是(
n_read=read(int
fd,char
*buf,int
n);
从文件fd中读n个字节存放在buf中
从文件fd中读n个整数存放在buf中
从文件fd中读n个字节存放在buf中,并将n赋给n_read
从文件fd中读n个字节存放在buf中,并将实际读入的字节数和出错代码赋给n_read
20、C语言的编译系统对宏命令是(
A.在程序运行时进行代换处理的
B.在程序连接时进行处理的
C.与程序中其他C语句同时进行编译的
D.在对源程序其他成分正式编译之前进行处理的
第二部分:
简单程序(12题,共30分)
21、运行下面的程序,其输出是()
main()
{
a[]={2,4,6,8,10},y=1,x,*p;
p=&
a[1];
for(x=0;
x<
3;
x++)
y+=*(p+x);
printf(“%d\n”,y);
}
A.17
B.18
C.19
D.20
22、运行下面的程序,其输出是(
{int
i=1;
while(i<
19)
if(i++%5!
=3)
continue;
else
printf(“M”,i);
printf(“\n”);
A.2
5
7
9
11
13
15
17
6
12
18
C.4
14
19
D.3
8
19
23、运行下面的程序后,其正确的输出是(
{static
a[5]={7,2,8,4,5};
static
*pa[5]={&
a[0],
&
a[1],
a[2],
a[3],
a[4]};
**p,i;
p=pa;
for(i=0;
i<
5;
i++)
{printf(“%d\t”,**p+2);
p++;
A.9
4
10
B.7
2
5
C.7
D.2
3
6
24、下面程序运行后,其输出是(
n=2;
while(++n<
20)
{i=1;
while(++i
{if(n%i==0)
break;
if(i==n-1)
printf(“%d\t”,n);
20
25、下面程序运行后,其输出是()
i,j,k;
func();
i=1,j=2,k=3;
printf(“%d\n”,func((j+=k,j++),(i,i++,++i)));
func(int
x,int
y)
z;
z=x%y;
return(z);
B.0
C.1
D.3
26、下面程序运行后,其输出是(
x,y;
one()
a,b;
a=25,b=10;
x=a-b;
y=a+b;
a=9,b=5;
x=a+b;
y=a-b;
one();
printf(“%d,%d\n”,x,y);
A.14,4
B.14,35
C.15,35
D.15,4
27、下面程序运行后,其输出是(
#include
void
printd(int
i);
n=123;
printd(n);
n)
if(n<
0)
{n=-n;
putchar(‘-‘);
putchar(n_+’0’);
if((i=n/10)!
=0)
printd(i);
A.123
B.321
C.3
28、下面程序运行后,其输出是(
sample{
*ch;
};
f1(struct
sample
parm);
{struct
arg;
arg.a=1000;
arg.b=100;
arg.ch=”abcd”;
f1(arg);
parm)
parm.a+=parm.b;
parm.ch[2]=’x’;
printf(“%d\n”,parm.a);
printf(“%s\n”,parm.ch);
A.1000
B.1100
C.1100
D.100
Abcd
abcd
abxd
abcd
29、下面程序运行后,其输出是()
s[30]=”abcdefg”;
t[]=”abcd”;
i,j;
i=0;
while(s[i]!
=’\0’)
i++;
j=0;
while(t[j]!
{s[i+j]=t[j];
j++;
s[i+j]=’\0’;
printf(“%s\n”,s);
A.
abcdabcdefg
B.
abcdefg
C.
D.
abcdefgabcd
30、下面程序运行后,其输出是(
a[4][4],i,j,k;
4;
for(j=0;
j<
j++)
a[i][j]=i+j;
for(i=1;
for(j=i+1;
k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
{printf(“\n”);
printf(“M”,a[i][j]);
A.0
1
C.0
0
1
2
3
31、下面程序运行后,其输出是(
sub();
s[10]=”a
program”;
num=4;
sub(s,0,num-1);
sub(s,num,6);
sub(s,0,6);
sub(char
*s,int
num1,int
num2)
t,*p;
p=s+num2;
s=s+num1;
while(s
{t=*s;
*s=*p;
*p=t;
s++;
p--;
A.program
B.gram
pro
C.pro
gram
D.ogra
pram
32、运行下面程序,从键盘输入四个字符xyz#,其输出是(
"
stdio.h"
recursion();
recursion()
{char
c=getchar();
putchar(c);
if(c!
=’#’)
A.xyz#
B.xyz#xyz#
C.xyz##zyx
D.xyzxyz
第二卷(共30分)
说明:
程序填空题,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。
每空栏3分,两大题共10个空栏,全对得30分。
试题一:
下面的程序是将一个十六进制数字字符串转换成与它等价的十进制整数值并输出。
十六进制数的字符是从0到9和a到f或A到F。
主函数负责收集字符,并判别它们是否是十六进制字符,函数htoi负责转换工作。
maxline
100
eof
-1
yes
no
0
htoi();
c,i,isdigit;
t[maxline];
isdigit=no;
while((c=_______________)!
=eof&
i
if(c>
=’0’&
c<
=’9’||c>
=’a’&
=’f’||
c>
=’A’&
=’F’)
isdigit=yes;
t[i++]=___________;
if(isdigit==yes)
t[i]=’\0’;
printf(“%d”,______________);
htoi(char
*s)
i,n;
n=0;
s[i]!
=’\0’;
if(s[i]>
s[i]<
=’9’)
n=n*16+s[i]-______________;
=’f’)
n=n*16+s[i]-‘a’+10;
=’F’)
n=n*16+s[i]-‘A’+10;
return___________;
试题二:
以下程序的功能是应用近似公式计算
e
计算每项分母的值,共取nmax项之和作为e
的近似值。
近似公式:
e
=1+x+x
/2!
+
x
/3!
+……+
/(nmax-1)!
f2(int
if(n==1)
return
1;
return____________________;
f1(float
j=______________;
___________;
j=j*x;
j;
nmax
x,exp=1.0;
n;
printf(“input
value:
”);
scanf(“%f”,&
x);
printf(“%f\n”,x);
for(n=1;
n
exp=______________;
printf(“x=%f,exp(x)=%f\n”,x,_______________);
}
答案:
第一卷:
1~5
BCCAA
6~10
DADBB
11~15
ADBCA
16~20
ABBDD
21~25
CCABA
26~30
CBCDA
31~32
DC
第二卷:
试题一:
getchar()
c
htoi(t)
‘0’
n
f2(n-1)*n
=n
exp+f1(x,n)/f2(n)
exp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广西 计算机等级考试 二级 语言 笔试 试题 答案