二级c语言分类习题分栏Word文档下载推荐.docx
《二级c语言分类习题分栏Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级c语言分类习题分栏Word文档下载推荐.docx(93页珍藏版)》请在冰豆网上搜索。
(9)下列叙述中错误的是:
A)C语言是一种结构化程序设计语言
B)结构化程序由顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法
(10)对于一个正常运行的C程序,以下叙述中正确的是:
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始,在程序的最后一个函数中结束
D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数结束
(11)C语言源程序名的后缀是:
A).exeB).CC).objD).cp
(12)以下叙述中正确的是:
A)C语言程序将从源程序中第一个函数开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D)mian可作为用户标识符,用以命名任意一个函数作为主函数
第二章数据类型及其运算
大纲知识点:
1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
(1)以下不能定义为用户标识符的是:
A)MainB)_0C)_intD)sizeof
(2)以下选项中不能作为合法常量的是:
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
(3)数字字符0的ASCII值为48,若有以下程序
main()
{chara='
1'
b='
2'
;
printf("
%c,"
b++);
%d\n"
b-a);
程序运行后的输出结果是:
A)3,2B)50,2C)2,2D)2,50
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
(5)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是:
A)k%2B)k%2==1
C)(k%2)!
=0D)!
k%2==1
(6)以下不能正确计算代数式值的C语言表达式是:
A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)
(7)以下能正确定义且赋初值的语句是:
A)intn1=n2=10;
B)charc=32;
C)floatf=f+1.1;
D)doublex=12.3E2.5;
(8)以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
main()/*Beginning*/
{intr;
floats;
scanf("
%d"
&
r);
s=*π*r*r;
s=%f\n"
s);
}
出错的原因是
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
(9)设有定义:
intk=1,m=2;
floatf=7;
,则以下选项中错误的表达式是:
A)k=k>
=kB)-k++C)k%int(f)D)k>
=f>
=m
(10)设有定义:
inta=2,b=3,c=4;
,则以下选项中值为0的表达式是:
A)(!
a==1)&
&
(!
b==0)B)(a<
B)&
!
c||1
C)a&
bD)a||(b+b)&
(c-a)
(11)有以下程序段
intk=0,a=1,b=2,c=3;
k=a<
b?
b:
a;
k=k>
c?
c:
k;
执行该程序段后,k的值是:
A)3B)2C)1D)0
(12)以下不合法的用户标识符是:
A)j2_KEYB)DoubleC)4dD)_8_
(13)以下不合法的数值常量是:
A)011B)1e1C)8.0E0.5D)0xabcd
(14)以下不合法的字符常量是:
A)’\018’B)’\’C)’\\’D)’\xcc’
(15)表达式3.6-5/2+1.2+5%2的值是:
A)4.3B)4.8C)3.3D)3.8
(16)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是:
A)(!
E==0)B)(E>
0‖E<
0)C)(E==0)D)(E!
=0)
(17)以下叙述中错误的是:
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;
是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
(18)下列定义变量的语句中错误的是:
A)int_int;
B)doubleint_;
C)charFor;
D)floatUS$;
(19)若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是:
A)++x,y=x—B)x+1=y
C)x=x+10=x+yD)double(x)/10
(20)以下关于逻辑运算符两侧运算对象的叙述中正确的是:
A)只能是整数0或1
B)只能是整数0或非0整数
C)可以是结构体类型的数据
D)可以是任意合法的表达式
(21)若有定义intx,y;
并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是:
A)(x-y>
0)B)(x-y<
0)
C)(x-y<
0||x-y>
0)D)(x-y==0)
(22)有以下程序
{intx,y,z;
x=y=1;
z=x++,y++,++y;
%d,%d,%d\n"
x,y,z);
程序运行后的输出结果是:
A)2,3,3B)2,3,2C)2,3,1D)2,2,1
(23)以下选项中值为1的表达式是:
A)1-'
0'
B)1-'
\0'
C)'
-0D)'
-'
(24)若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
a:
c<
d的值是:
A)1B)2C)3D)4
(25)设有定义:
floatx=123.4567;
则执行以下语句后的输出结果是:
%f\n"
(int)(x*100+0.5)/100.0);
(26)以下程序运行后的输出结果是:
{intx,a=1,b=2,c=3,d=4;
x=(a<
b)?
b;
x=(a<
c)?
x:
c;
x=(d>
x)?
d;
x);
(27)以下程序运行后的输出结果是:
{inta=3,b=4,c=5,t=99;
if(b<
a&
a<
c)t=a;
a=c;
c=t;
if(a<
c&
b<
c)t=b;
b=a;
a=t;
%d%d%d\n"
a,b,c);
(28)以下程序运行后的输出结果是:
{inta,b,c
a=10;
b=20;
c=(a%b<
1)||(a/b>
1);
%d%d%d\n"
(29)以下程序运行后的输出结果是:
main()
{charc;
intn=100;
floatf=10;
doublex;
x=f*=n/=(c=50);
%d%f\n"
n,x);
}
(30)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是:
A)大写字母B)连接符C)数字字符D)下划线
(31)若有代数式
(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是:
A)sqrt(abs(n^x+e^x))
B)sqrt(fabs(pow(n,x)+pow(x,e))
C)sqrt(fabs(pow(n,x)+exp(x)))
D)sqrt(fabs(pow(x,n)+exp(x)))
(32)设有定义:
intk=0;
,以下选项的四个表达式中与其他三个表达式的值不相同的是:
A)k++B)k+=1C)++kD)k+1
(33)以下选项中,当x为大于1的奇数时,值为0的表达式是:
A)x%2==1B)x/2C)x%2!
=0D)x%2==0
(34)执行以下程序后的输出结果是:
{inta=10;
a=(3*5,a+4);
printf(“a=%d\n”,a);
(35)已定义charch=’$’;
inti=1,j;
执行j=!
ch&
i++后,i的值为。
(36)以下合法的字符型常量是:
A)’\x13’B)’081’C)’\65’D)”\n”
(37)已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97。
以下不能将变量c中的大写字母转换为小写字母的语句是:
A)c=(c-‘A’)%26+’a’B)c=c+32
C)c=c-‘A’+’a’D)c=(‘A’+c)%26-‘a’
(38)可在C程序中用作用户标识符的一组标识符是:
A)andB)DateC)HiD)case
_2007y-m-dDr.TomBig1
(39)以下选项中,合法的一组C语言数值常量是:
A)028B)12.C).177D)0x8A
.5e-30Xa234e1.510,000
-0xf4.5e00abc3.e5
(40)以下关于long、int和short类型数据占用内存大小的叙述中正确的是:
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
(41)设有条件表达式:
(EXP)?
i++;
j--,则以下表达式中与(EXP)完全等价的是:
A)(EXP==0)B)(EXP!
=0)C)(EXP==1)D)(EXP!
=1)
(42)已有定义:
charc;
,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是:
A)isupper(c)B)’A’<
=c<
=’Z’
C)’A’<
=c&
=’Z’D)c<
=(‘z’-32)&
(‘a’-32)<
=c
(43)以下程序的功能是:
输出a、b、c三个变量中的最小值。
请填空。
#include<
{inta,b,c,t1,t2;
scanf(“%d%d%d”,&
a,&
b,&
c);
t1=a<
;
t2=c<
t1?
printf(“%d\n”,t2);
第三章基本语句
1.表达式语句,空语句,复合语句。
2.数据的输入与输出,输入输出函数的调用。
3.复合语句。
4.GOTO语句和语句标号的使用。
(1)有以下程序
{intm=12,n=34;
%d%d"
m++,++n);
%d%d\n"
n++,++m);
A)12353514B)12353513C)12343514D)12343513
(2)有定义语句:
intb;
charc[10];
则正确的输入语句是:
A)scanf("
%d%s"
B)scanf("
b,c);
C)scanf("
b,c);
D)scanf("
b,&
(3)有以下程序
{intm,n,p;
m=%dn=%dp=%d"
m,&
n,&
p);
m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是:
A)m=123n=456p=789B)m=123n=456p=789
C)m=123,n=456,p=789D)123456789
(4)有以下程序
{inta,b,d=25;
a=d/10%9;
b=a&
(-1);
%d,%d\n"
a,b);
A)6,1B)2,1C)6,0D)2,0
(5)有以下程序
main()
{
inti=1,j=2,k=3;
if(i++==1&
(++j==3||k++==3))
i,j,k);
A)123B)234C)223D)233
(7)以下叙述中正确的是:
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
(8)有以下程序
{chara1='
M'
a2='
m'
%c\n"
(a1,a2));
以下叙述中正确的是:
A)程序输出大写字母MB)程序输出小写字母m
C)格式说明符不足,编译出错D)程序运行时产生出错信息
(9)设有定义inta;
floatb;
执行scanf("
%2d%f"
b);
语句时,若从键盘输入876543.0<
回车>
a和b的值分别是:
A)876和543.000000B)87和6.000000
C)87和543.000000D)76和543.000000
(10)有以下程序
{inta=0,b=0;
/*给a赋值
b=20;
给b赋值*/
a+b=%d\n"
a+b);
/*输出计算结果*/
A)a+b=10B)a+b=30C)30D)出错
(11)以下程序运行后的输出结果是:
{intm=011,n=11;
%d%d\n"
++m,n++);
(12)有以下程序,若运行时从键盘输入:
18,11<
则程序的输出结果是:
{inta,b;
Entera,b:
"
scanf("
%d,%d"
while(a!
=b)
{while(a>
b)a-=b;
while(b>
a)b-=a;
%3d%3d"
(13)以下程序运行时若从键盘输入:
102030<
。
输出结果是:
#include<
{inti=0,j=0,k=0;
scanf("
%d%*d%d"
i,&
j,&
k);
(14)以下程序运行后的输出结果是:
{intx=0210;
%X\n"
(15)已知字母A的ASCII码为65。
以下程序运行后的输出结果是:
{chara,b;
a='
A'
+'
5'
3'
b=a+'
6'
2'
%d%c\n"
a,b);
(16)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句:
(17)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&
a1,&
c1,&
a2,&
c2);
语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是:
A)10X20Y<
B)10X20Y<
C)10X<
D)10X<
20Y<
20Y<
(18)有以下程序,其中%u表示按无符号整数输出
main()
{unsignedintx=0xFFFF;
/*x的初值为十六进制数*/
printf(“%u\n”,x);
A)-1B)65535C)32767D)0xFFFF
(19)若变量均已正确定义并赋值,以下合法的C语言赋值语句是:
A)x=y=5;
B)x=n%2.5;
C)x+n=i;
D)x=5=4+1;
(20)有以下程序段
intj;
floaty;
charname[50];
scanf(“%2d%f%s,&
y,name);
当执行上述程序段,从键盘上输入5555667777abc后,y的值为:
A)55566.0B)566.0C)7777.0D)566777.0
(21)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
执行语句printf(“%d,%d”,c1,c2-2);
后,输出结果是:
A)A,BB)A,68C)65,66D)65,68
(22)执行以下程序时输入1234567<
CR>
,则输出结果是:
{inta=1,b;
scanf(“%2d%2d”,&
printf(“%d%d\n”,a,b);
第四章选择结构程序设计
1.用IF语句实现选择结构。
2.用SWITCH语句实现多分支选择结构。
3.选择结构的嵌套。
(1)以下程序的输出结果是:
{inta=0,i;
for(i=1;
i<
5;
i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}}
a);
}
A)31B)13C)10D)20
(2)有以下程序
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;
break;
switch(b%2)
{default:
case0:
m);
(3)设变量a、b、c、d和y都已正确定义并赋值。
若有以下if语句
if(a<
b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是:
{intk=5,n=0;
while(k>
0)
{switch(k)
{default:
break;
case1:
n+=k;
case2:
case3:
k--;
n);
程序运行后的输出结果是:
A)0B)4C)6D)7
(5)若有定义:
floatx=1.5;
inta=1,b=3,c=2;
则正确的switch语句是:
A)switch(x)
{case1.0:
*\n"
case2.0:
**\n"
}
B)switch((int)x);
{case1:
case2:
C)switch(a+b)
case2+1: