c语言测试+答案4Word格式文档下载.docx
《c语言测试+答案4Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言测试+答案4Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
D)保护问题
B
(10)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是
A)bdgcefha
B)gdbecfha
C)bdgaechf
D)gdbehfca
(11)下列叙述中错误的是
A)一个C语言程序只能实现一种算法
B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在
(12)下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A)0160x8f018
B)0abc0170xa
C)010-0x110x16
D)0a127ff-123
(13)以下叙述不正确的是
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
(14)设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为
A)int
B)float
C)double
D)不确定
(15)现有格式化输入语句,scanf("
x=%d],sum]y=%d,line]z=%dL"
&
x,&
y,&
z);
已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是
A)12,34,45<
Enter>
B)x=12,y=34,z=45<
C)x=12C,sumy=34,z=45<
D)x=12],sum]y=34,line]z=45<
[注]:
"
]"
表示空格,<
表示回车
(16)已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式是
A)x%(-3)
B)w+=-2
C)k=(a=2,b=3,a+b)
D)a+=a-=(b=4)*(a=3)
(17)有以下程序
fun(intx)
{intp;
if(x==1)return(3);
p=x-fun(x-2);
returnp;
}
main()
{printf("
%d\n"
fun(7));
执行后的输出结果是
A)7
B)3
C)2
D)0
(18)下列程序段中,不能正确赋值的是
A)char*p,ch;
p=&
ch;
scanf("
%c,&
p"
)
B)char*p;
p=(char*)malloc
(1);
%c"
p);
C)char*p;
*p=getchar();
D)char*p,ch;
(19)在16位编译系统上,若有定义inta[]={10,20,30},*p=&
a;
当执行p++;
后,下列说法错误的是
A)p向高地址移了一个字节
B)p向高地址移了一个存储单元
C)p向高地址移了两个字节
D)p与a+1等价
(20)若运行以下程序时,从键盘输入ADescriptor<
CR>
(<
表示回车),则下面程序的运行结果是
#include<
stdio.h>
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:
case′A′:
case′e′:
case′E′:
case′i′:
case′I′:
case′o′:
case′O′:
case′u′:
case′U′:
v1+=1;
default:
v0+=1;
v2+=1;
}}while(c!
='
\n'
);
printf("
v0=%d,v1=%d,v2=%d\n"
v0,v1,v2);
A)v0=7,v1=4,v2=7
B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
(21)设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A)x&
&
y
B)x<
=y
C)x||++y&
y-z
D)!
(x<
y&
!
z||1)
(22)若有定义intw[3][5];
则以下不能正确表示该数组元素的表达式是
A)*(*w+3)
B)*(*w+1)[4]
C)*(*(*w+1))
D)*(&
w[0][0]+1)
(23)设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是
A)while循环执行10次
B)循环是无限循环
C)循环体语句一次也不执行
D)循环体语句执行一次
(24)若有以下函数首部
intfun(doublex[10],int*n)
则下面针对此函数的函数声明语句中正确的是
A)intfun(doublex,int*n);
B)intfun(double,int);
C)intfun(double*x,intn);
D)intfun(double*,int*);
(25)函数的值通过return语句返回,下面关于return语句的形式描述错误的是
A)return表达式;
B)return(表达式);
C)一个return语句可以返回多个函数值
D)一个return语句只能返回一个函数值
(26)有以下程序
{inti;
for(i=1;
i<
=40;
i++)
{if(i++%5==0)
if(++i%8==0)printf("
%d"
i);
}
printf("
\n"
A)5
B)24
C)32
D)40
(27)下列函数的运行结果是
{inti=2,p;
intj,k;
j=i;
k=++i;
p=f(j,k);
intf(inta,intb)
{intc;
if(a>
b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);
A)-1
B)1
D)编译出错,无法运行
(28)对下述程序的判断中,正确的是
#include<
voidmain()
{char*p,s[128];
p=s;
while(strcmp(s,"
End"
))
Inputastring:
gets(s);
while(*p)
putchar(*p++);
}}
A)此程序循环接收字符串并输出,直到接收字符串"
为止
B)此程序循环接收字符串,接收到字符串"
则输出,否则程序终止
C)此程序循环接收字符串并输出,直到接收字符串"
为止,但因为代码有错误,程序不能正常工作
D)此程序循环接收字符串并将其连接在一起,直到接收字符串"
为止,输出连接在一起的字符串
(29)下列关于字符串的说法中错误的是
A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志
B)′\0′作为标志占用存储空间,计入串的实际长度
C)在表示字符串常量的时候不需要人为在其末尾加入′\0′
D)在C语言中,字符串常量隐含处理成以′\0′结尾
(30)阅读下面程序,则执行后的结果是
#include"
stdio.h"
{charstr[]="
tomeetme"
*p;
for(p=str;
p<
str+7;
p+=2)putchar(*p);
A)tomeetme
B)tmem
C)oete
D)tome
(31)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
A)#defineN10
inta[N];
B)#definen5
inta[2*n];
C)inta[5+5];
D)intn=10,a[n];
(32)对以下说明语句的正确理解是
inta[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
(33)有以下程序
{intx,y,z;
x=y=1;
z=x++,y++,++y;
%d,%d,%d\n"
x,y,z);
程序运行后的输出结果是
A)2,3,3
B)2,3,2
C)2,3,1
D)2,2,1
(34)以下程序有错,错误原因是
{int*p,i;
char*q,ch;
i;
q=&
*p=40;
*p=*q;
...}
A)p和q的类型不一致,不能执行*p=*q;
语句
B)*p中存放的是地址值,因此不能执行*p=40;
C)q没有指向具体的存储单元,所以*q没有实际意义
D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;
没有意义,可能会影响后面语句的执行结果
(35)设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2
B)p2=k;
C)p1=p2;
D)k=*p1*(*p2);
(36)下列程序的输出结果是
#defineN3
#defineM3
voidfun(inta[M][N])
*(a[1]+2));
{inta[M][N];
inti,j;
for(i=0;
M;
for(j=0;
j<
N;
j++)
a[i][j]=i+j-(i-j);
fun(a);
A)3
B)4
C)5
D)6
(37)有以下程序
intadd(inta,intb){return(a+b);
{intk,(*f)(),a=5,b=10;
f=add;
…
则以下函数调用语句错误的是
A)k=(*f)(a,b);
B)k=add(a,b);
C)k=*f(a,b);
D)k=f(a,b);
(38)设有如下定义:
structsk
{intn;
floatx;
}data,*p;
若要使p指向data中的n域,正确的赋值语句是
A)p=&
data.n;
B)*p=data.n;
C)p=(structsk*)&
D)p=(structsk*)data.n;
(39)设有以下说明语句
structex
{intx;
floaty;
charz;
}example;
则下面的叙述中不正确的是
A)struct结构体类型的关键字
B)example是结构体类型名
C)x,y,z都是结构体成员名
D)structex是结构体类型名
(40)阅读以下程序及对程序功能的描述,其中正确的是
{FILE*in,*out;
charch,infile[10],outfile[10];
Entertheinfilename:
scanf("
%s"
infile);
Entertheoutfilename:
\n"
outfile);
if((in=fopen(infile,"
r"
))==NULL)
cannotopeninfile\n"
exit(0);
if((out=fopen(outfile,"
w"
cannotopenoutfile\n"
while(!
feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
A)程序完成将磁盘文件的信息在屏幕上显示的功能
B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中
D)程序完成将两个磁盘文件合并并在屏幕上输出
二、填空题本题共得(0)分
(1)下列软件系统结构图
的宽度为【1】。
未做题
正确答案:
【1】3
(2)测试的目的是暴露错误,评价程序的可靠性;
而【2】的目的是发现错误的位置,并改正错误。
【2】调试
(3)对于图书管理数据库,将图书表中"
人民邮电出版社"
的图书的单价涨价5%。
请对下面的SQL语句填空:
UPDATE图书【3】WHERE出版单位="
【3】SET单价=单价*1.05
(4)按"
先进后出"
原则组织数据的数据结构是【4】。
【4】栈
(5)长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【5】。
【5】n/2
(6)以下程序的功能是:
将输入的正整数按逆序输出。
例如:
若输入135则输出531。
请填空。
{intn,s;
Enteranumber:
"
n);
Output:
do
{s=n%10;
s);
【6】;
}while(n!
=0);
}
【6】n/=10或n=n/10
(7)以下程序的运行结果是【7】。
{intfun();
fun();
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;
3;
i++)a[i]+=a[i];
i++)printf("
%d,"
a[i]);
【7】0,2,4
0,4,8
(8)以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
conio.h>
intfun(int*s,intt,int*k)
*k=0;
【8】
if(s[*k]<
s[i])*k=i;
return【9】;
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&
k);
%d,%d\n"
k,a[k]);
【8】for(I=0;
I<
t;
I++)
【9】0
(9)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
math.h"
doublefun(doublex){return(x*x-2*x+6);
{doublex,y1,y2;
Enterx:
%lf"
x);
y1=fun(【10】);
y2=fun(【11】);
y1=%lf,y2=%lf\n"
y1,y2);
【10】x+8
【11】sin(x)
(10)以下程序运行后的输出结果是【12】。
{intx,a=1,b=2,c=3,d=4;
x=(a<
b)?
a:
b;
x=(x<
c)?
x:
c;
x=(d>
x)?
d;
x);
【12】1
(11)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
string.h>
{inti,j,【13】;
charstr[]={"
1234567"
};
for(i=0,j=strlen(str)【14】;
j;
i++,j--)
{k=str[i];
str[i]=str[j];
str[j]=k;
%s\n"
str);
【13】k
【14】-1
(12)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;
成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【15】link;
};
【15】structnode*