m:
z;
则该程序运行后,m的值是(D)
A.4B.3C.2D.1
36.以下程序的输出结果是(C)
main()
{inta=3,b=4,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);}
A.0B.非0的数C.1D.-1
37.以下程序执行后的输出结果是(A)
main()
{inti=3,j=3,k=4;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
A.4,4,4B.3,3,4C.3,3,5D.3,3,4
38.下列程序段的输出结果是(A)。
int*p,*q,k=5,j=7;
p=&j;q=&k;p=q;(*p)++;
printf("%d",*q);
A.6B.5C.8D.7
39.执行下面程序段后,c3中的值是(D)。
intc1=4,c2=5,c3;
c3=c1/c2;
A.0.8B.4/5C.1D.0
40.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
default:
printf("%d",i);
case2:
printf("%d",i);
}
}
执行后输出结果是(B)
A.011122B.001112C.012020D.120
四、程序填空
1.下面的程序的功能是输出600~800之间所有素数。
本程序中利用自定义函数prime()判断一个整数是否为素数(如果整数x不能被2~x-1之间的任意一个数所整除,则x是素数)。
要求每行输出10个素数。
#include
(1)intprime(intm);//函数的原型声明
voidmain()
{intk,s=0;
(2)for(k=301;k<300;k+=2)//判断300~500之间的每一个奇数
if(prime(k))
{
printf("%5d",k);
s++;
(3)if(s%10==0)//每行输出10个素数
printf("\n");
}
printf("\ns=%d\n",s);
}
intprime(intm)
{inti;
for(i=2;m%i!
=0;i++);
(4)return(m==i);}//返回函数的值
2.下列程序将输入的整数num按逆序输出,算法是:
先输出个位数,然后将该数缩小10倍,再输出新的个位数,直到缩小后的数为0。
请选择正确的答案完成填空。
#include
voidmain()
{intc,num;
printf("Enteranumber:
");
(5)scanf(“%d”,&num);;//输入变量num的值
(6)do{c=num%10+'0';//计算变量num的个位数
(7)putchar(c);或printf(“%c”,c);;//输出num的个位数
(8)}while(num=num/10或num/=10>0);//变量num缩小10倍
}
3.斐波那契数列的第1项和第2项都是1。
下面的程序用来计算斐波拉契数列1,1,2,3,5,8,13,21,...第7项的值,请选择正确答案填入程序空白处。
斐波那契数列的构成规律:
#include
(9)longfib(intg)//函数的形参声明
{switch(g)
{case0:
return0;
case1:
(10)case2:
return1;//数列的1、2项*/
}
(11)return(fib(g-1)+fib(g-2));//数列的其余各项
}
main()
{intk;
(12)k=fib(7);//数列的第7项
printf("k=%d\n",k);
4.有一个3行4列的矩阵,要求计算出其中值最大的元素的值,以及其所在的行号和列号。
#include
voidmain()
{inti,j,row=0,column=0,max;
(13)inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};//数组的定义及初始化
(14)max=a[0][0];//用数组的第一个元素给存放最大值的变量max赋初值
(15)for(i=0;i<=2;i++)//行下标的变化
for(j=0;j<=3;j++)
(16)if(a[i][j]>max)//判断最大值
{max=a[i][j];
row=i;
column=j;
}
}
五、读程序写结果
1.下列程序段的输出结果是k=4s=6。
intk,s;
for(k=0,s=0;k<10;k++)
if(s>k)break;
elses+=k;
printf("k=%ds=%d",k,s);
2.下列程序段的输出是*#*#。
main()
{intk;
for(k=1;k<5;k++){
if(k%2)printf("*");
elsecontinue;
printf("#");}}
3.运行下面的程序段,输出结果是ebcegf。
inti=0;
chars1[10]="abc",s2[10]="efg";
strcat(s1,s2);
while(s1[i++]!
='\0')
s2[i]=s1[i];
puts(s2);
4.以下程序运行后的输出结果是:
817。
func(a,b)
inta,b;
{staticintm=0,i=2;
i+=m+1;m=i+a+b;return(m);}
main()
{intk=4,m=1,p;
p=func(k,m);printf(“%d”,p);
p=func(k,m);printf(“%d\n”,p);}
5.写出下列程序结果:
m=5,n=3。
#include
intm=10;
voidf(intn)
{n=8/n;m=m/2;}
main()
{intn=3;
f(n);
printf(“m=%d,n=%d\n”,m,n);}
6.有以下程序程序的执行结果是:
7。
#include
intf(intn);
voidmain()
{inta=2,s;
s=f(a);s=s+f(a);printf("%d\n",s);}
intf(intn)
{
staticinta=1;
n+=a++;
returnn;
}
7.以下程序执行后输出结果是:
3025。
#include
inta=5;
voidfun(intb)
{inta=10;
a+=b;printf("%d",a);
}
main()
{intc=20;
fun(c);a+=c;printf("%d\n",a);}
8.以下程序运行后,如果输入的是123450<回车>,输出结果为:
345756
#include
main()
{ints;
scanf(“%d”,&s);
while(s>0)
{switch(s)
{default:
printf(“%d”,s+1);break;
case1:
printf(“%d”,s+2);
case2:
printf(“%d”,s+3);break;
case3:
printf(“%d”,s+4);
}
scanf(“%d”,&s);
}
}
9.下面程序运行后,输出结果是:
atody
#include
voidmain()
{chars[]="today",c;
inti,j=0;
for(i=1;i<5;i++)
if(s[j]>s[i])
{c=s[j];s[j]=s[i];s[i]=c;}
printf("%s\n",s);}
10.以下程序执行后的输出结果是:
s<3,4>=39
intn,a,s=0,p=1,i;
n=3;a=3;
for(i=1;i<=n;++i)
{p=p*a;s+=p;}
printf("\ns(%d,%d)=%d",a,i,s);
11.以下程序运行后的输出结果是:
10,8
intd=2;
fun(intp)
{intd=4;
d+=p++;printf("%d,",d);}
main()
{inta=6;
fun(a);
d+=a++;printf("%d\n",d);
}
12.写出下列程序结果:
n=11
#include
voidmain()
{
chars[]="120354xy7s89f1w4";
inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='0'&&s[i]<='9')n++;
printf("n=%d\n",n);
}
13.有以下程序程序的执行结果是:
BcDeFg
#include
voidmain()
{charb,c;inti;
b='B';c='b';
for(i=0;i<6;i++)
{if(!
(i%2))
putchar(i+b);
else
putchar(i+c);}