C语言1.docx

上传人:b****4 文档编号:5511019 上传时间:2022-12-17 格式:DOCX 页数:42 大小:30.84KB
下载 相关 举报
C语言1.docx_第1页
第1页 / 共42页
C语言1.docx_第2页
第2页 / 共42页
C语言1.docx_第3页
第3页 / 共42页
C语言1.docx_第4页
第4页 / 共42页
C语言1.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C语言1.docx

《C语言1.docx》由会员分享,可在线阅读,更多相关《C语言1.docx(42页珍藏版)》请在冰豆网上搜索。

C语言1.docx

C语言1

一、选择题

(1)根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成

A)动态结构和静态结构B)紧凑结构和非紧凑结构

C)线性结构和非线性结构D)内部结构和外部结构

考生答案:

正确答案:

C

(2)设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为

A)12B)13

C)14D)15

考生答案:

正确答案:

B

(3)在下列几种排序方法中,要求内存量最大的是

A)插入排序B)选择排序

C)快速排序D)归并排序

考生答案:

正确答案:

D

(4)下列叙述中,不属于结构化程序设计方法的主要原则的是

A)自顶向下B)由底向上

C)模块化D)限制使用goto语句

考生答案:

正确答案:

B

(5)下列不属于软件调试技术的是

A)强行排错法B)集成测试法

C)回溯法D)原因排除法

考生答案:

D正确答案:

B

(6)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为

A)PAD图B)N-S图

C)结构图D)数据流图

考生答案:

D正确答案:

B

(7)软件复杂性度量的参数包括

A)效率B)规模

C)完整性D)容错性

考生答案:

正确答案:

B

(8)下列叙述中,不属于数据库系统的是

A)数据库B)数据库管理系统

C)数据库管理员D)数据库应用系统

考生答案:

正确答案:

B

(9)数据库系统的核心是

A)数据库B)数据库管理系统

C)数据模型D)软件工具

考生答案:

D正确答案:

B

(10)视图设计一般有3种设计次序,下列不属于视图设计的是

A)自顶向下B)由外向内

C)由内向外D)自底向上

考生答案:

B正确答案:

B

(11)下列常数中不能作为C语言常量的是

A)0xabc

B)2.5e-0.2

C)32

D)0747

考生答案:

正确答案:

B

(12)设int型的数据长度为2个字节,则unsignedint类型数据的取值范围是

A)-127~128

B)0~255

C)0~65535

D)0~32768

考生答案:

正确答案:

C

(13)已知intt=6,s;则执行语句s=(++t)+(t++);后,s的值是

A)12

B)13

C)14

D)15

考生答案:

正确答案:

C

(14)已知intx=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为

A)0

B)1

C)4

D)5

考生答案:

正确答案:

B

(15)已知inti,a;执行语句i=(a=3,a++,--a,a+4,a+5,++a);后,变量i的值为

A)2

B)3

C)4

D)5

考生答案:

A正确答案:

C

(16)下列说法中正确的是

A)一个C程序是从命令行开始执行的

B)C程序中有些执行语句不用分号(;)结束

C)分号不是C语句的一部分,是C语句之间的分隔符

D)命令行必须用“#”开头,最后不能加“;”号,命令行不是C程序中的语句

考生答案:

正确答案:

D

(17)已知intx=2;执行语句x*=x+=++x;后,x的值是

A)16

B)26

C)36

D)46

考生答案:

正确答案:

C

(18)已知inta=20,b=5;则执行以下语句后的输出结果是

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

A)0

B)1

C)2

D)3

考生答案:

正确答案:

A

(19)现有以下程序段

#include

main()

{inta,b,c;

scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c);

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

若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是

A)a=10]20,b=20]30,c=40

B)20,30,40

C)a=20,b=30,c=40

D)a=10]20,b=30]20,c=40

[注]:

“]”表示空格,表示回车

考生答案:

正确答案:

D

(20)已知intx=5,y=3;则表达式(x||y)&&78的结果为

A)1

B)0

C)5

D)78

考生答案:

正确答案:

A

(21)有如下程序段

#include"stdio.h"

main()

{inta=10,b=50,c=30;

a=a>30?

1:

2;

b=b>30?

1:

2;

c=c>30?

1:

2;

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

则执行结果为

A)2,1,2

