二级C语言分类模拟题554.docx
- 文档编号:30551503
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:20
- 大小:24.39KB
二级C语言分类模拟题554.docx
《二级C语言分类模拟题554.docx》由会员分享,可在线阅读,更多相关《二级C语言分类模拟题554.docx(20页珍藏版)》请在冰豆网上搜索。
二级C语言分类模拟题554
二级C语言分类模拟题554
选择题
1、若有定义
inta;
floatb;
doublec;
程序运行时输入:
345<回车>
能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是______。
A.scanf("%lf%lf%lf",&a,&b,&c); B.scanf("%d%lf%lf",&a,&b,&c);
C.scanf("%d%f%f",&a,&b,&c); D.scanf("%d%f%lf",&a,&b,&c);
2、以下叙述正确的是______。
A.C语言程序是由过程和函数组成的
B.C语言函数可以嵌套调用,例如:
fun(fun(x))
C.C语言函数不可以单独编译
D.C语言中除了main函数,其他函数不可作为单独文件形式存在
3、下面程序的输出结果是______。
#definea121
constb=12;
enumc{a1,a2};
main()
{
printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));
}
A.121,0,4 B.2,2,2 C.0,2,4 D.0,2,2
4、设文件指针fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是______。
A.只能写不能读 B.写操作结束后可以从头开始读
C.可以在原有内容后追加写 D.可以随意读和写
5、设有定义:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,则对a数组元素的引用错误的是______。
A.a[10] B.*(&a[i]) C.p[i] D.a[p-a]
6、有以下程序:
#include<stdio.h>
main()
{ charch;
ch='A'+'5'-'3';
printf("%d,%c\n",ch,ch);
}
程序的输出结果是
A.67,C B.B,C C.C,D D.不确定的值
7、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是
A.auto和register B.extern和register C.auto和static D.static和register
8、在C语言中,不适用于局部变量的存储类说明符是 ( )
A.auto B.register C.static D.extern
9、以下选项中表示一个合法的常量是(说明:
符号□表示空格)______。
A.9□9□9 B.0Xab
C.123E0.2 D.2.7e
10、有以下程序:
#include<stdio.h>
inta=1;
intf(intc)
{ staticinta=2;
c=c+1;
return(a++)+c;
}
main()
{ inti,k=0;
for(i=0;i<2;i++){inta=3;k+=f(a);}
k+=a;
printf("%d\n",k);
}
程序运行结果是______。
A.14 B.15
C.16D.17
11、若已包括头文件<string.h>且已有定义chars1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下列语句错误的是( )
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)
s1[i]=s2[i];
12、若有以下程序:
#include<stdio.h>
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);
}
则以下叙述中,不正确的是______。
A.若在主函数中对函数f()进行说明,则只能在主函数中正确调用函数f()
B.若在主函数前对函数f()进行说明,则在主函数和其他函数中都可以正确调用f()
C.对于以上程序,编译时系统会报错,提示对f()函数重复说明
D.函数f()无返回值,所以可用void将其类型定义为无值型
13、以下涉及字符串数组、字符指针的程序片段,没有编译错误的是______。
A.charline[];line="=============":
B.char*name[10],*str;name="HelloWorld";
C.charstr1[10],str2[10]="prog.c";str1=str2;
D.charname[10],*str="HelloWorld";
14、下列程序执行后的输出结果是______。
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
A.6 B.7 C.8 D.9
15、有以下程序
#include<stdio.h>
intf(intn)
{ intt=0,a=5;
if(n/2){inta=6;t+=a++;}
else{inta=7;t+=a++;}
returnt+a++;
}
main()
{ ints=0,i=0;
for(;i<2;i++)s+=fi);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.24 B.28 C.32 D.36
16、若有如下说明,且int类型占两个字节,则正确的叙述为______。
structst
{inta;
intb[2];
}a;
A.结构体变量a与结构体成员a同名,定义是合法的
B.程序只在执行到该结构体时才为结构体st分配存储单元
C.程序运行时为结构体st分配8字节存储单元
D.类型名structst可以通过extern关键字提前引用
17、若有以下程序
#include<stdio.h>
#defineS(x)x*x
#defineT(x)S(x)*S(x)
main()
{intk=5,j=2;
printf("%d,%d\n",S(k+j),T(k+j));
}
则程序的输出结果是______。
A.17,37 B.49,2401 C.17,289 D.49,289
18、设有以下说明,则不正确的叙述是______。
unionun
{inta;
charb;
floatc;
}arr;
A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数
D.不能在定义arr时对它初始化
19、有以下程序:
#include<stdio.h>
main()
{ shortc=124;
c=c______;
printf("%d\n",c);
}
若要使程序的运行结果为248,应在横线处填入的是______。
A.>>2
B.|248
C.&0248
D.<<1
20、关系模型允许定义3类数据约束,下列不属于数据约束的是______。
A.实体完整性约束
B.参照完整性约束
C.属性完整性约束
D.用户自定义的完整性约束
21、下面程序的运行结果是______。
#include<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!
='\0';i++)
{if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;)
s[j]='\0';}}
main()
{char*s="aa89gggh";del(s);printf("\n%s",s);}
A.aa B.89 C.gggh D.aa89gggh
22、以下程序的输出结果是______。
main()
{charst[20]="hello\0\t\\\";
printf("%d%d\n",strlen(st),sizeof(st));
}
A.99 B.520
C.1320 D.2020
23、下列叙述中,正确的是______。
A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构
C.双向链表是非线性结构 D.只有根结点的二叉树是线性结构
24、有如下程序:
#include<stdio.h>
structpair
{
intfirst,second;
};
structpairget_min_max(int*array,intlen)
{
inti;
structpairres;
res.first=array[0];
res.second=array[0];
for(i=1;i<len;i++)
{
if(array[i]<res.first)
res.first=array[i];
if(array[i]>res.second)
res.second=array[i];
}
returnres;
}
main()
{
intarray[5]={9,1,3,4};
struetpairmin_max=get_min_max(array,5)
printf("min=%d,max=%din",min_max.first,min_max.second);
}
程序运行后的输出结果是______。
A.min=1,max=9 B.min=0,max=9
C.min=1,max=4D.min=0,max=4
25、有以下程序片段:
y=-1;
if(x!
=0)
if(x>0)y=1;
elsey=0;
其能正确表示的数学函数关系是
A.
B.
C.
D.
26、设有以下定义和语句
int a[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是
A.a[0][1] B.a[1][0] C.a[1][1] D.a[1][2]
27、以下叙述中错误的是( )。
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式
28、C语言主要是借助______来实现程序模块化。
A.定义函数 B.定义常量和外部变量
C.三种基本结构语句 D.丰富的数据类型
29、以下关于switch语句的叙述中正确的是______。
A.所有case的标号都应当是连续的
B.每个case语句标号后面可以没有break语句
C.char型常量不能做case的标号使用
D.default必须放在全部case的最后
30、若有以下定义:
chars[100]="string";
则下述函数调用中,______是错误的。
A.strlen(strcpy(s,"Hello")) B.strcat(s,strcpy(s1,"s"));
C.puts(puts("Tom")) D.!
strcmp("",s)
31、若有定义语句“inta,b;doublex;”,则下列选项中没有错误的是______。
A.switch(x%2)
{case0:
a++;break;
case1:
b++;break;
default:
a++;b++;
}
B.switch((int)x/2.0)
{case0:
a++;break;
case1:
b++;break;
default:
a++;b++;
}
C.switch((int)x%2)
{case0:
a++;break;
case1:
b++;break;
default:
a++;b++;
}
D.switch((int)(x)%2)
{case0.0:
a++;break;
case1.0:
b++;break;
default:
a++;b++;
}
32、若有以下定义和语句 ( )
intu=010,v=Ox10,w=10;
printf("%d,%d%d\n",u,v,w);
则输出结果是
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
33、逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是______。
A.关系模型 B.谓词模型
C.物理模型 D.实体—联系模型
34、有以下程序
#include<stdio.h>
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是______。
A.2,3,1 B.2,3,2 C.2,3,3 D.2,2,1
35、以下叙述中错误的是______。
A.C程序对预处理命令行的处理是在程序执行的过程中进行的
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.在程序中凡是以”#”开始的语句行都是预处理命令行
36、C源程序中不能表示的数制是______。
A.十六进制 B.八进制 C.十进制 D.二进制
37、下列叙述中错误的是______。
A.算法的时间复杂度与问题规模无关
B.算法的时间复杂度与计算机系统无关
C.算法的时间复杂度与空间复杂度没有必然的联系
D.算法的空间复杂度与算法运行输出结果的数据量无关
38、下列选项中,能正确定义数组的语句是______。
A.intnum[0..2008];
B.intnum[];
C.intN=2008;
intnum[N];
D.#defineN2008
intnum[N];
39、以下数据结构中不属于线性数据结构的是______。
A.队列 B.线性表 C.二叉树 D.栈
40、对于一个正常运行的C程序,以下叙述中正确的是______。
A.程序的执行总是从程序的第一个函数开始,在main函数结束
B.程序的执行总是从main函数开始
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
答案:
选择题
1、D
[解析]int,float,double对应的格式控制符分别为%d,%f,%lf,所以答案选择D。
2、B
[解析]C语言程序是由主函数和若干子函数构成的,可以嵌套使用。
主函数调用子函数,子函数在定义时是并列的,子函数可相互调用或被多次调用。
3、B
[解析]sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。
因此它们的字节数均为2,2,2。
4、A
[解析]本题考查文件操作函数fopen()的基础知识。
以“w”方式打开文件,只能写不能读,故选项A正确。
5、A
[解析]长度为n的数组其各个元素的下标应该是从0到n-1,因此,长度为10的数组a,第10个元素为a[9],而不是a[10],故答案为A选项。
6、A
7、A
[解析]在C语言中只有自动变量和寄存器变量在使用时才占用内存单元。
8、D
9、B
[解析]当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。
10、A
[解析]在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数intfun(intc)中的局部静态变量a等于3。
第二次调用函数f(3)时,返回值为7,所以k=6+7=13。
退出循环语句,k再加上全局变量a的值1,其最终的值为14。
11、C
[解析]数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量, 因此sl="ABCDE"的方法是错误的。
12、C
[解析]C语言规定,在一个函数中调用另一个函数(即被调用函数)需要具备的条件有:
①首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数);②如果使用库函数,一般还应该在本文件开头用"#include"命令;③如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数作声明。
13、D
[解析]C语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项A、B、C错误,选项D正确。
故本题答案为D选项。
14、A
15、A
[解析]第一次循环返回12,第二次循环返回12,累加结果为24。
16、A
[解析]本题主要考查结构体的用法:
①结构体变量a与结构体成员a同名,定义合法;②在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;③inta占2个字节,intb[2]占4个字节,共6个;④类型名“structst”不可以通过extern关键字提前引用。
17、A
[解析]S(k+j)展开后为5+2*5+2值为17,T(k+j)展开后5+2*5+2*5+2*5+2值为37,所以答案选择A。
18、C
[解析]本题主要考查联合体的内存使用:
联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度;arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化;arr也不可以作为函数参数。
19、D
[解析]124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移1位,所以选D。
20、C
[解析]关系模型允许3类数据约束,它们是:
●实体完整性约束
该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求。
●参照完整性约束
该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:
即在关系中的外键要么是所关联关系中实际存在的元组,要么就为空值。
●用户定义的完整性约束
用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
21、B
22、B
[解析]从题目中可知,'\0'、'\t'、'\\'分别为一个字符,而sizeof是求字节个数的函数,其中包括'\0'占的字节;strlen函数是求数组长度的函数,其以'\0'结束,因此strlen的值为5,sizeof的值为20。
23、A
[解析]根据数据结构中各数据元素之间前后关系的复杂程度,可将数据结构分为两大类型:
线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:
①有且只有一个根结点;②每个结点最多有一个前驱,也最多有一个后继。
则称该数据结构为线性结构,也叫做线性表。
若不满足上述条件,则称之为非线性结构。
线性表、栈、队列和线性链表都是线性结构,而二叉树
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 分类 模拟 554