C语言笔试模拟题7.docx

上传人:b****1 文档编号:10297442 上传时间:2023-05-24 格式:DOCX 页数:17 大小:22.38KB
下载 相关 举报
C语言笔试模拟题7.docx_第1页
第1页 / 共17页
C语言笔试模拟题7.docx_第2页
第2页 / 共17页
C语言笔试模拟题7.docx_第3页
第3页 / 共17页
C语言笔试模拟题7.docx_第4页
第4页 / 共17页
C语言笔试模拟题7.docx_第5页
第5页 / 共17页
C语言笔试模拟题7.docx_第6页
第6页 / 共17页
C语言笔试模拟题7.docx_第7页
第7页 / 共17页
C语言笔试模拟题7.docx_第8页
第8页 / 共17页
C语言笔试模拟题7.docx_第9页
第9页 / 共17页
C语言笔试模拟题7.docx_第10页
第10页 / 共17页
C语言笔试模拟题7.docx_第11页
第11页 / 共17页
C语言笔试模拟题7.docx_第12页
第12页 / 共17页
C语言笔试模拟题7.docx_第13页
第13页 / 共17页
C语言笔试模拟题7.docx_第14页
第14页 / 共17页
C语言笔试模拟题7.docx_第15页
第15页 / 共17页
C语言笔试模拟题7.docx_第16页
第16页 / 共17页
C语言笔试模拟题7.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言笔试模拟题7.docx

《C语言笔试模拟题7.docx》由会员分享,可在线阅读,更多相关《C语言笔试模拟题7.docx(17页珍藏版)》请在冰点文库上搜索。

C语言笔试模拟题7.docx

C语言笔试模拟题7

一、选择题

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

A)数据的存储结构

B)计算方法

C)数据映象

D)逻辑存储

正确答案:

 A

(2)串的长度是

A)串中不同字符的个数

B)串中不同字母的个数

C)串中所含字符的个数且字符个数大于零

D)串中所含字符的个数

正确答案:

 D

(3)在计算机中,算法是指

A)加工方法

B)解题方案的准确而完整的描述

C)排序方法

D)查询方法

正确答案:

 B

(4)以下不属于对象的基本特点的是

A)分类性

B)多态性

C)继承性

D)封装性

正确答案:

 C

(5)开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作

A)软件投机

B)软件危机

C)软件工程

D)软件产生

正确答案:

 B

(6)下面不属于软件设计原则的是

A)抽象 

B)模块化

C)自底向上

D)信息隐蔽

正确答案:

 C

(7)开发大型软件时,产生困难的根本原因是

A)大系统的复杂性

B)人员知识不足

C)客观世界千变万化

D)时间紧、任务重

正确答案:

 A

(8)下列SQL语句中,用于修改表结构的是

A)ALTER

B)CREATE

C)UPDATE

D)INSERT

正确答案:

 A

(9)数据库、数据库系统和数据库管理系统之间的关系是

A)数据库包括数据库系统和数据库管理系统

B)数据库系统包括数据库和数据库管理系统

C)数据库管理系统包括数据库和数据库系统

D)3者没有明显的包含关系

正确答案:

 B

(10)关系模型允许定义3类数据约束,下列不属于数据约束的是

A)实体完整性约束

B)参照完整性约束

C)域完整性约束 

D)用户自定义的完整性约束

正确答案:

 C

(11)下列用于printf函数的控制字符常量中,代表"竖向跳格"的转义字符常量是

A)\b]

B)\t

C)\v

D)\f

正确答案:

 C

(12)以下程序的输出结果是

main()

{inta=21,b=11;

printf("%d\n",--a+b,--b+a);

}

A)30

B)31

C)32

D)33

正确答案:

 A

(13)设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是

A)n=(n*100+0.5)/100.0

B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0

D)n=(n/100+0.5)*100.0

正确答案:

 B

(14)下列是用户自定义标识符的是

A)_w1

B)3_xy

C)int

D)LINE-3

正确答案:

 A

(15)设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)

正确答案:

 D

(16)若有条件表达式(exp)?

a++:

b--,则以下表达式中能完全等价于表达式(exp)的是

A)(exp==0)

B)(exp!

=0)

C)(exp==1)

D)(exp!

=1)

正确答案:

 B

(17)下面四个选项中,均是不正确的8进制数或16进制数的选项是

A)016  0x8f    018

B)0abc 017    0xa

C)010  -0x11   0x16

D)0a12 7ff    -123

正确答案:

 D

(18)若变量已正确说明为int类型,要通过语句scanf("%d%d%d",&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是

A)3<回车>

5<回车>

8<回车>

B)3,5,8<回车>

C)3<回车>

58<回车>

D)35<回车>

8<回车>

正确答案:

 B

(19)以下选项中,与k=n++完全等价的表达式是

A)k=n,n=n+1

B)n=n+1,k=n

C)k=++n

