二级C语言81真题无答案.docx
- 文档编号:12723983
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:18
- 大小:34.75KB
二级C语言81真题无答案.docx
《二级C语言81真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言81真题无答案.docx(18页珍藏版)》请在冰点文库上搜索。
二级C语言81真题无答案
二级C语言-81
(总分100,考试时间90分钟)
一、选择题
下列各题A、B、C、D四个选项中,只有一个选项是正确的。
1.下列叙述中正确的是______。
A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
2.栈和队列的共同点是______。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
3.下列关于队列的叙述中正确的是______。
A.在队列中只能插入数据B.在队列中只能删除数据
C.队列是先进先出的线性表D.队列是先进后出的线性表
4.下面概念中,不属于面向对象方法的是______。
A.对象B.继承
C.类D.过程调用
5.软件是指______。
A.程序B.程序和文档
C.算法加数据结构D.程序、数据与相关文档的完整集合
6.信息隐蔽的概念与下述哪一种概念直接相关______。
A.软件结构定义B.模块独立性
C.模块类型划分D.模块耦合度
7.下列选项中,不属于模块间耦合的是______。
A.数据耦合B.标记耦合
C.异构耦合D.公共耦合
8.对于现实世界中事物的特征,在实体——联系模型中使用______。
A.属性描述B.关键字描述
C.二维表格描述D.实体描述
9.下列数据模型中,具有坚实理论基础的是______。
A.层次模型B.网状模型
C.关系模型D.以上三个都是
10.关系表中的每一横行称为一个______。
A.元组B.字段
C.属性D.码
11.下列叙述中错误的是______。
A.一个C语言程序只能实现一种算法
B.C程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个C函数可以单独作为一个C程序文件存在
12.C语言源程序名的后缀是______。
A..CB..exe
C..objD..cp
13.以下选项中不能用作C程序合法常量的是______。
A.1,234B."\123"
C.123D."\x7D"
14.表达式a+=a-=a=9的值是______。
A.0B.-9
C.18D.9
15.若有定义语句:
intx=12,y=8,z;
在其后执行语句
z=0.9+x/y;
则z的值为______。
A.1B.1.9
C.2D.2.4
16.阅读以下程序
#include<stdio.h>
main()
{intcase;
floatprintF;
printf("请输入2个数:
");
scanf("%d%f",&case,&printF);
printf("%d%f\n",case,printF);
}
该程序在编译时产生错误,其出错原因是______。
A.定义语句出错,case是关键字,不能用作用户自定义标识符
B.定义语句出错,pfintF不能用作用户自定义标识符
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出case的值
17.有以下程序
#include<stdio.h>
main()
{
charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是______。
A.1245B.1256
C.1278D.1267
18.以下选项中,当x为大于1的奇数时,值为0的表达式是______。
A.x%2==0B.x/2
C.x%2!
=0D.x%2==1
19.以下选项中与
if(a==1)a=b;
elsea++;
语句功能不同的switch语句是______。
A.switch(a==1){case0:
a=b;break;case1:
a++;}
B.switch(a){case1:
a=b;break;default:
a++;}
C.switch(a){defauh:
a++;break;case1:
a=b;}
D.switch(a==1){case1:
a=b;break;case0:
a++;}
20.若变量已正确定义,有以下程序段
i=0;
doprintf("%d,",i);while(i++);
printf("%d\n",i);
其输出结果是______。
A.0,1B.0,0
C.1,1D.程序进入无限循环
21.有以下程序
#include<stdio.h>
main()
{inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!
=2‖c--!
=3)
printf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是______。
A.1,3,3B.1,3,2
C.1,2,3D.3,2,1
22.有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:
printf("%d\n",n);break;
case2:
case4:
printf("%d\n",n);continue;
case0:
exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是______。
A.当产生的随机数n为0时结束程序运行
B.当产生的随机数n为4时结束循环操作
C.当产生的随机数n为1和2时不做任何操作
D.for循环语句固定执行8次
23.以下叙述中错误的是______。
A.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
B.用户定义的函数中可以没有return语句
C.用户定义的函数中若没有return语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式
24.有以下程序
#include<stdio.h>
voidfun(char*c,intd)
{*c=*c+1;
d=d+1;
printf("%c,%c,",*c,d);
}
main()
{charb="a",a="A";
fun(&b,a);
printf("%c,%c\n",b,a);
}
程序运行后的输出结果是______。
A.b,B,b,AB.b,B,B,A
C.a,B,B,aD.a,B,a,B
25.下列选项中,能正确定义数组的语句是______。
A.#defineN2008intnum[N];
B.intnum[];
C.intN=2008;intnum[N];
D.intnum[0..2008];
26.以下函数实现按每行8个输出w所指数组中的数据
#include<stdio.h>
voidfun(int*w,intn)
{inti;
for(i=0;i<n;i++)
{____________
printf("%d",w[i]);
}
printf("\n");
}
在横线处应填入的语句是______。
A.if(i%8==0)printf("\n");
B.if(i/8==0)continue;
C.if(i/8==0)printf("\n");
D.if(i%8==0)continue;
27.有以下程序
#include<stdio.h>
voidfun(char*c)
{
while(*c)
{
if(*c>="a"&&*c<="z")
*c=*c-("a"-"A");
c++;
}
}
main()
{
chars[81];
gets(s);
fun(s);
puts(s);
}
当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是______。
A.HELLOBEIJINGB.HelloBeijing
C.hellobeijingD.hELLOBeijing
28.有以下程序
#inclnde<stdio.h>
main()
{
inta[4][4]={{1,4,3,2},
{8,6,5,7},
{3,7,2,5},
{4,8,6,1}};
inti,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i])
{
t=a[j][i];
a[j][i]=a[k][i];
a[k][i]=t;
}/*按列排序*/
for(i=0;i<4;i++)
printf("%d,",a[i][i]);
}
程序运行后的输出结果是______。
A.1,6,5,7,B.8,7,3,1,
C.4,7,5,2,D.1,6,2,1,
29.若要求从键盘读入含有空格字符的字符串,应使用函数______。
A.gets()B.getc()
C.getchar()D.scanf()
30.设有如下程序段
#include<stdio.h>
chars[20]="Beijing",*p;
p=s;
则执行“p=s;”语句后,以下叙述正确的是______。
A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量D.数组s中的内容和指针变量p中的内容相同
31.有以下程序
#include<stdio.h>
main()
{chars[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
执行后的结果是______。
A.程序出错B.输出字符c的ASCII码
C.输出字符cD.输出字符a的ASCII码
32.有以下程序
#include<stdio.h>
#include<string.h>
voidfun(char*s[],intn)
{char*t;inti,j;
for(j=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j]))
{t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是______。
A.xy,aaaaccB.aaaacc,xy
C.bcc,aabccD.aabcc,bcc
33.有以下程序
#include<stdio.h>
inta=4;
intf(intn)
{intt=0;staticinta=5;
if(n%2){inta=6;t+=a++;}
else{inta=7;t+=a++;}
returnt+a++;
}
main()
{ints=a,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.28B.24
C.32D.36
34.有以下程序
#include<stdio.h>
intf(intn)
{intt=0,a=5;
if(n/2){inta=6;t+=a++;}
else{inta=7;t+=a++;}
returnt+a++;
}
main()
{ints=0,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.24B.28
C.32D.36
35.有以下定义和语句
structworkers
{intnum;charname[20];charc;
struct
{intday;intmonth;intyear;}s;
};
structworkersw,*pw;
pw=&w;
能给w中year成员赋值为1980的语句是______。
A.w.s.year=1980;B.w.year=1980;
C.pw->year=1980;D.*pw.year=1980;
36.以下叙述中错误的是______。
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
37.有以下程序
#include<stdio.h>
structtt
{intx;structtt*y;}*p;
structtta[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{inti;
p=a;
for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}
}
程序的运行结果是______。
A.20,15,B.30,17,
C.15,30,D.20,30,
38.有以下程序
#include<stdio.h>
main()
{
structSTU{charname[9];charsex;doublescore[2];};
structSTUa={"Zhao","m",85.0,90.0},b={"Qian","f",95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A.Zhao,m,85,90B.Qian,m,85,90
C.Zhao,f,95,92D.Qian,f,95,92
39.以下叙述中错误的是______。
A.C程序对预处理命令行的处理是在程序执行的过程中进行的
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.在程序中凡是以“#”开始的语句行都是预处理命令行
40.有以下程序
#include<stdio.h>
main()
{FILE*f;
f=fopen("filea.txt","w");
fprintf(f,"abc");
fclose(f);
}
若文本文件“filea.txt”中原有内容为“hello”,则运行以上程序后,文件“filea.txt”中的内容为______。
A.abcB.abclo
C.helloabcD.abchello
二、程序填空题
1.给定程序中,函数fun的功能是计算下式
直到,并把计算结果作为函数值返回。
例如,若形参e的值为1e-3,函数的返回值为2.985678。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
doublefun(doublee)
{inti;doubles,x;
/**********found**********/
s=0;i=________;
x=1.0;
while(x>e){
/**********found**********/
________;
/**********found**********/
x=(2.0*i-1)/((________)*(2.0*i));
s=s+x;
}
returns;
}
main()
{doublee=le-3;
printf("\nTheresultis:
%f\n",fun(e));
}
三、程序改错题
1.给定程序MODI1.C中函数fun的功能是:
将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。
例如,当s所指字符串为:
“ABCD”时,则t所指字符串中的内容应为:
“ABCDDCBA”。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<string.h>
/************found************/
voidfun(chars,chart)
{
inti,d;
d=strlen(s);
for(i=0;i<d;i++)t[i]=s[i];
for(i=0;i<d;i++)t[d+i]=s[d-1-i];
/************found************/
t[2*d-1]="\0";
}
main()
{
chars[100],t[100];
printf("\nPleaseenterstrings:
");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:
%s\n",t);
}
四、程序设计题
1.函数fun的功能是:
将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。
最后t所指的数组中的内容应是“135”。
注意:
部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
printf("\nPleaseenterstrings:
");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:
%s\n",t);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 81 真题无 答案