《C#程序设计》模拟试题
一 单项选择题(每小题2分,共20分)
1. C#源程序文件的默认扩展名为( )。
A. cpp B. exe C. cs D. lik
答:C
2. C#程序从上机到得到结果的几个操作步骤依次是( )。
A. 输入、编辑、运行
B. 编译、连接、运行
C. 输入、运行、编辑
D. 编辑、编辑、连接
答:A
3. 以下标识符中不全是关键字的是( )。
A. case for int
B. default then while
C. bool class long
D. goto uint char
答:B
4. 能作为C#程序的基本单位是( )。
A. 字符 B. 语句 C. 函数 D. 源程序文件
答:B
5. 一个C#程序总是调用哪个函数作为开始( )。
A. main B. MAIN C. Main D. 任意标识符
答:C
6. 可用作C#程序用户标识符的一组标识符是( )。
A. void define +WORD
B. a3_b3 _123 YN
C. for -abc Case
D. 2a DO sizeof
答:B
7. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。
A. 12 B. 144 C. 156 D. 288
答:C
8. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式 的表达式是( )。
A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c
答:D
9. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为( )。
A. 1 B. 0 C. 与x值相同 D. 与x值相反
答:C
10. x>0 && x<=10的相反表达式为( )。
A. x<=0 || x>10 B. x<=0 && x>10
C. x<=0 || x<=10 D. x>0 && x>10
答:A
二 填空题(每空2分,共20分)
1. 含随机函数的表达式rand()%20的值在 至19区间内。 0
2. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型 。常量(或常数)
3. 在if语句中,每个else关键字与它前面同层次并且最接近的 关键字相配套。if
4. 作为语句标号使用的C++保留字case和default只能用于 语句的定义体中。switch
5. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行 次后正常结束。 11
6. 若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行 次后正常结束。10
7. 当在程序中执行到 语句时,将结束本层循环类语句或switch语句的执行。 break
8. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。continue
9. 元素类型为int的10个元素的数组共占用________字节的存储空间。40
10. 元素类型为double的4行6列的二维数组共占用________字节的存储空间。 192
三、程序阅读题(每小题6分,共24分)
1.写出以下程序运行结果。
using System;
class Test
{
public static void Main ()
{
int[] a ={2,4,6,8,10,12,14,16,18};
for (int i=0; i<9; i++) {
Console.write(“ ”+a[i]);
if ((i+1)%3==0) Console.writeLine();
}
}
}
2 4 6
8 10 12
14 16 18
2.写出以下程序运行结果。
using System;
class Test
{
public static void Main ()
{
char[] a = "abcdabcabfgacd";
int i1=0,i2=0,i=0;
while (a[i]) {
if (a[i] == ’a’) i1++;
if (a[i]== ’b’) i2++;
i++;
}
Console.writeLine(i1+ “ “ + i2);
}
}
4 3
3.写出以下程序运行结果。
using System;
class Test
{
public static void Main ()
{
int s=0;
for (int i=1; ; i++) {
if (s>50) break;
if (i%2==0) s+=i;
}
Console.writeLine ("i,s=" + i + "," + s);
}
}
i,s=15,56
4.写出以下程序运行结果。
using System;
class Test
{
public static void Main ()
{
int i,j;
for(i=0; i<3; i++) {
for(j=0; j<=i; j++) Console.write(“*”);
Console.writeLine();
}
}
}
*
**
***
5.写出以下程序运行结果。
using System;
class Test
{
static void LE(ref int a, ref int b) {
int x = a;
a = b; b = x;
Console.writeLine (a + “ “ +b);
}
public static void Main ()
{
int x=10, y=25;
LE(ref x, ref y);
Console.writeLine (a + “ “ +b);
}
}
25 10
25 10
6.写出以下程序运行结果。
using System;
class Test
{
static int LB(ref int[] a,int n) {
int s=1;
for (int i=0; i<n; i++)
s*=a[i];
return s;
}
public static void Main () {
int[] a = {1,2,3,4,5,6,7,8};
int b = LB(ref a,5) + LB(ref a,3);
Console.writeLine ( “b = “ +b);
}
b= 126
四 编程题(10分)
打印出2至99之间的所有素数(即不能被任何数整除的数)。
using System;
namespace psushu
{
class MainClass
{
public static void Main(string[] args)
{
int i;
for(i=2;i<=99;i++)
{
if(IsSushu(i))
Console.Write("{0} ",i);
}
Console.ReadLine();
}
static bool IsSushu(int n)
{
bool b=true;
if(n==1||n==2)
b=true;
else
{
int i,s;
s=(int)System.Math.Sqrt(n);
for(i=s;i>1;i--)
{
if(n%i==0)
{
b=false;
break;
}
}
}
return b;
}
}
}