22、有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];则b的值是______。
A、5 B、6 C、8 D、9
d
25、阅读以下程序:
main()
{int x;
scanf("%d",&x);
if(x--<3) printf("%d",x);
else printf("%d",x++);
}
程序运行后,如果从键盘上输人3,则输出结果是______ 。
A、2 B、3 C、 4 D、 5
a
29.现已定义整型变量:int i=1;
则执行 while(i++<5) ;后,i的值为______:
A 1 B 2
C 5 D 6
d
32、以下程序中,while循环的循环次数是______
main( )
{ int i=1;
while(i<10)
{ if (i<1)
continue;
if (i= =5)
break;
i++;
}
……}
A)4 B)9 C)4 D)5
d
难读程题:
16、以下程序的输出结果是______ 。
main()
{int a=4;
printf("%d\n",(a+a-=a*a) );
}
A、0 B、-12 C、-24 D、12
c
15、若有定义 int x,*px; 则以下正确的赋值表达式是______。
A.*px=&x B. px=x C. *px=*&x D. px=*x
c
1、运行程序后a 的值为______:
main()
{ int a,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
printf("%d",a);}
A 4 B 1 C 0 D a无定值
c
31、以下的输出结果为______:
int i=3,j=2,a=6;
a=(--i==j++)?--i:++j;
printf("%d,%d,%d",a,j,i);
A 4,4,2 B 3,2,3
C 1,3,1 D 4,4,1
c
33.以下程序的输出结果是______:
int x=3;
main( )
{ int i;
for(i=1; i<x; i++) incre( );
printf("%d",x);}
incre( )
{ static int x=1;
x*=x+1
printf(" %d", x);}
A)3 3 3 B)2 6 3
C)2 2 3 D)2 5 3
b
35.以下程序的输出结果是
void fun(char *p)
{ char t;
if (*p!='\0')
{t=*p++;
fun(p);
if (t!='\0') printf("%c",t)}}
main()
{ char *a;
a="4321";
fun(a);}
A.1234 B.运行出错
C.4231 D.4321
a
1 设a为int型变量,则能正确表达数学关系-1<a<10的表达式是___ 。
A、10>a >-1 B、-1<a && a<10
C、!(a>-1&&a<10) D、-1<a || a<10
b
2、下列循环体执行 次。
#include<iostream.h>
void main()
{
int x=-10,k=0;
while(++x){
k++;
}
cout<<k;
}
A)无限 B)10 C)9 D)11
C
21、以下程序的输出结果是( 21 )。
main()
{int a=10,b;
b=++a;b+=a;
printf(" %d",b);
b=a--;
b+=a;
printf(" %d",b); }
A、20 21 B、22 21 C、21 22 D、21 20
b
23、以下程序的输出结果是( 23 )。
main()
{ int i;
for (i=1;i<=5;i++)
{
if(i%2)
printf("#");
else
continue;
printf("*");
}
printf("$\n");
}
A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$
b
28、以下程序的输出结果是 ( 28 )。
func(int a,int b)
{ int c;
c=a+b;
return c;
}
main( )
{ int x=6,y=7,z=8,r;
r=func(x--,y++,x+y),z--);
printf("%d\n",a);
}
A、18 B、22 C、21 D、19
c
29、有以下定义语句:
int a[10]={3, 9, 11, 14, 20, 32, 60}, *p;
p=a;
则 (*++p)+*(++p) 的值是 (29)
A、 18 B、22 C、20 D、6
b
35、若有定义:int *p,a[4]={11,22,33,44};p=a;
则以下表达式中能等于22的是( 35 )
A、&a[0]+1 B、++*p; C、a[0]++ D、*++p
d
30、以下程序的输出结果是( 30 )
main()
{ int a=4,b=5,c=0,d;
d=a>1 && b==5 || ++c;
printf("%d,%d\n",d,c);
}
A、1,0 B、0,0 C、0,1 D、1,1
a
3、以下程序的输出结果是
#include<stdio.h>
main( )
{ int i=0,a=0;
while( i<20)
{ for( ; ; )
{ if((i%10)==0) break;
else i--;
}
i+=11; a+=i;
}
printf(“%d\n”,a);
}
A)21 B)32 C)33 D)11
B)
36、以下程序的输出结果是:( 36 )
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i<n;i=i+2) s=s+b[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、10 B、18 C、8 D、15
a
38、以下程序的输出结果是:( 38 )
main()
{char a[]={1,2,3,4,5,6,7,8,9,10};
char *p;
p=a;
printf("%d ",(*p)++);
p=p+3;
printf("%d\n",*p++);
}
A、2 4 B、1 5 C、1 4 D、2 5
c
39、求序列的前100 项之和。
1-1/(2*3)+1/(3*4)-1/(4*5)+ …… -1/(98*99)
main()
{ int I;float sum,t,t;
sum=1;t=-1;
for(I=2;I<=99;I++)
{ s=( 39 ) ;
sum= sum +t*s; t=-t; }
printf("%f",sum);}
A、 -1/((i*(i+1) B、1/(i*i+1) C、1/((i*(i+1))
D、 1/i*(i+1)
c
23.以下程序的输出结果是_______。
int f( )
{ static int i=0;
int s=1;
s+=i; i++;
return s;
}
main( )
{ int i, a=0;
for(i=0; i<5; i++) a+=f( );
printf("%d\n",a);
}
A、20 B、24 C、25 D、15
27.以下程序的输出结果是______。
int d=1;
fun(int p)
{int d=5; d+=p++; printf("%d",d);}
main()
{ int a=3;
fun(a);
d+=a++;
printf("%d\n",d); }
A、84 B、99 C、95 D、44
30.有如下程序:
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{int i;
for(i=1; i<=NUM;i++) printf("%d\n",i);
}
该程序的printf语句执行的次数是______。
A、5 B、6
C、7 D、8
4、以下程序的输出结果是
main( )
{ int a=4, b=5, c=0, d;
d=!a&&!b||!c;
printf(“%d\n”,d);
}
A)1 B)0 C)非0的数 D)-1
A)
5、以下程序的输出结果是
main( )
{ int a=0, i;
for(i=1; i<5;i++)
{ switch(i)
{ case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
}
}
printf(“%d\n”,a);
}
A)31 B)13 C)10 D)20
A)
main( )
{ int i=1;
while(i<10)
{ if (i<1) continue;
if (i= =5) break;
i++; }
……
}
D)
2 下列描述错误的是
A)函数返回值类型决定返回表达式类型。
B) 返回表达式类型决定函数返回值的类型。
C) 函数返回值类型与返回表达式的类型可以不同。
D) 函数返回值类型由函数类型定义,返回表达式类型由
return语句后面的表达式定义。
5.下列有关设置函数参数默认值的描述中正确的是
A) 设置了默认的参数右边不允许出现没有指定默认值的参数
B) 参数默认的设置顺序从参数表的左端开始
C) 参数默认值要设置在定义语句中,不能设置在说明语句中
D) 参数默认值可以是数值也可以是表达式
A
3#include <iostream.h>
#define M 20
#define N 10
#define L(r) r*r
void main( )
{
cout<<L(M)<<endl;
cout<<L(N+N)<<endl;
}
输出结果为:
400
500
12#include <iostream.h>
int add(int x,int y=8);
void main( )
{int a=4;
cout<<add(a)<<endl;
cout<<add(a,add(a))<<endl;
}
int add(int x,int y)
{ return x+y;
}
5. int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf(“y=%d,x=%d”,y,x);
显示为:y=6,x=6
4.x=6;
x+=x-=x*x;其x值为:-60
1.表达式6>3&&8||5<4-!0的值是: 1
二、填空题(每题2分,10题,共20分)
41、打印三角形图案:
*
***
*****
*******
程序如下,将方括号[41][42[43]空的部分补充,
完善程序。
main()
{ int i,j,k,n=4;
for (i=1;i<=[_41__];i++)
{for (j=1;j<=n-i;j++) printf(" ");
for(k=1;k<=[ _42__ ];k++) printf("*");
[_43___]; }
n或4 2*i-1 printf("\n")
[题目描述]
44、输入一行数字字符,请用数组元素作为计数器来统计每个数字
字符的个数。用下标为0元素统计字符“0”的个数,下标为1的元素
统计字符“1”的个数....
程序如下,将方括号[44][45][46]空的部分补充,完善程序。
main()
{ char c[80];int i=0,k,a[10]={0};
gets(c);
while([_44_])
{ k=c[i]-48;
[_45_]; i++;}
for(i=0;i<10;i++)
printf("\n %d",[_46_]);
}
c[i]!='0' a[k]++或a[k]+1 a[i]
47、输入一个大于等于2的任意整数n,判断该数是否素数并输出相
应结果。程序如下,将方括号[47][48][49][50]空的部分补。
#include "math.h"
main()
{ int k,n,i,leap;
leap=[_47_];
scanf("%d",&n); k=sqrt(n);
for (i=2;i<=k;i++)
{ if([__48__])
{ leap=0; break ;} }
if([_49_])
printf("It is a prime number!");
[_50_]
printf("It is not a prime number!"); }
1 leap%2==0 leap或leap==1 else
1. 从键盘上任意输入一个正整数n,判断它是否是素数(15分)
2. 对数组中的100个整数按其值由大到小排序