计算机二级C语言测试题含答案Word文件下载.docx
《计算机二级C语言测试题含答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言测试题含答案Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
intx='
f'
;
printf("
%c\n"
'
A'
-'
a'
+x));
3.能正确表示数学描述中0≤a≤10的C语言表达式是________。
A.a>
=0&
a<
=10 B.a>
=0||a<
=10
C.a>
&
=10 D.0≤a&
a≤10
4.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是________。
A.-3B.9C.-12D.6
5.假设所有变量均为int型,则表达式(a=2,b=5,b+1,a+b)的值是________。
A.7B.8C.6D.2
6.执行下面程序段后,y的结果是________。
intx,y;
x=y=2;
x=x-2&
(y=y+1);
printf("
%d"
y);
A.3B.2C.1D.0
7.表达式(int)*2+8/3-3%2的值是_________。
A.2B.3C.4D.5
1.A
2.F
3.C
4.C
5.A
6.B
7.B
C语言测试题(第三章)
1.以下程序的输出结果是________。
intk=8765;
*%-06d*\n"
k);
A.输出格式描述符不合法B.*008765*
C.*8765
*D.*-08765*
【答案】C.
2.有程序段如下:
inti;
floatf;
scanf("
i=%d,f=%f"
&
i,&
f);
若要求把数值100和分别赋给变量i和f,则正确的输入格式为________。
A.
B.i=100,f=
C.100,
D.i=100f=
【答案】B
3.有程序如下:
inti;
floatx,y;
scanf("
%2d%f%*d%f"
x,&
y);
%d,%f,%f\n"
i,x,y);
执行该程序时,若按如下形式输入数据,则输出结果是________。
输入数据:
34
45
A.56,,B.56789,,
C.56,,D.56,,
【答案】A
4.输入字母a时,下列程序的执行结果是________。
#include"
"
charch;
ch=getchar();
(ch>
='
ch<
z'
)putchar(ch+'
):
putchar(ch);
【答案】输出大写字母A
C语言测试题(第四章)
1.下面是由if构成的一个程序段:
if(a<
b)
if(d==c)
x=1;
else
x=2;
该程序段所表示的逻辑关系对应的表达式是________。
A.
B.
C.
D.
2.以下程序的运行结果为________。
intx=2,y=-1,z=2;
if(x<
y)/*第一个if*/
if(y<
0)z=0;
/*第二个if*/
elsez+=1;
z);
A.3B.2C.1D.0
3.有程序段如下:
inta=1,b=2,c=3;
if(a>
c=a;
a=b;
b=c;
执行该程序段后,变量a、b、c的值是__________。
A.a=1,b=2,c=3B.a=2,b=3,c=3
C.a=2,b=3,c=1D.a=2,b=3,c=2
4.有程序如下:
intc;
while((c=getchar())!
\n'
)
switch(c-'
2'
)
{
case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
default:
putchar(c+2);
}
\n"
);
若运行该程序时,按如下形式从键盘输入数据,则程序的运行结果为________。
2473
A.668977B.668966
C.D.6688766
5.执行下面的程序段后,a和b的值分别为________。
inta=3,b=5,c;
c=(a>
--b)a++:
b--;
A.3,2B.3,3C.4,4D.4,5
1.D
2.B
3.B
4.A
5.B
C语言测试题(第五章)
1.有程序段如下:
intk=10;
while(k=0)
k=k-1;
则下面描述中正确的是________。
A.语句“k=k-1;
”被执行10次
B.语句“k=k-1;
”被执行无限多次
C.语句“k=k-1;
”一次也不执行
D.语句“k=k-1;
”只执行一次
do
}while(k>
=0);
”执行1次
”执行10次
”执行11次
”执行12次
3.下面是一个程序段:
for(y=1,x=2;
y<
=50;
y++)
if(x>
=10)break;
x+=5;
执行该程序段后,x值为________。
A.2B.7C.12D.15
4.有程序段如下:
inti,j;
for(i=5;
i;
i--)
for(j=1;
j<
5;
j++)
......
假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为________。
A.20B.24C.25D.30
5.下面是一个循环控制程序:
floatx,y,z;
%f,%f"
z=x/y;
while
(1)
if(fabs(z)>
x=y;
y=z;
else
break;
%\n"
运行该程序,按如下形式从键盘输入数据,程序的数出结果是________。
键盘输入数据:
A.B.C.D.
1.C2.C3.C4.A5.B
C语言测试题(第六章)
1.若有数组定义intm[][2]={1,3,5,7,9},则以下叙述正确的是________。
A.该定义存在语法错误
B.该定义等价于intm[3][2]={1,3,5,7,9}
C.该定义等价于intm[][2]={{1,3,5},{7,9}}
D.该定义等价于intm[2][2]={1,3,5,7,9}
2.对两个数组a和b进行如下的初始化:
chara[]={'
'
b'
c'
d'
e'
};
charb[]="
abcdef"
则以下叙述正确的是________。
A.a数组与b数组完全相同
B.a数组与b数组具有相同的长度
C.a数组和b数组的最后一个字符都是字符串结束标志符'
\0'
D.a数组的长度比b数组的长度小
3.下面程序的功能是输出数组s中最大元素的下标。
请在横线上填上适当的内容,使它能得出正确的结果。
intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;
p<
6;
p++)
if(s[p]>
s[k])____________;
k);
4.下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。
请在横线上填上适当的程序代码,使它能输出正确的结果。
inti=0;
charstr[80];
%s"
str);
while(①)
if(②)str[i]=str[i]-32;
③;
%s\n"
str);
5.下面程序的功能是将一个字符串str的内容颠倒过来。
请在横线上填上适当的内容,使它能输出正确的结果。
inti,j,①;
charstr[]="
abcdefghijk"
j=strlen(str)②;
for(i=0;
i<
j;
i++,j--)
k=str[i];
str[i]=str[j];
str[j]=k;
1.B
2.D
3.k=p
4.①str[i]!
='
或简写成str[i]
②str[i]>
str[i]<
③i++或++i或i=i+1或i+=1
5.①k②-1。
C语言测试题(第七章)
1.以下代码用来对函数进行定义,正确的函数形式是________。
A.doublefun(intx,inty)
{z=x+y;
return(z);
B.fun(intx,y)
{intz;
returnz;
C.doublefun(intx,inty)
{doublez;
z=x+y;
returnz;
D.fun(x,y)
{intx,y;
doublez;
2.有下列函数调用语句,函数fun1()的实参个数是________。
fun1(a+b,(y=9,y*x),fun2(y,n,k));
3.下列函数调用错误的是________。
A.max(a,b)B.ax(3,a+b)
C.max(3,5)D.floatmax(c,5)
4.在C程序中,下面描述正确的是________。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数调用都可以嵌套
D.函数的定义和调用都不可以嵌套
5.下列关于参数的说法正确的是________。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共用一个存储单元
C.形参是虚拟的,不占用存储单元
D.只有当实参和与其对应的形参同名时才共用存储单元
1.C
2.A
3.D
4.B
C语言测试题(第八章)
1.有如下定义:
intk=2;
int*ptr1=&
k,*ptr2=&
k;
下面不能正确执行的赋值语句是________。
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.ptr1=ptr2;
D.k=*ptr1*(*ptr2);
2.若有如下定义:
chars[20],*ps=s;
则,以下赋值语句正确的是________。
A.s=ps+s;
B.ps=ps+20;
C.s[5]=ps[9];
D.ps=s[0];
3.以下程序的运行结果是________。
staticintarr[]={6,7,8,9};
4;
i++)
*(arr+i));
4.以下程序的输出结果是________。
char*s[]={"
one"
"
two"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
A.n,twoB.t,oneC.w,oneD.o,two
5.以下程序运行时,若输入数据为17
18
19,则程序的输出结果为________。
#incliude"
voidrcircle(int*p1,int*p2,int*p3);
voidmain()
inta,b,c;
int*p1,*p2,*p3;
Enterthreeintegers:
%d%d%d"
a,&
b,&
c);
p1=&
a;
p2=&
b;
p3=&
c;
rcircle(p1,p2,p3);
%5d%5d%5d\n"
a,b,c);
voidrcircle(int*pr1,int*pr2,int*pr3)
inttemp;
temp=*pr3;
*pr3=*pr2;
*pr2=*pr1;
*pr1=temp;
2.C
3.6789
5.191718
C语言测试题(第九章)
1.关于结构体类型的定义,下列描述正确的是________。
A.定义结构体类型时,系统会根据各个成员的大小为其分配内存空间。
B.定义结构体类型时,系统会根据最大成员的大小为其分配内存空间。
C.定义结构体类型时,不会产生内存分配。
D.以上说法都不对。
2.以下各项用于定义结构体类型,并定义结构体变量,其中正确的是________。
A.structstudentB.structstudentstu1,stu2;
{charnum[5];
structstudent
intscore;
};
studentstu1,stu2;
C.structstudentD.structstudent
intscore=96;
structstudentstu1,stu2;
3.以下形式定义了结构体变量member,对其成员name的引用有多种形式。
在下面的引用形式中,错误的是________。
struct
charname[10];
intage;
}member,*p;
A.B.name
C.p->
nameD.(*p).name
4.下面的程序运行后的输出结果为________。
structstu
{intnum;
voidfun(structstu*p)
(*p).name);
structstustudents[3]={{9801,"
Zhang"
20},{9802,"
Wang"
19},{9803,"
Zhao"
18}};
fun(students+1);
5.有程序如下:
structdate
intyear,month,day;
}today;
%d,%d\n"
sizeof(structdate),sizeof(today));
该程序执行后输出的结果是________。
A.2,2B.6,2C.6,6D.2,6
4.Wang
5.C
C语言测试题(第十章)
1.已知fp为文件类型指针,若要打开e盘text文件夹(目录)下的文件,下面各选项中正确的是________。
A.fp=fopen(e:
text\,"
r"
)B.fp=fopen(e:
\text\,"
C.fp=fopen("
e:
\text\"
)D.fp=fopen("
\\text\\"
2.使用fclose(fp)函数正常关闭fp文件后,函数fclose()的返回值是________。
A.1B.0C.–1D.非零值
3.函数调用fseek(fp,-20L,2)的含义是________。
A.将文件位置指针移到距离文件头20个字节处
B.将文件位置指针从当前位置向后移动20个字节
C.将文件位置指针从文件末尾处向文件头方向移动20个字节
D.将文件位置指针移到离当前位置20个字节处
4.有如下定义:
structstua[20];
FILE*fp;
设文件中以二进制文件格式存放了5个班的学生数据,且文件已打开,fp指向文件头。
若要从文件中读出20个学生的数据放入a数组中,以下语句不正确的是_________。
A.for(i=0;
20;
i++)fread(&
a[i],sizeof(structstu),1L,fp);
B.for(i=0;
i++)fread(a+i;
sizeof(structstu),1L,fp);
C.fread(a,sizeof(structstu),20L,fp);
D.for(i=0:
i++)fread(a[i],sizeof(structstu),1L,fp);
4.D
C语言测试题(第十一章)
1.以下程序的运行结果是_________。
#defineN4
#defineMN+2
#defineKM*M/2
i=N+M+K;
i);
2.以下程序的输出结果是________。
#defineT(x,y)(x)<
(y)(x):
(y)
inti,j,k;
i=10,j=15,k=10*T(i,j);
A.15B.100C.10D.150
3.在下面的宏定义中,能将宏调用M(a+b)展开为(a+b)*(a+b)的宏定义是________。
A.M(x)
x*xB.M
(x)
(x)*(x)
C.M(x)
(x)*(x)D.A,B,C都可以
4.以下程序的执行结果是________。
#definePI
#defineR5
#defineK1
#ifK
%"
2*PI*R);
#else
PI*R*R);
#endif
5.在下面程序的横线位置填上合适的代码,使程序能够正常运行。
typedefstruct
chartitle[20];
floatprice;
}BOOK;
___________;
%s%f"
,&
Title:
%sprice:
%\n"
,;
1.232.A3.C4.C5.BOOKvariable
C语言测试题(第十二章)
1.C++对C语言作了很多改进,下列描述中________使得C语言发生了质变,从面向过程变成了面向对象。
A.C++增加了一些新的运算符。
B.C++允许函数重载,并允许设置缺省参数。
C.C++允许在使用变量之前的任何位置对变量进行说明。
D.C++引进了类和对象的概念。
2.下列描述中,错误的是________。
A.C++的内联函数主要解决程序的运行效率问题。
B.C++的内联函数通常用于处理比较复杂的问题。
C.C++内联函数中可以包括各种语句。
D.除需要使用inline关键字说明外,内联函数与其它函数的定义没有区别。
3.C++中,以下对函数参数默认值设置正确的是________。
A.intsum(inta=20,intb,intc=10);
B.intsum(inta,intb=20,intc=10);
C.intsum(in