C#练习题基础知识部分docx.docx
《C#练习题基础知识部分docx.docx》由会员分享,可在线阅读,更多相关《C#练习题基础知识部分docx.docx(26页珍藏版)》请在冰点文库上搜索。
![C#练习题基础知识部分docx.docx](https://file1.bingdoc.com/fileroot1/2023-7/23/3a2cc69a-cfcd-4c10-9e68-357bc1cfa421/3a2cc69a-cfcd-4c10-9e68-357bc1cfa4211.gif)
C#练习题基础知识部分docx
精品文档
一、单项选择题
1、C#程序设计语言属于什么类型的编程语言?
(C)
A汇编语言B机器语言C高级语言D自然语言
2、请问经过表达式a=3+1>5?
0:
1的运算,变量a的最终值是什么?
(B)
A3B1C0D4
3、关于如下程序结构的描述中,哪一项是正确的?
(A)
for(;;)
{循环体;}
A一直执行循环体,即死循环B执行循环体一次C不执行循环
体D程序不符合语法要求
4、设double型变量x和y的取值分别为12.5和5.0,那么表达式x/y+(int)(x/y)-(int)x/y的值为(C)
A2.9B2.5C2.1D2
5、设bool型变量a和b的取值分别为true和false,那么表达式a&&(a||!
b)和a|(a&!
b)
的值分别为:
(A)
AtruetrueBtruefalse
CfalsefalseDfalsetrue
6、设int型变量x的值为9,那么表达式x--+x--+x--的值为(B)
A.27B.24C.21D.18
7、下列属于合法C#变量名的有(A)
A、x_123BifC1_xD3x
8、要使用变量age来存储人的年龄,则将其都声明为(C)类型最为适合。
AsbyteBbyteCintDfloat
9、以下数组声明中,不正确的有(B)
Aint[]a;Binta[]=newint[2];
Cint[]a={1,3}Dint[]a=int[]{1,3}
10、以下不属于.NET编程语言的是(A)
AJavaBC#
CVC.NETD、VB.NET
.
精品文档
11、下列语句执行后y的值为(C)
intx=0,y=0;
while(x<10)
{
y+=(x+=2);
}
A10B20C30D55
12、C#中每个char类型变量占用(B)字节内存A1B2C3D4
13、在C#中,表示一个字符串变量应使用下面哪条语句定义(B)
A、CStringstr;B、Stringstr;
C、Dimstrasstring;D、char*str;
14、下列哪些运算符是属于“右结合”的?
(D)
A、算术运算符B、关系运算符
C、逻辑运算符D、赋值运算符
15、下列语句在控制台上的输入是什么?
(B)
if(true)
System.Console.WriteLine("FirstMessage");
System.Console.WriteLine("SecondMessage");
A、无输出B、FirstMessage
SecondMessage
C、SecondMessageD、FirstMessage
16.以下数据类型中不可以使用算术运算运算的是(A)
A.bool
B.char
C.decimal
D.sbyte
17.在C#中以下赋值不允许的是(A)
A.shortb=2;sbytec;b=c;
B.charb=’a’;intc;c=b;
.
精品文档
C.doubleb=2longc;c=b;
D.decimalb=2mbytec;b=c;
18.以下赋值语句中正确的是(B)A.shortx=32768;
B.ushorty=65534;
C.longx=5000;inty=x;
D.doublex=20;decimaly=x;
19以下数据类型不能表示负数范围的是(D)A.sbyte
B.decimal
C.double
D.uint
20.在C#中下列表达式不正确的是(B)
A.doublea;doubleb=2;intc=3;a=b+c;
B.shorta;byteb=2;bytec=3;a=b+c;
C.stringa;stringb=”string1”c=”a=b+c;2”
D.boola;boolb=true;boolc=falsea=b==c;
21.C#中下列变量标识符定义不正确的是(C)A.m_n
B._a124;C.@3_4;D.udouble
22.C#中下列字符是可显示字符的是(B)
A.‘n’
B.‘’
C.‘t’
D.‘f’
23.下列对于实数类型说法正确的是(D)
A.double类型的数据占用字节数比decimal类型的高,所以范围表示比decimal类型要大。
B.float类型的变量占用字节数比long类型的变量要小,所以可以将float类型的变量赋值给long类型的数据。
C.decimal类型比double类型的变量占用的字节数要大很多,所以可以将double类型的数据赋值给decimal类型。
D.decimal类型的变量不可以与double和float类型的变量之间直接赋值
24.以下语句不可以在屏幕上输出Hello,World语句是(C)
A.Console.WriteLine(“Hello”+”,World”);
B.Console.Write(“Hello{0}”,”World”);
C.Console.WriteLine(“{0},{1}”,”Hello,World”);
D.Console.Write(“Hello,World”);
25.以下强制类型转换书写不正确的是(B)A.inta;doubleb=2.3;a=Convert.ToInt32(b);
.
精品文档
B.inta;doubleb=2.3;a=int.Parse(b);
C.charc;inta=97;c=(char)a;
D.floata;doubleb=2d;a=Convert.ToSingle(b);
26.以下数组初始化不正确的是(A)A.int[]a=newint[5]{1,2,3,4};
B.inta[]=newint[]{1,2,3,4};
C.int[]a={1,2,3,4};
D.int[]a;a=newint[]{1,2,3,4};
27.已知如下变量decimala=12.4m;floatf=2.6f;doublen=3.6d;intm=5,则正确的语句是:
(D)
A.boolbo=(a=f)?
a:
f;B.boolbo=m>n>f;C.boolbo=true+false;D.boolbo=true==false;
28.假设有如下数组int[]a=newint[10];则下列不正确的是(C)
A.intn=5;a[n]=a[0]+a[1];
B.a[0]=1;a[1]=2;a[2]=’3’;
C.a[0]=1;a[1]=2;a[2]=”3”;
D.a[2*3]=2*3;
29.在C#语言中,运算符"="和"=="的功能分别是(B)
A.关系运算和赋值运算
B.赋值运算和关系运算
C.都是关系运算
D.都是赋值运算
30.两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(C)。
intx;
x=int.Parse(Console.ReadLine());
if(x++>5)
Console.WriteLine(x);
else
Console.WriteLine(x--);
A.7和5B.6和3C.7和4D.6和4
31.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:
C程序中的else总是与(B)组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前未配对的最近的ifD.同一行上的if
32.设整型变量a为5,使b不为2的表达式是(C)。
A.b=a/2
B.b=6-(--a)
C.b=a%2
D.b=a>3?
2:
1
33.以下可以为二维数组进行赋值的是(D)
.
精品文档
A.int[,]a=newint[,]{1,2,3,4,5,6,7,8};
B.int[,]a=newint[2,3]{{1,2},{3,4}};
C.int[,]a=newint[2,3]{{1,2,3},{1,2}};
D.int[,]a=newint[,]{{1,2,3},{4,5,6}};
34.关于循环语句下列错误的是(D)
A.for语句while语句与dowhile语句可以相互替换。
B.while(5){Console.WriteLine(“Hello!
将无”限);}输出字符串Hello。
C.for(inti=5;i<13;i++){}这个语句将运行8次
D.while语句中的条件必须是布尔类型的结果
35.已知如下程序,下列选项放在空白处不能输出***的是(D)voidmain()
{
intx=6;do
{
Console.WriteLine(“*”);
x--;
--x;
}while(_____)-----空白处
}
A.x>=1;
B.x>=2;
C.x>0;
D.x>3;
36.C#程序设计语言属于什么类型的编程语言(C)
A.汇编语言B.机器语言C.高级语言D.自然语言
37.在C#中,表示一个字符串的变量应使用以下哪条语句定义(B)
A.CStringstr;B.stringstr;C.DimstrasstringD.char*str;
38.在C#中,下列哪些语句可以创建一个具有3个初始值为””的元素的字符串
数组(C)
A.stringStrList[3](””);
B.string[3]StrList={””,””,””};
C.string[]StrList={””,””,””};
D.string[]StrList=newstring[3];
39.关于如下程序结构的描述中,哪一项是正确的(A)
for(;;)
{
循环体;
}
A.一直执行循环体,即死循环B.执行循环体一次
C.不执行循环体D.程序不符合语法要求
40.可以作为自定义标识符的是(D)
A.2xB.break
C.m-nD.m_n
.
精品文档
41.C#语言不能选用的字母是(B)
A._wB.πC.IiD.i
42.属于C#语言基本数据类型的是(B)A.字符串型B.整型
C.数组型D.结构型
43.C#语言的长整型数值在计算机中占用的字节个数是(A)
A.8
B.2
C.3
D.4
44.下列选项中属于字符串常量的是
(B)
A.ABC
B.“ABC”
C.‘abs’
D.‘a’
45.设整型变量i的值为3,则表达式i---i的值为(B)
A.0B.1C.2D.3
46.下列代码的运行结果是:
(A)
inta=30;
intb=20;
b=a;
a=10;
Console.WriteLine(a);
Console.WriteLine(a/b);
A、10
C、30
0
0
B、10
D、10
1
1.5
47.设inta=9,b=6,c
执行语句c=a/b+0.8
后c的值是(X)
A.1
B.1.8
C.2
D.2.3
48.在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句(A)
A.decimalEMoney;B.intEMoney;
C.stringEMoney;D.DimEMoneyasdouble;
49.设intx=10,a=0,b=25
则条件表达式x<1?
a+10:
b的值是(
D)
A.0
B.1
C.10
D.25
.
精品文档
50.C#言中,下列运算符先最高的是(A)
A.!
B.%
C.>>D.==
二、多(本大共5小,每小2分,共10分)
1、switch()句中的控制表达式可以是下面哪几种型?
(BCD)
Ainteger型Bchar型
Cstring型Denum型
2、在数中,于for和foreach句,下列哪些中的法正确的?
(ABD)
Aforeach句能使你不用索引就可以遍整个数
Bforeach句是遍整个数
Cforeach句是从索引1遍到索引Length
D如果需要修改数元素就必使用for句
3、置inta=3。
从以下中,出所有量result的true的表达式。
(ABD)
Aboolresult=(a++>=3)Bboolresult=(++a>3)
Cboolresult=(a==-4)Dboolresult=!
(a++>3)
4、通常算机程序是由若干条句成的,成程序的常用-构分是下列哪几种?
(ABC)
A序构B分支构
C循构D跳构
5、下面(BD)是C#言中定的循句型。
AifelseBwhile
Cswitch⋯caseDfor
6.在C#程序中,入口函数的正确声明(AB)
A.staticintMain(){⋯⋯}
B.staticvoidMain(){⋯⋯}
C.staticvoidmain(){⋯⋯}
D.staticMain(){⋯⋯}
7.从下列中,出量result的返回是false的表达式(AB)
A.boolresult=(4==5);B.boolresult=(1!
=1);
C.boolresult=(1==1);D.boolresult=0;
8.通常算机程序是由若干条句成的,成程序的常用构分是下列哪几种(abc)
A.序构B.分支构C.循构D.跳构
9.switch()句中的控制表达式可以是下面哪几种型(abc)
A.int型
.
精品文档
B.char类型
C.string类型
D.enum类型
10.在数组中,对于for和foreach语句,下列哪些选项中的说法正确(ABD
)
A.foreach语句能使你不用索引就可以遍历整个数组
B.foreach语句总是遍历整个数组
C.foreach语句总是从索引1遍历到索引Length
D.如果需要修改数组元素就必须使用
for语句
三、判断题(本大题共5小题,每小题3分,共15分)
1、在C#编程环境中,常量的值可以在代码中被修改。
(X)
2、C#程序的执行是从第一个方法开始,到Main方法结束。
(
X)
3、Main方法的返回值类型必须是
void的类型。
(X
)
4、else语句总是与离他最近的一个
if语句相匹配。
(
X)
5、在C#中,%运算符的两边都必须是整型的。
(
x)
6.在C#2008编程环境中,常量的值可以在代码中被修改。
(
x)
7.在C#2008编程环境中,int类型变量的位数是16位。
(x)
8.数组的长度不能是变量(Y)
9.C#程序中使用0表示逻辑非(Y)
10.C#关于switch小括号中表达式可以是字符串类型(Y)
四、程序阅读题(本大题共5小题,每小题4分,共20分)
1.写出下列程序的运行结果。
staticvoidMain(string[]args)
{
string[]words=newstring[]{“a”,”b”,”c”};
foreach(stringwordinwords)
{
Console.WriteLine(word);
}
}
答:
_____abc______
2.完善如下程序:
键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。
inti;
intnum;
intzeroNum=0;
.
精品文档
int____________ZengNum=0;
intFuNum=0;
for(i=1;i<=10;i++)
{
Console.WriteLine("请输入第{0}个整数",i);
stringstrTemp=Console.ReadLine();
num=__________Convert.ToInt32(strTemp);
if(num>0)
{
ZengNum++;
}
elseif(num==0)
{
zeroNum++;
}
else
{
FuNum++;_
}
}//for_end
Console.WriteLine("正数:
{0}、负数:
{1}、零:
{2}",ZengNum,FuNum,zeroNum);
3.下列代码的功能是要遍历整个数组并将其显示出来,但是有一行代码是错误的。
请检查下列代码,并在错误代码行后填入该行完整的正确代码:
1).staticvoidMain(string[]args)
2).
{
3).
string[]myArray=newstring[]{
“C#”,“C++”,“VB”,“java”};
4).
for(inti=1;i5).
{
6).
Console.WriteLine(myArray[i]);
7).
}
8).
}
答:
第___4_行错误。
应改为______for(inti=0;i
.
精品文档
4.完善如下程序:
求5的阶乘并输出
intmul=
1;
for(inti=1;i<=5;i++)
{
mul*=i;
}
Console.WriteLine(____mul_________);
5.说明本程序的功能。
int[]nums=newint[3];
intmax=int.MinValue;
for(inti=0;i<3;i++)
{
stringstrTemp=Console.ReadLine();
nums[i]=int.Parse(strTemp);
}
for(inti=0;i<3;i++)
{
if(nums[i]>max)
{
max=nums[i];
}
}
Console.WriteLine(max);
答:
______求三个数的最大值_____
6.voidmain()
{
intk=2,i=2,m;m=(k+=i*=k);
Console.WriteLine(“{0},{1}”,m,i);
}
输出结果____6,4___。
7.voidmain()
{
chargrade='C';
switch(grade)
{
case'A':
.
精品文档
Console.WriteLine(">=85.");
break;
case'B':
Console.WriteLine(">=70.");
break;
case'C':
Console.WriteLine(">=60.");
break;
case'D':
Console.WriteLine("<60.");
break;
default:
Console.WriteLine("error.");
break;
}
}
输出结果____>=60_____。
8.int[,]c={{1001,90,20,55},{1002,80,75,65},{1003,55,100,100},{1004,34,87,88}};
for(inti=0;i{
intsum=0;
for(intj=1;j(1);j++)
{
sum+=c[i,j];
}
if(sum>totalmax)
{
totalmax=sum;rowIndex=i;
}
}
Console.WriteLine(c[rowIndex,0]);
9.
int[,]c={{90,20,55},{80,75,65},{55,100,100},{34,87,88}};
for(intj=0;j<4;j++)
{
a[4,j]=a[0,j]+a[1,j]+a[2,j]+a[3,j];Console.WriteLine("第{0}列之和为{1}",j+1,