1 / 351
文档名称:

二年级C语言程序设计历年真题与模拟试题详解.docx

格式:docx   大小:3,995KB   页数:351页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

二年级C语言程序设计历年真题与模拟试题详解.docx

上传人:美美阳光 2023/2/7 文件大小:3.90 MB

下载得到文件列表

二年级C语言程序设计历年真题与模拟试题详解.docx

文档介绍

文档介绍:该【二年级C语言程序设计历年真题与模拟试题详解 】是由【美美阳光】上传分享,文档一共【351】页,该文档可以免费在线阅读,需要了解更多关于【二年级C语言程序设计历年真题与模拟试题详解 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Preparedon24November2020
二年级C语言程序设计历年真题与模拟试题详解
目 录
第一部分 历年真题及详解
2016年3月全国计算机等级考试《二级C语言程序设计》真题及详解
(考试时间120分钟满分100分)
一、选择题(每题1分,共40分)
:
structdata
{ inti;charc;doubled;}x;
以下叙述中错误的是()。


,可以对x的所有成员同时赋初值
、c和d占用的是同一个存储空间
【答案】D
【解析】变量i、c、d是结构体变量x中三个不同的成员,占用不同的存储空间。
:计算a的n次方作为函数值返回。
doublefun(doublea,intn)
{ inti;doubles=;
for(i=1;i<=n;i++)s=;
returns;
}
为实现上述功能,函数中下划线处应填入的是()。
*i
*a
+i*i
+a*a
【答案】B
【解析】s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。
:
#include<>
#include<>
main()
{ charstr[]={"Hello,Beijing"};
printf("%d,%d\n",strlen(str),sizeof(str));
}
程序的运行结果是()。
,13
,14
,15
,15
【答案】B
【解析】strlen返回字符串的长度,不包含字符串末尾的结束字符′\0′,结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个′\0′,所以结果为13+1=14。
:typedefstruct{inta;charc;}w;,则以下叙述正确的是()。




【答案】D
【解析】w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。当w定义为结构体变量时才会为其分配存储空间。
()。

,给后面的元素赋初值0
:inta[10]={0};,给a数组中所有元素赋初值0
:inta[4]={1,2,3,4,5};,编译时将忽略多余的初值
【答案】D
【解析】数组初始化时,若赋初值的个数多于所定义数组的元素个数时,编译器会报错。
:
structtt{charname[10];charsex;}aa={"aaaa",′F′},*p=&aa;
则错误的语句是()。
("%c",);
B.=getchar();
("%c\n",(*p).sex);
("%c\n",p->sex);
【答案】A
【解析】sex是一个char类型变量,不是地址,A项应为scanf("%c",&);。
()。




【答案】C
【解析】编译程序的功能是将“高级语言”翻译为“机器语言”,将C语言语句转换成二进制的机器指令。
:
#include<>
intfun(intn)
{ if(n)returnfun(n-1)+n;
elsereturn0;
}
main()
{ printf("%d\n",fun(3));}
程序的运行结果是()。




【答案】C
【解析】fun函数是一个递归函数,调用f(3),参数n=3,返回f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。
:
#include<>
main()
{ intsum=0,x=5;
do{sum+=x;}while(!--x);
printf("%d\n",sum);
}
程序的运行结果是()。




【答案】B
【解析】do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。
()。




【答案】A
【解析】软件设计阶段的任务包括:①结构设计;②数据设计;③接口设计;④过程设计。软件的功能确定是在需求分析阶段完成的。
:
#include<>
#include<>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STU*a)
{ strcpy(a->name,"Zhao");
a->sex=′m′;a->score[1]=;
}
main()
{ STUc={"Qian",′f′,,},*d=&c;
f(d);printf("%s,%c,%,%\n",d->name,,[0],[1]);
}
程序的运行结果是()。
,f,95,92
,f,95,90
,m,95,90
,f,95,92
【答案】C
【解析】f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。main函数中有赋值语句"*d=&c;",指针d指向结构体数组c的首地址,故d->name=,输出结果为Zhao,m,95,90。
,下列说法正确的是()。
,但函数的调用不可以嵌套
,但函数的调用可以嵌套


