c语言复习参考题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为
A)36 B)0 C)-24 D)-60
正确答案: D
2、下列表达式中,结果为5的是
A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3
正确答案: B
3、已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是
A)-1 B)0 C)1 D)语句错误
正确答案: B
4、已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为
A)1 B)2 C)3 D)4
正确答案: C
5、若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是
A)9 B)8 C)3 D)2
正确答案: C
6、数学上的不等式和C语言中的关系表达式意义不同。

若x=5,y=6,z=7,则x<y<z在c语言中值为
()。

A) 1 B) 0 C) 5 D)7
7、若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a>b?a:c<d?c:d的值(B)。

A)1 B)2 C)3 D)4
8、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)
运算后,n的值为()。

A)0 B)1 C)2 D)3
9、已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
A)A B)a C)Z D)c
正确答案: D
10、以下选项中,当x为大于1的奇数时,值为0的表达式是:( d)
A:x%2= =1 B:x/2 C:x%2!=0 D: x%2==0
11、为表示关系x≥y≥z,应使用C语言表达式(a)
A) (x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)
12、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是(a)
A)(!a==1)&&(!b==0) B)(!a||b)C)a && b D)a||(b+b)&&(c-a)
13、逗号表达式(a=3*5,a*4),a+15的值为( B )
A)15 B)30 C)60 D)90
14、设a=1,b=2,c=3,则(a>b)!=c的值为( B )
A) 0 B) 1 C) 2 D)3
15、设有int i; char c; float f; 则以下结果为整数的表达式是( D )
A)i+f B)c+f C)i+c+f D)i*c
16、表示关系a<=b<=c的c语言表达式为( B)
A) (a<=b)&(b<=c) B) (a<=b)&&(b<=c) C) (a<=b<=c) D) (a<=b)AND(b<=c)
17、有表达式:x=(y=4,z=16,k=32),式中x、y、z和k都是int型变量,则x=( c )
A) 4 B)16 C) 32 D)52
18、执行语句“x=(a=3,b=a- -)后x,a,b 的值依次为(C)
A) 3,3,2 B) 3,2,2 C) 3,2,3 D) 2,3,2
19、若有说明和语句:int a=5; ++a; 此处表达式++a的值是(C )。

A)4 B) 5 C)6 D)7
20、表达式9!=8的值是(D)。

A. true
B. 非零值
C. 0
D.1
21、表示关系x<=y<=z的c语言表达式为A
A. (X<=Y)&&(Y<=Z) B. (X<=Y)AND(Y<=Z) C. (X<=Y<=Z) D. (X<=Y)&(Y<=Z)
22、.若已定义x和y为double类型,则表达式:x=2,y=x+1/2的值是(C )。

A. 1
B. 2
C. 2.0
D.2.5
23、C语言程序中,有以下语句int a[5];int *p=a;则以下运算正确的是
A) 329%3.2 B)a++ C)p++ D)p=a+2
24、下列语句中,定义含有n个元素的一维指针数组的语句是()
A) int p[n] B) int *p() C) int *p[n]; D) int (*p)[n];
1、以下程序的输出结果是()。

