C语言上机题库Word格式文档下载.docx
《C语言上机题库Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言上机题库Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
B)doublea=b=7;
C)doublea=7,b=7;
D)double,a,b;
(15)以下不能正确表示代数式2ab
cd
的C语言表达式是()。
A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d
(16)C源程序中不能表示的数制是()。
A)二进制B)八进制C)十进制D)十六进制
(17)若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是()。
A)w==lB)w==0C)w!
=lD)w!
=0
(18)执行以下程序段后,w的值为()。
intw='
A'
x=14,y=15;
w=((x||y)&
&
(w<
'
a'
));
A)-1B)NULLC)lD)0
(19)若变量已正确定义为int型,要通过语句scanf("
%d,%d,%d"
&
a,&
b,&
c);
给a赋值
1、给b赋值2、给c赋值3,以下输入形式中错误的是(ò
代表一个空格符)()。
A)ò
ò
1,2,3<
回车>
B)1ò
2ò
3<
C)1,ò
2,ò
D)1,2,3<
(20)有以下程序段
inta,b,c;
a=10;
b=50;
c=30;
if(a>
b)a=b,b=c;
c=a;
printf("
a=%db=%dc=%d\n”,a,b,c);
程序的输出结果是()。
A)a=10b=50c=10B)a=10b=50c=30C)a=10b=30c=10D)a=50b=30c=50
(21)若有定义语句:
intm[]={5,4,3,2,1},i=4;
,则下面对m数组元素的引用中错误的是
()。
A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]]
(22)下面的函数调用语句中func函数的实参个数是()。
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A)3B)4C)5D)8
(23)若有定义语句:
doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;
则错误引用x数组元素的是
A)*pB)x[5]C)*(p+1)D)*x
(24)若有定义语句:
chars[10]="
1234567\0\0"
;
,则strlen(s)的值是()。
A)7B)8C)9D)10
(25)以下叙述中错误的是()。
A)用户定义的函数中可以没有return语句
B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C)用户定义的函数中若没有return语句,则应当定义函数为void类型
二级C语言程序设计试卷第3页(共9页)
D)函数的return语句中可以没有表达式
(26)以下关于宏的叙述中正确的是()。
A)宏名必须用大写字母表示
B)宏定义必须位于源程序中所有语句之前
C)宏替换没有数据类型限制
D)宏调用比函数调用耗费时间
(27)有以下程序
#include<
stdio.h>
main()
{inti,j;
for(i=3;
i>
=l;
i--)
{for(j=1;
j<
=2;
j++)printf("
%d"
i+j);
\n"
);
}
程序的运行结果是()。
A)234B)432
345543
C)23D)45
3434
4523
(28)有以下程序
#include<
{intx=l,y=2,z=3;
if(x>
y)
if(y<
z)printf("
++z);
elseprintf("
++y);
%d\n"
x++);
A)331B)41C)2D)1
(29)有以下程序
#include<
{inti=5;
do
{if(i%3=1)
if(i%5==2)
{printf("
*%d"
i);
break;
i++;
}while(i!
=0);
二级C语言程序设计试卷第4页(共9页)
A)*7B)*3*5C)*5D)*2*6
(30)有以下程序
intfun(inta,intb)
{if(b==0)returna;
elsereturn(fun(--a,--b));
fun(4,2));
A)1B)2C)3D)4
(31)有以下程序
stdlib.h>
intfun(intn)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;
return*p;
{inta;
a=fun(10);
printf("
a+fun(10));
A)0B)10C)20D)出错
(32)有以下程序
voidfun(inta,intb)
{intt;
t=a;
a=b;
b=t;
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
for(i=0;
i<
10;
i+=2)fun(c[i],c[i+l]);
i++)printf("
%d,"
c[i]);
A)l,2,3,4,5,6,7,8,9,0,B)2,l,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)
0,1,2,3,4,5,6,7,8,9,
(33)有以下程序
structst
二级C语言程序设计试卷第5页(共9页)
{intx,y;
)data[2]={l,10,2,20};
{structst*p=data;
p->
y);
(++p)->
x);
A)10,1B)20,1C)10,2D)20,2
(34)有以下程序
voidfun(inta[],intn)
{inti,t;
for(i=0;
n/2;
i++){t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;
8;
k[i]);
A)345678B)876543C)1098765D)321678
(35)有以下程序
#defineN4
voidfun(inta[][N],intb[])
{inti;
N;
i++)b[i]=a[i][i];
{intx[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},y[N],i;
fun(x,y);
y[i]);
A)l,2,3,4,B)1,0,7,0,C)1,4,5,9,D)3,4,8,10,
(36)有以下程序
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[0][k];
for(i=l;
n;
i++)if(s[i][k]>
m)m=s[i][k];
returnm;
二级C语言程序设计试卷第6页(共9页)
{inta[4][4]={{1,2,3,4),{11,12,13,14},{2l,22,23,24},{31,32,33,34}};
fun(a,4,0));
A)4B)34C)31D)32
(37)有以下程序
{structSTU{charname[9];
charsex;
doublescore[2];
};
structSTUa={"
Zhao"
'
m'
85.0,90.0),b={"
Qian"
f'
95.0,92.0);
b=a;
%s,%c,%2.0f,%2.0f\n"
b.name,b.sex,b.score[0],b.score[1]);
A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,90
(38)假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
headabc
datanext
↑p↑q
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。
A)(*p).next=(*q).next;
free(p);
B)p=q->
next;
free(q);
C)p=q;
D)p->
next=q->
(39)有以下程序
{chara=4;
a=a<
<
1);
A)40B)16C)8D)4
(40)有以下程序
{FILE*pf;
char*s1="
China"
*s2="
Beijing"
pf=fopen("
abc.dat"
"
wb+"
fwrite(s2,7,l,pf);
rewind(pf);
fwrite(s1,5,1,pf);
fclose(pf);
以上程序执行后abc.dat文件的内容是()。
B)ChinaB)ChinangC)ChinaBeijingD)BeijingChina
二级C语言程序设计试卷第7页(共9页)
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
(1)对下列二叉树进行中序遍历的结果【1】。
A
BC
DEF
XYZ
(2)按照软件测试的一般步骤,集成测试应在【2】测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,【3】支持软件开发的各个环节的
控制和管理。
(4)数据库设计包括概念设计、【4】和物理设计。
(5)在二维表中,元组的【5】不能再分成更小的数据项。
(6)设变量a和b已正确定义并赋初值。
请写出与a-=a+b等价的赋值表达式【6】。
(7)若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7
b=9
请完成输出语句:
printf("
【7】"
a,b);
。
(8)以下程序的输出结果是【8】。
{inti,j,sum;
i>
=1;
i--)
{sum=0;
for(j=1;
j<
=i;
j++)sum+=i*j;
sum);
(9)以下程序的输出结果是【9】。
{intj,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3;
j;
j--)
{switch(j)
{case1:
case2:
*p++);
case3:
*(--p));
二级C语言程序设计试卷第8页(共9页)
(10)以下程序的输出结果是【10】。
#defineN5
intfun(int*s,inta,intn)
{intj;
*s=a;
j=n;
while(a!
=s[j])j--;
returnj;
{ints[N+1];
intk;
for(k=l;
k<
=N;
k++)s[k]=k+l;
fun(s,4,N));
(11)以下程序的输出结果是【11】。
intfun(intx)
{staticintt=0;
return(t+=x);
{ints,i;
i<
=5;
i++)s=fun(i);
s);
(12)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
37
269
15810
{intx[4][4],n=0,i,j;
for(j=0;
4;
j++)
=j;
【12】){n++;
x[i][j]=【13】;
i++)
{for(j=0;
j++)printf("
%3d"
x[i][j]);
(13)以下程序的功能是:
通过函数func输入字符并统计输入字符的个数。
输入时用字符
@作为输入结束标志。
请填空。
long【14】;
二级C语言程序设计试卷第9页(共9页)
{longn;
n=func();
n=%ld\n"
n);
longfunc()
{longm;
for(m=0;
getchar()!
='
@'
【15】);
retumm;
2008年9月笔试卷参考答案
一、选择题
(1)B)
(2)D)(3)C)(4)A)(5)D)(6)B)(7)A)(8)B)
(9)C)(10)D)(11)C)(12)D)(13)A)(14)C)(15)D)(16)A)
(17)D)(18)C)(19)B)(20)A)(21)C)(22)A)(23)B)(24)A)
(25)B)(26)C)(27)D)(28)D)(29)A)(30)B)(31)C)(32)A)
(33)C)(34)D)(35)B)(36)C)(37)D)(38)D)(39)C)(40)B)
二、填空题
(1)
【1】DBXEAYFZC
(2)
【2】单元
(3)
【3】过程(4)
【4】逻辑设计
(5)
【5】分量(6)
【6】a=a-(a+b)或(a=-b)
(7)
【7】a=%d\nb=%d(8)
【8】1
(9)
【9】9911(10)
【10】3
(11)
【11】15(12)
【12】i--
(13)
【13】n(14)
【14】func()
(15)
【15】m++
1.2009年9月二级C语言笔试真题及答案
2.不含空格:
3.答案:
:
一、选择题(每题2分,共计70分)
1.
(1)下列数据结构中,属于非线性结构的是
A)循环队列B)带链队列C)二叉树D)带链栈
(2)下列数据结构中,能够按照“先进后出”原则存取数据的是
A)循环队列B)栈C)队列D)二叉树
(3)对于循环队列,下列叙述中正确的是
A)队头指针是固定不变的B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针
(4)算法的空间复杂度是指
4.A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量
C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数
(5)件设计中划分模块的一个准则是
A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是
A)可封装B)自顶向下C)模块化D)逐步求精
(7)软件详细设计产生的图如下:
5.该图是
A)N-S图B)PAD图C)程序流程图D)E-R图
(8)数据库管理系统是
A)操作系统的一部分B)在操作系统支持下的系统软件
C)一种编译系统D)一种操作系统
(9)在E-R图中,用来表示实体联系的图形是
A)椭圆形B)矩形C)菱形D)三角形
10.(10)有三个关系R,S,和T如下:
6.其中关系T由关系R和S通过某种操作得到,该操作为
A)选择B)投影C)交D)并
7.11.(11)以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用的数据结构
C)程序设计的任务就是确定所用算法D)以上三种说法都不完整
12.(12)以下选项中,能用作用户标识符的是
A)voidB)8_8C)_0_D)unsigned
8.13.(13)阅读以下程序
#include
main()
{ int case;
float printF;
printf("
请输入2个数:
"
scanf("
%d %f"
&
case,&
printF);
%d %f\n"
case,printf);
}
该程序在编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无措,printf不能输出case的值
14.(14)表达式:
(int)((double)9/2)-(9)%2的值是
A)0B)3C)4D)5
15.(15)若有定义语句:
int x=10;
则表达式x-=x+x的值为
A)-20B)-10C)0D)10
9.16.(16)有以下程序
{ int a=1,b=0;
b=a+b);
a=2*b);
程序运行后的输出结果是
A)0,0B)1,0C)3,2D)1,2
17.(17)设有定义:
int a=1,b=2,c=3;
以下语句中执行效果与其它三个不同的是
A)if(a>
b) c=a,a=b,b=c;
B)if(a>
b){c=a,a=b,b=c;
}C)if(a>
b) c=a;
a=b;
b=c;
D)if(a>
b){c=a;
10.18.(18)有以下程序
{ int c=0,k;
for(k=1;
k<
3;
k++)
switch(k)
{ default:
c+=