【答案】B
【解析】函数定义都是在函数外部进行的,函数调用是在函数内部进行的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。
,s的值为()。
inta[]={1,2,3,4,5,6,7,8,9},s=0,k;
for(k=0;k<8;k+=2)s+=*(a+k);




【答案】B
【解析】数组a中的元素为:a[0]=1,a[1]=2,…,a[8]=9。k=0时,s=s+*(a+0)=0+1=1;k=2时,s=1+*(a+2)=1+3=4;k=4时,s=4+5=9;k=6时,s=9+7=16。
:
#include<>
#defineM5
#definef(x,y)x*y+M
main()
{
intk;
k=f(2,3)*f(2,3);
printf("%d\n",k);
}
程序的运行结果是()。




【答案】B
【解析】宏定义中的函数在调用时只做简单的替换,不能进行任何修改。所以k=2*3+5*2*3+5=41。
:
#include<>
main()
{ charch=′Z′;
ch=(ch-′A′+1)%26+′A′;putchar(ch);
}
程序的运行结果是()。




【答案】D
【解析】Z的ASCII码是90,A的ASCII码是65,所以ch=(ch-′A′+1)%26+′A′=26%26+65=65,输出65对应的字符A。
()。




【答案】B
【解析】等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类进行测试。基本路径测试、判定覆盖测试和语句覆盖测试都属于白盒测试。
:
#include<>
main()
{ inti,j,k,a=5,b=6;
i=(a==b)++a:--b;
j=a++;k=b;printf("%d,%d,%d\n",i,j,k);
}
程序的运行结果是()。
,6,5
,5,5
,5,5
,6,5
【答案】B
【解析】条件表达式i=(a==b)++a:--b;中先执行a==b,值为假,根据三元运算符语法规则,执行--b,此时b为5,赋给i,i=5;j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。
,若函数无返回值,则应该对函数说明的类型是()。




【答案】D
【解析】int表示返回值是整型,double表示返回值是双精度型,char表示返回值是字符型,void表示无返回值。
:
#include<>
main()
{ intk,n=0;charc,str[]="teach";
for(k=0;str[k];k++)
{ c=str[k];
switch(k)
{ case1:case3:case5:putchar(c);printf("%d",++n);break;
default:putchar(′N′);
}
}
}
序的运行结果是()。




【答案】C
【解析】程序执行过程:k=0时,c=str[0]=′t′,执行default分支,输出N;k=1时,c=′e′,执行case1分支,没有break语句,继续执行case3分支,没有break语句,继续执行case5分支,输出e1;k=2时,c=′a′,输出N;k=3,c=′c′,输出c2;k=4,c=′h′,输出N。故程序的输出结果为Ne1Nc2N。
:
#include<>
voidfun(char(*p)[6])
{ inti;
for(i=0;i<4;i++)printf("%c",p[i][i]);
printf("\n");
}
main()
{ chars[6][6]={"ABCDE","abcde","12345","FGHIJ","fghij","54321"};
fun(s);
}
程序的运行结果是()。




【答案】B
【解析】函数fun的功能是输出s[i][i],二维数组的对角线元素,所以程序会输出s[0][0]、s[1][1]、s[2][2]、s[3][3],即Ab3I。
,以下表达式中能将x的百位上的数字提取出的是()。
%100
%10/100
%100/10
%10
【答案】D
【解析】x/100的个位数是x的百位数上的数字,所以再进行除10取余运算即可得到该数字。
-R图中,表示实体的图形是()。




【答案】A
【解析】在E-R图中,矩形表示实体集,矩形内写该实体集的名字。
()。
,具有抽象性
、运行对计算机系统具有依赖性