二级C语言分类模拟题572
计算机二级《C语言》基础模拟题及答案
计算机二级《C语言》基础模拟题及答案计算机二级《C语言》基础模拟题及答案1[单选题] 以下叙述中正确的是( )。
A.用C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上参考答案:D参考解析:C语言编写的程序可以放置于多个程序文件中,所以A 错误。
C程序中的一行可以有多条语句,所以B错误。
C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。
2[单选题] 以下选项中,能用作数据常量的是( )。
A.115LB.0118C.1.5el.5D.0115参考答案:A参考解析:A选项中l15L表示ll5是长整型数据,合法。
B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。
c选项中e后面应该是整数不能是小数l.5,所以c错误。
D选项中八进制常量应该是数字…0开始,而不是字母…O开始。
3[单选题] 对于一个正常运行的C程序,以下叙述中正确的是( )。
A.程序的执行总是从main函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在main函数结束.C.程序的执行总是从main函数开始、D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束参考答案:C参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。
4[单选题] 有以下程序:程序运行后的输出结果是( )。
A.1 2B.1 4C.123 4D.123 456参考答案:D参考解析:fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。
执行两次fprintf后。
文件中的内容为。
l23 456”,所以D选项正确。
5[单选题] 有以下程序:程序运行后的输出结果是( )。
A.1,2,1,2,2,4B.1,2,6,6,7,8C.1,2,2,4,2,4D.1,2,6,6,2,4参考答案:A参考解析:全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。
计算机等级《二级C语言程序设计》模拟题
计算机等级《二级C语言程序设计》模拟题计算机等级《二级C语言程序设计》模拟题1.【单选题】2分| 有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。
A (!a==1)&&(!b==0)B (aC a&&bD a||(b+b)&&(c-a)2.【单选题】2分| 执行下面的程序后,a的值为()。
main(){inta,b;for(a=1,b=1;a=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A 7B 8C 9D 103.【单选题】2分| 若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。
A EOFB -lC 非零值D 04.【单选题】2分| 有以下程序:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d\n",a+b);//输出计算机结果}程序运行后的输出结果是()。
A a+b=10B a+b=30C 30D 出错5.【单选题】2分| 以下程序的输出结果是()。
main(){inta=3:printf("%d\n",(a+a-=a*a));}A -6B 12C 0D -126.【单选题】2分| 执行下列程序中的输出语句后,a的值是()。
main(){inta;printf("%d\n",(a=2*3,a*5,a+7));}A 17B 37C 6D 137.【单选题】2分| 下列关于栈的描述中错误的是()。
A 栈是先进先出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入删除操作中,不需要改变栈底指针8.【单选题】2分| 函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A 将字符串str1复制到字符串str2中后再连接到字符串str3之后B 将字符串str1连接到字符串str2之后再复制到字符串str3之后C 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后D 将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中9.【单选题】2分| 对两个数组a和b进行下列初始化:charm[]1="l234567":charn[]={'1','2','3','4','5','6','7');则下列叙述正确的是()。
全国计算机二级《C语言》考试题库与答案
全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。
什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。
全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。
以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机二级《C语言》模拟试题及答案1、以下语句的输出结果是( )。
int a=-1,b=4,k;k=(+ +a<0)&&!(b - -<=0);printf("%d,%d,%d\n",k,a,b);A. 1,0,4B. 1,0,3C. 0,0,3D. 0,0,42、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A. xyabcABB. abcABzC. ABabczD. xycdBCD3、执行下面的程序后,a的值是( )。
#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a); }A. 10B. 1C. 9D. 04、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2B. P+(i-1)*2来源:考试大C. P+(i-1)D. P+i5、下列程序执行后输出的结果是( )。
int d=1;fun (int p){ int d=5;d + =p + +;printf("%d,",d); }main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d); }A. 8, 4B. 9, 6C. 9, 4D. 8, 56、表达式:10!=9的值是( )。
A. trueB. 非零值C. 0D. 17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
计算机2级C语言模拟题
计算机2级C语言模拟题笔试部分一、选择题1.串的长度是( )A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数【参考答案】D2.以下不属于对象的基本特点的是( )A.分类性B.多态性C.继承性D.封装性【参考答案】C3.下面不属于软件设计原则的是( )A.抽象B.模块化C.自底向上D.信息隐蔽【参考答案】C4.下列SQL语句中,用于修改表结构的是( )A.ALTERB.CREATEC.UPDATED.INSERT【参考答案】A5.关系模型允许定义3类数据约束,下列不属于数据约束的是( )A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束【参考答案】C6.非空的循环单链表head的尾结点(由p所指向),满足( )A.p->next==NULLB.p==NULLC.p->next=headD.p=head【参考答案】C7.对建立良好的程序设计风格,下面描述正确的是( )A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无【参考答案】A8.在软件生产过程中,需求信息的给出是( )A.程序员B.项目管理者C.软件解析设计人员D.软件用户【参考答案】D9.NULL是指( )A.0B.空格C.未知的值或无任何值D.空字符串【参考答案】C10.下列说法中,不属于数据模型所描述的内容的是( )A.数据结构B.数据操作C.数据查询D.数据约束【参考答案】C11.在C语言中,退格符是()A.\nB.\tC.\fD.\b【参考答案】D12.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25 &&b--<=2 &&c? printf(″***a=%d,b=%d,c=%d\n″,a,b,c):printf(″###a=%d,b=%d,c=%d\n″,a,b,c);程序输出的结果是()A.* * *a=25,b=13,c=19B.* * *a=26,b=14,c=19C.### a=25,b=13,c=19D.### a=26,b=14,c=19【参考答案】C13.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是()#includemain(){ char c;int v0=1,v1=0,v2=0;do{ switch(c=getchar()){ case ′a′:case′A′:case′e′:case′E′:case′i′:case′I′:case′o′:case′O′:case′u′:case′U′:v1+=1;default:v0+=1;v2+=1;}} while(c!=′\n′);print f(″v0=%d,v1=%d,v2=%d\n″,v0,v1,v2); }A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v0=13,v1=4,v2=1214.执行下面的程序段后,变量k中的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.10【参考答案】A15.有如下程序段int a=14,b=15,x;char c=′A′;x=(a&&b)&&(c<′B′);执行该程序段后,x的值为()A.tureB.falseC.0D.1【参考答案】D16.以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n){ int i,j=0,p;p=j;for(i=j;i<n;i++)< p="">if(a[i]>a[p])_______return(p);}在下划线处应填入的内容是()A.i=pB.a[p]=a[i]C.p=jD.p=i 【参考答案】D17.有如下程序main(){ char s[]=″ABCD″,*p;for(p=s+1;p<s+4;p++)printf(″%s\n″,p);< p="">}该程序的输出结果是()A.ABCDB.ABCD BCD CD DC.BD.BCDC CDD D【参考答案】D18.以下正确的说法是()A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准【参考答案】B19.结构化程序设计的三种基本逻辑结构是( )A.选择结构、循环结构和嵌套结构B.顺序结构、选择结构和循环结构C.选择结构、循环结构和模块结构D.顺序结构、递归结构和循环结构【参考答案】C20.设有如下定义struck sk{ int a;float b;} data;int * p;若要使p指向data中的a域,正确的赋值语句是()A.p=8a;B.p=data.a;C.p=&data.aD.*p=data.a;【参考答案】C21.在下述程序中,判断i>j共执行的次数是()main(){ int i=0,j=10,k=2,s=0;for(;;){ i+=k;if(i>j){ printf(″%d″,s);break;}s+=i;}}A.4B.7C.5D.6【参考答案】D22.以下程序的输出是()struct st{ int x;int *y;} *p;int dt[4]={10,20,30,40};struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt [0],60,&dt[0]};main(){ p=aaprintf(″%d\n″,++(p->x));}A.10B.11C.51D.60【参考答案】C23.下列数据中,不合法的C语言实型数据的是()A.0.123B.123e3C.2.1e3.5D.789.0【参考答案】C24.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )A.intB.floatC.doubleD.不确定【参考答案】C25.设以下变量均为int类型,表达式的值不为7的是()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)【参考答案】C26.若变量a是int型,并执行语句:a=′A′+1.6;,则正确的叙述是( )A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符′A′的ASCII值加上1【参考答案】D27.有如下程序main(){int x=23;do{ printf(″%d″,x--);} while(!x);}该程序的执行结果是()A.321B.23C.不输出任何内容D.陷入死循环【参考答案】B28.若变量c为char类型,能正确判断出c为小写字母的表达式是()A.′a′<=c<=′z′B.(c>=′a′)||(c<=′z′)C.(′a′<=c)and(′z′>=c)D.(c>=′a′)&&(c<=′z′)【参考答案】D29.下面程序段的运行结果是()char str[]=″ABC″,*p=str;printf(″%d\n″,*(p+3));A.67B.0C.字符′C′的地址D.字符′C′【参考答案】B30.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))【参考答案】D31.有以下程序fun(int x,int y,int z){ z=x*y;}main(){int a=4,b=2,c=6;fun(a,b,c);printf(″%d″,c);}程序运行后的输出结果是()A.16B.6C.8D.12【参考答案】B32.以下叙述中不正确的是()A.预处理命令都必须以#号开始B.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.在以下定义是正确的:#define PI 3.1415926【参考答案】D33.下面程序段的运行结果是()char *p=″abcdefgh″;p+=3;printf(″%d\n″,strlen(strcpy(P,″ABCD″)));A.8B.12C.4D.7【参考答案】C34.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是()A.一个整型变量,代表要读入的数据项总数B.一个文件指针,指向要读的文件C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项【参考答案】C35.C语言规定,在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后【参考答案】C36.以下叙述中正确的是( )A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点【参考答案】C37.C语言中最简单的数据类型包括( )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型【参考答案】B38.下列可用于C语言用户标识符的一组是( )A.void define WORDB.a3_b3 _123 CarC.For abc IFCaseD.2a DO sizeof【参考答案】B39.已知int t=0;while (t=1){…}则以下叙述正确的是( )A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对【参考答案】B40.有以下程序main(){ int i=1,j=1,k=2;if((j++ || k++)&&i++)printf(″%d,%d,%d\n″,i,j,k);}执行后输出结果是( )A.1,1,2B.2,2,1C.2,2,2D.2,2,3 【参考答案】C41.在下列选项中,没有构成死循环的是( )A.int i=100;while(1){ i=i%100+1;if(i>100)break;}B.for(;;);C.int k=1000;do{k++;}while(k>10000);D.int s=36;while(s)--s;【参考答案】D42.有以下程序float fun(int x,int y){return(x+y);}main(){ int a=2,b=5,c=8;printf(″%3.0f\n″,fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是( )A.编译出错B.9C.21D.9.0【参考答案】B43.设有以下说明语句struct stu{ int a;float b;} stutype;则下面的叙述不正确的是( )A.struct是结构体类型的关键字B.struct stu是用户定义的结构体类型C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名【参考答案】C44.以下说法正确的是( )A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分【参考答案】C45.下列程序执行后的输出结果是( )void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5]={0};a=0;b[0]=3;func(&a,b);printf(″%d\n″,b[0]);}A.6B.7C.8D.9【参考答案】A46.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){ int i,j,t;for(i=0;i<n-1;i++)< p="">for(j=i+1;j<n;j++)< p="">if(a[i]< p="">}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf(″%d″,aa[i]);printf(″\n″);}程序运行后的输出结果是( )A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10,D.1,2,10,9,8,7,6,5,4,3,【参考答案】C47.若执行下述程序时,若从键盘输入6和8时,结果为( ) main(){ int a,b,s;scanf(″%d%d″,&a,&b);s=aif(a<b)< p="">s=b;s*=s;printf(″%d″,s);}A.36B.64C.48D.以上都不对【参考答案】B48.有以下程序void ss(char *s,char t){ while( *s){ if(*s==t)*s=t-′a′+′A′s++;</b)<><></n;j++)<></n-1;i++)<></s+4;p++)printf(″%s\n″,p);<></n;i++)<>。
下半年计算机等级二级C语言上机模拟试题及答案
下半年计算机等级二级 C语言上机模拟试题及答案
2016下半年计算机等级二级C语言上机模拟试题及答案 给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找 不到相同的字符则函数不做任何处理。
2022年计算机等级考试二级C语言模拟试卷及其答案
(2)【2】软件开发
评析:基于软件工程旳目旳,软件工程旳理论和技术性研究旳内容重要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发措施学、开发过程、开发工具和软件工程环境,其主体内容是软件开发措施学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
(5)A
评析:确认测试旳任务是验证软件旳功能和性能及其他特性与否满足了需求规格阐明中确实定旳多种需求,以及软件配置与否完全、对旳。
(6)D
评析:常见旳需求分析措施有:构造化分析措施和面向对象旳分析措施。构造化分析旳常用工具有:数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表等。
(7)C
评析:在软件设计过程中,必须遵照软件工程旳基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。
(8)B
评析:内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储构造与物理存取措施,如数据存储旳文献构造、索引、集簇及hash等存取方式与存取途径。
(9)D
评析:在关系数据库中,用二维表来表达实体之间元组所构成,因此关系可视为元组旳集合,将E-R图转换到关系模式时,实体与联络都可以表到达关系。
(7)【7】1.0/(i*i) 或 (double)1/(i*i)
评析:体现式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应旳C语言旳体现式s = s + 1.0/(i*i)。注:必须要写成1.0旳形式,否则 1/(i*i)返回值为其值截尾取整,即恒为0。
计算机二级《C语言》模拟试题及答案
计算机二级《C语言》模拟试题及答案计算机C语言是学计算机设计的根底语言,同学们学得怎么样了呢?为同学分享最新的C语言考试题库,希望能帮助到大家学习!1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程8.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性9.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合10.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
计算机二级C语言五套模拟卷及答案
计算机二级C语言五套模拟卷及答案模拟试题一一、选择题(本大题30分,每小题2分)1.下列说法正确的是。
E) main函数必须放在C程序的开头F) main函数必须放在C程序的最后G) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的H) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。
A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型3.若有说明语句:char c= ‘\64’; 则变量C包含:。
A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定4.设有如下定义和执行语句,其输出结果为:。
int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 35.C语言中,运算对象必须是整型数的运算符是。
A)% B)\ C)% 和\ D)**6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= 。
A)2 B)3 C)4 D)无结果8.下面有关for循环的正确描述是。
全国计算机等级考试二级C语言模拟试题及答案
全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
C语言试题,二级C语言试题
二级 C 语言程序设计模拟试题(一)一、单项选择题。
(每小题 1 分,共 20 分)1、一个 C 语言程序是由( B )组成。
A) 一个函数 B) 一个或若干个函数 C) 一个过程D) 一个过程或若干个过程知识点: C 语言程序的结构2 、 C 语言用( D )表示逻辑真值。
A) true B) T C) 整型值 0 D) 非 0 整型值知识点:数据类型3、如果程序中有 #include " 文件名" 则意味着( A )。
A) 将"文件名 "所指的那个文件的全部内容,在此命令行出现的这一点上,插 入源程序B) 指定标准输入输出 C) 宏定义一个函数D) 条件编译说明 知识点:编译预处理4、为一个结构体变量分配存储空间时,其所占容量为(B )所占容量A) 结构体中第一个成员所占容量容量B) 结构体中所有成员所占C) 结构体中所有成员中所占容量最大者D) 结构体中最后一个成员知识点:结构体5、如果int *px ,*py ;则可用{temp=*px ;*px=*py ;*py 的交换。
其中temp 应该说明为( A )。
A) int temp B) int &temp C) int *temp知识点:指针6、于合法的 c 语言长整型常量是( A )。
A) 12L B) 6887273 C) 5E12 6887273知识点:数据类型7、下列程序输出正确的是( A )。
main (){ int a=-1 ,b=1 ,c;c= ( a++<=0 )&&!((b--<=0));printf( “%d,%d,%d ” ,a,b,c);}A) 0,0,1 B) -1,1,1 C) 0,0,0 知识点:逻辑运算符8、已知E的ASCII 码是69,则执行printf( “%c”,'D' 是( B )。
A) 66 B) A C) B 知识点:数据类型与自动转换9、段名访问的方式是( A ) *py=temp} 实现*px 和int **temp D)D) (long )D) 0,1,0 -‘8'+ '5');的结果D) EA) 结构名.位段名B) 位段名C) 结构名D) *& 位段名知识点:位段10 、有字符数组a,则正确的输入语句是( C )。
二级C语言分类模拟题572
二级C语言分类模拟题572选择题1、以下程序段中,与其他三个功能不同的程序段是______。
A.s=0;i=1;for(; ;){s+=i; i++; if(i<=10)break;} B.s=0,i=1;for(; i<=10;) {s+=i, i++; }C.s=0;for(i=1;i<=10; i++) {s+=i;}D.for(s=0,i=1;i<=10; s+=i,i++);2、以下选项中非法的表达式是A. 0<=x<100B. i=j= =0C. (char)(65+3)D. x+1=x+13、有以下程序:#include<stdio.h>main(){int sum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}程序运行后的输出结果是______。
A.5 B.6 C.7 D.84、有以下程序:# include <stdio.h>main(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是______。
A.12 B.11C.10 D.95、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。
A.下划线 B.大写字母 C.数字字符 D.连接符6、有以下程序#include<stdio.h>main(){ int x=1,y=0;if(!x)y++;else if(x==0)if(x)y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是______。
A.0 B.2 C.1 D.37、有以下程序#include<stdio.h>int fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;}main(){int j=1, m=1, k;k=fun(j, m); printf("%d", k);k=fun(j, m); printf("%d\n", k);}执行后的输出结果是______。
全国计算机二级C语言考试模拟题
全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。
A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。
A、!B、&&C、||D、<3、求字符串长度的函数是( D )。
A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。
char x[5]=“ab\0c\0”;printf("%s",x);说明:“\0”中的“0”是数字零。
A、abB、abcC、ab\0D、ab\0c\05、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是( D )。
A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。
A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。
A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是( D )。
#include<stdio.h>#define F(y) 8-yvoid main(void){int x,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。
#include<stdio.h>struct{int x,y;} a;void main(void){int x,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60 B 、10 C、0 D、2010、语句fopen(“file.dat”,”r”); 的功能是(A)。
A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是( D )。
二级C语言分类模拟题574
二级C语言分类模拟题574(总分:46.50,做题时间:90分钟)一、选择题(总题数:30,分数:46.50)1.有以下程序:#include<stdio.h>#include<stdlib.h>int fun(int n){int *p;p=(int*)malloc(sizeof(int));*p=n; return *p;}main(){int a;a=fun(10); printf("%d/n",a+fun(10));}程序运行后的输出结果是______。
(分数:1.00)A.0B.10C.20 √D.出错解析:[解析] malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)的存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量p。
然后执行语句*p=n;使得*p的值为10,并通过return返回此值,即a的值为10。
然后在主函数中输出a+fun(10)=10+10=20。
所以选择C选项。
2.以下能正确定义一维数组的选项是______。
(分数:2.00)A.int a[5]={0, 1, 2, 3, 4, 5);B.char a[]={0, 1, 2, 3, 4, 5); √C.char a={"A", "B", "C"};D.int a[5]="0123";解析:[解析] A中初值的个数大于a的定义的长度,错误。
C中a被定为字符却给它赋值为数值,错误。
D 中a是整型数组却给它赋值为字符串,错误。
3.下面说明不正确的是 ____ 。
(分数:1.00)A.chara[10]="china";B.chara[10],*p=a;p="chiua";C.char*a;a="china";D.chara[10],*p;p=a="china";√解析:[解析] C语言中操作一个字符串常量的方法有:①把字符串常量存放在一个字符数组之中。
计算机二级《C语言》模拟题及答案
计算机二级《C语言》模拟题及答案2016计算机二级《C语言》模拟题及答案1. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A、1B、4C、4.333333D、4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为12. 以下对一维数组a的正确说明是: DA、char a(10);B、 int a[];C、int k=5,a[k];D、char a[3]={‘a’,’b’,’c’};详见教材P143~144,一维数组的定义、初始化类型符数组名 [常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
选项A,常量表达式只能放在中括号 [ ]中选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。
选项C,常量表达式不能为变量。
3.以下能对一维数组a进行初始化的语句是:( C )A、int a[5]=(0,1,2,3,4,)B、 inta(5)={}C、 int a[3]={0,1,2}D、 int a{5}={10*1}详见教材P145,一维数组的定义、初始化选项B,D,常量表达式只能放在中括号 [ ]中选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().4.在C语言中对一维整型数组的正确定义为 D 。
A、int a(10);B、int n=10,a[n];C、int n;a[n];D、#define N 10int a[N];5、已知:int a[10]; 则对a数组元素的正确引用是( D )。
A、a[10]B、a[3.5]C、a(5)D、a[0]详见教材P144,数组元素的引用数组名[下标]引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;选项B,逻辑地址下标只能为整数选项C,逻辑地址下标只能放在[ ]中6.下列不正确的定义是(A )。
c二级考试试题
c二级考试试题C语言二级考试试题涵盖了C语言的基础知识、数据类型、运算符、控制结构、数组、函数、指针、结构体、文件操作等多个方面。
以下是一套模拟的C语言二级考试试题,供参考:一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. 在C语言中,以下哪个运算符用于求余数?A. %B. /C. *D. --3. 下列哪个是C语言中的逻辑运算符?A. &&B. ||C. <D. >4. 以下哪个语句是正确的C语言循环语句?A. do-whileB. while-doC. do-doD. while-while5. 在C语言中,数组的默认初始化方式是什么?A. 0B. 1C. -1D. 随机数二、填空题(每空2分,共20分)1. 在C语言中,基本数据类型包括整型(____)、浮点型(____)、字符型(____)等。
2. 一个C程序的执行从(____)函数开始。
3. 一个C语言的函数定义包括返回类型、(____)和函数体。
4. 指针变量的值是(____)的地址。
5. 结构体是一种(____)类型的数据类型。
三、简答题(每题10分,共20分)1. 请简述C语言中数组和指针的区别和联系。
2. 描述一下C语言中函数的调用过程。
四、编程题(每题15分,共40分)1. 编写一个C语言程序,实现输入10个整数,找出其中的最大值和最小值,并输出。
```c#include <stdio.h>int main() {int numbers[10], max, min, i;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}max = min = numbers[0];for (i = 1; i < 10; i++) {if (numbers[i] > max) {max = numbers[i];}if (numbers[i] < min) {min = numbers[i];}}printf("最大值是:%d\n", max);printf("最小值是:%d\n", min);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
c语言二级模拟试题
c语言二级模拟试题# C语言二级模拟试题一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言具有丰富的数据类型C. C语言是面向对象的编程语言D. C语言支持多文件编程2. 在C语言中,以下哪个关键字用于定义一个函数?A. `int`B. `void`C. `return`D. `function`3. 以下哪个运算符不能用于算术运算?A. `+`B. `-`C. `*`D. `&&`4. 在C语言中,以下哪个语句用于实现循环?A. `if`B. `switch`C. `while`D. `for`5. 以下哪个选项是C语言中的合法变量名?A. `2variable`B. `variable-name`C. `case`D. `default`6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. `strcpy`B. `strcat`C. `strlen`D. `strncat`7. 在C语言中,以下哪个关键字用于定义一个结构体?A. `struct`B. `union`C. `enum`D. `typedef`8. 在C语言中,以下哪个语句用于定义一个枚举类型?A. `typedef`B. `enum`C. `struct`D. `union`9. 在C语言中,以下哪个函数用于计算一个整数的绝对值?A. `abs`B. `fabs`C. `floor`D. `ceil`10. 在C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. `sprintf`B. `strcpy`C. `strcat`D. `atoi`二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于_______。
2. 一个C语言程序的执行从`main`函数开始,`main`函数的返回类型通常是_______。
3. 在C语言中,`scanf`函数用于_______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级C语言分类模拟题572(总分:42.50,做题时间:90分钟)一、选择题(总题数:30,分数:42.50)1.以下程序段中,与其他三个功能不同的程序段是______。
(分数:1.00)A.s=0;i=1;for(; ;){s+=i; i++; if(i<=10)break;} √B.s=0,i=1;for(; i<=10;) {s+=i, i++; }C.s=0;for(i=1;i<=10; i++) {s+=i;}D.for(s=0,i=1;i<=10; s+=i,i++);解析:[解析] B、C、D选项都表示对1到10进行累加后赋给s,而A中含break语句,循环体只执行一次,结束整个循环过程,因此答案为A选项。
2.以下选项中非法的表达式是(分数:1.00)A.0<=x<100B.i=j= =0C.(char)(65+3)D.x+1=x+1 √解析:[解析] 选项D中将表达式的值赋给表达式,在c语言中是不允许给表达式赋值的。
3.有以下程序:#include<stdio.h>main(){int sum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d/n",pad);}程序运行后的输出结果是______。
(分数:1.00)A.5B.6 √C.7D.8解析:[解析] C语言区分大小写,pad与pAd是两个不同的变量。
首先将5赋值给两个变量,由于赋值运算符的优先级高于逗号运算符,所以计算pAd=+ +sum,此时pAd为6,sum也为6,然后计算pAd+ +,pAd 的值变为7,+ +pad,pad的值变为6,所以选择B选项。
4.有以下程序:# include <stdio.h>main(){ int x=011;printf("%d/n",++x);}程序运行后的输出结果是______。
(分数:1.00)A.12B.11C.10 √D.9解析:[解析] 考查简单的C语言程序,题目中x=011;而输出函数中++x,说明是先加1,所以为10,答案选择C。
5.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。
(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符√解析:[解析] C语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。
因此D选项中的连接符不合法。
6.有以下程序#include<stdio.h>main(){ int x=1,y=0;if(!x)y++;else if(x==0)if(x)y+=2;else y+=3;printf("%d/n",y);}程序运行后的输出结果是______。
(分数:2.50)A.0 √B.2C.1D.3解析:[解析] (!x)为假,然后判断(x==0),为假,最后就执行输出语句,y的值仍为初始值,答案选择A。
7.有以下程序#include<stdio.h>int fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;}main(){int j=1, m=1, k;k=fun(j, m); printf("%d", k);k=fun(j, m); printf("%d/n", k);}执行后的输出结果是______。
(分数:2.00)A.5, 11 √B.5, 5C.11, 11D.11, 5解析:[解析] 声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。
本题子函数fun中的变量i和m均为静态局部变量。
因此第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了,所以执行i+=m+1,i的值变为9,m=i+x+y=9+1+1=11。
故本题答案为A。
8.以下语句中存在语法错误的是______。
(分数:2.00)A.char ss[6][20];ss[1]="right?";√B.char ss[][20]={"right?"};C.char*ss[6];ss[1]="right?";D.char*ss[]={"right?"};解析:[解析] 数组赋值时需要用{}表示出来,故选项A错误。
9.有以下程序:#include <stdio.h>int fun(){ static int x=1;x*=2;return x;}main( ){ int i,s=1;for(i=1; i<=3; i+ +) s*=fun();printf("%d/n",s);}程序运行后的输出结果是______。
(分数:2.50)A.10B.30C.0D.64 √解析:[解析] 在本题中,静态局部变量x在静态存储区内分配存储单元,在程序整个运行期间都不释放。
所以第一次循环s的值为2,在第二次循环中,返回的x的值为4,所以s的值为8,第三次循环,返回的x的值为8,所以s的值为64。
10.有下列程序:main(){ int x=5;do{printf("%d",x-=4);}while(!(--x));}程序的输出结果是( )。
(分数:1.00)A.1B.20C.1 4 √D.死循环解析:[解析] 本题考查do…while循环。
①执行printf语句,x=x-4 1,输出1,判断while循环的控制条件,--x=0,则(!(--x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(--x))为零,循环条件不成立,结束循环。
11.有以下程序:#include<stdio.h>main(){unsigned char a=2, b=4, c=5, d;d=a | b;d&=c; printf("%d/n",d);}程序运行后的输出结果是______。
(分数:1.00)A.3B.4 √C.5D.6解析:[解析] &按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。
1按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1。
2的二进制为00000010,4的二进制为00000100,所以两个数做或运算结果为00000110,该数与5的二进制00000101做与操作结果为00000100,即4。
所以选择B选项。
12.有以下程序:main(){ int x[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d/n",s[2]);}执行后输出结果是( )。
(分数:1.00)A.随机值B.0 √C.5D.6解析:[解析] 通过赋值语句“s=x+3”,使指针变量s指向数组元素x[3],输出语句巾的spl等价于*(s+2),即x[5]值为0。
所以,B选项为所选。
13.以下能够实现计算5!的程序段是______。
(分数:1.00)A.int fac=1,k=0;do{k++;fac*=k;} while(k<5); √B.int fac=0,k=1;do{fac*=k;k++;} while(k<5);C.int fac=1,k=1;do{k++;fac*=k;} while(k<=5);D.int fac=1,k=0;do{fac*=k;k++;} while(k<5);解析:[解析] do…while循环语句一般形式为:do{循环体}while(表达式),执行过程为:首先执行循环体,之后判断表达式,成立(非0)则再一次执行循环体,不成立(0)则退出循环。
A选项:k=1,fac=1 * 1,判断k<5,条件成立进行下一次循环,直到k=5,fac=1*2*3*4*5,k<5不成立退出循环,实现计算5!,A 选项正确。
B选项:fac从0开始,做乘法一直都是0,无法实现5!,错误。
C选项:k=2,fac=1*2,循环条件成立,直到k=6,fac=1*2*3*4*5*6才因循环条件不成立退出循环,实现6!,错误。
D选项:k=0,fac=1*0=0,之后做乘法一直为0,无法实现5!,错误。
故选择A选项。
14.若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c) ,给a赋予10.0,b赋予22.0,b赋予33.0,不正确的输入形式是 ____(分数:1.00)A.10<回车>22<回车>33<回车>B.10.0,22.0,33.0<回车>√C.10.0<回车>22.O 33.00<回车>D.10.22<回车>33<回车>解析:15.有以下程序(说明:字母A的ASCII码值是65):#include<stdio.h>void fun(char*s){ while(*s){if(*s%2) printf("%c", *s);s++;}}main(){ char a[]="BYTE";Fun(a); printf("n");}程序运行后的输出结果是______。
(分数:1.00)A.BYB.BTC.YTD.YE √解析:[解析] fun()函数的意思是当*s%2==0的时候就输出并且s自加1次,然后判断。
所以可知只有第2和第4个位置上的才符合要求,所以答案为D。
16.以下关于字符串的叙述中正确的是______。
(分数:1.00)A.空串比空格打头的字符串小√B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.C语言中有字符串类型的常量和变量解析:[解析] 字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确。
字符串比较大小除了使用库函数strcmp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的,C选项不正确。
C语言中只有字符串常量而没有字符串变量,D选项描述不正确。
空串的长度为O,而以空格打头的字符串的长度至少为1,因此A选项是正确的。
17.以下程序运行后的输出结果是#include<stdio.h>main(){ int a[5]={1, 2, 3, 4, 5}, b[5]={0, 2, 1, 3, 0}, i, s=0;for(i=0; i<5; i++) s=s+a[b[i]];printf("%d/n", s);}(分数:2.00)A.6B.10C.11 √D.15解析:[解析] 数组元素b[i]作为数组a的下标,s=a[0]+a[2]+a[1]+a[3]+a[0],即s=1+3+2+4+1=11。