二级C语言分类模拟题572_第1页
二级C语言分类模拟题572_第2页
二级C语言分类模拟题572_第3页
二级C语言分类模拟题572_第4页
二级C语言分类模拟题572_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言分类模拟题572选择题1、以下程序段中,与其他三个功能不同的程序段是。As=0;i=1;for(;;)(s+=i;i++;if(i<=10)break;}Bs=0,i=1;for(;<=10;){s+=i,i++;}Cs=0;for(i=1;<=10;i++){s+=i;}D.for(s=0,i=1;i<=10;s+=i,i++);2、以下选项中非法的表达式是0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+13、有以下程序:#include<stdio.h>main(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}程序运行后的输出结果是。A5B.6C7D.84、有以下程序:#includeVstdio.h>main(){intx=011;printf("%d\n",++x);}程序运行后的输出结果是。A.12B.11C10D.95、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是。A下划线B大写字母C数字字符D.连接符6、有以下程序#include<stdio.h>main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序运行后的输出结果是。D.37、有以下程序#includeVstdio.h>intfun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d",k);k=fun(j,m);printf("%d\n",k);}执行后的输出结果是。A5,11B5,5C11,11D.11,58、以下语句中存在语法错误的是。A.charss[6][20];ss[1]="right?";B.charss[][20]={"right?”};C.char*ss[6];ss[1]="right?";D.char*ss[]={"right?"};9、有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\n",s);}程序运行后的输出结果是。A10B30C.0D.6410、有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(!(--x));}程序的输出结果是()。A.1B.20C.14死循环11、有以下程序:#include<stdio.h>main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);}程序运行后的输出结果是。A.3B.4C.5D.612、有以下程序:main(){intx[8]={87,6,5,O,0},*s;s=x+3printf("%d\n"s[2]);}执行后输出结果是()。A.随机值B.0C.5D.613、以下能够实现计算5!的程序段是。Aintfac=1,k=0;do{k++;fac*=k;}while(k<5);Bintfac=0,k=1;do{fac*=k;k++;}while(k<5);Cintfac=1,k=1;do{k++;fac*=k;}while(k<=5);D.intfac=1,k=0;do{fac*=k;k++;}while(k<5);14、若变量已正确说明为float类型,要通过语句scanf("%f%f%f”,&a,&b,&c),给a赋予10.0,b赋予22.0,b赋予33.0,不正确的输入形式是()10V回车〉22V回车〉33V回车〉10.0,22.0,33.0V回车〉10.0V回车〉22.O33.00V回车〉10.22V回车〉33V回车〉15、有以下程序(说明:字母A的ASCII码值是65):#includeVstdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%c”,*s);s++;}}main(){chara[]="BYTE”;Fun(a);printf("n");}程序运行后的输出结果是。A.BYB.BTYTD.YE16、以下关于字符串的叙述中正确的是。A空串比空格打头的字符串小B两个字符串中的字符个数相同时才能进行字符串大小的比较C可以用关系运算符对字符串的大小进行比较C语言中有字符串类型的常量和变量17、以下程序运行后的输出结果是#includeVstdio.h>main(){inta[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);}A.6B.10C.11D.1518、以下叙述正确的是。A有些算法不能用3种基本结构来表达BC语言程序不编译也能直接运行C结构化程序的3种基本结构是循环结构、选择结构、顺序结构D.如果C语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序19、设有以下语句:inta=1,b=2,c;c=aA(b<<2);执行后,c的值为。A7B9C.8D.620、有以下程序#include<stdio.h>main(){inti=1;i=iAi;printf("%d\n”,i);}程序运行后的输出结果是。A0B.-1C.1D.721、以下叙述中错误的是A同一个数组中所有元素的类型相同B不可以跳过前面的数组元素,给后面的元素赋初值C定义语句:inta[10]={0};,给a数组中所有元素赋初值0D.若有定义语句:inta[4]={1,2,3,4,5};,编译时将忽略多余的初值22、以下程序的运行结果为。#defineMIN(x,y)(x)V(y)?(x):(y)main(){inta=0,b=3,c=1,d=3,X;X=MIN(c+d,a+b)*100;printf("%d\n”,X);}A300B4C3D40023、若有以下程序段:intr=8;print("%d\n”,r>>1);输出结果是。A16B8C4D.224、若有定义语句:intm[]={5,4,3,2,1},i=4;,则下面对]^数组元素的引用中错误的是。Am[--i]Bm[2*2]Cm[m[0]]D.m[m[i]]25、有以下程序:#include<stdio.h>typedefstruct{intb,p;}A;voidf(Ac)/*主意:c是结构变量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n”,a.b,a.p);}程序运行后的输出结果是。A.2,4B.1,2C.1,4D.2,326、逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是。A关系模型B谓词模型C物理模型D.实体—联系模型27、有以下程序:#include<stdio.h>main(){chara,b,C,d;scanf("%c%c”,&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是。A.123B12C.1234D.123428、设有语句:if(a==1)b=2;c=3;,以下语句中与之等价的是。Aif(a==1){b=2;c=3;}Bif(a!=1){;}else{b=2;c=3;}Cif(a==1)c=3;b=2;D.(a==1)?b=2:a=a;c=3;29、有以下程序:#include<stdio.h>inta=1,b=2;voidfunl(inta,intb){printf("%d%d”,a,b);}voidfun2(){a=3;b=4;}main(){fun1(5,6);fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是。A1256B.5634C5612D.345630、有以下程序:#include<stdio.h>main(){charname[10]={'S','T','R'};name[2]='#';name[6]=0;printf("%s\n",name);}程序运行后的输出结果是。AST#BSTR#CSTR#0D.STR0答案:选择题TOC\o"1-5"\h\z1、A[解析]B、C、D选项都表示对1到10进行累加后赋给s,而A中含break语句,循环体只执行一次,结束整个循环过程,因此答案为A选项。2、D[解析]选项D中将表达式的值赋给表达式,在c语言中是不允许给表达式赋值的。3、B[解析]C语言区分大小写,pad与pAd是两个不同的变量。首先将5赋值给两个变量,由于赋值运算符的优先级高于逗号运算符,所以计算pAd=++sum,此时pAd为6,sum也为6,然后计算pAd++,pAd的值变为7,++pad,pad的值变为6,所以选择B选项。4、C[解析]考查简单的C语言程序,题目中x=011;而输出函数中++x,说明是先加1,所以为10,答案选择C。5、D[解析]C语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。因此D选项中的连接符不合法。6、A[解析](!x)为假,然后判断(x==0),为假,最后就执行输出语句,y的值仍为初始值,答案选择A。7、A[解析]声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数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。TOC\o"1-5"\h\z8、A[解析]数组赋值时需要用{}表示出来,故选项A错误。9、D[解析]在本题中,静态局部变量x在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第一次循环s的值为2,在第二次循环中,返回的x的值为4,所以s的值为8,第三次循环,返回的x的值为8,所以s的值为64。10、C[解析]本题考查do...while循环。①执行printf语句,x=x-41,输出1,判断while循环的控制条件,--x=0,则(!(--x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(-”))为零,循环条件不成立,结束循环。11、B[解析]&按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。1按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1。2的二进制为00000010,4的二进制为00000100,所以两个数做或运算结果为00000110,该数与5的二进制00000101做与操作结果为00000100,即4。所以选择B选项。12、B[解析]通过赋值语句'、s=x+3〃,使指针变量s指向数组元素x[3],输出语句巾的spl等价于*(s+2),即x[5]值为0。所以,B选项为所选。13、A[解析]do.while循环语句一般形式为:do{循环体}while(表达式),执行过程为:首先执行循环体,之后判断表达式,成立(非0)则再一次执行循环体,不成立(0)则退出循环。A选项:k=1,fac=1*1,判断kV5,条件成立进行下一次循环,直到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选项。TOC\o"1-5"\h\z14、B15、D[解析]fun()函数的意思是当*s%2==0的时候就输出并且s自加1次,然后判断。所以可知只有第2和第4个位置上的才符合要求,所以答案为D。16、A[解析]字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确。字符串比较大小除了使用库函数strcmp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于constchar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的,C选项不正确。C语言中只有字符串常量而没有字符串变量,D选项描述不正确。空串的长度为O,而以空格打头的字符串的长度至少为1,因此A选项是正确的。17、C[解析]数组元素b[i]作为数组a的下标,s=a[0]+a[2]+a[1]+a[3]+a[0],即s=1+3+2+4+1=11。18、C[解析]算法的3种基本结构可以表达任何算法,只是不同的实现复杂度不相同,因此A选项错误。C语言是编译型语言,程序必须先编译、链接才能运行,因此B选项错误。C语言是高级程序语言,计算机不能识别除了机器语言以外的任何语言,因此C程序代码转换为机器语言才能在计算机上运行,因此选项D错误。答案为C选项。TOC\o"1-5"\h\z19、B[解析]b为2,二进制为00000010,执行左移两位操作后为00001000,然后与a(00000001)做异或操作结果为00001001,即十进制的9。20、A[解析]八是按位异或,1^1结果为0,答案选择A。21、D22、A23、C[解析]本题考查移位运算。将8转为二进制数为1000,右移一位不足补0,结果为0100,转化为十进制结果为4。24、C[解析]数组m下标从。到4计算,共5个元素,选项C中m[0]=5,贝临

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论