B)1,2,1

C)1,1,2

D)2,1,1

考生答案:

正确答案:

A

(22)阅读如下程序段

#include"stdio.h"

main()

{inta=45,b=40,c=50,d;

d=a>30?

b:

c;

switch(d)

{case30:

printf("%d,",a);

case40:

printf("%d,",b);

case50:

printf("%d,",c);

default:

printf("#");}}

则输出的结果是

A)40,50,

B)50,#

C)40,#

D)40,50,#

考生答案:

正确答案:

D

(23)若有定义intk=10;则下列程序的输出结果为

do{

printf("%d",k--);}while(!

k);

A)9

B)10

C)10987654321

D)没有输出

考生答案:

正确答案:

B

(24)阅读下列程序段,则程序的输出结果是

#include"stdio.h"

main()

{inta=10,b=10,k;

for(k=0;a>8;b=++k)

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

printf("\n");}

A)10,10,10,0,

B)10,9,9,0,

C)10,10,9,1,

D)9,9,9,1,

考生答案:

A正确答案:

B

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

#include"stdio.h"

main()

{inta,b,m;

for(a=5;a>=1;a--)

{m=0;

for(b=a;b<=5;b++)

m=m+a*b;}

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

A)30

B)15

C)20

D)10

考生答案:

正确答案:

B

(26)有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为

A)6

B)7

C)8

D)9

考生答案:

正确答案:

D

(27)阅读下面程序段

#include"stdio.h"

main()

{charc;

c=(′z′-′a′)/2+′A′;

putchar(c);}

输出结果为

A)M

B)N

C)O

D)Q

考生答案:

正确答案:

A

(28)下列说法中不正确的是

A)C语言规定,不能在一个函数的内部再定义函数

B)在没有声明函数返回值类型的情况下,C默认的函数返回值类型为int型

C)函数的类型可以是整型、实型、字符型,但不能是指针型

D)函数可以没有形参,但函数名后的一对圆括号不能省略

考生答案:

正确答案:

C

(29)现有如下程序,则程序的输出结果为

#include"stdio.h"

intf(inta,intb)

{intc;

if(a>0&&a<10)c=(a+b)/2;

elsec=a*b/2;

returnc;}

main()

{inta=8,b=20,c;

c=f(a,b);

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

A)随机数

B)80

C)28

D)14

考生答案:

正确答案:

D

(30)阅读如下程序段,则程序段的执行后的输出结果为

#include"stdio.h"

main()

{charc;

inti;

charcount();

intp(char);

for(i=0;i<30;i++)c=count();

p(c);}

charcount()

{charstr=′A′;

str+=1;

return(str);}

p(charc)

{putchar(c);

putchar(′\n′);}

A)A

B)B

C)a

D)b

正确答案:

B

(31)阅读如下程序段,则执行后的结果为

#include"stdio.h"

main()

{inta,*p,*q,**w;

p=&a;

q=&a;

w=&p;

*p=5%6;

*q=5;

**w=3;

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

A)无确定值

B)1

C)5

D)3

考生答案:

正确答案:

D

(32)现有定义inta=10,*p=&a;则不能使a的内容增1的语句是

A)*p++;

B)*p=*p+1;

C)++*p;

D)*p+=1;

考生答案:

D正确答案:

A

(33)现有下列程序段

#include"stdio.h"

voidJFT(int*a,int*b,int*c,int*d,int*e)

{inti,j,k,m;

for(i=0;i<*a;i++)

for(j=0;j<*b;j++)

for(k=0;k<*c;k++)

for(m=0;m<*d;m++)*e++;}

main()

{inta=10,b=10,c=10,d=10,e=0;

JFT(&a,&b,&c,&d,&e);

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

则程序段的输出结果是

A)10000

B)1000

C)10001

D)0

考生答案:

正确答案:

D

(34)已知:

intc[5][6];则对数组元素引用不正确的是

A)c[0+2][2*1]

B)c[1][3]

C)c[4-2][0]

D)c[5][2]

考生答案:

B正确答案:

D

(35)以下能对二维数组c进行正确的初始化的语句是

A)intc[3][]={{3},{3},{4}};

B)intc[][3]={{3},{3},{4}};

C)intc[3][2]={{3},{3},{4},{5}};

