C语言1.docx
《C语言1.docx》由会员分享,可在线阅读,更多相关《C语言1.docx(42页珍藏版)》请在冰豆网上搜索。
![C语言1.docx](https://file1.bdocx.com/fileroot1/2022-12/17/da6c64c8-701d-45f4-b443-47838249062c/da6c64c8-701d-45f4-b443-47838249062c1.gif)
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;iif(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;ifor(j=i+1;jif(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