
C语言程序设计复习题.doc
24页一、 选择题:1、以下能正确定义数组并正确赋初值的语句是〔 D 〕A、int N=5,b[N][N]; B、int a[1][2]={{1},{3}};C、int c[2][]={{1,2},{3,4}}; D、int d[][2]={{1,2},{3,4}};2、执行下面的程序时假设从键盘上输入6,则输出结果是( D )main(){ int *;scanf("%d",&*);if(*++>5) printf("%d\n",*);else printf("%d\n",*--);}A、7 B、6 C、5 D、43、以下四组选项中,不合法的用户标识符的选项是〔 D〕A、P_0 B、 _A C、temp_123 D、b-a 4、假设*、i、j和k都是int型变量,则计算下面表达式后,*的值为( C )i=4,j=16,k=32)A、 4 B、 16 C、 32 D、 525、以下选项中哪个是合法的标识符( B )A、int B、_a2 C、b* D、7b 6、以下选项定义了整型变量a和b,并为这两个变量赋初值为5,不正确的语句是( B )。
A、 int a=5,b=5; B、 int a=b=5;C、int a,b; D、 int a=5,b;a=5;b=5; b=5;7、假设变量已正确定义并赋值,下面不符合C语言语法的表达式是〔 A〕A、a=a+7; B、a=7+b+c,a++ C、int 12.3%4 D、a=a+7=a+b8、执行下面的程序时假设从键盘上输入6,则输出结果是( C )main(){ int *;scanf("%d",&*);if(*-->5) printf("%d\n",*);else printf("%d\n",++*);}A、7 B、6 C、5 D、49、设有程序段 int k=10;while(k==0) k=k-1;则下面描述中正确的选项是( B )A、while循环 10次 B、 循环体一次也不执行C、 循环是无限循环 D、 循环体只执行一次10、以下对数组的定义方式哪个是正确的.( A )A、*define size 10 B、 int n=2;int a[size] ; int a[n];C、char name(-10); D、floatweight[10.3];11、以下对二维数组a的正确说明是( C )。
A、 int a[7][]; B、 float a[7,7]; C、 double a[7][7]; D、 float a(7)(7);12、以下程序的运行结果是( A )main(){ int *=1,a=0,b=0;switch(*){ case 0: b++; case 1: a++;case 2: a++;b++;} printf(“a=%d,b=%d\n〞,a,b); } A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=213、以下字符中,ASCⅡ码值最小的是( A )A、 A B、 a C、 Z D、*14、设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为1的表达式是:〔 C 〕A、!c&&1 B、a>=b C、!a||b+c&&b-c D、!a||!b15、设有定义int a,b;当执行scanf(“%d,%d〞,&a,&b);语句时,假设要求a、b的值分别为2、3,则正确的输入格式为( D )。
A、 a=2,b=3 B、 a=2 b=3 C、 2 3 D、 2,316、假设有定义int i=3,j=3; printf("%d, %d",++i,j++); 其运行结果为( A )A、4,3 B、3,3 C、4,4 D、3,417、以下不正确的语句是( B )A、 if(*>y) ; B、 if(*=y)&&(*!=0) *+=y; C、 if(*!=y) scanf(“%d〞,&*); else scanf(“%d〞,&y) ; D、 if(* A、 必须在最开场 B、 必须在系统调用的库函数的后面 C、 可以任意 D、 必须在后面21、以下表达不正确的选项是( D )A、 一个C程序可由一个或多个函数组成 B、 一个C程序必须包含一个main函数 C、C程序的根本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面22、以下选项中哪个是合法的标识符( C )A、3days B、charC、_above D、a>b 23、设int n=3;则有表达式++n,n的结果是( C )A、2 B、3 C、4 D、524、从循环体内*一层跳出,继续执行循环外的语句是( A )A、 break语句 B、 return语句 C、 continue语句 D、 空语句25、下面for 循环的正确描述是( A )A、for循环体语句中,可以包含多条语句,但必须用花括号括起来B、for循环只能用于循环次数已经确定的情况,不能用于无限循环C、for循环是先执行循环体语句后判断表达式D、在for循环中,不能用break语句完毕循环26、以下实型常量用指数形式表示正确的选项是( A )。 A、123E2 B、.e4 C、 e-5 D、1.2E-3.5 27、a是int类型变量,c是字符变量以下输入语句中错误的选项是( B )A、scanf("%d,%c",&a,&c); B、scanf("%d%c",a,c);C、scanf("%d%c",&a,&c); D、scanf("d=%d,c=%c",&a,&c);28、执行以下语句后输出结果是( C ) int i,*[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++) printf(″%d″,*[i][2-i]); A、 147 B、 159 C、 357 D、 36929、设有int a=1,b=2,c=3,d=4,m=2,n=2;执行〔m=a>b〕&&(n=c>d)后n的值( D )A、 1 B、 2 C、 3 D、 030、C语言中while和do-while循环的主要区别是( A )。 A、do-while的循环体至少无条件执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句31、以下运算符中优先级最高的是( B )A、< B、 + C、&& D、 !=32、执行以下程序段后的输出结果是( C )main(){ int a=4; float b=9.5;printf(“a=%d,b=%4.2f\n〞,a,b); }A、 a=%d,b=%f\n B、a=%d,b=%fC、a=4,b=9.50 D、a=4,b=9.533、以下选项定义了整型变量a,b和c,并为这三个变量赋初值为2,不正确的语句是( A )A、 int a=b=c=2; B、 int a=2,b=2,c=2; C、 int a,b,c; D、 int a=2,c=2,b;a=2;b=2;c=2; b=2;34、在C语言中,要求运算对象必须是整型的运算符是( D )。 A、 / B、 + C、 == D、 %35、假设t为double类型,表达式t=1,t+5,t++的值是( C )A、1 B、6.0 C、2.0 D、1.036、在调用函数时,如果实参是简单变量,则它与对应形参之间的数据传递方式是( A )A、 单向值传递 B、 地址传递 C、 由实参传给形参,再由形参传给实参 D、 传递方式由用户指定37、不能把字符串“Hello!〞赋给数组b的语句是( B )A、char b[10]={'H','e','l','l','o','!'};B、 char b[10] ;b="Hello!";C、char b[10] ;strcpy(b,"Hello!");D、char b[10]="Hello!";38、以下正确的函数声明形式是( C )A、 floatfun( int *, int y )B、 floatfun( int *; int y);C、 floatfun( int, int) ; D、 float fun( int *, y ) ;39、以下对二维数组a的正确说明是( C )。 A、 int a[3][]; B、 float a[3,4]; C、double a[3][4]; D、 float a(3)(4);40、以下关于C语言中注释的表达中错误的选项是( D )A、 注释。












