三.读程序题
1.有以下程序代码,若执行时从键盘上输入9,则输出结果是【 10 】。
class Program
{ public static void Main(string[] args)
{
int n;
n=int.Parse (Console.ReadLine());
if (n++<10) Console.WriteLine(\ else Console.WriteLine(\ Console.Read();
}
}
2.下列程序的运行结果是【i=11, s=0 】。
class Program
{ public static void Main(string[] args)
{
int i=0,s=1; do { s/=s+1;
i++; }while(i<=10);
Console.WriteLine(\
}
}
3.下列程序的运行结果是【 m=51,n=50 】。 class Program { public static void Main(string[] args)
}
{ }
int i=0,m=0,n=0; while(i<=100)
{ if(i%2==0) m+=1; else n=n+1; }
i++;
Console.WriteLine(\
4.下列程序的运行结果是【 m=3 】。
static void Main(string[] args)
{ int a=15,b=21,m=0; switch (a%2) { case 0: m++; case 1: m++;
break;
switch (b%2)
{ case 0: m++; break; default: m=m+2; break; } break;
}
- 10 -
Console.WriteLine(\}
4.下列程序的运行结果是【 s=10 】。
static void Main(string[] args)
{ int i, j, s=0;
for( i=2; i<6; i=i+2 ) { s=1;
for( j=i; j<6; j++) s+=j; }
Console.WriteLine(\
}
5.下列程序的运行结果是【 a=32 】。
static void Main(string[] args)
{ int i=0, a=0; while( i<20 )
{ for( ; ; )
{ if(i==0) break; else i--; }
i+=11; a+=i;
}
Console.WriteLine(\}
四.编程题
1.设计一个控制台应用程序,将用户输入的正整数反向显示出来。如输入12345,则输出54321。 static void Main(string[] args)
{ int digit, num;
Console.Write(\输入一个整数:\ num = int.Parse(Console.ReadLine()); Console.Write(\反向显示结果:\ while (num != 0)
{ digit = num % 10; num = num / 10; Console.Write(digit); }
Console.WriteLine(); Console.Read();
}
2.设计一个控制台应用程序, 读入一组整数(以输入0结束),分别输出其中奇数和偶数的和。 static void Main(string[] args)
{ int n, s1 = 0, s2 = 0;
do{ n = int.Parse(Console.ReadLine()); if (n % 2 == 1) s1 += n; else s2 += n; } while (n != 0);
- 11 -
//依次求个位、十位、…上的数字digit
Console.WriteLine(\奇数之和={0}\ Console.WriteLine(\偶数之和={0}\
Console.Read(); }
3.设计一个控制台应用程序, 输入正整数n,计算s=1+(1+2)+(1+2+3)+…+(1+2+…+n) 。 static void Main(string[] args)
{ int n, i, j, s = 0, p=0; Console.Write(\
n = int.Parse(Console.ReadLine()); for (i = 1; i <= n; i++) { p = p + i; s += p; }
Console.WriteLine(\ Console.Read();
}
4.设计一个控制台应用程序,利用下面的公式编程计算π的值。
π11111?1-??????(n?2000) 43572n?32n?1
static void Main(string[] args)
{ double pi=0.0; int n;
for (n=1;n<=2000;n++)
if (n%2==1) pi=pi+1.0/(2*n-1); else pi=pi-1.0/(2*n-1); pi=4*pi;
Console.WriteLine(\ }
- 12 -
第5章 数组和集合
一.选择题
1.在C#中定义一个数组,以下正确的是【 】。
A) int a=new int[5];
B) int[] a= new int[5];
C) int a=new int[5]; D) int[5] a=new int[]; 2.下列语句中,不能正确定义长度为4的数组a的语句是【 】。
A) int[] a=new int[]{1,2,3,4}; B) int[] a= {1,2,3,4};
C) int[] a=new int[4]{1,2,3}; D) int[] a=new int[4]{1,2,3,4}; 3.假定int类型变量占用4个字节,若有定义: int[] x=new int[10]{0,2,4,4,5,6,7,8,9,10}; 则数组x在内存中所占字节数是【 】。 A) 10 B) 20 4.以下数组定义语句中不正确的是【 】。
A) int[] a=new int[5]{1,2,3,4,5};
C) 40
D) 80
B) int[,] a=new int[3][4] ;
C) int[][] a=new int[3][0]; D) int[] a={1,2,3,4,5}; 5.以下定义并初始化一维数组的语句中正确的是【 】。
A) int a[] = {1,2,3,4,5}; B) int[] a=new int[]; C) int[] a=new int[]{1,2,3,4,5}; D) int[] a; a={1,2,3,4,5}; 6.以下定义并初始化一维数组的语句中正确的是【 】。
A) int a= new int[];
B) int[] a=new int[];
C) int[] a=new int[]{1,2,3,4,5}; D) int[] a=new int[n]{1,2,3,4,5}; 7.以下定义并初始化数组的语句中正确的是【 】。
A) int a[][]=new int[4,5];
B) int[][] a=new int[4,5];
C) int a[,]=new int[4,5]; D) int[,] a=new int[4,5];
8.有定义语句:int[,] a=new int[5,6]; 则下列正确的数组元素引用是【 】。 A) a(3,4) B) a(3)(4) C) a[3][4] 9.对于foreach语句和for语句,下列说法错误的是【 】。
D) a[3,4]
A) for语句与foreach语句在结构上不一样,前者有3个表达式,表达式间用分号隔开;后者仅
有一个“表达式”,形式为“数据类型 变量 in 集合表达式” B) 语句for(;true;);是合法的,但是个死循环;“foreach(true);”也是合法的,也是一个死循环 C) 语句for(;true;);是合法的,但是个死循环;而“foreach(true);”是非法的 D) 语句块“ int[] a={1,2}; foreach(int i in a);”是合法的。
10.在C#中,关于Array和ArrayList的维数,以下说法正确的是【 】。
A) Array可以有多维,而ArrayList只能是一维 B) Array只能是一维的,而ArrayList可以有多维 C) Array和ArrayList都只能是一维 D) Array和ArrayList都可以是多维
11.以下List
A) List
1.数组定义与赋初值语句如下:int[] a={1,2,3,4,5}; 则a[2]的值为【 3 】。
- 13 -
B) List
2.下列程序段执行后,a[4]的值为【 4 】。
int[] a={1,2,3,4,5};
a[4]=a[a[2]];
3.下列数组定义语句中:int[] a=new int[3]; ,定义的数组a占的字节数为【 12 】。 4.下列数组定义语句中,数组将在内存中占用【 160 】个字节。
double[,] d=new double [4,5];
5.要定义一个3行4列的单精度二维数组f,使用的定义语句为【 float[,] f=new float [3,4]; 】。 6.要定义一个int型的参差数组a,数组有两行,第一行一个元素,第二行两个元素并赋初值3和4,
使用的语句如下,请填空。 int[][] a=【new int[2][] 】;
a[0]=【 new int[1] 】; a[1]=【 new int[2]{3,4} 】;
7. 下列程序完成的功能是采用二分查找方法在给定的有序数组a中查找用户输入的值,并提示相应
的查找结果。请填空。
public static void Main(string[] args)
double [] a=new int[10]{0, 1.2, 2.5, 3, 4.6, 5.0, 6.7, 7.6, 8.2, 9}; double k;
int low=0, high=9, mid;
Console.Write(\输入查找数据:\
k=double.Parse(Console.ReadLine()); while (【(1)】) { mid=(low+high)/2;
if (a[mid] == k)
{ Console.WriteLine(\
{
return; } else if (a[mid] > k) 【(2)】;
else low = mid + 1;
}
Console.WriteLine(\未找到{0}\
}
(1)low<=high (2)high =mid-1
三.读程序题
1.下列程序的输出结果是【852】。
class Program
{ public static void Main(string[] args)
{ }
int i;
int[] a=new int[10];
for(i=9;i>=0;i--) a[i]=10-i;
Console.WriteLine(“{0}{1}{2}”,a[2],a[5],a[8]);
}
2.下面程序的运行结果是【 】。
class Program
{ public static void Main(string[] args)
- 14 -