c语言经典选择填空题.docx
- 文档编号:13073421
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:23
- 大小:23.51KB
c语言经典选择填空题.docx
《c语言经典选择填空题.docx》由会员分享,可在线阅读,更多相关《c语言经典选择填空题.docx(23页珍藏版)》请在冰点文库上搜索。
c语言经典选择填空题
选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)
第一部分:
简单类题目(50个题目,从中选择10,每题1分)
1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C)
A.4B.16C.32D.522
2.以下程序的输出结果(B)。
main()
{intx1=3,x2=0,x3=0;
if(x1=x2+x3)
printf("****");
elseprintf("####");
}
A.输出:
****B.输出:
####
C.存在语法错误D.无输出结果
3.下面四个选项中,均是合法转义字符的选项是(A)。
A.'\'''\\''\n'B.'\''\017''\"'
C.'\018''\f''xab'D.'\\0''\101''xlf'
4.若有说明:
inta=1,b=2,c=3,d=4;则表达式a
a:
c c: d的值是(D)。 A、4B、3C、2D、1 5.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是(D)。 A.i&&jB.i<=j C.i||j+k&&j-kD.! ((i k||1) 6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是(C)。 A.num%2==1B.! (num%2==0)C.! (num%2)D.num%2 7.有以下程序 main() {intm=3,n=4,x; x=-m++; x=x+8/++n; printf(“%d\n”,x); } 程序运行后的输出结果是(D)。 A.3B.5C.-1D.-2 8.若有变量说明: inta=0,b=0,c=0;,以下符合C语言语法的赋值表达式是(C)。 A.a=9+b+c=a+9B.a=9+b;c=a+9; C.a=(9+b,b++)D.a=9+b++=a+7 9.若有以下定义,若intm=7,n=12,则能得到值为3的表达式是(D)。 A.n%=(m%=5)B.n%=(m-m%5) C.n%=m-m%5D.(n%=m)-(m%=5) 10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是(C)。 A.intx=y=z=5;B.intx,y,z=5; C.intx=5,y=5,z=5;D.x=5,y=5,z=5; 11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)。 A.abs(x-y)<10B.x-y>-10&&x-y<10 C.(x-y)<-10||! (y-x)>10D.(x-y)*(x-y)<100 12.设inta=12,则执行完语句a+=a-=a*a后,a的值是(D)。 A552B264C144D-264 13以下叙述不正确的是(D) A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 14下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 15下列程序的输出结果是(C) main() {inta=7,b=5; printf("%d\n",b=b/a); } A5B1C0D不确定值 16printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。 如果字符串长度大于5,则输出按方式(B) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 17.以下叙述正确的是(C) A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句 D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 18.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B) A.7B.8C.6D.2 19.下面不正确的字符串常量是(A) A.'abc'B."1212"C."0"D."" 20.已知各变量的类型说明如下: inti=8,k,a,b; unsignedlongw=5; doublex=,y=; 则以下符合C语言语法的表达式是(A) A.a+=a-=(b=4)*(a=3)B.a=a*3=2 C.x%(-3)D.y=f1oat(i) 21.若有说明语句: charc='\72'则变量c描述正确的是(A) A.包含1个字符B.包含2个字符 C.包含3个字符D.说明不合法,c的值不确定 22.已有定义intx;f1oaty;且执行scanf("%3d%f",&x,&y);语句,若输入1234578(回车),则x的值为(B) A.12345B.123C.45D.345 23.能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是(C) A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) c.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A) A.0B.1C.2D.3 25.在if(x)语句中的x与下面条件表达式等价的是: (A) A)x! =0B)x==1C)x! =1D)x==0 26、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为(A) A、DB、EC、一个不确定的值D、C 27.已知x=3、y=2,则表达式x*=y+8的值为(C) A)3B)2C)30D)10 28.设x为int型变量,则执行以下语句后,x的值为(B)。 x=10;x+=x-=x-x; A)10B)20C)40D)30 29若有以下类型说明语句: chara;intb; floatc;doubled;则表达式a*b+d-c的结果类型为(D) A.floatB.charC.intD.double 30若二维数组a有m列,则在a[i][j]前的元素个数为(B) A)j*m+iB)i*m+j C)i*m+j-1D)i*m+j+1 31对for(表达式1;;表达式3)可理解为(B) A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 32以下描述不正确的是(C)。 A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成 B.while循环是先判断表达式,后执行循环语句 C.do-while和for循环均是先执行循环语句,后判断表达式 D.for、while和do-while循环中的循环体均可以由空语句构成 33.下列程序段的运行结果是(C)。 intn=0;while(n++<=3);printf(“%d”,n); A3B4C5D有语法错误 34.设inta=3,b=4,c=5;,下列表达式的值不为1的是(A)。 A)a+b>c&&b==cB)a||b+c&&b-c C)! (a>b)&&! c||1D)! (a+b)+c-1&&b+c/2 35.有以下程序: #include<> voidmain() { inta=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf("%d,%d\n",k,m); } 程序运行后的输出结果是(C)。 A)0,0B)0,1C)1,0D)1,1 36、以下能正确进行字符串赋值操作的是(D) A、chars[5]={"ABCDE"}; B、chars[5]={'A','B','C','D','E'}; C、char*s;*s="ABCDE"; D、char*s="ABCDE"; 37下面程序的运行结果是(B) #include<> #include<> main() { char*s1="AbDeG"; char*s2="AbdEg"; s1+=2;s2+=2; printf("%d",strcmp(s1,s2)); } A)正数B)负数C)零D)不确定的值 38若有定义: inta[2][3],则对a数组的第i行j列元素地址的正确引用为(A) A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j 39以下能对二维数组y进行初始化的语句是(B) A、staticinty[2][]={{1,0,1},{5,2,3}}; B、staticinty[][3]={{1,2,3},{4,5,6}}; C、staticinty[2][4]={{1,2,3},{4,5},{6}}; D、staticinty[][3]={{1,0,1,0},{},{1,1}}; 40以下printf语句的输出结果是(B) printf("%d\n",strlen("school"); A、7B、6C、存在语法错误D、不定值 41不能把字符串: Hello! 赋给数组b的语句是(B)。 A.charb[10]={'H','e','l','l','o','! '}; B.charb[10];b="Hello! "; C.charb[10];strcpy(b,"Hello! "); D.charb[10]="Hello! "; 42.设有定义: inta[10],*p=a+6,*q=a;,则下列运算哪种是错误的(C) Ap-qBp+3Cp+qDp>q 43.下列描述中不正确的是(C) A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 44以下对指针变量的操作中,不正确的是(D) A、inta,*p,*q;p=q=&a; B、inta=6,*p,*q=&a;p=q; C、inta=b=6,*p;p=&a;b=*p; D、inta,*p,*q;q=&a;p=*q; 45.给出以下定义 charx[]="abcdefg"; chary[]={'a','b','c','d','e','f','g'}; 则正确的叙述为(C)。 A)数组x和数组y等价 B)数组x和数组y的长度相同 C)数组x的长度大于数组y的长度 D)数组x的长度小于数组y的长度 46、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B) A、y=(y*100+/B、x=y*100+,y=x/ C、y=y*100+D、y=(y/100+* 47判断char型变量c1是否为大写字母的正确表达式是(C) A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z') C、(c1>='A')&&(c1<='Z')D、('A'<=c1)AND('Z'>=c1) 48若a为已知整型变量,则对指针变量p的正确说明和初始化为(B)。 A.int*p=a;B.int*p=&a;C.int*p=*a;D.int&p=&a; 49下列条件语句中,功能与其它语句不同的是(D)。 A.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y); B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x); C.if(a! =0)printf(“%d\n”,x);elseprintf(“%d\n”,y); D.if(a=0)printf(“%d\n”,x);elseprintf(“%d\n”,y); 50.若有语句: char*line[5];,以下叙述中正确的是(A)。 A)定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 第二部分: 中等难度题目(24个题目,从中选择8个,每题分共12分) 1设有声明语句: inta=1,b=0;则执行以下语句后输出: (B) switch(a) { case1: switch(b) { case0: printf("**0**");break; case1: printf("**1**");break; } case2: printf("**2**");break; } A)**0**B)**0****2** C)**0****1****2**D)有语法错误 2若有如下程序段,其中s,a,b,c均已定义为整型变量,且a、c均已赋值 s=a; for(b=1;b<=c;b++)s=s+1; 则与上述程序段功能等价的赋值语句是(B)。 A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c; 3.若有程序段: for(m=1;m<=100;m++) { scanf("%d",&y); if(y<0)continue; printf("%3d",m); } 正确的描述是(D)。 A当y<0时整个循环结束By>=0时什么也不输出 Cprintf函数永远也不执行D最多允许输出100个非负整数 4.若有程序段如下: a=b=c=0;x=35; if(! a)x--; elseif(b);if(c)x=3; elsex=4; 执行后,变量x的值是(B) A.34B.4C.35D.3 5.有以下程序: #include<> voidmain() { inti=0,s=0; for(;;) { if(i==3||i==5)continue; if(i==6)break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是(D)。 A)10B)13C)21D)程序进入死循环 6下面程序段是输出两个字符串中对应位置相等的字符,横线处应该是(A) charx[]=”programming”; chary[]=”Fortran”; inti=0; while(x[i]! =’\0’&&y[i]! =’\0’) if(x[i]==y[i])printf(“%c”,); elsei++; A)x[i++]B)y[++i] C)x[i]D)y[i] 7.阅读以下程序: #include<> voidmain() { intx; scanf("%d",&x); if(x--<5)printf("%d",x); elseprintf("%d",x++); } 程序执行后,如果从键盘上输入5,则输出结果是(B) A)3B)4C)5D)6 8intfun(char*a,char*b) { while((*a! ='\0')&&(*b! ='\0')&&(*a==*b)) { a++;b++; } return(*a-*b); } 该函数的功能是___D___。 A)计算a和b所指字符串的长度之差 B)将b所指字符串连接到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 9.有如下程序段: charstr[14]={"Iam"}; strcat(str,"sad! "); scanf("%s",str); printf("%s",str); 当输入为happy! (A)Iamsad! (B)happy! (C)Iamhappy! (D)happy! ad! 10.以下程序的输出结果是(C)。 #include<> #include<> voidmain() { charb[30]; strcpy(&b[0],"CH"); strcpy(&b[1],"DEF"); strcpy(&b[2],"ABC"); printf("%s\n",b); } A)CHDEFB)DEFABCC)CDABCD)CHABC 11.下面程序的输出结果为(A)。 #include<> voidmain() { inta[3],i,j,k=2; for(i=0;i<3;i++) a[i]=0; for(i=0;i for(j=0;j a[j]=i*j; printf("%d\n",a[2]); } A)0B)1C)2D)3 12.以下程序: #include<> voidmain() { intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0]; for(i=0;i<2;i++) { if(i==0)aa[i][i+1]=*p+1; else++p; printf("%d",*p); } printf("\n"); } 其输出结果是(A) A)23B)26C)33D)36 13.下面程序的输出结果是(B)。 #include<> voidmain() { inti,j,k; charstr[5]; for(i=0;i<5;i++)str[i]='A'; k=4; for(i=0;i for(j=0;j str[j]=str[i]+32; printf("%c\n",str[k]); } A)aB)AC)BD)不确定的值 14.下列程序的输出结果为(B)。 #include<> voidmain() { intk=0,i,s[]={1,-9,7,2,-10,3}; for(i=0;i<6;i++) if(s[i]>s[k]) k=i; printf("\n%d\n",k); } (A)4(B)2(C)3(D)1 15.以下程序的输出结果是(C)。 #include<> voidmain() { chara[10]={'1','2','3','4','5','6','7','8','9',0},*p; inti; i=8; p=a+i; printf("%s\n",p-3); } A)6B)'6'C)6789D)789 16.有以下程序 #include<> voidmain() { inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d\n",*p+*q); } 程序运行后的输出结果是(B)。 A)16B)10C)8D)6 17.有以下程序 #include<> voidmain() { inta[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是(D) A)012B)123C)234D)345 18.有以下程序 #include<> voidmain() { intp[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是(C)。 A)42B)45C)56D)60 19.有以下程序 voidsum(int*a) {a[0]=a[1];} main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf("%d\n",aa[0]); }执行后的输出结果是(A) A.4B.3C.2D.1 20.以下程序运行后,输出结果是(A)。 #include<> intd=1; voidfun(intp) { intd=5; d+=p++; printf("%d",d); } voidmain() { inta=3; fun(a); d+=a++; printf("%d\n",d); } A84B)99C)95D)44 第三部分: 较难题目(5个题目,从中选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 选择 填空