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个整数按其值由大到小排序