D)intc[][3]={{3},{},{3}};

考生答案:

正确答案:

B

(36)阅读下列程序段,则程序段实现的功能是

#include"stdio.h"

main()

{intk[10];

intj;

for(j=0;j<10;j++)

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d,",k[j]);}

A)输入10个数据的顺序输入并输出

B)输入10个数据的逆序存放

C)输入10个数据的逆序输出

D)以上叙述均错误

考生答案:

正确答案:

C

(37)阅读程序,则执行后的结果为

#include"stdio.h"

main()

{inti,m,n;

for(i=0;i<3;i++)

{m=test1();

n=test2();}

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

test1()

{intx=0;

x++;

returnx;}

test2()

{staticintx=0;

x++;

returnx;}

A)1,1

B)1,3

C)3,1

D)3,3

考生答案:

正确答案:

B

(38)以下关于宏替换叙述中,错误的是

A)宏替换占用编译时间

B)替换文本中可以包含已定义过的宏名

C)宏名可以由+号组成

D)宏替换只能是字符替换

考生答案:

正确答案:

C

(39)阅读下面程序,则程序的输出结果为

#include"stdio.h"

main()

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

int*p;

p=c;

printf("%d,",*p);

printf("%d\n",*++p);}

A)1,2

B)2,1

C)1,1

D)2,2

考生答案:

正确答案:

A

(40)有如下定义,则函数fun的首部可以是

#defineN5

#defineM6

main()

{doublec[M][N];

fun(c);}

A)fun(doublea)

B)fun(doublea[M][])

C)fun(double*a)

D)fun(double(*a)[N])

考生答案:

正确答案:

D

(41)下面关于字符串的说明中,错误的是

A)chara[15]="jft";

B)chara[]="jft";

C)char*a=:

"jft";

D)chara[]={′j′,′f′,′t′};

考生答案:

正确答案:

D

(42)已知:

chara[20]="abc",b[20]="defghi";则执行下列语句后的输出结果为

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

A)11

B)6

C)5

D)以上答案都不正确

考生答案:

正确答案:

B

(43)阅读如下程序段,则程序在先后输入love和china后,输出结果是

#include

#include

main()

{chara[30],b[30];

intk;

gets(a);

gets(b);

k=strcmp(a,b);

if(k>0)puts(a);

elseif(k<0)puts(b);}

A)love

B)china

C)lovechina

D)没有输出结果

考生答案:

正确答案:

A

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

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

for(i=0;i

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5,i;

p=find(s,n);

puts(p);}

A)he

B)and

C)you

D)tomeetme

考生答案:

正确答案:

B

(45)当定义一个结构变量时系统分配给它的内存是

A)各个成员占用内存的总和

B)成员中占内存量最大者所需的容量

C)定义的同时并不分配空间

D)结构中最后一个成员所需内存量

考生答案:

正确答案:

A

(46)有以下说明语句

structa{charx;

doubley;}ptype;

则下列选项中错误的是

A)a是用户定义的结构体标识

B)structa是用户定义的结构类型

C)ptype是用户定义的结构类型名

D)x和y都是结构成员名

考生答案:

B正确答案:

C

(47)已知有如下定义:

structa{charx;doubley;}data,*t;,若有t=&data,则对data中的成员的正确引用是

A)(*t).data.x

B)(*t).x

C)t->data.x

D)t.data.x

考生答案:

正确答案:

B

(48)若有以下程序段,则选项中值为2的是

structa{intn,*next;};

intx=1,y=2,z=3;

structas[3],*p=s;

s[0].next=&x;s[1].next=&y;s[2].next=&2;

A)*(p++)->next

B)*(++p)->next

C)(*p).next

D)(p++)->next

考生答案:

C正确答案:

B

(49)下面程序段的输出为

#include"stdio.h"

main()

{inta=8,b;

b=a|1;

b>>=1;

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

A)4,4

B)4,0

C)8,4

D)8,0

考生答案:

正确答案:

C

(50)阅读下面程序,此程序的功能为

#include"stdio.h"

main(intargc,char*argv[])

{FILE*p1,*p2;

intc;

p1=fopen(argv[1],"r");

p2=fopen(argv[2],"a");

c=fseek(p2,0L,2);

while((c=fgetc(p1))!

=EOF)fputc(c,p2);

fclose(p1);

fclose(p2);}

A)实现将p1打开的文件中的内容复制到p2打开的文件

B)实现将p2打开的文件中的内容复制到p1打开的文件

C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后

D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后

考生答案:

正确答案:

C

二、填空题

(1)算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【1】。

A考生答案:

正确答案:

时间复杂度和空间复杂度

(2)数据结构包括数据的逻辑结构、数据的【2】以及对数据的操作运算。

A考生答案:

正确答案:

存储结构

(3)可以把具有相同属性的一些不同对象归类,称为【3】。

A考生答案:

正确答案:

对象类

(4)软件工程包括3个要素,分别为方法、工具和【4】。

A考生答案:

正确答案:

过程

(5)由关系数据库系统支持的完整性约束是指【5】和参照完整性。

A考生答案:

正确答案:

实体完整性

(6)表达式3*7/2+7/2%5的值为【6】。

A考生答案:

正确答案:

13

(7)阅读下面的程序,当程序在执行时,如果输入的是′A′,则输出结果为【7】。

#include"stdio.h"

main()

{chara;

a=getchar();

switch(a)

{case65:

printf("%c",′A′);

case66:

printf("%c",′B′);

default:

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

A考生答案:

正确答案:

ABother

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

main()

{chara[]="abcdefg";

charb[10]="abcdefg";

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

A考生答案:

正确答案:

8,10

(9)阅读下面程序段,则执行后的输出结果为【9】。

#include"stdio.h"

main()

{inta=1;

for(;a<=15;)

if(++a%5!

=2)continue;

elseprintf("%d",a);

printf("\n");}

A考生答案:

正确答案:

2712

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

main()

{intm=2,n=6;

for(;n>=0;n--)m*=n;

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

A考生答案:

正确答案:

0

(11)阅读下列程序,则执行后的结果为【11】。

#include"stdio.h"

fun(intx,inty)

{intz;

z=x;x=y;y=z;}

main()

{inta,b;

a=100;b=640;

fun(a,b);

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

A考生答案:

正确答案:

100,640

(12)阅读以下程序,使程序输出结果为30,4.000000,请填空。

#include"stdio.h"

main()

{inta=30,b=40,c;

double【12】,s;

s=fun(&a,&b,&c);

printf("%d,%lf\n",c,s);}

doublefun(int*a,int*b,【13】)

{*c=*a%*b;

return(4.0);}

A考生答案:

正确答案:

fun(int*,int*,int*)

B考生答案:

正确答案:

int*c

(13)下面程序段的功能是:

从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。

请填空。

#include"stdio.h"

fun(char*x,char*y,char*z)

{chart,*p;

p=z;

while(*x!

=′\0′&&*y!

=′\0′)

{t=*x<*y?

*x++:

*y<*x?

*y++:

【14】;

if(*p==′\0′)*p=t;

elseif(t!

=*p)*++p=t;}

if(*x!

=′\0′)

while(*x!

=′\0′)

if(*x!

=*p)*++p=*x++;

elsex++;

if(*y!

=′\0′)while(*y!

=′\0′)

if(*y!

=*p)*++p=*y++;

elsey++;

*++p=【15】;}

sort(char*s)

{inti,j,k;

chart,*p;

p=s;

for(k=0;*p!

=′\0′;k++)p++;

for(i=0;i

for(j=i+1;j

if(s[i]>s[j])

{【16】}}

main()

{chars1[100],s2[100],s3[200];

scanf("%s",s1);

scanf("%s",s2);

sort(s1);

sort(s2);

s3[0]=′\0′;

fun(s1,s2,s3);

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

A考生答案:

正确答案:

(*x++,*y++)

B考生答案:

正确答案:

′\0′

C考生答案:

正确答案:

t=s[i];s[I]=s[j];s[j]=t;

(14)下面函数是一个求阶乘的递归调用函数。

请填空。

intfun(intk)

{if(k==1)【17】;

elsereturn(【18】);}

A考生答案:

正确答案:

return1

B考生答案:

正确答案:

k*fun(k-1)

(15)以下函数set用来建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。

单向链表的头指针作为函数值返回,请填空。

structnode{chardata;

structnode

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

当前位置:首页 > 医药卫生

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

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