班级: 姓名: 学号
一,填空(每空1分,共10分)
1,设x为整型变量,值为1,则表达式(x&&1)= =(x%2)的值为
2,与二进制数101等值的十进制数为
3,若已知a=10,b=20,则表达式!a4,结构化程序设计所规定的三种基本控制结构是 结构 结构和 结构.
5,定义int i=1;执行语句 while(i++<5); 后,i的值为_______
6,定义3行4列的整型二维数组a的语句是___________
7,int *p,a; 则语句 p=&a; 中的运算符&是________符号.
8,设y是int型变量,请写出判断y为奇数的关系表达式
二,选择(每小题2分,共30分)
1,下列优先级最低的算符是( )
A && B & C || D =
2,已知int j,i=1;执行语句"j=i++;"后,变量i的值是( )
A 1 B 2 C –1 D -2
3,已知int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是( )
A 6 B 12 C 30 D 36
4,若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )
A a0 B !a C a=0 D a
5,以下错误的if语句是( )
A if (x>y);
B if(x= =y) x+=y;
C if (x!=y) scanf("%d", &x) else scanf("%d",&y);
D if (x
A if (s1= =s2) B if (s1=s2)
C if (strcpy(s1,s2)) D if (strcmp(s1,s2)= =0)
7,若有说明 int x,y;不能实现以下函数关系的程序段是( )
y=-1 (x0)
A if (x0) y=1;
else y=0;
C y=0; D if (x>=0)
if (x>=0) if (x>0) y=1;
{if (x>0) y=1;} else y=0;
else y= -1; else y= -1;
8,以下错误的描述是( )
A break语句不能用于循环语句和switch语句外的任何其他语句
B 在switch 语句中使用break语句或continue语句的作用相同
C 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
9,若int i=10;执行下列程序后,变量i的正确结果是( )
switch ( i )
{case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
A 10 B 11 C 12 D 13
10,下列程序是求1到100的累加和,其中有1个不能够完成规定的功能,是( )
A s=0; i=0; B s=0; i=1;
while (i<=100) while (i++<100)
s+= i++; s+=i;
C s=0; i=0; D s=0; i=0;
while (i<100) while (++i<=100)
s+= ++i; s += i ;
11,选择程序输出结果( )
f(int b[ ],int m,int n)
{ int i,s=0;
for(i=m;i
return s;
}
main()
{int x,a[ ]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A 30 B 15 C 18 D 22
12,C语言中函数返回值的类型由( )决定的.
A return语句中的表达式类型 B 调用该函数的主调函数的类型
C 调用函数时临时决定 D 定义函数时所指定的函数类型
13,选择下列程序的运行结果( )
fun(int *p)
{int a=10;
p=&a;
++*p;
}
main()
{int a=5;
fun(&a);
printf("%d\n",a);
}
A 5 B 6 C 10 D 11
14,执行后y的值是( )
main()
{int a[]={1,2,3,4},y,*p=a;
y=*p++;
}
A 1 B 2 C 3 D 4
15,下列程序的输出结果是( )
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b%s[0].c;
printf("%d \n",t);
}
A 2 B 3 C 4 D 7
三,程序填空(每空2分,共20分)
1,下面的程序输出3到100间的所有素数.
main()
{
int i,j;
for (i=3;i<=100;i++)
{for(j=2;j<=i-1;j++)
if( ① ) break;
if( ② )
printf("%4d",i);
}
}
2,函数primedec(m)是求整数m的所有素数因子,并输出.如:m为120时.输出的素数因子为:
2,2,2,3,5
程序如下:
primedec(int m)
{int k=2;
while (k<=m)
if (m%k ① )
{printf("%d,",k);
②
}
else
③
}
3,用起泡法对10个整数排序(由小到大)
起泡法的思路:将相邻的两个数比较,将小的调到前头.
main()
{ int a[11],i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
①
printf("\n");
for(j=1;j<=9;j++)
for(i=1; ② ;i++)
if ( ③ )
{ t=a[i];
④
⑤
}
printf("the sorted numbers:\n");
for(i=1;i<11;i++)
printf("%d ",a[i]);
}
四,读程序题(15分)
1,读程序写结果(3分)
main ( )
{ char c='A';
if ('0'<=c <='9')
printf("yes");
else
printf("no");
}
2,以下程序在运行是时,输入变量a的值为1,变量b的值为2,写出程序的运行结果(3分)
main( )
{ int a, b, t=0;
scanf("%d%d",&a, &b);
if (a=2)
{t=a; a=b; b=t; }
printf ("%d,%d\n",a,b);
}
3,写出程序的执行结果(3分)
main ( )
{ int i=0,j=0;
while (i<10)
i++;
while (j++<10) ;
printf("i=%d, j=%d\n",i,j);
}
4,写出程序的执行结果(3分)
main ( )
{ int i, j,k;
char space=' ';
for (i=0;i<=5;i++)
{ for (j=1;j<=i;j++)
printf("%c",space);
for(k=0;k<=5;k++)
printf("%c",'*');
printf("\n");
}
}
5, 写出程序的执行结果(3分)
main()
{int i;
for(i=0;i<3;i++)
add();
}
add()
{static int x=0;
x++;
printf("%d,",x);
}
五,编程序(25分)
1,打印出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=13+33+53.(12分)
2,读入m×n(可认为10×10)个实数放到m行n列的二维数组中,求该二维数组各行平均值,分别放到一个一维数组中,并打印一维数组.(13分)
试卷共3页,本页是第 页