main( )
{ char str[12]={"china"};
printf(“%d\n”, strlen(str) );
}
A) 12 B) 6 C) 5 D)11
2、如下程序的输出结果为:()
main( )
{ int x=1,a=0,b=0;
switch ( x )
{ case 0: b++;
case 1: a++;
case 2: a++,b++;
}
printf ( "a=%d,b=%d \n ",a,b );
}
A)a=1 , b=1 B) a=2 , b=1 C) a=1 , b=0 D) a=2 , b=0
3、若int k=8;则执行下列程序后,变量k的正确结果是
main()
{int k=8;
switch(k)
{case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;}
printf("%d\n",k);}
A)12 B)11 C)10 D)9
正确答案: D
4、阅读下列程序,则执行结果是
#include "stdio.h"
main()
{int a=0,b=0,c=0,i;
for(i=0;i<4;i++)
switch(i)
{case 0:a=i++;
case 1:b=i++;
case 2:c=i++;
case 3:i++;}
printf("%d,%d,%d,%d\n",a,b,c,i);}
A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 正确答案: C
5、下列程序的输出结果是
#include "stdio.h"
main()
{ int i=6;
while(i--)
printf("%d",--i);
printf("\n");}
A)531 B)420 C)654321 D)死循环
正确答案: B
6、下面程序的运行结果是
#include "stdio.h"
main()
{int j,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))break;
if(i>=j-1){printf("%d",j);
k++;}}}
A)5359 B)5953 C)3595 D)9535
正确答案: A
7、阅读下面程序,则执行后的结果为
#include "stdio.h"
main()
{fun3(fun1(),fun2());}
fun1()
{ int k=20;
return k;}
fun2()
{ int a=15;
return a;}
fun3(int a,int b)
{int k;
k=(a-b)*(a+b);
printf("%d\n",k);}
A)0 B)184 C)175 D)编译不通过
正确答案: C
8、阅读下面程序,则执行后的输出结果为
#include "stdio.h"
fun(int a,int b)
{int s;
s=a*b/2;
printf("%d\n",s);}
main()
{int a=10,b=16;
fun(a,b);}
A)10 B)16 C)160 D)80
正确答案: D
9、阅读下面程序,则程序执行后的结果为
#include "stdio.h"
main()
{int a=4,b=6,c=7;
double d,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
double fun(int a,int b,int c)
{double s;
s=a%b*c;
return s;}
A)27 B)27.000000 C)28 D)28.000000 正确答案: D
10阅读下列程序,则执行后输出的结果是
#include "stdio.h"
int k=1;
main()
{fun(k);
printf("%d\n",k);}
fun(int k)
{ k++;
k=k*6;}
A)1 B)2 C)6 D)12
正确答案: A
11、阅读下列程序,则执行后的输出结果为
#include "stdio.h"
fun(int x)
{if(x/2>0)fun(x/2);
printf("%d",x%2);}
main()
{ fun(20);
putchar(′\n′);}
A)11100 B)10100 C)10101 D)10110 正确答案: B
12、以下程序的输出结果是( D )
main( )
{ int a=2, b=3;
float x=3.5, y=2.5 , z;
z=(float)(a+b)/2+(int)x%(int)y;
printf(“%.2f\n”, z );
}
A)2.00 B)2.50 C)3.00 D)3.50
13、有如下程序段:
int *p, a=10,b=1;
p= &a; a= *p+b;
执行该程序段后,a的值为:B
A) 12 B) 11 C) 10 D)编译出错14.下面程序的输出是(A )。

main( )
{ int k=10; printf("k=%d,k=%o,k=%x\n",k,k,k); }
A. k=10,k=12,k=a
B.k=10,k=112,k=112
C. k=10,k=012,k=0xa
D.k=10,k=11,k=11
1、改正下列程序中不正确的语句。

(5分)s=s+1.0/n
main()
{ int n ;
float s=1.0;
for(n=10;n>1;n- -)
s=s+1/n;
printf(“%6.1f\n”,s);
}
2、程序改错(每小题5分,共10分)
main()
{ long int k ;
k=35555 ;
printf (“%d ”, k); }
3、main()
{ int sum , k ;
sum=0 ;
k= 1 ;
while (k < =100 )
{sum = sum+k ;
k + + ;}
printf (“ sum=%d\n”, sum); }
1、C语言中,在使用变量之前,必须先进行定义。

2、二进制数101010001转换成八进制数是 (521)8。

3、C语言是结构化程序设计语言,主要包括顺序结构选择结构循环结构。

4、#define N 10,则N的数据类型是符号常量(或宏),它不能再进行赋值。

5、若 float a=2.15,b;b=(int)a;则a= 2.15 ,b= 2 。

6、x=7,y=1,执行x + = ( y + 3/2 ),x = 10 。

7、C语言程序的基本语句中,常用的关于循环的语句是 while do while for if goto(其中任意三个) 。

8、算术表达式‘c’+3 * 3.14 / 2 + 155的值是 double 型数据。

9、printf (“abc\rd ” );的输出结果是 dbc 。

10、判断某一年year是否为闰年,须具备下面两条件之一,(1)能被4整除,但不能被100整除(2)能被400整除。

写出判断闰年为真的逻辑表达式__ if(year%4&&year%100!=0|||year%400==0) 。

11、以下语句的功能是把两个整型变量的值进行交换,请填空
int a=18,b=5;{int t;t=a ; a=b ; b=t;}
12、以下定义:int a[10],char c[5] 则变量a和b的存储空间分别为 20 字节和 5 字节。

13.C语言中的标识符只能由字母、数字和下划线组成
14.若a为整形变量,a=12则表达式a+=a-a*=a的值为 0 。

15.在函数内定义变量时,省略存储类别,其默认存储类别是___自动__________。

16设 int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是 9 。

17.若int a=98;则putchar(a)的输出结果是: b 。