D)k+=n+1

正确答案:

 A

(20)设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是

A)while循环执行10次

B)循环是无限循环

C)循环体语句一次也不执行

D)循环体语句执行一次

正确答案:

 C

(21)对表达式for(表达式1;;表达式3)可理解为

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

正确答案:

 B

(22)以下程序的输出结果是

main()

{inta,i;a=0;

for(i=1;i<5;i++)

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

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

}

A)31

B)13

C)10

D)20

正确答案:

 A

(23)若有如下语句

intx=3;

do{printf("%d\n",x-=2);}

while(!

(--x));

则上面程序段

A)输出的是1

B)输出的是1和-2

C)输出的是3和0

D)是死循环

正确答案:

 B

(24)判断char型变量cl是否为大写字母的正确表达式是

A)′A′<=cl<=′Z′

B)(cl>=A)&&(cl<=Z)

C)(′A′>=cl)||(′Z′<=cl)

D)(cl>=′A′)&&(cl<=′Z′)

正确答案:

 D

(25)下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。

#include

main()

{inta,b,t;

scanf("%d%d",&a,&b);

while(_______)

{if(a>b)

{t=a;a=b;b=t;}

printf("%d,%d\n",a,b);

scanf("%d%d",&a,&b);

}

}

A)!

a=b

B)a!

=b

C)a==b

D)a=b

正确答案:

 B

(26)以下对C语言函数的有关描述中,正确的是

A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参

B)C函数既可以嵌套定义又可以递归调用

C)函数必须有返回值,否则不能使用函数

