计算机等级考试二级C语言考前密卷6Word文档格式.docx
- 文档编号:22487379
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:18
- 大小:23.22KB
计算机等级考试二级C语言考前密卷6Word文档格式.docx
《计算机等级考试二级C语言考前密卷6Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言考前密卷6Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
A)顺序结构
B)跳转分支结构
C)选择结构
D)循环结构
(13)已知intk,m=1;
执行语句k=-m++;
后,k的值是
A)-1
B)0
C)1
D)2
(14)已知intm;
floatk;
正确的语句是
A)(intk)%m
B)int(k)%m
C)int(k%m)
D)(int)k%m
(15)下面各选项中,均是C语言标识符的选项组是
A)33
we
auto
B)_23
me
_3ew
C)_43
3e_
else
D)ER
-DF
32
(16)已知intk;
floatm=-3;
执行语句k=m%2;
后,变量k的值是
D)语句有错误
(17)不能进行++和--运算的数据类型为
A)指针
B)整型
C)长整型
D)常量
(18)已知intk=10,m=3,n;
则下列语句输出结果是
printf("
%d\n"
n=(k%m,k/m));
A)2
B)3
C)4
D)5
(19)已知inta;
floatb;
所用的scanf调用语句格式为:
scanf("
a//%d,b=%f"
&
a,&
b);
为了将数据3和25.08分别赋给x和y,正确的输入应当是
A)3,25.08
B)a=3,b=25.08
C)a//3,b=25.08
D)a//3b=25.08
(20)当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A)m=k=n
B)(m=k)&
&
(n=k)
C)(m=k)||(n=k)
D)(k=m)&
(21)下列程序的运行结果是
#include"
stdio.h"
main()
{intx=-9,y=5,z=8;
if(x<
Y)
if(y<
0)z=0;
elsez+=1;
z);
}
A)6
B)7
C)8
D)9
(22)现有定义intk=1;
则执行语句while(++k<
4);
后,k的值为
A)4
B)5
C)6
D)8
(23)以下程序的运行结果为
{intm,n;
for(m=0,n=10;
m
%d,%d\n"
m,n);
A)6,7
B)7,6
C)9,7
D)7,9
(24)阅读下列程序,程序的输出结果是
{
intm,n;
floatk;
for(m=6;
m>
2;
m--)
{k=0;
for(n=m;
n>
1;
n--)
k=k+m*n;
}
%f\n"
k);
}
A)5.000000
B)15.000000
C)25.000000
D)35.000000
(25)下列程序的输出结果是
{inti,a=0,b=0;
for(i=1;
i<
10;
i++)
{if(i%2==0)
{a++;
continue;
b++;
a=%d,b=%d"
a,b);
A)a=4,b=4
B)a=4,b=5
C)a=5,b=4
D)a=5,b=5
∙26)下列选项可以正确表示字符型常量的是
A)′\r′
B)"
a"
C)"
\897"
D)296
(27)下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数
B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
(28)阅读下面程序段,则执行后的结果为
{intm=4,n=2,k;
k=fun(m,n);
fun(intm,intn)
{return(m*m*m-n*n*n);
A)64
B)8
C)56
D)0
(29)阅读下面程序段,则执行后输出的结果是
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);
charfun(chara,intb)
{chark;
k=a+b;
returnk;
A)A
B)M
C)N
D)L
(30)编写求两个双精度数之和的函数,选项中正确的是
A)double
add(doublea,doubleb)
{doubles;
s=a+b;
returns;
}
B)double
add(doublea,b)
return(s);
C)double
add(doubleadoubleb)
s=a+b;
returns;
D)double
add(a,b)
{doublea,b,s;
return(s);
(31)已知inta;
则下面的说明指针变量p的语句正确的是
A)intp=&
a
B)int*p=a
C)int*p=&
D)int*p=*a
(32)已知char**t;
则变量t是
A)指向char变量的指针
B)指向指针的char变量
C)指向指针的指针
D)以上说法都不对
(33)阅读下面程序,执行后的结果为
voidfun(int*a,int*b)
{intk;
k=5;
*a=k;
*b=*a+k;
{int*a,*b,x=10,y=15;
a=&
x;
b=&
y;
fun(a,b);
*a,*b);
A)10,15
B)5,15
C)5,10
D)15,10
(34)阅读下面程序,在程序执行后的结果为
int*fun(int*a,int*b)
{intm;
m=*a;
m+=*b-3;
return(&
m);
{intx=21,y=35,*a=&
x,*b=&
int*k;
k=fun(a,b);
*k);
A)53
B)21
C)35
D)14
(35)已知inta[10];
则对a数组元素的正确引用是
A)a[10]
B)a
C)a+5
D)a[10-10]
(36)在C语言中,一维数组的定义方法为
类型说明符数组名
A)[常量表达式]
B)[整型常量]
C)[整型变量]
D)[整型常量]或[整型表达式]
(37)阅读下列程序,则运行结果为
fun()
{static
intx=5;
x++;
returnx;
{
inti,x;
for(i=0;
3;
x=fun();
printf("
x);
A)5
B)6
C)7
(38)下列程序的输出结果是
#defineM(x,y)x%y
inta,m=12,n=100;
a=M(n,m);
a--);
(39)阅读下面程序,则程序段的功能是
intc[]={23,1,56,234,7,0,34},i,j,t;
7;
t=c[i];
j=i-1;
while(j>
=0&
t>
c[j])
{c[j+1]=c[j];
j--;
c[j+1]=t;
for(i=0;
%d"
c[i]);
putchar(′\n′);
A)对数组元素的升序排列
B)对数组元素的降序排列
C)对数组元素的倒序排列
D)对数组元素的随机排列
(40)阅读下列程序,则执行后的结果为
{intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
%x,%x\n"
c[2][2],*(*(c+1)+1));
A)3e,6
B)62,5
C)56,5
D)3E,6
(41)下列选项中错误的说明语句是
A)chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B)chara[]={"
toyou\0"
};
C)chara[]="
;
D)chara[]=′toyou\0′;
(42)下述对C语言字符数组的描述中错误的是
A)字符数组的下标从0开始
B)字符数组中的字符串可以进行整体输入/输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)字符数组可以存放字符串
(43)阅读下列程序,则在执行后,程序的运行结果为
string.h"
{chara[30]="
nicetomeetyou!
"
strcpy(a+strlen(a)/2,"
you"
);
%s\n"
a);
A)nicetomeetyouyou
B)niceto
C)meetyouyou
D)nicetoyou
(44)阅读下面程序,则执行后的结果是
{charstr[]="
tomeetme"
*p;
for(p=str;
p
\n"
A)tomeetme
B)tmem
C)oete
D)tome
(45)下面程序的文件名为t.exe,在DOS下输入的命令行参数如下:
ttomeetme<
回车>
则程序输出的结果是
main(argc,argv)
intargc;
char*argv[];
{inti;
argc);
A)3
B)4
C)2
D)以上答案都不正确
(46)阅读下面程序,则执行后的结果为
longfun(intn)
{if(n>
2)
return(fun(n-1)+fun(n-2));
elsereturn
(2);
{printf("
%ld\n"
fun(5));
A)10
B)15
C)20
D)以上3个答案都不正确
(47)已知如下定义,则sizeof(a)的值是
struct{inti;
charc;
doublea;
}a;
A)8
B)9
C)10
D)11
(48)已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义
structa*f(intt1,int*t2,strcutat3,structa*t4)
structap,*p1;
inti;
则正确的函数调用语句为
A)&
p=f(10,&
i,p,p1);
B)p1=f(i++,(int*)p1,p,&
p);
C)p=f(i+1,&
(i+2),*p,p);
D)f(i+1,&
i,p,p);
(49)下面程序段的输出为
{printf("
12<
<
2);
A)0
B)47
C)48
D)24
(50)假定当前盘符下有两个文本文件,如下
文件名
a1.txt
a2.txt
内容
123#
321#
则下面程序段执行后的结果为
voidfc(FILE*p)
charc;
while((c=fgetc(p))!
=′#′)putchar(c);
FILE*fp;
fp=fopen("
a1.txt"
"
r"
fc(fp);
fclose(fp);
a2.txt"
A)123321
B)123
C)321
D)以上答案都不正确二、填空题
(1)常用的黑箱测试有等价分类法、【1】、因果图法和错误推测法4种。
解析:
黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。
常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。
(2)测试的目的是暴露错误,评价程序的可靠性;
而【2】的目的是发现错误的位置并改正错误。
软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;
调试也称排错,它是一个与测试有联系又有区别的概念。
具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。
(3)软件维护活动包括以下几类:
改正性维护、适应性维护、【3】维护和预防性维护。
软件维护活动包括以下几类:
改正性维护、适应性维护、完善性维护和预防性维护。
改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;
适应性维护是指为了使软件适应变化,而去修改软件的过程;
完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;
预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
(4)在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】。
在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。
其中消息是用来请求对象执行某一处理或回答某些信息的要求。
(5)关键字ASC和DESC分别表示【5】的含义。
ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。
(6)定义inta=5,b;
则执行表达式b=++a*--a之后,变量b的值为【6】。
【命题目的】考查对于基本运算符的掌握情况。
【解题要点】++和--做前缀使用的时候,先对变量进行增1或减1,之后进行其他的运算。
【考点链接】赋值运算符的优先级仅仅高于逗号运算符。
(7)以下程序的输出结果是【7】。
#include"
main()
{inta=065;
printf("
--a);
【命题目的】考查对于数据的格式化输出的掌握情况。
【解题要点】八进制的65转换为十进制的53之后减1输出。
【考点链接】0开头的是八进制整数。
(8)阅读下面程序,则执行后的输出结果是【8】。
{intx,y,z;
x=1;
y=2;
z=3;
if(x>
y)if(x>
z)printf("
%d"
elseprintf("
y);
【命题目的】考查对于if语句的掌握情况。
【解题要点】C语言的语法规定:
else子句总是与前面最近的不带else的if相结合。
因为x不大于y,所以执行printf("
语句。
(9)如下语句printf("
%c\n"
′B′+40);
在执行后的输出结果是【9】。
【命题目的】考查对于字符常量运算的掌握情况。
【解题要点】在C程序中的字符量可参与任何整数运算。
【考点链接】%c是以字符的形式输出。
(10)阅读下面程序,则程序的执行结果为【10】。
{inta=30,b=20,z;
z=fun(a+b,a-b);
fun(inta,intb)
{intz;
z=a/b;
returnz;
【命题目的】考查对于函数的调用和返回值的掌握情况。
【解题要点】函数调用的时候,函数名字必须与所调用的函数名完全一致,形参与实参类型要一致,在没有给出函数返回值类型的情况下,默认为整形,当返回值为整型的函数放到主函数后面时,可以不需要事先说明就调用这个函数。
【考点链接】retrun既可以返回一个普通常量,也可以返回一个指针变量。
(11)下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;
【11】;
q++)
if(【12】)max=*q;
elseif(【13】)min=*q;
【命题目的】考查对于函数的地址传递的掌握情况。
【解题要点】通过地址传递可以在被调函数中对调用函数中的变量进行引用。
(12)下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,请填空。
fun(intx,intb[])
{intk=0,r;
do{
r=x%【14】;
b[【15】]=r;
x/=【16】;
}while(x);
【命题目的】考查对于数组操作的综合运用。
【解题要点】深刻理解十进制转化为二进制的方法,即取余法;
数组名作为实参,在函数内部可以直接修改调用函数中定义的数组的值。
【考点链接】do…while循环,先执行循环体,后判断循环条件。
(13)下面函数的功能是将一个字符串的内容颠倒过来,请填空。
voidfun(charstr[])
{inti,j,【17】;
for(i=0,j=【18】;
J;
I++,J--)
{k=str[i];
str[i]=str[j];
str[j]=k;
(14)阅读下面程序,则程序的执行结果为【19】。
fun(intk,int*p)
{inta,b;
if(k==1||k==2)
*p=1;
else{
fun(k-1,&
a);
fun(k-2,&
*p=a+b;
{
intx;
fun(6,&
x);
printf("
(14)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 语言 考前