C语言1.docx
- 文档编号:5511019
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:42
- 大小:30.84KB
C语言1.docx
《C语言1.docx》由会员分享,可在线阅读,更多相关《C语言1.docx(42页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言