18.设x和y均为int型变量,且x=1,y=2,则以下表达式的值为1.0+x/y _1.0________
19.若a=3,b=4,c=5则a+b>c&&b==c的值为 0 。

20.在函数内定义变量时,省略存储类别,其默认存储类别是____整形__________。

21、已定义char ch=‘$’; int i=1; j; 执行j=!ch && i++以后,
表达式的值为: 0 i的值为: 1
22、执行以下程序时输入123456 <回车>,则输出结果是: 12,56
#include <stdio.h>
main()
{int a=1,b;
scanf(“%2d%*2d%2d”,&a,&b);
printf(“%d,%d”,&a,&b);}
23、已知字母A的ASCII码为65。

以下程序运行后的输出结果是: 67G 。

main()
{ char a, b;
a=’A’+’5’-’3’; b=a+’6’-’2’;
printf("%d %c\n", a, b); }
24、定义int a=5,b=20;若执行语句printf("%d\n",++a*--b/5%13);后,输出的结果为【6】。

正确答案: 1.(9)
25、执行下面的程序后,a的值为 : 8
main()
{ int a,b;
for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1) {b+=3; continue; }
b-=5; } }
26、下面程序是求出数组arr的两条对角线上元素之和,请填空。

#include "stdio.h"
main()
{int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(【12】)a=a+arr[i][j];
for(i=0;i<3;i++)
for(【13】 ;j>=0;j--)
if(【14】)
b=b+ arr[i][j];
printf("%d,%d\n",a,b);}
正确答案: 1.(i==j ) 2.(j=2) 3.(i+j==2)
27、从键盘上输入10个数,求其平均值。

scanf(“%f”,&f) sum+=f (或者sum=sum+f)(10分)
main()
{ int i;
float f, sum=0.0;
for(i=1;i<11;i++)
{ ;
; } printf(“average=%f\n”,sum/10); }
28.用do-while循环求 1到100的和。

#include <stdio.h>
main()
{ int i,sum=0;
i=1 ;
do
{ sum+=i;
i++ ;
}while( i<=100 );
printf("%d",sum);
}
29. 输出圆面积,面积大于100时停止。

#define PI 3.14159
main()
{ int r;
float area;
for( r=1 ; r<=10 ; r++ )
{ area=PI*r*r;
if( area>100 )
break;
printf("r=%d,area=%.2f\n",r,area);
}
}
30.用数组求Fibonacci数列前20个数。

#include <stdio.h>
main()
{ int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i ]=f[i-2 ]+f[i-1];
for(i=0; i<20 ;i++)
{ if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
31、以下程序运行后的输出结果是: 1 。

main()
{ int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b);}
32、阅读下面程序,则在执行时候的输出为。

#include "stdio.h"
main()
{int x=1,y=2,z=0;
if(x=2)z=x,x=y,y=z;
printf("%d,%d\n",x,y);}
正确答案: 1.(2,2)
33、语句printf("%d\n",′H′-′0′+64);的执行结果为【9】。

正确答案: 1.(88)
34、阅读下面程序,则程序的执行结果为【10】。

#include "stdio.h"
main()
{ int a=10;
fun(a);
printf("%d\n",a);}
fun(int x)
{ x=50;}
正确答案: 1.(10)
35、写出下列程序的运行结果。

main()
{ int n;
For(n=3; n<=10; n++)
{ if(n%5= =0) break;
Printf(“%d”,n);
}
36、 main( )
{ int i=2,x=5,j=7;
fun(j,6);
printf(“i=%d;j=%d;x=%d\n”,i,j,x);
}
fun(int i,int j)
{ int x=7;
printf(“i=%d;j=%d;x=%d\n”,i,j,x);
}
程序的运行结果为: i=7; j=6; x=7 i=2; j=7; x=5
37、程序如下。

用代数式写出该程序执行的功能。

1!+2!+3!+ (20)
main()
{ float n,s=0,t=1;
for(n=1;n<=20;n++)
{ t=t*n; s=s+t; }
printf("%e\n",s);
}
38、试分析如下的程序的功能,用代数式写出本程序作的工作。

1+2+3+……+20
main()
{int n,s=0;
for(n=1;n<=20;n++)
s+=n;
printf("%d\n",s);
}
39、分析以下程序的输出结果,将输出结果最后一行写出来。

(5分)9*1=9 9*2=18……………………9*8=72 9*9=81
# include "stdio.h"
main()
{
int i,j,result;
printf("\n");
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
}
一:
1、以下不合法的用户标识符是 ( )
A)s1_low B)Char C) case D) _3d
2、下面各选项中,均是C语言标识符的选项组是
A)forchinato B)long_123short56_do
C)voidunion_342 D)text.txt _023_3ew
3、下列强制类型转换错误的是:()。

