0
1
3
6
第1题:
有以下程序
#include <stdio.h>
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i ] =0;
}
for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");
}
程序运行后的输出结果是
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
第2题:
( 19 )有如下程序段:
int i=5;
while ( int i=0 ) {cout 《 '*';i--;}
运行时输出 "*" 的个数是
A ) 0
B ) 1
C ) 5
D )无穷
第3题:
●试题四
【说明】
下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。
例如:若输入
2857848328
则应输出
The max:8
Total:4∥最大数出现次数
The positions:1469
【函数】
#include<stdio.h>
#define M 10
int fun(int*a,int*n,int pos[])
{
int i,k max=-32767;
(1)
for(i=0;i<M;i++)
if( (2) )max=a[i];
for(i=0;i<M;i++)
if( (3) )pos[k++]=i;
*n=k;
return max;
}
main()
{
int a[M],pos[M],i=0,j,n;
printf("Enter 10 number:");
for(i=0;i<M;i++)scanf("%d", (4) );
j=fun( (5) );
printf("The max:%d\n",j);
printf("Total:%d",n);
printf("The position:");
for(i=0;i<n;i++)printf("%4d",pos[i]);
printf("\n");
}
●试题四
【答案】(1)k=0(2)a[i]>max(3)a[i]=max(4)a+i或&a[i](5)a,&n,pos
【解析】先分析(4)、(5)空。(4)空所在语句是从键盘中读入数据并存放在数组a[]之中,循环变量为I。(4)空处应填写存放地址,循环变量有两种表示方法,一种是"a+i",另一种是"&a[i]"。(5)空处需要填写调用函数fun()的实参,从函数fun()的形参可以看出,第1个参数是要处理的数组a[],第2个参数要返回的最大元素的个数n,第3个参数最大元素的下标数组pos[]。因此(5)空处应填写"a,&n,pos"。
再来分析(1)~(3)空。(1)~(3)空所在函数是找最大数,并将其下标存放在数组pos[]中,其实现的思路是先遍历一次数组,从数组中找出最大数max,再将遍历一次数组,依次将这些最大数的下标存放在数组pos[]中。(2)空所在的循环就是找最大数max,因此(2)空处应填写"a[i]>max"。(3)空所在的循环是将这些最大数的下标存放在数组pos[]中,因此(3)空处应填写"a[i]==max"。(1)空应填写什么呢?从语句"pos[k++]=i"和"*n=k"可知,变量k是用来指出当前要存放在数组pos[]中的位置,但这个变量要进行初始化,因此(1)空处应填写"k=0"。
第4题:
有如下程序段:
for(int i=1;i<=50;i++){
if(i%3 1=0)
continue;
else
if(i%5 1=0)
continue;
cout<<i<<”,”;
}
执行这个程序段的输出是【 】。
第5题:
( 19 )有如下程序段:
int i=1;
while (1) {
i++;
if(i == 10) break;
if(i%2 == 0) cout << '*';
}
执行这个程序段输出字符 * 的个数是
A ) 10
B ) 3
C ) 4
D ) 5
第6题:
有以下程序 main() { int i=0,s=0; for(;;) { if(i==3‖i==5) continue; if(i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是
A.10
B.13
C.24
D.程序进入死循环
第7题:
( 7 )有如下程序段:
fer ( int i=1; i<=50;i++ ) {
if ( i%3 != 0 )
continue;
else
if ( i%5!=0 )
continue;
tout<<i<<" , " ;
}
执行这个程序段的输出是【 7 】 。
第8题:
有以下程序 , 程序执行后 , 输出结果是【 1 1 】
#include <stdio.h>
void fun(int *a)
{ a[0]=a[1];}
main()
{ int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i--) fun(&a[i]);
for(i=0;i<10;i++) printf("%d",a[i]);
printf("\n");
}
第9题:
设有以下程序:
main()
{int i,sum=0;
for(i=2;i<10;i++)
{ if((i%2)==0)
continue;
sum+=i;}
printf("%d\n",sum);
}
程序执行后的输出结果是( )。
第10题:
针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。
int MathMine(int x)
{
int m=0;
int i;
for(i=x-1; i<=x+1; i++)
{
if (i<0) continue;
if (i>31) break;
if (sta[i]=-1) m++;
}
return m;
}
A.3
B.4
C.5
D.6
A.
B.
C.
D.