c语言测试+答案4Word格式文档下载.docx

上传人:b****6 文档编号:20624961 上传时间:2023-01-24 格式:DOCX 页数:17 大小:21.71KB
下载 相关 举报
c语言测试+答案4Word格式文档下载.docx_第1页
第1页 / 共17页
c语言测试+答案4Word格式文档下载.docx_第2页
第2页 / 共17页
c语言测试+答案4Word格式文档下载.docx_第3页
第3页 / 共17页
c语言测试+答案4Word格式文档下载.docx_第4页
第4页 / 共17页
c语言测试+答案4Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言测试+答案4Word格式文档下载.docx

《c语言测试+答案4Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言测试+答案4Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

c语言测试+答案4Word格式文档下载.docx

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*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1