A)(double)a; B) (int)(x+y); C) (float)(5%3); D) int(x);
3、作为结构化的语言,C语言程序应尽量采用模块的方式进行构造。

C的基本单位是()。

A)语句 B)数据 C)子程序 D)函数
4、以下选项中,不能作为合法常量的是()
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0
5、假定int类型变量占用两个字节,其有定义:int x[8]={0,2,4};,则数组x在内存中所占字节数
是()。

A) 16 B) 8 C) 6 D) 3
6、以下叙述不正确的是:()
A)在C程序中所有的变量必须先定义后使用。

B)在程序中,APH和aph是两个不同的变量。

C)若a和b类型相同,在执行了赋值语句a=b后,b中的值将放入a中,b中的值不变。

D)当输入数值时,对于整型变量只能输入整型值,对于实型变量只能输入实型值。

7、有定义语句:int b;char c[10]; ,则正确的输入语句是 B
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
8、以下对一维数组c进行正确的定义初始化的语句是
A)int c[10]=0; B)int c[10]={0}*10;
C)int c[1]={0,0,0,0,0,0,0}; D)int c[10]={0};
正确答案: D
9、以下二维数组c的定义形式是
A)int c[3][] B)float c[3,4] C)double c[3][4] D)float c(3)(4)正确答案: C
10、已知:int c[3][4];则对数组元素引用正确的是
A)c[1][4] B)c[1.5][0] C)c[1+0][0] D)以上表达都错误
正确答案: C
11、若有以下语句,则正确的描述是
char a[]="toyou";
char b[]={′t′,′o′,′y′,′o′,′u′};
A)a数组和b数组的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)a数组等价于b数组
正确答案: C
12、已知:char a[15],b[15]={"I love china"};则在程序中能将字符串I love china赋给数组a的正确语句是
A)a="I love china"; B)strcpy(b,a); C)a=b; D)strcpy(a,b);
正确答案: D
13、SA有以下程序,其中%u表示按无符号整数输出
Main()
{unsigned x=0xFFFF;
Printf(“%u\n”,x);
}
程序输出结果是: ( b)
A:-1 B :65535 C:32767 D:0xFFFF
14、以下不合法的的字符常量是:( b)
A:‘\x13’ B:‘\081’ C:‘65’ D:‘\n’
15、可在C程序中用作用户标识符的一组标识符是:(a)
A:and _2007 B: Data y-m-d C:Hi Dr.Tom D:case Big1
16、C语言中,运乍对象必须是整型数的运算符是(a)
A) % B) / C) %和 / D) * *
17、二进制数01100100换成十六进制数是(a)
A) 64 B) 63 C) 100 D) 144
18、有以下程序(a)
#include
main()
{ char c1=’1’,c2=’2’;
c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);}
:a<回车> 后,以下叙述正确的是
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
19、以下叙述正确的是:( C )
A)数组的大小是固定的,但可以有不同的类型的数组元素
B)数组的大小是可变的,但所有数组元素的类型必须相同
C)数组的大小是固定的,所有数组元素的类型必须相同
D)数组的大小是可变的,可以有不同的类型的数组元素
20、以下给字符数组str定义和赋值正确的是( c )
A)char str[10]; B)char str[10];
str={“china”}; strcopy(str,”abcdefghijklm”);
C)char str[]={“china”}; D)char str[10]={“abcdefghijklm”};
21、在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( A )
A)4 B)1 C)2 D)5
22、C语言程序中,有以下语句int a[5];int *p=a;则以下运算正确的是 D
A) 329%3.2 B)a++ C)p++ D)p=a+2
23、以下程序的输出结果是( B )
main( )
{ char s[12]={"string"};
printf(“%d\n”, strlen(s) );
}
A) 7 B) 6 C) 12 D) 13
24、以下叙述中正确的是:( A )
A)使用putchar函数时,必须在之前包含头文件stdio.h
B)调用printf函数时,必须要有输出表列
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
25、C语言中while和do-while循环的主要区别是( A )
A)do-while的循环至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while的循环体不能是复合语句
D)do-while允许从外部转到循环内
26、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是(D )
for (i=5;i>=0;i--)
for(j=0;j<5;j++)
{ }
A.20
B.25
C.24
D.30
27、若要定义a为3*4的二维数组,正确的定义语句是(B)。

