03二级c语言全真题06.docx

上传人:b****6 文档编号:8498525 上传时间:2023-01-31 格式:DOCX 页数:15 大小:27.44KB
下载 相关 举报
03二级c语言全真题06.docx_第1页
第1页 / 共15页
03二级c语言全真题06.docx_第2页
第2页 / 共15页
03二级c语言全真题06.docx_第3页
第3页 / 共15页
03二级c语言全真题06.docx_第4页
第4页 / 共15页
03二级c语言全真题06.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

03二级c语言全真题06.docx

《03二级c语言全真题06.docx》由会员分享,可在线阅读,更多相关《03二级c语言全真题06.docx(15页珍藏版)》请在冰豆网上搜索。

03二级c语言全真题06.docx

03二级c语言全真题06

201103二级c语言模拟试题集第六套

 

一、选择题

在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列选项中不符合良好程序设计风格的是

A)源程序要文档化

B)数据说明的次序要规范化

C)避免滥用goto语句

D)模块设计要保证高耦合、高内聚

(2)软件开发模型包括

Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A)Ⅰ、Ⅱ、Ⅲ

B)Ⅰ、Ⅱ、Ⅳ

C)Ⅰ、Ⅲ、Ⅳ

D)Ⅱ、Ⅲ、Ⅳ

(3)软件开发的结构化生命周期方法将软件生命周期划分成

A)定义、开发、运行维护

B)设计阶段、编程阶段、测试阶段

C)总体设计、详细设计、编程调试

D)需求分析、功能定义、系统设计

(4)单个用户使用的数据视图的描述称为

A)外模式

B)概念模式

C)内模式

D)存储模式

(5)数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及

A)数据的存储结构

B)计算方法

C)数据映像

D)逻辑存储

 

(6)设有关系R和S,关系代数表达式为R-(R-S)表示的是

A)R∩S

B)R-S

C)R∪S

D)R÷S

 

(7)下列叙述中正确的是

A)一个算法的空间复杂度大,则其时间复杂度也必定大

B)一个算法的空间复杂度大,则其时间复杂度必定小

C)一个算法的时间复杂度大,则其空间复杂度必定小

D)上述三种说法都不对

(8)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为

A)log2n

B)n/2

C)n

D)n+1

(9)数据库技术的根本目标是要解决数据的

A)存储问题

B)共享问题

C)安全问题

D)保护问题

(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

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==0||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);

scanf("%c",p);

C)char*p;

*p=getchar();

D)char*p,ch;

p=&ch;

*p=getchar();

 

(19)在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是

A)p向高地址移了一个字节

B)p向高地址移了一个存储单元

C)p向高地址移了两个字节

D)p与a+1等价

(20)若运行以下程序时,从键盘输入ADescriptor表示回车),则下面程序的运行结果是

#include

main()

{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

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)有以下程序

main()

{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)下列函数的运行结果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A)-1

B)1

C)2

D)编译出错,无法运行

(28)对下述程序的判断中,正确的是

#include

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:

");gets(s);

while(*p)

putchar(*p++);}}

A)此程序循环接收字符串并输出,直到接收字符串"End"为止

B)此程序循环接收字符串,接收到字符串"End"则输出,否则程序终止

C)此程序循环接收字符串并输出,直到接收字符串"End"为止,但因为代码有错误,程序不能正常工作

D)此程序循环接收字符串并将其连接在一起,直到接收字符串"End"为止,输出连接在一起的字符串

(29)下列关于字符串的说法中错误的是

A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志

B)'\0'作为标志占用存储空间,计入串的实际长度

C)在表示字符串常量的时候不需要人为在其末尾加入'\0'

D)在C语言中,字符串常量隐含处理成以'\0'结尾

 

(30)阅读下面程序,则执行后的结果是

#include"stdio.h"

main()

{charstr[]="tomeetme",*p;

for(p=str;p

printf("\n");}

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)有以下程序

main()

{intx,y,z;

x=y=1;z=x++,y++,++y;

printf("%d,%d,%d\n",x,y,z);

}

程序运行后的输出结果是

A)2,3,3

B)2,3,2

C)2,3,1

D)2,2,1

(34)以下程序有错,错误原因是

main()

{int*p,i;char*q,ch;p=&i;q=&ch;

*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)下列程序的输出结果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

for(i=0;i

for(j=0;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);}

main()

{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*)&data.n;

D)p=(structsk*)data.n;

(39)设有以下说明语句

structex

{intx;floaty;charz;}example;

则下面的叙述中不正确的是

A)struct结构体类型的关键字

B)example是结构体类型名

C)x,y,z都是结构体成员名

D)structex是结构体类型名

(40)阅读以下程序及对程序功能的描述,其中正确的是

#include

main()

{FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:

\n");

scanf("%s",infile);

printf("Entertheoutfilename:

\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{printf("cannotopeninfile\n");

exit(0);}

if((out=fopen(outfile,"w"))==NULL)

{printf("cannotopenoutfile\n");

exit(0);}

while(!

feof(in))fputc(fgetc(in),out);

fclose(in);fclose(out);}

A)程序完成将磁盘文件的信息在屏幕上显示的功能

B)程序完成将两个磁盘文件合二为一的功能

C)程序完成将一个磁盘文件复制到另一个磁盘文件中

D)程序完成将两个磁盘文件合并并在屏幕上输出

 

二、填空题

请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

(1)下列软件系统结构图

的宽度为【1】。

(2)测试的目的是暴露错误,评价程序的可靠性;而【2】的目的是发现错误的位置,并改正错误。

(3)对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。

请对下面的SQL语句填空:

UPDATE图书【3】WHERE出版单位="人民邮电出版社"

(4)按"先进后出"原则组织数据的数据结构是【4】。

(5)长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【5】。

(6)以下程序的功能是:

将输入的正整数按逆序输出。

例如:

若输入135则输出531。

请填空。

#include

main()

{intn,s;

printf("Enteranumber:

");scanf("%d",&n);

printf("Output:

");

do

{s=n%10;printf("%d",s);【6】;

}while(n!

=0);

printf("\n");

}

(7)以下程序的运行结果是【7】。

#include

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

(8)以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。

请填空。

#include

#include

intfun(int*s,intt,int*k)

{inti;

*k=0;

【8】

if(s[*k]

return【9】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

(9)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:

");scanf("%lf",&x);

y1=fun(【10】);y2=fun(【11】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

(10)以下程序运行后的输出结果是【12】。

main()

{intx,a=1,b=2,c=3,d=4;

x=(a

a:

b;x=(x

x:

c;x=(d>x)?

x:

d;

printf("%d\n",x);

}

(11)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include

main()

{inti,j,【13】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【14】;i

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

 

(12)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。

structnode

{intinfo;

【15】link;};

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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