D)函数必须有返回值,返回值类型不定`

正确答案:

 A

(27)有以下程序:

voidfun(inta,intb,intc)

{a=456,b=567,c=678;}

main()

{intx=10,y=20,z=30;

fun(x,y,z);

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

}

输出结果是

A)30,20,10

B)10,20,30

C)456,567,678

D)678,567,456

正确答案:

 B

(28)有如下程序段

int*p,a=10,b=1;

p=&a;a=*p+b;

执行该程序段后,a的值为

A)12

B)11

C)10

D)编译出错

正确答案:

 B

(29)有如下说明

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为9的表达式是

A)*p+9

B)*(p+8)

C)*p+=9

D)p+8

正确答案:

 B

(30)以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是

main()

{int*p,*q,a,b;

p=&a;

printf("inputa:

");

scanf("%d",*p);

}

A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址

C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

正确答案:

 B(31)对以下说明语句的正确理解是

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)因为数组长度与初值的个数不相同,所以此语句不正确

正确答案:

 B

(32)若有说明:

inta[][4]={0,0};则下面不正确的叙述是

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

正确答案:

 D

(33)有以下程序

main()

{chara[]={′a′,′b′,′c′,′d′,′e′,′f′,′g′,′h′,′\0′};inti,j;

i=sizeof(a);j=strlen(a);

printf("%d,%d\b",i,j);

}

程序运行后的输出结果是

A)9,9

B)8,9

C)1,8

D)9,8

正确答案:

 D

(34)假定int类型变量占用两个字节,其有定义:

intx[10]={0,2,4};,则数组x在内存中所占字节数是

A)3

B)6

C)10

D)20

正确答案:

 D

(35)已知学生记录描述为:

structstudent

{intno;

charname[20],sex;

struct

{intyear,month,day;

}birth;

};

structstudents;

设变量s中的"生日"是"1984年11月12日",对"birth"正确赋值的程序段是

A)year=1984;month=11;day=12;

B)s.year=1984;s.month=11;s.day=12;

C)birth.year=1984;birth.month=11;birth.day=12;

D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;

正确答案:

 D

(36)以下程序的运行结果是

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A)10

B)15

C)100

D)150

正确答案:

 B

(37)有如下程序

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出的结果是

A)12

B)13

C)14

D)15

正确答案:

 D

(38)设有以下说明语句

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是

A)PER是结构体变量名

B)PER是结构体类型名

C)typedefstruct是结构体类型

D)struct是结构体类型名

正确答案:

 B

(39)有如下定义

structperson{charname[9];intage;};

structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};

根据上述定义,能输出字母M的语句是

A)printf("%c\n",class[3].name); 

B)printf("%c\n",class[3].name[1]);

C)printf("%c\n",class[2].name[1]);

D)printf("%c\n",class[2].name[0]);

正确答案:

 B

(40)以下程序执行后a的值是

main()

{intx,y=252,i=386,*m=&y,*z=&i;

x=(z==y);

printf("%d",x);

}

A)252

B)1

C)0

D)运行时出错,x无定值

正确答案:

 C(41)阅读下列程序,当运行函数时,输入asdafaaz67,则输出为

#include

#include

#include

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!

=′\0′;i++)

if(str[i]!

=′′)str[j++]=str[i]; 

str[j]=′\0′;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:

");

gets(str);

puts(str);

fun(str);

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

}

A)asdafaaz67

B)asdafaaz67

C)asd

D)z67

正确答案:

 A

(42)下列程序的输出结果是

structabc

{ inta,b,c,s;};

main()

{structabcs[2]={{1,2,3},{4,5,6}};intt;

t=s[0].a+s[1].b;

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

}

A)5

B)6

C)7

D)8

正确答案:

 B

(43)有以下函数:

fun(char*p)

{returnp;}

该函数的返回值是

A)无确切值

B)形参p中存放的地址值

C)一个临时存储单元的地址

D)形参p自身的地址值

正确答案:

 B

(44)若有定义:

char*st="howareyou";下列程序段中正确的是

A)chara[11],*p;strcpy(p=a+1,&st[4]);

B)chara[11];strcpy(++a,st);

C)chara[11];strcpy(a,st);

D)chara[],*p;strcpy(p=&a[1],st+2);

正确答案:

 A

(45)下列程序的运行结果是

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}

A)63

B)36

C)编译出错

D)00

正确答案:

 B

(46)表达式a

A)||

B)&

C)<

D)()

正确答案:

 D

(47)fwrite函数的一般调用形式是

A)fwrite(buffer,count,size,fp);

B)fwrite(fp,size,count,buffer);

C)fwrite(fp,count,size,buffer);

D)fwrite(buffer,size,count,fp);

正确答案:

 D

(48)C语言中,文件组成的基本单位为

A)记录

B)数据行

C)数据块

D)字符序列

正确答案:

 D

(49)请选出正确的程序段

A)int*p;

scanf("%d",p);

B)int*s,k;

*s=100;

C)int*s,k;

char*p,c;

s=&k;       

p=&c;

*p=′a′;

D)int*s,k;

char*p,e;

s=&k;

p=&c;

s=p;

*s=1;

正确答案:

 C

(50)若有下面的说明和定义,则sizeof(structaa)的值是

structaa

{intr1;doubler2;floatr3;

unionuu{charu1[5];longu2[2];}ua;

}mya;

A)30

B)29

C)24

D)22

正确答案:

 D二、填空题

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

正确答案:

 1.(n/2)

(2)用树型结构表示实体类型及实体间联系的数据模型称为【2】。

正确答案:

 1.(层次模型)

(3)类是一个支持集成的抽象数据类型,而对象是类的【3】。

正确答案:

 1.(实例)

(4)数据流图的类型有【4】和事务型。

正确答案:

 1.(变换型)

(5)当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【5】。

正确答案:

 1.(物理独立性)

(6)使用结构体处理数据的场合是【6】。

正确答案:

 1.(把不同类型的数据作为整体处理。

(7)有定义chara,b;若想通过&运算符保留a的第3位和第6位的值,则b的二进数应是【7】。

正确答案:

 1.(00100100)

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

longfib(intg)

{switch(g)

{case0∶return0;

case1∶case2∶return1;

}

return(fib (g-1)+fib(g-2));

}

main  ()

{long k;

k=fib(5);

printf("k=%(d\n)",k);

}

正确答案:

 1.(k=5)

(9)strcmp函数的功能是【9】。

正确答案:

 1.(字符串的比较)

(10)以下程序段中,错误的行号是【10】。

①#include

②main()

③{charstr[14];str[]={"IloveChina"};

④printf("%s",str);

⑤}

正确答案:

 1.(3行)(11)将以下程序写成三目运算表达式是【11】。

if(a>b)max=a;

elsemax=b;

正确答案:

 1.(max=(a>b)?

a:

b;)

(12)设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【12】。

考生答案:

 1.()

正确答案:

 1.(1.000000)

(13)下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{ intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【13】

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

}

正确答案:

 1.(k=p;)

(14)设有以下定义和语句,则*(*(p+2)+1)的值为【14】。

  inta[3][2]={10,20,30,40,50,60},(*p)[2];

  p=a;

正确答案:

 1.(60)

(15)下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。

add(intx,inty,【15】z)

{【16】=x+y;}

正确答案:

 1.(int*)2.(*z)

(16)下面程序的运行结果是【17】。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

正确答案:

 1.(1000 10)

(17)以下程序的输出结果是【18】。

unsignedfun6(unsignednum)

{unsignedk=1;

do{k*=num%10;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

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

}

正确答案:

 1.(12)

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

删去一维数组中所有相同的数,使之只剩一个。

数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2223445666677899101010

删除后,数组中的内容应该是:

2345678910。

请填空。

#include

#defineN80

intfun(inta[],intn)

{inti,j=1;

for(i=1;i

if(a[j-1]【19】a[i])

a[j++]=a[i];

【20】;

}

main()

{ inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:

\n");

for(i=0;i

n=fun(a,n);

printf("\nThedataafterdeleted:

\n");

for(i=0;i

}

正确答案:

 1.(!

=)2.(returnj)  

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2