A float a(3,4);
B float a[3][4];
C float a(3)(4);
D float a[3,4];
28、设有定义:char s[12]={"string"};则printf("%d\n',strlen(s));输出是(B )
A. 7
B. 6
C. 12
D.13
29、下列赋值正确的是: A
char c;
A :c=’a’;
B : c="a";
C : c="CHINA"
D : c=’CHINA’;
30、下列强制类型转换错误的是:D
A (double)a;
B (int)(x+y)
C (float)(5%3);
D int(x);
31、在printf函数中用来输出十六进制无符号整数的格式字符是(C )
A.d格式符
B.x格式符
C.u格式符
D.o格式符
32、C语言提供的合法的数据类型关键字是(C )。

A. Double
B. SHORT
C. int
D.Char
33、在C语言中,合法的字符型常数是(A )。

A. ‘\0’
B. A
C. 65
D.a
二:
1、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为
A)36 B)0 C)-24 D)-60
正确答案: D
2、下列表达式中,结果为5的是
A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3
正确答案: B
3、已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是
A)-1 B)0 C)1 D)语句错误
正确答案: B
4、已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为
A)1 B)2 C)3 D)4
正确答案: C
5、若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是
A)9 B)8 C)3 D)2
正确答案: C
6、数学上的不等式和C语言中的关系表达式意义不同。

若x=5,y=6,z=7,则x<y<z在c语言中值为
()。

A) 1 B) 0 C) 5 D)7
7、若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a>b?a:c<d?c:d的值(B)。

A)1 B)2 C)3 D)4
8、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)
运算后,n的值为()。

A)0 B)1 C)2 D)3
9、已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
A)A B)a C)Z D)c
正确答案: D
10、以下选项中,当x为大于1的奇数时,值为0的表达式是:( d)
A:x%2= =1 B:x/2 C:x%2!=0 D: x%2==0
11、为表示关系x≥y≥z,应使用C语言表达式(a)
A) (x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)
12、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是(a)
A)(!a==1)&&(!b==0) B)(!a||b)C)a && b D)a||(b+b)&&(c-a)
13、逗号表达式(a=3*5,a*4),a+15的值为( B )
A)15 B)30 C)60 D)90
14、设a=1,b=2,c=3,则(a>b)!=c的值为( B )
A) 0 B) 1 C) 2 D)3
15、设有int i; char c; float f; 则以下结果为整数的表达式是( D )
A)i+f B)c+f C)i+c+f D)i*c
16、表示关系a<=b<=c的c语言表达式为( B)
A) (a<=b)&(b<=c) B) (a<=b)&&(b<=c) C) (a<=b<=c) D) (a<=b)AND(b<=c)
17、有表达式:x=(y=4,z=16,k=32),式中x、y、z和k都是int型变量,则x=( c )
A) 4 B)16 C) 32 D)52
18、执行语句“x=(a=3,b=a- -)后x,a,b 的值依次为(C)
A) 3,3,2 B) 3,2,2 C) 3,2,3 D) 2,3,2
19、若有说明和语句:int a=5; ++a; 此处表达式++a的值是(C )。

A)4 B) 5 C)6 D)7
20、表达式9!=8的值是(D)。

A. true
B. 非零值
C. 0
D.1
21、表示关系x<=y<=z的c语言表达式为A
A. (X<=Y)&&(Y<=Z) B. (X<=Y)AND(Y<=Z) C. (X<=Y<=Z) D. (X<=Y)&(Y<=Z)
22、.若已定义x和y为double类型,则表达式:x=2,y=x+1/2的值是(C )。

A. 1
B. 2
C. 2.0
D.2.5
23、C语言程序中,有以下语句int a[5];int *p=a;则以下运算正确的是
A) 329%3.2 B)a++ C)p++ D)p=a+2
24、下列语句中,定义含有n个元素的一维指针数组的语句是()
A) int p[n] B) int *p() C) int *p[n]; D) int (*p)[n]; 三:
1、以下程序的输出结果是()。

