C 语言考试题21份Word格式.docx
《C 语言考试题21份Word格式.docx》由会员分享,可在线阅读,更多相关《C 语言考试题21份Word格式.docx(49页珍藏版)》请在冰豆网上搜索。
![C 语言考试题21份Word格式.docx](https://file1.bdocx.com/fileroot1/2023-2/4/f3bf3e3e-6f5c-46a8-84ad-ba74055af300/f3bf3e3e-6f5c-46a8-84ad-ba74055af3001.gif)
则其输出结果正确的是()。
a,f
a,c
f,g
f,h
5)
有如下一段不完整的C语言程序
floataver(
(1))
inti=0;
floatav=0.0f;
floats=0;
5:
i++)
s=s+a[i];
av=s/5;
returnav;
viodmain(viod)
inta[5]={0};
printf(“请输入5个整型数据:
\n”);
for(i=0;
scanf(“%d”,
(2));
av=aver((3));
printf(“输入数组的平均值是%6.2f\n”,av);
若其功能是实现求数组的的平均值,则空白处应填入的代码是()
(选择一项)
(1)inta[5]
(2)&
a[i]
(3)a
(1)inta[]
(2)a[i]
(3)a[0]
6)
有如下C语言函数代码:
根据学过的基本路径测试知识,则该函数的圈复杂度是()(选择一项)
voidTest()
inti=0;
intsum_a=0,sum_b=0,sum_c=0,sum_d=0;
while(i<
100)
{
if(i%2==0)
if(i%3==0)
sum_a+=i;
else
sum_b+=i;
sum_c+=i;
sum_d+=i;
}
i++;
4
5
6
7
7)
有如下的C语言程序:
voidswap(intx,inty)
inttemp;
temp=x;
x=y;
y=temp;
inta=7;
intb=9;
int*pointer_1=&
a;
int*pointer_2=&
b;
if(a<
swap(*pointer_1,*pointer_2);
printf(“%d,%d”,a,b);
则其运行的结果正确的是()。
7,9
9,7
7,7
9,9
8)
有如下C语言程序:
intarray[10]={1,2,3,4,5,6,7,8,9,10};
int*ptr=array;
inti;
1++)
(*ptr)++;
ptr++;
printf("
%d"
ptr[i]);
则程序运行后的输出结果为()。
12345678910
0123456789
234567891011
以上选项都不对
9)
有如下C语言代码:
intp,q;
scnaf(“%6d%2d”,&
p,&
q);
printf(“p=%d,q=%d”,p,q);
运行该程序,输入9876543210,该程序的输出结果是().(选择一项)
dfdfdfdsdfsdsdfsdfsdfsdsssss
p=987654,q=64
p=987654,q=32
P=012345,q=67
p=987654,q=3210
10)
有如下C语言代码:
inta,b,p,q;
a=1;
p=2;
q=3;
b=-a<
q||p%q/a;
printf(“b=%d\n”,b);
则程序运行后的输出结果是()。
b=1
b=0
b=-1
b=2
11)
有如下的C程序
voidAdda(void)
3;
Adda();
voidAdda(void)
staticintx=0;
inty=1;
intz=0;
x++;
y++;
z=x+y;
printf(“x=%d,y=%d,z=%d”,x,y,z);
则其运行结果正确的是()。
x=1,y=2,z=3
x=2,y=3,z=5
x=3,y=4,z=7
x=2,y=2,z=4
x=3,y=2,z=5
x=1,y=3,z=4
x=1,y=4,z=5
12)
intm[][3]={1,4,7,2,5,8,3,6,9};
printf(“%d”,m[2][i]);
则程序编译运行后其输出结果正确的是()。
456
258
369
789
13)
有如下C语言程序段:
intn,t=1,s=0;
scanf(“%d”,&
n);
do
s++;
t=t-2;
}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是().(选择一项)
任意正奇数
任意负偶数
任意正偶数
任意负奇数
14)
structSTU
charname[10];
intnum;
floatTotalScore;
};
voidf(structSTU*p)
structSTUs[2]={{“SunDan”,20044,550},{“Penghua”,20045,537}};
structSTU*q=s;
++p;
++q;
*p=*q;
structSTUs[3]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580}};
f(s);
printf(“%s%d%3.0f\n”,s[1].name,s[1].num,s[1].TotalScore);
则编译运行后其输出结果是()。
SunDan20044550
Penghua200045537
LiSiGuo20042580
SunDan20041703
15)
有如下C语言程序
Voidmain()
chara[]={‘b’,’c’,’d’,’f’,’a’};
char*p=a;
*p++=’d’;
p=a;
5;
++i)
printf(“%c”,*(p+i));
将运行该程序产生的打印输出结果进栈(栈原来为空),再从栈中弹出一个元素,这时栈中保存的元素,从栈顶到栈底元素依次为()。
d,c,d,f
f,d,c,d
b,c,d,f
f,d,c,b
16)
在C语言中,有如下定义:
intc[4][5]={3,4,5};
int(*p)[5];
p=c;
则能正确引用数组C中元素的是()。
p+1
*(p+3)
*(p+1)+3
*(p[0]+2)
17)
在C语言中,下列选项中,合法的实型常量是()。
4.7E0.5
3.14159E
.5E-7
E6
18)
intx=10;
inty=10;
printf(“%d%d\n”,x--,--y);
则程序运行后输出结果是()(选择一项)
1010
109
99
910
19)
有如下C语言程序()(选择一项)
inti,j
for(i=0,j=10;
j;
i+=2,j--)
;
printf(“%d”,i);
printf(“%d\n”,j)
C
86
8
67
76
68
20)
charch;
ch=getchar();
switch(ch)
case65:
printf(“%c”,’A’);
case66:
printf(“%c”,’B’);
default:
printf(“%s”,“other”);
当从键盘输入字母A时,运行结果正确的是().(选择一项)
A
ABother
Aother
编译错误,无法运行
21)
下列关于C语言注释规则中正确的是()。
(选择二项)
尽量不要在语句指令中添加注释
最好进行嵌套注释
注释的位置一般放在被注释代码的下方
行末注释最好对齐
22)
下列C语言函数中通过正确调用,能够实现交换实参值的是()(选择一项)
f
Funa(int*x,int*y)
int*p;
*p=*x;
*x=*y;
*y=*p;
Funb(intx,inty)
intt;
t=x;
y=t;
Func(int*x,int*y)
*y=*x;
Fund(int*x,int*y)
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
23)
intd=1;
voidfun(intp)
intd=5;
d+=p++;
printf(“%d”,d);
inta=3;
fun(a);
d+=a++;
则程序运行后的输出结果是()(选择一项)
84
96
94
85
24)
#include<
stido.h>
]
voidprtv(int*x)
printf(“%d\n”,++*x);
inta=25;
prtv(&
a);
23
24
25
26
25)
在C语言中,表达式10!
=9的值为()。
true
随机值
1
26)
在C语言中,下列关于函数的叙述中正确的是()(选择一项)
一个函数内部可以调用另一个函数,也可以调用它本身
每个函数都可以被单独编译
每个函数都可以单独运行
在一个函数内部可以定义另一个函数
27)
在C语言中,下列有关文件操作的叙述中错误的是()(选择一项)
使用fseek函数可以实现改变文件的位置指针
在程序结束时,应当用fclose函数关闭已打开的文件
利用fread函数从二
进制文件中读数据,可以用数组名给数组中所有元素读入数据
不可以用FILE定义指向二进制文件的文件指针
28)
intm=9,n=2
inta,b
a=m%n;
b=m/n
a=%d,b=%d\n"
a++,--b);
则程序运行后运输结果是().(选择一项)
a=1,b=4
a=2,b=4
a=2,b=3
a=1,b=3
29)
在C语言中,若有语句:
char*line[5];
则下列叙述中正确的是().(选择一项)
定义line是一个长度为5的数组,每个数组元素是指向char类型的指针变量
定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
定义line是一个指针数组,语句中的*号称为间址运算符
定义line是一个指向字符型函数的指针
30)
string.h>
voidmain(void)
structstudentstruct
{intNo;
charName[20]
charSex;
floatScore;
};
structstudentstructstudent1;
structstudentstruct *ps;
ps=&
student1;
student1.No=1
strcpy(student1.Name,"
ZhangGuo"
);
student1.Sex='
M'
;
student1.Score=90.5;
___________________;
若其实现的功能是记录学员信息并输出,则空白处不可以填入的代码是( )。
printf("
No:
%d\nName:
%s\nSex:
%c\nScore:
%.2f\n"
student1.No,student1.Name,student1.Sex,student1.Score)
(*ps).No,(*ps).Name,(*ps).Sex,(*ps).Score)
ps->
No,ps->
Name,ps->
Sex,ps->
Score)
ps.No,ps.Name,ps.Sex,ps.Score)
31)
charc;
chara[]={"
shouji"
char*p=a
c=____;
putchar(c);
则在程序空白处填上( )表达式,编译运行后能够输出字符’o’.(选择一项)
(p+=2,*(p++))
(p+=2,*++p)
(p+=3,*p++)
(p=p+2,++*p)
32)
voidswap1(intc0[],intc1[])
intt;
t=c0[0];
c0[0]=c1[0];
c1[0]=t;
voidswap2(int*c0,int*c1)
t=*c0;
*c0=*c1;
*c1=t;
inta[2]={3,5},b[2]={3,5};
swap1(a,a+1);
swap2(&
b[0],&
b[1]);
%d%d%d%d\n,a[0],a[1],b[0],b[1]);
则编译运行后其输出结果是()。
3553
5335
3535
5353
33)
在C语言中,下列能够作为合法的变量标识符的是()
8abc
_1_2_3_
My.space
&
name
34)
inta=077;
intb=a&
printf(“%d\n”,b);
则程序编译运行后的结果为()。
3
011
35)
voidmain()
{
intx,y,z,t;
scanf(“%d,%d,%d”,&
x,&
y,&
z);
if(x>
y)
t=x;
x=y;
y=t;
if(y>
z)
t=y;
y=z;
z=t;
printf(“%d%d%d\n”,x,y,z);
输入三个互不相等的整数后,程序实现的功能是()。
将三个数按照从大到小的顺序输入
将三个数按照最大数、最小数、中间数的顺序输出
将三个数按照中间数、最大数、最小数的顺序输出
将三个数按照从小到大的顺序输出
36)
inta,b;
scanf(”%d%d”,&
a&
b);
printf(“%d,%d”,a,b);
当输入a、b的值时,不能作为输入数据分隔符的是()。
逗号(,)
空格
回车
[TAB]
37)
for(a=1,b=1;
a<
=100;
a++)
if(b>
=20)
break;
if(b%3==1)
b+=3;
continue;
b-=5;
printf(“%d\n”,a);
7
9
10