main( )
{ char str[12]={"china"};
printf(“%d\n”, strlen(str) );
}
A) 12 B) 6 C) 5 D)11
2、如下程序的输出结果为:()
main( )
{ int x=1,a=0,b=0;
switch ( x )
{ case 0: b++;
case 1: a++;
case 2: a++,b++;
}
printf ( "a=%d,b=%d \n ",a,b );
}
A)a=1 , b=1 B) a=2 , b=1 C) a=1 , b=0 D) a=2 , b=0
3、若int k=8;则执行下列程序后,变量k的正确结果是
main()
{int k=8;
switch(k)
{case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;}
printf("%d\n",k);}
A)12 B)11 C)10 D)9
正确答案: D
4、阅读下列程序,则执行结果是
#include "stdio.h"
main()
{int a=0,b=0,c=0,i;
for(i=0;i<4;i++)
switch(i)
{case 0:a=i++;
case 1:b=i++;
case 2:c=i++;
case 3:i++;}
printf("%d,%d,%d,%d\n",a,b,c,i);}
A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 正确答案: C
5、下列程序的输出结果是
#include "stdio.h"
main()
{ int i=6;
while(i--)
printf("%d",--i);
printf("\n");}
A)531 B)420 C)654321 D)死循环
正确答案: B
6、下面程序的运行结果是
#include "stdio.h"
main()
{int j,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))break;
if(i>=j-1){printf("%d",j);
k++;}}}
A)5359 B)5953 C)3595 D)9535
正确答案: A
7、阅读下面程序,则执行后的结果为
#include "stdio.h"
main()
{fun3(fun1(),fun2());}
fun1()
{ int k=20;
return k;}
fun2()
{ int a=15;
return a;}
fun3(int a,int b)
{int k;
k=(a-b)*(a+b);
printf("%d\n",k);}
A)0 B)184 C)175 D)编译不通过
正确答案: C
8、阅读下面程序,则执行后的输出结果为
#include "stdio.h"
fun(int a,int b)
{int s;
s=a*b/2;
printf("%d\n",s);}
main()
{int a=10,b=16;
fun(a,b);}
A)10 B)16 C)160 D)80
正确答案: D
9、阅读下面程序,则程序执行后的结果为
#include "stdio.h"
main()
{int a=4,b=6,c=7;
double d,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
double fun(int a,int b,int c)
{double s;
s=a%b*c;
return s;}
A)27 B)27.000000 C)28 D)28.000000 正确答案: D
10阅读下列程序,则执行后输出的结果是
#include "stdio.h"
int k=1;
main()
{fun(k);
printf("%d\n",k);}
fun(int k)
{ k++;
k=k*6;}
A)1 B)2 C)6 D)12
正确答案: A
11、阅读下列程序,则执行后的输出结果为
#include "stdio.h"
fun(int x)
{if(x/2>0)fun(x/2);
printf("%d",x%2);}
main()
{ fun(20);
putchar(′\n′);}
A)11100 B)10100 C)10101 D)10110
正确答案: B
12、以下程序的输出结果是( D )
main( )
{ int a=2, b=3;
float x=3.5, y=2.5 , z;
z=(float)(a+b)/2+(int)x%(int)y;
printf(“%.2f\n”, z );
}
A)2.00 B)2.50 C)3.00 D)3.50
13、有如下程序段:
int *p, a=10,b=1;
p= &a; a= *p+b;
执行该程序段后,a的值为:B
A) 12 B) 11 C) 10 D)编译出错
14.下面程序的输出是(A )。

main( )
{ int k=10; printf("k=%d,k=%o,k=%x\n",k,k,k); }
A. k=10,k=12,k=a
B.k=10,k=112,k=112
C. k=10,k=012,k=0xa
D.k=10,k=11,k=11
四:
4、以下描述错误的是
A)C程序中,函数可以直接或间接的调用自己
B)函数调用时,函数名必须与所调用的函数名字完全一致
C)函数说明语句中的类型必须与函数返回值的类型一致
D)实参数可以与形参个数不一致
正确答案: D
5、C语言规定函数的返回值的类型是由( D )。

A) return语句中表达式类型决定 B)调用该函数时的主调函数类型决定
C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型决定
6、以下叙述中不正确的是(D )
A) 在不同的函数中可以使用相同名字的变量
B) 函数中的形式参数是自动变量
C) 在一个函数内定义的变量只在本函数范围内有效
D) 在一个函数内的复合语句中定义的变量在本函数范围内有效
7、作为结构化的语言,C语言程序应尽量采用模块的方式进行构造。

C的基本模块单位是(A )
A)函数 B)过程 C)子程序 D)子例程
8、下列关于 #include命令的叙述中错误的一条是C
A) 在#include 命令中,文件名可以用双引号或尖括号括起来
B) 在一个被包含文件中又可以包含另一个被包含文件
C) 在一个#include命令中可以指定多个被包含文件
D) 在一个#include命令中只能指定一个被包含文件。

相关文档
最新文档