国二C选择题

一、选择题

1、以下选项中属于C 语言的数据类型是( )。

A. 复合型

B. 双精度型

C. 逻辑型

D. 集合型

2、以下说法中正确的是( )。

A. C语言程序总是从第一个的函数开始执行

B. 在C 语言程序中, 要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

3、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

4、下列描述中不正确的是( )。

A 、字符型数组中可能存放字符串。

B 、可以对字符型数组进行整体输入、输出。

C 、可以对整型数组进行整体输入、输出。

D 、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p 的值,不能表示a[1]地址的表达式为( )。

A. p+1

B. a+1

C. a++

D. ++p

6、设有如下定义: int x=10,y=3,z;

则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

8、读出以下语句的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x--,--y);

A. 10 10

B. 9 9

C. 9 10

9、两次运行下面的程序, 如果从键盘上分别输入6和3,则输出结果是( )。

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。

A)aa 数组成元素的值分别是"abcd" 和ABCD"

B)aa 是指针变量, 它指向含有两个数组元素的字符型一维数组

C)aa 数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa 数组的两个元素中各自存放了字符‟a‟和‟A‟的地址

参考答案:1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D

11、以下语句的输出结果是( )。

int a=-1,b=4,k;

k=(+ +a

printf("%d,%d,%d\n",k,a,b);

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

12、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

13、执行下面的程序后,a 的值是( )。

#define SQR(X) X*X

main ( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf("%d\n",a); }

A. 10

B. 1

C. 9

D. 0

14、设A 为存放(短) 整型的一维数组,如果A 的首地址为P ,那么A 中第i 个元素的地址为(

A.P+i*2

B. P+(i-1)*2 来源:考试大

C. P+(i-1) 。 )

15、下列程序执行后输出的结果是( )。

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. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

16、表达式:10!=9的值是( )。

A. true

B. 非零值

C. 0

D. 1

17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。

A. i= *p;

B. *p=*&j;

C. i=&j;

D. i=* *p;

18、不能把字符串:Hello!赋给数组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!";

19、在C 程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func 的定义。

B. 对函数func 的调用。

C. 对函数func 的原型说明。

D. 不合法的。

20、以下程序的输出结果是( )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

参考答案:11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

1、设整型变量a 为5,使b 不为2的表达式是( )。

A. b=a/2

B. b=6-(--a)

C. b=a%2

D. b=a>3?2:1

2、为了避免嵌套的条件分支语句if-else 的二义性,C 语言规定:C 程序中的else 总是与( )组成配对关系。

A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D. 同一行上的if

3、以下程序的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x--,--y);

A. 10 10

B. 9 9 来源:考试大

C. 9 10

D. 10 9

4、设A 为存放(短) 整型的一维数组,如果A 的首地址为P ,那么A 中第i 个元素的地址为(

A.P+i*2

B. P+(i-1)*2

C. P+(i-1)

D. P+i

5、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

6、以下程序的输出结果是( )。

int a=5;

float x=3.14;

a*=x*(„E‟ - „A‟);

printf(“%f\n”,(float)a);

A. 62.000000

B. 62.800000

C. 63.000000

D. 62

7、设有说明double(*p1)[N];其中标识符p1是( )。

A. N个指向double 型变量的指针。

B. 指向N 个double 型变量的函数指针。

C. 一个指向由N 个double 型元素组成的一维数组的指针。

D. 具有N 个指针元素的一维指针数组,每个元素都只能指向double 型量。

8、在C 程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func 的定义。 。 )

B. 对函数func 的调用。

C. 对函数func 的原型说明。

D. 不合法的。

9、以下程序的输出结果是( )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

10、分析以下程序的输出结果是( )。

main()

{int a=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c); }

int adds(int x,int y)

{static int m=0,n=3;

n*=++m;

m=n%x+y++;

return(m); }

A. 2,3

B. 2,2

C. 3,2

D. 2,4

参考答案:1、C 2、C 3、D 4、B 5、D 、6、A 7、C 8、C 9、D 10、A

11、下列描述中不正确的是( )。

A. 字符型数组中可能存放字符串。

B. 可以对字符型数组进行整体输入、输出。

C. 可以对整型数组进行整体输入、输出。

D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

12、以下程序的输出结果是( )。

#define f(x) x*x

main()

{int a=6,b=2,c;

c=f(a)/f(b);

printf(“%d\n”,c);

}

A. 9

B. 6

C. 36

D. 18

13、设有如下定义: int x=10,y=3,z;

则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

14、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};

则语句for(i=0;i

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

15、以下对二维数组a 进行正确初始化的是( )

A. int a[2][3]={{1,2},{3,4},{5,6}};

B. int a[ ][3]={1,2,3,4,5,6};

C. int a[2][ ]={1,2,3,4,5,6};

D. int a[2][ ]={{1,2},{3,4}};

16、两次运行下面的程序, 如果从键盘上分别输入6和3, 则输出结果是( )。

int x;

scanf("%d",&x);

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

17、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是(

A)aa 数组成元素的值分别是"abcd" 和ABCD"

B)aa 是指针变量, 它指向含有两个数组元素的字符型一维数组

C)aa 数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa 数组的两个元素中各自存放了字符‟a‟和‟A‟的地址

18、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

19、下列程序的输出结果是( )。

int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf("%d",*(p++));

printf("%d\n",* *k);

A. 4 4 。 )

C. 2 4

D. 4 6

20、不能把字符串:Hello!赋给数组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!";

参考答案:11、C 12、C 13、D 14、C 15、B 16、C 17、D 18、D 19、C 20、B

1. 一个C 语言程序是由( ) 构成。

A. 语句

B. 行号

C. 数据

D. 函数

2. 下面标识符中正确的是( ) 。

A.d&ef

B.6a

C.z4x5c

D.a3/b4

3. 在C 语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。型、单精度实型变量所需的空间是()。

A.1、2、4

B.1、1、4

C.1、2、8

D.2、2、8

4. 为了避免嵌套的条件分支语句 if--else 中的else 总是与( ) 组成成对关系。

A. 缩排位置相同的

B. 在其之前未配对的

C. 在其之前未配对的最近的if

D. 在同一行上的if

5. 下列表达式的结果正确的是( ) 。

int aa,bb ,cc ,dd;

aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;

(aa+1==2)?bb=aa+2:aa+3

A.2

B.3

C. 1

D.5

6. 设有int x=11 ;则表达式(x+1/3)的值是( ) 。

A.3

B. 4

C. 11

D.12

7. 设有字符串A=“He has 钱!”,则该字符串的长度为( ) 。

B. 10

C. 11

D. 8

8. 有如下程序段, 则正确的执行结果是( )

int m=3;

while(m

{ printf(“%d ”,m-3); m++;}

A. 0 0 0

B.0 1 2

C.1 2 3

D. 无结果

9. 执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是( ) 。

A. 无输出

B. 结果不确定 http://ks.exam8.com

C.-1

D. 1

10. 有如下定义类型语句,若从键盘输入数据,正确的输入语句是( ) 。

int x; char y; char z[20];

A. scanf("%d%c%c",&x,&y,&z);

B. scanf("%d%c%s",&x,&y,&z);

C. scanf("%d%c%c",&x,&y,z);

D. scanf("%d%c%s",&x,&y,z);

11. struct ex

{ int x ; float y; char z ;} example;

则下面的叙述中不正确的是( ) 。

A. struct结构体类型的关键字

B. example是结构体类型名

C. x,y,z都是结构体成员名

D. struct ex是结构体类型

12. 在C 语言中对于实型数组, 其每个数组元素的类型是( ) 。

A. 实型

B. 整型

C. 可以为任何类型

D. 不确定

13. 若已定义:int a[9],*p=a;不能表示a[1] 地址的表达式是( ) 。

A. p+1

B. a+1

C. a++

D. ++p

14. 在TC2.0环境中,对文件进行保存使用的命令是( ) 。

A. OPEN

B. SAVE 来源:考试大网

C. LOAD

D. WRITE TO

15. 在C++的类中,用于表示公共类型的关键字是( ) 。

A. class

B. private

C. protect

D. public

1.D 2. C 3. A 4. C 5. B 6.C 7. B 8. B 9. D 10. D

11.B 12. A 13. C 14. B 15. D

1. 下列描述中不正确的是( C )。

A) 字符型数组中可以存放字符串

B) 可以对字符型数组进行整体输入、输出

C) 可以对整型数组进行整体输入、输出

D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

2. 执行下面的程序段后,变量k 中的值为( A )。

int k=3, s[2];

s[0]=k; k=s[1]*10;

A) 不定值

B) 33

C) 30

D) 10

3. 设有数组定义:char array[ ]="China"; 则数组array 所占的空间为( C )。

A) 4个字节

B) 5个字节

C) 6个字节

D) 7个字节

4. 下列程序执行后的输出结果是( D )。

#include

main( )

{ char arr[2][4];

strcpy(arr,"you");strcpy(arr[1],"me");

arr[0][3]=‟&‟;

printf("%s \n",arr);

}

A) you&me

B) you

C) me

D) err

5. 执行下列程序时输入:123456789,输出结果是( D )。

main( )

{ char s[100];

int c, i;

scanf("%c", &C);

scanf("%d", &i);

scanf("%s", s);

printf("%c, %d, %s\n", c, i,s);

}

A) 123,456,789 B) 1,456,789

C) 1,23,456,789

D) 1,23,456

6. 假定int 类型变量占用两个字节,若有定义:intx[10]={0,2,4}; 则数组x 在内存中所占字节数是( D )。

A) 3

B) 6

C) 10

D) 20

7. 以下程序的输出结果是( C )。

main( )

{int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A) 258

B) 741

C) 852

D) 369

8. 以下数组定义中不正确的是( D )。

A) int a[2][3];

B) int b[][3]={0,1,2,3};

C) intc[100][100]={0};

D) intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

9. 以下程序的输出结果是( A )。

main( )

{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A) 0650

B) 1470

C)5430

D) 输出值不定

10. 以下程序的输出结果是( B )。

#include

main( )

{char st[20]="hello\0\t\\\";

printf(%d %d\n",strlen(st),sizeof(st));

}

A) 9 9

B) 5 20

C) 9 20

11. 以下程序的输出结果是( B )。

main( )

{int i,k,a[10],p[3];

k=5;

for(i=0;i

for(i=0;i

for(i=0;i

printf("%d\n",k);

}

A) 20

B) 21

C)22

D) 23

12. 以下程序的输出结果是( C )。

main( )

{int i, x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i

}

A) 159

B) 147

C) 357

D) 369

13. 以下程序的输出结果是( A )。

main( )

{int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0;

for(i=1;i

for(j=0;j

printf("%d\n", s);

}

A) 18

B) 19

C) 20

D) 21

14. 以下程序的输出结果是( D )。

main( )

{char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k

}

A) ABCD

B) ABCD

C) EFG www. Examda.CoM

D) EFGH

FGH EFG JK IJKL

M

15. 当执行下面的程序时,如果输入ABC ,则输出结果是( A )。

#include

#include

main( )

{char ss[10]="12345";

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A) ABC6789

B) ABC67

C) 12345ABC6

D) ABC456789

16. 若要定义c 为2×3×4的三维数组,正确的定义语句是( A )。

A)float c[2][3][4]

B) float c[2,3,4]

C) floatc(2,3,4)D) float c(2)(3)(4)

17. 若定义inta[2][2]={1,2,3,4},则a 数组的各数组元素值分别为( A )。

A) a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4

B)a[0][0]=1,a[0][1]=3,a[1][0]=2,a[1][1]=4

C)a[0][0]=4,a[0][1]=3,a[1][0]=2,a[1][1]=1

D) a[0][0]=4,a[0][1]=2,a[1][0]=3,a[1][1]=1

18. 在下列叙述中,正确的一条是( A )。

A) 以下语句是正确的:c har c[]=”ab”;

B) 一维数组的定义可采用下列格式:int a(10);

C) 下面的语句定义了一个二维数组:float a[3,4];

D) 以下两个语句中的a[3][4]的含义相同:int a[3][4]; a[3][4]=1;

19. 当输入的数据为2、5时,以下程序的输出结果是( C )。

#include

main( )

{intf[100],i,j,k,m;

scanf(“%d%d”,&k,&m);

for(i=0;i

f[k-1]=1;

for(i=k;i

for(j=i-k;j

printf(“%d%10d%10d\n”,k,m,f[m]);

}

A) 3 5 5

B) 3 5 7

C) 2 5 5

D) 3 6 9

20. 在下列语句中,正确的是( A )。

A)char str[]=”China”;

B) char str[];str=”China”;

C) char str1[5],str2[]={”China”};str1=str2;

D) char str1[],str2[];str2={”China”};strcpy(str1,str2);

21. 下面语句中不正确的是( D )。

A) inta[5]={1,2,3,4,5};

B) int a[5]={1,2,3};

C) inta[]={0,0,0,0,0};

D) int a[5]={0*5};

22. 若先后输入4、1、5、3、7,以下程序的输出结果为( D )。

#defineMAX 100

main( )

{

int i,j,n,flag,t,a[MAX];

printf(“输入数据个数:”);

scanf(“%d\n”,&n);

for(i=1;i

for(i=1;i

{flag=1;

for(j=1;j

if(a[j]>a[j+1])

{flag=0;

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

if(flag) break;

}

for(i=1;i

printf(“\n”);

}

A) 2 4 6 7

B) 1 2 3 4

C) 1 5 4 7

D) 1 3 5 7

23. 以下程序的输出结果是( B )。

main( )

{int n,a[10];

for(n=0;n

a[n]=n;

for(n=9;n>=0;n--)

printf(“%d”,a[n]);

}

A) 1 2 3 4 5 6 7 8 9 10

B) 9 8 7 6 5 43 2 1 0

C) 10 9 8 7 6 5 4 3 2 1

D) 0 1 2 3 4 5 6 7 8 9

24. 若输入aefjhi 、c 、adfjhijk ,以下程序的输出结果为(B )。

#include

#include

main( )

{int i;

char string[20],str[3][20];

for(i=0;i

if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);

else strcpy(string,str[1]);

if(strcmp(str[2],string)>0)strcpy(string,str[2]);

printf(“Thelargest string is\n%s\n”,string);

}

A) adfjhi

B) c

C) aefjhijk

D) aefjhi

25. 以下程序的输出结果是( A )。

#include

#include

main( )

{char str[12]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};

printf(“%d\n”,strlen(str));

}

A) 6

B) 7

C) 11

D) 12

26. 有以下程序:

#include

#define N 6

main( )

{char c[N];

int i=0;

for(;i

for(i=0;i

}

输入以下三行,每行输入都是在第一列上开始,代表一个回车符:

a

b

cdef

程序的输出结果是( C )。c[i]={'a','\0','b','\0','c','d'}

A) abcdef

C) a

D) a

b b b

c cd d

d cdef

e

f

27. 设有:char str[ ]=“Beijing”; 则执行:printf(“%d\n”,strlen(strcpy(str, “China”)));后输出的结果为( A )。"china"copyto str with '\0',it will stop when the strlen meets with '\0'.

A) 5

B) 7

C) 12

D) 14

28. 请选出以下程序的输出结果(A )。

#include

main( )

{chars1[10],s2[10],s3[10],s4[10];

scanf(“%s%s”,s1,s2);gets(s3);gets(s4);

puts(s1);puts(s2);puts(s3);puts(s4);

}

输入数据如下:(此处代表回车符)

aaaa bbbb

cccc dddd

A) aaaa

B) aaaa

C) aaaa

D) aaaa bbbb

bbbb bbbb bbbb cccc

cccc cccc dddd dddd

cccc dddd dddd eeee

29. 请读程序:

main( )

{int n[2],i,j,k;

for(i=0;i

k=2;

for(i=0;i

for(j=0;j

printf(“%d\n”,n[k]);

}

上面程序的输出结果是( A )。

A) 不确定的值

B) 3

C) 2

30. 请读程序片段(字符串内没有空格字符) :printf(“%d\n”,strlen(“ATS \n012\1\\”));其输出结果应为( C )。

A) 11

B) 10

C) 9

D) 12

31. 下述对C 语言字符数组的描述中错误的是( C )。

A) 字符数组可以存放字符串

B) 字符数组中的字符串可以整体输入、输出

C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D) 不可以用关系运算符对字符数组中的字符串进行比较

32. 阅读下列程序:

main( )

{int n[3],i,j,k;

for(i=0;i

n[i]=0;

k=2; 考试大论坛

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf(“%d\n”,n[1]);

}

上述程序运行后,输出的结果是( D )。

A) 2B) 1C) 0

D) 3

33. 以下程序的输出结果是( C )。

main( )

{int n[3][3], i, j;

for(i=0;i

for(j=0;j

for(i=0;i

for(j=0;j

printf(“%d\n”, n[i][j]);

}

A) 14

B) 0

C) 6

D) 值不确定

34. 以下语句的输出结果为( A )。

printf(“%d\n”, strlen(“\t\”\065\xff\n”));

A) 5

B) 14

C) 8

D) 输出项不合法,无正常输出

35. 合法的数组定义是( D )。

A) int a[]=”string”;

B) int a[5]={0,1,2,3,4,5};

C) char a=”string”;

D) char a[]={0,1,2,3,4,5};

1. 下面程序段的运行结果是( C )。

int n=0;

while(n++

printf(“%d”,n);

A) 2

B) 3

C) 4

D) 有语法错

2. 设有程序段:

t=0;

while(printf(“*”))

{t++;

if(t

}

下面描述正确的是( D )。

A) 其中循环控制表达式与0等价

B) 其中循环控制表达式与'0' 等价

C) 其中循环控制表达式是不合法的

D) 以上说法都不对

3. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空( B )。

#include

main()

{int a,b,t;

scanf(“%d%d”,&a,&B);

while( ___________ )

{if(a>B)

{t=a;a=b;b=t;}

printf(“%d,%d\n”,a,B);

scanf("%d%d",&a,&B);

}

}

A) !a=b

B) a!=b

C) a==b

D) a=b

4.C 语言中,while 和do-while 循环的主要区别是( A )。

A) do-while的循环体至少无条件执行一次

B) while的循环控制条件比do-while 的循环控制条件更严格

C) do-while允许从外部转到循环体内

D) do-while的循环体不能是复合语句

5. 对以下程序段描述正确的是( C )。

x=-1;

do

{x=x*x;}

while(!x);

A) 是死循环

B) 循环执行二次

C) 循环执行一次

D) 有语法错误

6. 以下描述中正确的是( C )。

A) do-while循环中循环体内不能使用复合语句

B) do-while循环由do 开始,用while 结束,在while(表达式) 后面不能写分号

C) 在do-while 循环体中,一定要有能使while 后面表达式的值变为零(“假”)的操作

D) do-while循环中,根据情况可以省略while

7. 若有如下语句

int x=3;

do{ printf(“=”,x-=2);} while(!(--x));

则上面程序段( B )。

A) 输出的是1

B) 输出的是1和-2

C) 输出的是3和0

D) 是死循环

8. 下面有关for 循环的正确描述是( D )。

A) for循环只能用于循环次数已经确定的情况

B) for循环是先执行循环的循环体语句,后判断表达式

C) 在for 循环中,不能用break 语句跳出循环体

D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

9. 对for(表达式1; ;表达式3) 可理解为( B )。

A) for(表达式1;0; 表达式3)

B) for(表达式1;1; 表达式3)

C) for(表达式1; 表达式1; 表达式3)

D) for(表达式1; 表达式3; 表达式3)

10. 若i 为整型变量,则以下循环执行次数是( B )。

for(i=2;i==0;) printf(“%d”,i--);

A) 无限次

B) 0次

C) 1次

D) 2次

11. 以下不是无限循环的语句为( A )。

A) for(y=0,x=1;x>++y;x=i++) i=x;

B) for(;;x++=i);

C) while(1){x++;}

D) for(i=10;;i--) sum+=i;

12. 下面程序段的运行结果是( C )。

for(y=1;y

printf(“x=%d,y=%d”,x,y);

A) x=27,y=27

B) x=12,y=13

C) x=15,y=14

D) x=y=27

13. 执行语句for(i=1;i++

A) 3

B) 4

C) 5

D) 不定

14. 有一堆零件(100到200之间) ,如果分成4个零件一组的若干组,则多2个零件; 若分成7个零件一组,则多3个零件; 若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空( D )。 #include

main()

{int i;

for(i=100;i

if((i-2)%4==0)

if(!((i-3)%7))

if( ______ )

printf(“%d”,i);

}

A) i%9=5

B) i%9!=5

C) (i-5)%9!=0

D) i%9==5

15. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( B )。 #include

main()

{ int i=0,j,k;

do{i++;k=316-13*i;}while( _k______ );

j=k/11;

printf(“316=13*%d+11*%d”,i,j);

}

A) k/11

B) k

C) k/11==0

D) k==0

16. 下面程序的运行结果是( D )。

#include

main()

{int y=10;

do{y--;}while(--y);

printf(“%d\n”,y--);

}

A) -1

B) 1

C) 8

D) 0

17. 若运行以下程序时,从键盘输入ADescriptor(表示回车) ,则下面程序的运行结果是( D )。 #include

main()

{char c;

int v0=1,v1=0,v2=0;

do{

switch(c=getchar())

{case „a‟:case „A‟:

case „e‟:case „E‟:

case „i‟:case „I‟:

case „o‟:case „O‟:

case „u‟:case „U‟:v1+=1;

default:v0+=1;v2+=1;

}

}while(c!=‟\n‟);

printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A) v0=7,v1=4,v2=7

B) v0=8,v1=4,v2=8

C) v0=11,v1=4,v2=11

D) v0=12,v1=4,v2=12

18. 下面程序的运行结果是( B )。

#include

main()

{int a=1,b=10;

do

{b-=a;a++;}

while(b--

printf(“a=%d,b=%d\n”,a,B);

}

A) a=3,b=11

B) a=2,b=8

C) a=1,b=-1

D) a=4,b=9

19. 以下程序的输出结果是( B )。

main()

{ int num=0;

while(num

{ num++; printf(“%d\n”,num);}

}

A) 1

B) 1

C) 1

D) 1

2 2 2

3 3

4

20. 设有程序段

int k=10;

while(k=0) k=k-1;

则下面描述中正确的是( C )。

A) while循环执行10次

B) 循环是无限循环

C) 循环体语句一次也不执行

D) 循环体语句执行一次

21. 设有以下程序段

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);

则( B )。

A) 运行程序段后输出0

B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的

D) 程序段执行无限次

22. 语句while(!E);中的表达式!E 等价于( A )。

A) E==0

B) E!=1 来源:www.examda.com

C) E!=0

D) E==1

23. 下面程序段的运行结果是( A )。

a=1;b=2;c=2;

while(a printf("%d, %d, %d", a, b, C);

A) 1,2,0

B) 2,1,0

C) 1,2,1

D) 2,1,1

24. 下面程序段的运行结果是( D )。

x=y=0;

while(x

printf("%d, %d", y, x);

A) 20,7

C) 20,8

D) 8,20

25. 以下程序段的执行结果是( B )。

int a, y;

a=10; y=0;

do

{ a+=2; y+=a;

printf("a=%d y=%d\n", a, y);

if(y>20) break;

} while(a=14);

A) a=12 y=12

B) a=12 y=12

a=14 y=16 a=16 y=28

a=16 y=20

a=18 y=24

C) a=12 y=12

D) a=12 y=12

a=14 y=26

a=14 y=44

26.t 为int 类型,进人下面的循环之前,t 的值为0,则以下叙述中正确的是( B )。 while( t=l )

{……}

A) 循环控制表达式的值为0

B) 循环控制表达式的值为1

C) 循环控制表达式不合法

D) 以上说法都不对

27. 有以下程序段

int k=0;

while(k=1) k++;

while 循环执行的次数是( A )。

A) 无限次

B) 有语法错,不能执行

C) 一次也不执行

D) 执行1次

28. 以下程序执行后sum 的值是( C )。

main()

{ int i , sum;

for(i=1;i

printf("%d\n",sum);

}

A) 15

B) 14

C) 不确定

29. 有以下程序段

int x=3;

do

{ printf("%d",x-=2); }

while (!(--x));

其输出结果是( C )。

A) 1

B) 3 0

C) 1 -2

D) 死循环

30. 若输入12、8,以下程序的输出结果是( A )。

main()

{int a,b,num1,num2,temp;

scanf(“%d,%d”,&num1,&num2);

if(num1>num2)

{temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{temp=a%b;

a=b;

b=temp;

}

printf(“%d, %d”,a,num1*num2/a);

}

A) 4,24

B) 3,24

C) 5,25

D) 4,25

31. 以下程序的输出结果是( A )。

#include

#include

main()

{int s=1;

float n=1,pi=0;

double t=1;

while(fabs(t)>=2e-6)

{pi+=t;

n+=2;

s=-s;

t=s/n;

pi*=4;

printf(“pi=%.6f\n”,pi);

}

A) 3.141592

B) 1

C) 2e-6

D) 0

32. 以下程序的输出结果是( B )。

main()

{int i,f1,f2;

f1=f2=1;

for(i=0;i

{printf(“%d %d ”,f1,f2);

f1+=f2;

f2+=f1;

}

}

A) 1 2 3 4 5 6 7 8

B) 1 1 2 3 5 8 13 21

C) 1 1 3 5 7 9 11 13

D) 1 3 5 7 9 11 13 15

33. 下列叙述中,正确的一条是( B )。

A) 语句“goto 12;”是合法的

B) for(;;)语句相当于while(1)语句

C) if(表达式) 语句中,表达式的类型只限于逻辑表达式

D) break语句可用于程序的任何地方,以终止程序的执行

34. 以下程序的输出结果是( B )。

main()

{int a,b;

for(a=1,b=1;a

{if(b>=20) break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

printf(“%d\n”,a);

}

A) 7

B) 8

C) 9

D) 10

35. 以下的for 循环( C )

for(x=0,y=0;(y!=123)&&(x

A) 是无限循环

B) 循环次数不定

C) 执行4次

D) 执行3次

36.C 语言中( D )

A) 不能使用do-while 语句构成的循环

B) do-while语句构成的循环必须用break 语句才能退出

C) do-while语句构成的循环,当while 语句中的表达式值为非零时结束循环

D) do-while语句构成的循环,当while 语句中的表达式值为零时结束循环

37. 以下程序的输出结果是( A )。

main()

{int i;

for(i=1;i

{if(i%2)

printf(“*”);

else

continue;

printf(“#”);

}

printf(“$\n”);

}

A) *#*#*#$

B) #*#*#*$

C) *#*#$

D) #*#*$

38. 有以下程序,从第一列开始输入数据2473(代表一个回车符) ,则程序的输出结果为( A )。 #include

main()

{int c;

while((c=getchar())!=‟\n‟)

{switch(c-„2‟)

{case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;

}

}

printf(“\n”);

}

A) 668977

B) 668966

C) 6677877

D) 6688766

39. 执行以下程序片段的结果是( B )。

int x=23;

do

{printf(“%d”, x--);}

while(!x);

A) 打印出321

B) 打印出23

C) 不打印任何内容

D) 陷入死循环

40. 若x 是int 型变量,则执行以下程序片段的结果是( D )。

for(x=3;x

A) **3##4**5

B) ##3**4##5

C) ##3

D) **3##4

**4##5 **5

41. 有以下程序,若运行时从键盘输入3.6 2.4(代表一个回车符) ,则程序的输出结果为( B )。 #include

#include

main()

{float x,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while(1)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

else break;

}

printf(“%f\n”, y);

}

A) 1.500000

B) 1.600000

C) 2.000000

D) 2.400000

42. 以下程序的输出结果是( D )。

main()

{int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf(“%d %d ”,x--,y);

}

A) 10 1 9 2

B) 9 8 7 6

C) 10 9 9 0

D) 10 10 9 1

43. 以下程序的输出结果是( A )。

main()

{int n=4;

while(n--)

printf(“%d ”,--n);

}

A) 2 0

B) 3 1

C) 3 2 1

D) 2 1 0

44. 以下程序的输出结果是( B )。

main()

{int i;

for(i=‟A‟;i

printf(“%c”,i+32);

}

A) 编译通不过,无输出

B) aceg

C) acegi

D) abcdefghi

45. 若i 、j 已定义为int 型,则以下程序段中内循环体的总的执行次数是( A )。 for(i=5;i;i--)

for(j=0;j

A) 20

B) 24

C) 25

D) 30

46. 若j 为int 型变量,则以下for 循环语句的执行结果是( B )。

for(j=10;j>3;j--)

{if(j%3) j--;--j;--j;printf(“%d ”,j);}

A) 6 3

B) 7 4

C) 6 2

D) 7 3

47. 以下程序的执行结果是( D )。

main()

{int i,x;

for(i=1;i

{x=i;

if(++x%2==0)

if(x%3==0)

if(x%7==0)

printf(“%d”,i);

}

}

A) 28

B) 27 来源:考试大

C) 42

D) 41

48. 以下程序的执行结果是( B )。

main()

{int i,j;

for(j=10;j

{ for(i=9;i if(!(j%i)) break;

if(i>=j-1) printf(“%d”,j);

}

}

A) 11

B) 10

C) 9

D) 10 11

49. 在下列选项中,没有构成死循环的程序段是( C )。

A) int i=100;

B) for(;;);

while(1)

{i=i0+1;

if(i>100) break;

}

C) int k=1000;

D) int s=36;

do{++k;} while(s);--s;

while(k>=10000);

50. 以下程序的输出结果是( B )。

main()

{int i,j,x=0;

for(i=0;i

{ x++;

for(j=0;j

{ if(j%2) continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

A) x=4

C) x=6

D) x=12

51. 运行以下程序后,如果从键盘上输入65 14,则输出结果是( C )。 main()

{int m,n;

scanf(“%d%d”,&m,&n);

while(m!=n)

{while(m>n) m-=n;

while(n>m) n-=m;

}

printf(“m=%d\n”, m);

}

A) m=3

B) m=2

C) m=1

D) m=0

52. 以下程序的输出结果是( C )。

main()

{int i,j,m=0,n=0;

for(i=0;i

for(j=0;j

if(j>=i) m=1;n++;

printf(“%d\n”, n);

}

A) 4

B) 2

C) 1

D) 0

53. 以下程序执行后sum 的值是( C )。

main()

{ int i , sum=0;

for(i=1;i

printf("%d\n",sum);

}

A) 6

B) 3

C) 死循环

D) 0

1. 运算符________的优先级最高。

A.[ ]

B. +=

C. ?:

D.++

{ int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }

此程序的输出结果是______________.

A.30

B. 24

C. 60

D. 48

3. 若有如下定义,则__________是对数组元素的正确的引用。. int a[10] , *p ; p=a ;

A. *&a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4. 设整型变量n 的值为2,执行语句“n+=n-=n*n;”后,n 的值是__________

A. 0

B. 4

C. - 4

D. 2

5. 各种基本数据类型的存贮空间正确的长度排列为__________。

A.Char

C.Char

6. 下面的变量说明中__________是正确的。

A.char :a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c

7. 表达式y=(13>12?15:6>7?8:9)的值为____________ 。

A 9

B 8

C 15

D. 1

8. 若x=5,y=3 则y*=x+5; y的值为___________.

A. 10

B. 20

C. 15

D. 30

9. 能正确表示a 和b 同时为正或同时为负的逻辑表达式是_________。

A.a>=0||b>=0)&&(a

B.(a>=0 && b>=0)&&(a

C.(a+b>0) &&(a+b

D. a*b>0

10.C 语言中,合法的字符型常数是_________。

A.„A‟

B.“A”

C. 65

D. A

参考答案:1 A 2B 3D 4C 5C 6C 7C 8D 9D 10A

11. 已有定义 int x=3, y=4, z=5;则表达式“!(x+y)+z-1&&y+z/2”的值是________。

A.6

B.0

C.2

D.1

12. 若变量c 为char 类型,能正确判断出c 为小写字母的表达式是_______。

A.‟a‟

B. (c>=‟a‟) || (c

C.(„a‟=c)

D. (c>=‟a‟) && (c

13. 设有定义:long x=-123456L; 则以下能够正确输出变量x 值的语句是_______。

A.printf(“x=%d\n”,x)

B.printf(“x=%ld\n”,x)

C.printf(“x=•l\n”,x)

C.printf(“x=%D\n”,x);

14. 从循环体内某一层跳出,继续执行循环外的语句是:___________。

A. break语句

B.return 语句

C.continue 语句

D. 空语句。

15.C 语言用_______表示逻辑“真”值。

A.true

B.t 或y

C. 非零整型值

D. 整型值0

16. 为了避免嵌套的条件分支语句if —else 的二义性,C 语言规定:C 程序中的else 总是与_____组成配对关系。

A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D. 同一行上的if

17. 在函数中默认存储类型说明符的变量应该是________存储类型。

A. 内部静态

B. 外部

C. 自动

D. 寄存器

18.C 语言中以只读方式打开一个文件应选择_______________参数。

A.“r”

B.“w”

C.“rb”

D.“a”

19. 设有数组定义:char array[]=”student”;则数组所占的存贮空间为__________。

A.6个字节

B. 7个字节

C. 8个字节

D. 9个字节

20. 根据C 语言的语法规则,下列________个是不合法标识符。

A.do

B. Name

C. R5

D. _exam

参考答案:11D 12D 13B 14A 15C 16C 17A 18A 19C 20A

1.若要“向文本文件尾增加数据”,在fopen 函数中应使用的文件方式是( B )。

A) “ab+”

B) “a”

C) “ab”

D) “a+”

2.在C 语言中,用于实现打开文件的库函数是( B )。

A) fclose()

B) fopen()

C) fseek()

D) rewind()

3.若要“为读/写建立一个新的二进制文件”,在fopen 函数中应使用的文件方式是( D )。

A) “w+”

B) “rb+” 来源:考试大网

C) “ab+”

D) “wb+”

4.若在fopen 函数中使用文件的方式是“ab”,该方式的含义是( B )。

A) 为读/写打开一个文件

B) 向二进制文件尾增加数据

C) 为输出打开一个文本文件

D) 为读/写建立一个新的二进制文件

5.若在fopen 函数中使用文件的方式是“r”,该方式的含义是( A )。

A) 为输入(读)打开一个文本文件

B) 为输出(写)打开一个文本文件

C) 为读/写打开一个文本文件

D) 为读/写建立一个新的二进制文件

6.在C 程序中,可把整型数以二进制形式存放到文件中的函数是( C )。

A) fprintf函数

B) fread函数

C) fwrite函数

D) fputc函数

7.若fp 是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是( C )。

A) EOF

B) 0

C) 非零值

D) NULL

8.下面的程序执行后,文件test.t 中的内容是( A )。 #include

void fun(char *fname., char *st)

{FILE *myf; int i;

myf=fopen(fname, "w");

for(i=0;i

fclose (myf);

}

main()

{fun("test.t", "new world"); fun("test.t", "hello,";)

A) hello,

B) new worldhello,

C) new world

D) hello, rld

一、选择题

1、以下选项中属于C 语言的数据类型是( )。

A. 复合型

B. 双精度型

C. 逻辑型

D. 集合型

2、以下说法中正确的是( )。

A. C语言程序总是从第一个的函数开始执行

B. 在C 语言程序中, 要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

3、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

4、下列描述中不正确的是( )。

A 、字符型数组中可能存放字符串。

B 、可以对字符型数组进行整体输入、输出。

C 、可以对整型数组进行整体输入、输出。

D 、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p 的值,不能表示a[1]地址的表达式为( )。

A. p+1

B. a+1

C. a++

D. ++p

6、设有如下定义: int x=10,y=3,z;

则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

8、读出以下语句的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x--,--y);

A. 10 10

B. 9 9

C. 9 10

9、两次运行下面的程序, 如果从键盘上分别输入6和3,则输出结果是( )。

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。

A)aa 数组成元素的值分别是"abcd" 和ABCD"

B)aa 是指针变量, 它指向含有两个数组元素的字符型一维数组

C)aa 数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa 数组的两个元素中各自存放了字符‟a‟和‟A‟的地址

参考答案:1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D

11、以下语句的输出结果是( )。

int a=-1,b=4,k;

k=(+ +a

printf("%d,%d,%d\n",k,a,b);

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

12、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

13、执行下面的程序后,a 的值是( )。

#define SQR(X) X*X

main ( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf("%d\n",a); }

A. 10

B. 1

C. 9

D. 0

14、设A 为存放(短) 整型的一维数组,如果A 的首地址为P ,那么A 中第i 个元素的地址为(

A.P+i*2

B. P+(i-1)*2 来源:考试大

C. P+(i-1) 。 )

15、下列程序执行后输出的结果是( )。

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. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

16、表达式:10!=9的值是( )。

A. true

B. 非零值

C. 0

D. 1

17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。

A. i= *p;

B. *p=*&j;

C. i=&j;

D. i=* *p;

18、不能把字符串:Hello!赋给数组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!";

19、在C 程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func 的定义。

B. 对函数func 的调用。

C. 对函数func 的原型说明。

D. 不合法的。

20、以下程序的输出结果是( )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

参考答案:11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

1、设整型变量a 为5,使b 不为2的表达式是( )。

A. b=a/2

B. b=6-(--a)

C. b=a%2

D. b=a>3?2:1

2、为了避免嵌套的条件分支语句if-else 的二义性,C 语言规定:C 程序中的else 总是与( )组成配对关系。

A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D. 同一行上的if

3、以下程序的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x--,--y);

A. 10 10

B. 9 9 来源:考试大

C. 9 10

D. 10 9

4、设A 为存放(短) 整型的一维数组,如果A 的首地址为P ,那么A 中第i 个元素的地址为(

A.P+i*2

B. P+(i-1)*2

C. P+(i-1)

D. P+i

5、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

6、以下程序的输出结果是( )。

int a=5;

float x=3.14;

a*=x*(„E‟ - „A‟);

printf(“%f\n”,(float)a);

A. 62.000000

B. 62.800000

C. 63.000000

D. 62

7、设有说明double(*p1)[N];其中标识符p1是( )。

A. N个指向double 型变量的指针。

B. 指向N 个double 型变量的函数指针。

C. 一个指向由N 个double 型元素组成的一维数组的指针。

D. 具有N 个指针元素的一维指针数组,每个元素都只能指向double 型量。

8、在C 程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func 的定义。 。 )

B. 对函数func 的调用。

C. 对函数func 的原型说明。

D. 不合法的。

9、以下程序的输出结果是( )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

10、分析以下程序的输出结果是( )。

main()

{int a=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c); }

int adds(int x,int y)

{static int m=0,n=3;

n*=++m;

m=n%x+y++;

return(m); }

A. 2,3

B. 2,2

C. 3,2

D. 2,4

参考答案:1、C 2、C 3、D 4、B 5、D 、6、A 7、C 8、C 9、D 10、A

11、下列描述中不正确的是( )。

A. 字符型数组中可能存放字符串。

B. 可以对字符型数组进行整体输入、输出。

C. 可以对整型数组进行整体输入、输出。

D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

12、以下程序的输出结果是( )。

#define f(x) x*x

main()

{int a=6,b=2,c;

c=f(a)/f(b);

printf(“%d\n”,c);

}

A. 9

B. 6

C. 36

D. 18

13、设有如下定义: int x=10,y=3,z;

则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

14、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};

则语句for(i=0;i

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

15、以下对二维数组a 进行正确初始化的是( )

A. int a[2][3]={{1,2},{3,4},{5,6}};

B. int a[ ][3]={1,2,3,4,5,6};

C. int a[2][ ]={1,2,3,4,5,6};

D. int a[2][ ]={{1,2},{3,4}};

16、两次运行下面的程序, 如果从键盘上分别输入6和3, 则输出结果是( )。

int x;

scanf("%d",&x);

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

17、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是(

A)aa 数组成元素的值分别是"abcd" 和ABCD"

B)aa 是指针变量, 它指向含有两个数组元素的字符型一维数组

C)aa 数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa 数组的两个元素中各自存放了字符‟a‟和‟A‟的地址

18、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

19、下列程序的输出结果是( )。

int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf("%d",*(p++));

printf("%d\n",* *k);

A. 4 4 。 )

C. 2 4

D. 4 6

20、不能把字符串:Hello!赋给数组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!";

参考答案:11、C 12、C 13、D 14、C 15、B 16、C 17、D 18、D 19、C 20、B

1. 一个C 语言程序是由( ) 构成。

A. 语句

B. 行号

C. 数据

D. 函数

2. 下面标识符中正确的是( ) 。

A.d&ef

B.6a

C.z4x5c

D.a3/b4

3. 在C 语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。型、单精度实型变量所需的空间是()。

A.1、2、4

B.1、1、4

C.1、2、8

D.2、2、8

4. 为了避免嵌套的条件分支语句 if--else 中的else 总是与( ) 组成成对关系。

A. 缩排位置相同的

B. 在其之前未配对的

C. 在其之前未配对的最近的if

D. 在同一行上的if

5. 下列表达式的结果正确的是( ) 。

int aa,bb ,cc ,dd;

aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;

(aa+1==2)?bb=aa+2:aa+3

A.2

B.3

C. 1

D.5

6. 设有int x=11 ;则表达式(x+1/3)的值是( ) 。

A.3

B. 4

C. 11

D.12

7. 设有字符串A=“He has 钱!”,则该字符串的长度为( ) 。

B. 10

C. 11

D. 8

8. 有如下程序段, 则正确的执行结果是( )

int m=3;

while(m

{ printf(“%d ”,m-3); m++;}

A. 0 0 0

B.0 1 2

C.1 2 3

D. 无结果

9. 执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是( ) 。

A. 无输出

B. 结果不确定 http://ks.exam8.com

C.-1

D. 1

10. 有如下定义类型语句,若从键盘输入数据,正确的输入语句是( ) 。

int x; char y; char z[20];

A. scanf("%d%c%c",&x,&y,&z);

B. scanf("%d%c%s",&x,&y,&z);

C. scanf("%d%c%c",&x,&y,z);

D. scanf("%d%c%s",&x,&y,z);

11. struct ex

{ int x ; float y; char z ;} example;

则下面的叙述中不正确的是( ) 。

A. struct结构体类型的关键字

B. example是结构体类型名

C. x,y,z都是结构体成员名

D. struct ex是结构体类型

12. 在C 语言中对于实型数组, 其每个数组元素的类型是( ) 。

A. 实型

B. 整型

C. 可以为任何类型

D. 不确定

13. 若已定义:int a[9],*p=a;不能表示a[1] 地址的表达式是( ) 。

A. p+1

B. a+1

C. a++

D. ++p

14. 在TC2.0环境中,对文件进行保存使用的命令是( ) 。

A. OPEN

B. SAVE 来源:考试大网

C. LOAD

D. WRITE TO

15. 在C++的类中,用于表示公共类型的关键字是( ) 。

A. class

B. private

C. protect

D. public

1.D 2. C 3. A 4. C 5. B 6.C 7. B 8. B 9. D 10. D

11.B 12. A 13. C 14. B 15. D

1. 下列描述中不正确的是( C )。

A) 字符型数组中可以存放字符串

B) 可以对字符型数组进行整体输入、输出

C) 可以对整型数组进行整体输入、输出

D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

2. 执行下面的程序段后,变量k 中的值为( A )。

int k=3, s[2];

s[0]=k; k=s[1]*10;

A) 不定值

B) 33

C) 30

D) 10

3. 设有数组定义:char array[ ]="China"; 则数组array 所占的空间为( C )。

A) 4个字节

B) 5个字节

C) 6个字节

D) 7个字节

4. 下列程序执行后的输出结果是( D )。

#include

main( )

{ char arr[2][4];

strcpy(arr,"you");strcpy(arr[1],"me");

arr[0][3]=‟&‟;

printf("%s \n",arr);

}

A) you&me

B) you

C) me

D) err

5. 执行下列程序时输入:123456789,输出结果是( D )。

main( )

{ char s[100];

int c, i;

scanf("%c", &C);

scanf("%d", &i);

scanf("%s", s);

printf("%c, %d, %s\n", c, i,s);

}

A) 123,456,789 B) 1,456,789

C) 1,23,456,789

D) 1,23,456

6. 假定int 类型变量占用两个字节,若有定义:intx[10]={0,2,4}; 则数组x 在内存中所占字节数是( D )。

A) 3

B) 6

C) 10

D) 20

7. 以下程序的输出结果是( C )。

main( )

{int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A) 258

B) 741

C) 852

D) 369

8. 以下数组定义中不正确的是( D )。

A) int a[2][3];

B) int b[][3]={0,1,2,3};

C) intc[100][100]={0};

D) intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

9. 以下程序的输出结果是( A )。

main( )

{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A) 0650

B) 1470

C)5430

D) 输出值不定

10. 以下程序的输出结果是( B )。

#include

main( )

{char st[20]="hello\0\t\\\";

printf(%d %d\n",strlen(st),sizeof(st));

}

A) 9 9

B) 5 20

C) 9 20

11. 以下程序的输出结果是( B )。

main( )

{int i,k,a[10],p[3];

k=5;

for(i=0;i

for(i=0;i

for(i=0;i

printf("%d\n",k);

}

A) 20

B) 21

C)22

D) 23

12. 以下程序的输出结果是( C )。

main( )

{int i, x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i

}

A) 159

B) 147

C) 357

D) 369

13. 以下程序的输出结果是( A )。

main( )

{int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0;

for(i=1;i

for(j=0;j

printf("%d\n", s);

}

A) 18

B) 19

C) 20

D) 21

14. 以下程序的输出结果是( D )。

main( )

{char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k

}

A) ABCD

B) ABCD

C) EFG www. Examda.CoM

D) EFGH

FGH EFG JK IJKL

M

15. 当执行下面的程序时,如果输入ABC ,则输出结果是( A )。

#include

#include

main( )

{char ss[10]="12345";

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A) ABC6789

B) ABC67

C) 12345ABC6

D) ABC456789

16. 若要定义c 为2×3×4的三维数组,正确的定义语句是( A )。

A)float c[2][3][4]

B) float c[2,3,4]

C) floatc(2,3,4)D) float c(2)(3)(4)

17. 若定义inta[2][2]={1,2,3,4},则a 数组的各数组元素值分别为( A )。

A) a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4

B)a[0][0]=1,a[0][1]=3,a[1][0]=2,a[1][1]=4

C)a[0][0]=4,a[0][1]=3,a[1][0]=2,a[1][1]=1

D) a[0][0]=4,a[0][1]=2,a[1][0]=3,a[1][1]=1

18. 在下列叙述中,正确的一条是( A )。

A) 以下语句是正确的:c har c[]=”ab”;

B) 一维数组的定义可采用下列格式:int a(10);

C) 下面的语句定义了一个二维数组:float a[3,4];

D) 以下两个语句中的a[3][4]的含义相同:int a[3][4]; a[3][4]=1;

19. 当输入的数据为2、5时,以下程序的输出结果是( C )。

#include

main( )

{intf[100],i,j,k,m;

scanf(“%d%d”,&k,&m);

for(i=0;i

f[k-1]=1;

for(i=k;i

for(j=i-k;j

printf(“%d%10d%10d\n”,k,m,f[m]);

}

A) 3 5 5

B) 3 5 7

C) 2 5 5

D) 3 6 9

20. 在下列语句中,正确的是( A )。

A)char str[]=”China”;

B) char str[];str=”China”;

C) char str1[5],str2[]={”China”};str1=str2;

D) char str1[],str2[];str2={”China”};strcpy(str1,str2);

21. 下面语句中不正确的是( D )。

A) inta[5]={1,2,3,4,5};

B) int a[5]={1,2,3};

C) inta[]={0,0,0,0,0};

D) int a[5]={0*5};

22. 若先后输入4、1、5、3、7,以下程序的输出结果为( D )。

#defineMAX 100

main( )

{

int i,j,n,flag,t,a[MAX];

printf(“输入数据个数:”);

scanf(“%d\n”,&n);

for(i=1;i

for(i=1;i

{flag=1;

for(j=1;j

if(a[j]>a[j+1])

{flag=0;

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

if(flag) break;

}

for(i=1;i

printf(“\n”);

}

A) 2 4 6 7

B) 1 2 3 4

C) 1 5 4 7

D) 1 3 5 7

23. 以下程序的输出结果是( B )。

main( )

{int n,a[10];

for(n=0;n

a[n]=n;

for(n=9;n>=0;n--)

printf(“%d”,a[n]);

}

A) 1 2 3 4 5 6 7 8 9 10

B) 9 8 7 6 5 43 2 1 0

C) 10 9 8 7 6 5 4 3 2 1

D) 0 1 2 3 4 5 6 7 8 9

24. 若输入aefjhi 、c 、adfjhijk ,以下程序的输出结果为(B )。

#include

#include

main( )

{int i;

char string[20],str[3][20];

for(i=0;i

if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);

else strcpy(string,str[1]);

if(strcmp(str[2],string)>0)strcpy(string,str[2]);

printf(“Thelargest string is\n%s\n”,string);

}

A) adfjhi

B) c

C) aefjhijk

D) aefjhi

25. 以下程序的输出结果是( A )。

#include

#include

main( )

{char str[12]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};

printf(“%d\n”,strlen(str));

}

A) 6

B) 7

C) 11

D) 12

26. 有以下程序:

#include

#define N 6

main( )

{char c[N];

int i=0;

for(;i

for(i=0;i

}

输入以下三行,每行输入都是在第一列上开始,代表一个回车符:

a

b

cdef

程序的输出结果是( C )。c[i]={'a','\0','b','\0','c','d'}

A) abcdef

C) a

D) a

b b b

c cd d

d cdef

e

f

27. 设有:char str[ ]=“Beijing”; 则执行:printf(“%d\n”,strlen(strcpy(str, “China”)));后输出的结果为( A )。"china"copyto str with '\0',it will stop when the strlen meets with '\0'.

A) 5

B) 7

C) 12

D) 14

28. 请选出以下程序的输出结果(A )。

#include

main( )

{chars1[10],s2[10],s3[10],s4[10];

scanf(“%s%s”,s1,s2);gets(s3);gets(s4);

puts(s1);puts(s2);puts(s3);puts(s4);

}

输入数据如下:(此处代表回车符)

aaaa bbbb

cccc dddd

A) aaaa

B) aaaa

C) aaaa

D) aaaa bbbb

bbbb bbbb bbbb cccc

cccc cccc dddd dddd

cccc dddd dddd eeee

29. 请读程序:

main( )

{int n[2],i,j,k;

for(i=0;i

k=2;

for(i=0;i

for(j=0;j

printf(“%d\n”,n[k]);

}

上面程序的输出结果是( A )。

A) 不确定的值

B) 3

C) 2

30. 请读程序片段(字符串内没有空格字符) :printf(“%d\n”,strlen(“ATS \n012\1\\”));其输出结果应为( C )。

A) 11

B) 10

C) 9

D) 12

31. 下述对C 语言字符数组的描述中错误的是( C )。

A) 字符数组可以存放字符串

B) 字符数组中的字符串可以整体输入、输出

C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D) 不可以用关系运算符对字符数组中的字符串进行比较

32. 阅读下列程序:

main( )

{int n[3],i,j,k;

for(i=0;i

n[i]=0;

k=2; 考试大论坛

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf(“%d\n”,n[1]);

}

上述程序运行后,输出的结果是( D )。

A) 2B) 1C) 0

D) 3

33. 以下程序的输出结果是( C )。

main( )

{int n[3][3], i, j;

for(i=0;i

for(j=0;j

for(i=0;i

for(j=0;j

printf(“%d\n”, n[i][j]);

}

A) 14

B) 0

C) 6

D) 值不确定

34. 以下语句的输出结果为( A )。

printf(“%d\n”, strlen(“\t\”\065\xff\n”));

A) 5

B) 14

C) 8

D) 输出项不合法,无正常输出

35. 合法的数组定义是( D )。

A) int a[]=”string”;

B) int a[5]={0,1,2,3,4,5};

C) char a=”string”;

D) char a[]={0,1,2,3,4,5};

1. 下面程序段的运行结果是( C )。

int n=0;

while(n++

printf(“%d”,n);

A) 2

B) 3

C) 4

D) 有语法错

2. 设有程序段:

t=0;

while(printf(“*”))

{t++;

if(t

}

下面描述正确的是( D )。

A) 其中循环控制表达式与0等价

B) 其中循环控制表达式与'0' 等价

C) 其中循环控制表达式是不合法的

D) 以上说法都不对

3. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空( B )。

#include

main()

{int a,b,t;

scanf(“%d%d”,&a,&B);

while( ___________ )

{if(a>B)

{t=a;a=b;b=t;}

printf(“%d,%d\n”,a,B);

scanf("%d%d",&a,&B);

}

}

A) !a=b

B) a!=b

C) a==b

D) a=b

4.C 语言中,while 和do-while 循环的主要区别是( A )。

A) do-while的循环体至少无条件执行一次

B) while的循环控制条件比do-while 的循环控制条件更严格

C) do-while允许从外部转到循环体内

D) do-while的循环体不能是复合语句

5. 对以下程序段描述正确的是( C )。

x=-1;

do

{x=x*x;}

while(!x);

A) 是死循环

B) 循环执行二次

C) 循环执行一次

D) 有语法错误

6. 以下描述中正确的是( C )。

A) do-while循环中循环体内不能使用复合语句

B) do-while循环由do 开始,用while 结束,在while(表达式) 后面不能写分号

C) 在do-while 循环体中,一定要有能使while 后面表达式的值变为零(“假”)的操作

D) do-while循环中,根据情况可以省略while

7. 若有如下语句

int x=3;

do{ printf(“=”,x-=2);} while(!(--x));

则上面程序段( B )。

A) 输出的是1

B) 输出的是1和-2

C) 输出的是3和0

D) 是死循环

8. 下面有关for 循环的正确描述是( D )。

A) for循环只能用于循环次数已经确定的情况

B) for循环是先执行循环的循环体语句,后判断表达式

C) 在for 循环中,不能用break 语句跳出循环体

D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

9. 对for(表达式1; ;表达式3) 可理解为( B )。

A) for(表达式1;0; 表达式3)

B) for(表达式1;1; 表达式3)

C) for(表达式1; 表达式1; 表达式3)

D) for(表达式1; 表达式3; 表达式3)

10. 若i 为整型变量,则以下循环执行次数是( B )。

for(i=2;i==0;) printf(“%d”,i--);

A) 无限次

B) 0次

C) 1次

D) 2次

11. 以下不是无限循环的语句为( A )。

A) for(y=0,x=1;x>++y;x=i++) i=x;

B) for(;;x++=i);

C) while(1){x++;}

D) for(i=10;;i--) sum+=i;

12. 下面程序段的运行结果是( C )。

for(y=1;y

printf(“x=%d,y=%d”,x,y);

A) x=27,y=27

B) x=12,y=13

C) x=15,y=14

D) x=y=27

13. 执行语句for(i=1;i++

A) 3

B) 4

C) 5

D) 不定

14. 有一堆零件(100到200之间) ,如果分成4个零件一组的若干组,则多2个零件; 若分成7个零件一组,则多3个零件; 若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空( D )。 #include

main()

{int i;

for(i=100;i

if((i-2)%4==0)

if(!((i-3)%7))

if( ______ )

printf(“%d”,i);

}

A) i%9=5

B) i%9!=5

C) (i-5)%9!=0

D) i%9==5

15. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( B )。 #include

main()

{ int i=0,j,k;

do{i++;k=316-13*i;}while( _k______ );

j=k/11;

printf(“316=13*%d+11*%d”,i,j);

}

A) k/11

B) k

C) k/11==0

D) k==0

16. 下面程序的运行结果是( D )。

#include

main()

{int y=10;

do{y--;}while(--y);

printf(“%d\n”,y--);

}

A) -1

B) 1

C) 8

D) 0

17. 若运行以下程序时,从键盘输入ADescriptor(表示回车) ,则下面程序的运行结果是( D )。 #include

main()

{char c;

int v0=1,v1=0,v2=0;

do{

switch(c=getchar())

{case „a‟:case „A‟:

case „e‟:case „E‟:

case „i‟:case „I‟:

case „o‟:case „O‟:

case „u‟:case „U‟:v1+=1;

default:v0+=1;v2+=1;

}

}while(c!=‟\n‟);

printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A) v0=7,v1=4,v2=7

B) v0=8,v1=4,v2=8

C) v0=11,v1=4,v2=11

D) v0=12,v1=4,v2=12

18. 下面程序的运行结果是( B )。

#include

main()

{int a=1,b=10;

do

{b-=a;a++;}

while(b--

printf(“a=%d,b=%d\n”,a,B);

}

A) a=3,b=11

B) a=2,b=8

C) a=1,b=-1

D) a=4,b=9

19. 以下程序的输出结果是( B )。

main()

{ int num=0;

while(num

{ num++; printf(“%d\n”,num);}

}

A) 1

B) 1

C) 1

D) 1

2 2 2

3 3

4

20. 设有程序段

int k=10;

while(k=0) k=k-1;

则下面描述中正确的是( C )。

A) while循环执行10次

B) 循环是无限循环

C) 循环体语句一次也不执行

D) 循环体语句执行一次

21. 设有以下程序段

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);

则( B )。

A) 运行程序段后输出0

B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的

D) 程序段执行无限次

22. 语句while(!E);中的表达式!E 等价于( A )。

A) E==0

B) E!=1 来源:www.examda.com

C) E!=0

D) E==1

23. 下面程序段的运行结果是( A )。

a=1;b=2;c=2;

while(a printf("%d, %d, %d", a, b, C);

A) 1,2,0

B) 2,1,0

C) 1,2,1

D) 2,1,1

24. 下面程序段的运行结果是( D )。

x=y=0;

while(x

printf("%d, %d", y, x);

A) 20,7

C) 20,8

D) 8,20

25. 以下程序段的执行结果是( B )。

int a, y;

a=10; y=0;

do

{ a+=2; y+=a;

printf("a=%d y=%d\n", a, y);

if(y>20) break;

} while(a=14);

A) a=12 y=12

B) a=12 y=12

a=14 y=16 a=16 y=28

a=16 y=20

a=18 y=24

C) a=12 y=12

D) a=12 y=12

a=14 y=26

a=14 y=44

26.t 为int 类型,进人下面的循环之前,t 的值为0,则以下叙述中正确的是( B )。 while( t=l )

{……}

A) 循环控制表达式的值为0

B) 循环控制表达式的值为1

C) 循环控制表达式不合法

D) 以上说法都不对

27. 有以下程序段

int k=0;

while(k=1) k++;

while 循环执行的次数是( A )。

A) 无限次

B) 有语法错,不能执行

C) 一次也不执行

D) 执行1次

28. 以下程序执行后sum 的值是( C )。

main()

{ int i , sum;

for(i=1;i

printf("%d\n",sum);

}

A) 15

B) 14

C) 不确定

29. 有以下程序段

int x=3;

do

{ printf("%d",x-=2); }

while (!(--x));

其输出结果是( C )。

A) 1

B) 3 0

C) 1 -2

D) 死循环

30. 若输入12、8,以下程序的输出结果是( A )。

main()

{int a,b,num1,num2,temp;

scanf(“%d,%d”,&num1,&num2);

if(num1>num2)

{temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{temp=a%b;

a=b;

b=temp;

}

printf(“%d, %d”,a,num1*num2/a);

}

A) 4,24

B) 3,24

C) 5,25

D) 4,25

31. 以下程序的输出结果是( A )。

#include

#include

main()

{int s=1;

float n=1,pi=0;

double t=1;

while(fabs(t)>=2e-6)

{pi+=t;

n+=2;

s=-s;

t=s/n;

pi*=4;

printf(“pi=%.6f\n”,pi);

}

A) 3.141592

B) 1

C) 2e-6

D) 0

32. 以下程序的输出结果是( B )。

main()

{int i,f1,f2;

f1=f2=1;

for(i=0;i

{printf(“%d %d ”,f1,f2);

f1+=f2;

f2+=f1;

}

}

A) 1 2 3 4 5 6 7 8

B) 1 1 2 3 5 8 13 21

C) 1 1 3 5 7 9 11 13

D) 1 3 5 7 9 11 13 15

33. 下列叙述中,正确的一条是( B )。

A) 语句“goto 12;”是合法的

B) for(;;)语句相当于while(1)语句

C) if(表达式) 语句中,表达式的类型只限于逻辑表达式

D) break语句可用于程序的任何地方,以终止程序的执行

34. 以下程序的输出结果是( B )。

main()

{int a,b;

for(a=1,b=1;a

{if(b>=20) break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

printf(“%d\n”,a);

}

A) 7

B) 8

C) 9

D) 10

35. 以下的for 循环( C )

for(x=0,y=0;(y!=123)&&(x

A) 是无限循环

B) 循环次数不定

C) 执行4次

D) 执行3次

36.C 语言中( D )

A) 不能使用do-while 语句构成的循环

B) do-while语句构成的循环必须用break 语句才能退出

C) do-while语句构成的循环,当while 语句中的表达式值为非零时结束循环

D) do-while语句构成的循环,当while 语句中的表达式值为零时结束循环

37. 以下程序的输出结果是( A )。

main()

{int i;

for(i=1;i

{if(i%2)

printf(“*”);

else

continue;

printf(“#”);

}

printf(“$\n”);

}

A) *#*#*#$

B) #*#*#*$

C) *#*#$

D) #*#*$

38. 有以下程序,从第一列开始输入数据2473(代表一个回车符) ,则程序的输出结果为( A )。 #include

main()

{int c;

while((c=getchar())!=‟\n‟)

{switch(c-„2‟)

{case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;

}

}

printf(“\n”);

}

A) 668977

B) 668966

C) 6677877

D) 6688766

39. 执行以下程序片段的结果是( B )。

int x=23;

do

{printf(“%d”, x--);}

while(!x);

A) 打印出321

B) 打印出23

C) 不打印任何内容

D) 陷入死循环

40. 若x 是int 型变量,则执行以下程序片段的结果是( D )。

for(x=3;x

A) **3##4**5

B) ##3**4##5

C) ##3

D) **3##4

**4##5 **5

41. 有以下程序,若运行时从键盘输入3.6 2.4(代表一个回车符) ,则程序的输出结果为( B )。 #include

#include

main()

{float x,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while(1)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

else break;

}

printf(“%f\n”, y);

}

A) 1.500000

B) 1.600000

C) 2.000000

D) 2.400000

42. 以下程序的输出结果是( D )。

main()

{int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf(“%d %d ”,x--,y);

}

A) 10 1 9 2

B) 9 8 7 6

C) 10 9 9 0

D) 10 10 9 1

43. 以下程序的输出结果是( A )。

main()

{int n=4;

while(n--)

printf(“%d ”,--n);

}

A) 2 0

B) 3 1

C) 3 2 1

D) 2 1 0

44. 以下程序的输出结果是( B )。

main()

{int i;

for(i=‟A‟;i

printf(“%c”,i+32);

}

A) 编译通不过,无输出

B) aceg

C) acegi

D) abcdefghi

45. 若i 、j 已定义为int 型,则以下程序段中内循环体的总的执行次数是( A )。 for(i=5;i;i--)

for(j=0;j

A) 20

B) 24

C) 25

D) 30

46. 若j 为int 型变量,则以下for 循环语句的执行结果是( B )。

for(j=10;j>3;j--)

{if(j%3) j--;--j;--j;printf(“%d ”,j);}

A) 6 3

B) 7 4

C) 6 2

D) 7 3

47. 以下程序的执行结果是( D )。

main()

{int i,x;

for(i=1;i

{x=i;

if(++x%2==0)

if(x%3==0)

if(x%7==0)

printf(“%d”,i);

}

}

A) 28

B) 27 来源:考试大

C) 42

D) 41

48. 以下程序的执行结果是( B )。

main()

{int i,j;

for(j=10;j

{ for(i=9;i if(!(j%i)) break;

if(i>=j-1) printf(“%d”,j);

}

}

A) 11

B) 10

C) 9

D) 10 11

49. 在下列选项中,没有构成死循环的程序段是( C )。

A) int i=100;

B) for(;;);

while(1)

{i=i0+1;

if(i>100) break;

}

C) int k=1000;

D) int s=36;

do{++k;} while(s);--s;

while(k>=10000);

50. 以下程序的输出结果是( B )。

main()

{int i,j,x=0;

for(i=0;i

{ x++;

for(j=0;j

{ if(j%2) continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

A) x=4

C) x=6

D) x=12

51. 运行以下程序后,如果从键盘上输入65 14,则输出结果是( C )。 main()

{int m,n;

scanf(“%d%d”,&m,&n);

while(m!=n)

{while(m>n) m-=n;

while(n>m) n-=m;

}

printf(“m=%d\n”, m);

}

A) m=3

B) m=2

C) m=1

D) m=0

52. 以下程序的输出结果是( C )。

main()

{int i,j,m=0,n=0;

for(i=0;i

for(j=0;j

if(j>=i) m=1;n++;

printf(“%d\n”, n);

}

A) 4

B) 2

C) 1

D) 0

53. 以下程序执行后sum 的值是( C )。

main()

{ int i , sum=0;

for(i=1;i

printf("%d\n",sum);

}

A) 6

B) 3

C) 死循环

D) 0

1. 运算符________的优先级最高。

A.[ ]

B. +=

C. ?:

D.++

{ int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }

此程序的输出结果是______________.

A.30

B. 24

C. 60

D. 48

3. 若有如下定义,则__________是对数组元素的正确的引用。. int a[10] , *p ; p=a ;

A. *&a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4. 设整型变量n 的值为2,执行语句“n+=n-=n*n;”后,n 的值是__________

A. 0

B. 4

C. - 4

D. 2

5. 各种基本数据类型的存贮空间正确的长度排列为__________。

A.Char

C.Char

6. 下面的变量说明中__________是正确的。

A.char :a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c

7. 表达式y=(13>12?15:6>7?8:9)的值为____________ 。

A 9

B 8

C 15

D. 1

8. 若x=5,y=3 则y*=x+5; y的值为___________.

A. 10

B. 20

C. 15

D. 30

9. 能正确表示a 和b 同时为正或同时为负的逻辑表达式是_________。

A.a>=0||b>=0)&&(a

B.(a>=0 && b>=0)&&(a

C.(a+b>0) &&(a+b

D. a*b>0

10.C 语言中,合法的字符型常数是_________。

A.„A‟

B.“A”

C. 65

D. A

参考答案:1 A 2B 3D 4C 5C 6C 7C 8D 9D 10A

11. 已有定义 int x=3, y=4, z=5;则表达式“!(x+y)+z-1&&y+z/2”的值是________。

A.6

B.0

C.2

D.1

12. 若变量c 为char 类型,能正确判断出c 为小写字母的表达式是_______。

A.‟a‟

B. (c>=‟a‟) || (c

C.(„a‟=c)

D. (c>=‟a‟) && (c

13. 设有定义:long x=-123456L; 则以下能够正确输出变量x 值的语句是_______。

A.printf(“x=%d\n”,x)

B.printf(“x=%ld\n”,x)

C.printf(“x=•l\n”,x)

C.printf(“x=%D\n”,x);

14. 从循环体内某一层跳出,继续执行循环外的语句是:___________。

A. break语句

B.return 语句

C.continue 语句

D. 空语句。

15.C 语言用_______表示逻辑“真”值。

A.true

B.t 或y

C. 非零整型值

D. 整型值0

16. 为了避免嵌套的条件分支语句if —else 的二义性,C 语言规定:C 程序中的else 总是与_____组成配对关系。

A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D. 同一行上的if

17. 在函数中默认存储类型说明符的变量应该是________存储类型。

A. 内部静态

B. 外部

C. 自动

D. 寄存器

18.C 语言中以只读方式打开一个文件应选择_______________参数。

A.“r”

B.“w”

C.“rb”

D.“a”

19. 设有数组定义:char array[]=”student”;则数组所占的存贮空间为__________。

A.6个字节

B. 7个字节

C. 8个字节

D. 9个字节

20. 根据C 语言的语法规则,下列________个是不合法标识符。

A.do

B. Name

C. R5

D. _exam

参考答案:11D 12D 13B 14A 15C 16C 17A 18A 19C 20A

1.若要“向文本文件尾增加数据”,在fopen 函数中应使用的文件方式是( B )。

A) “ab+”

B) “a”

C) “ab”

D) “a+”

2.在C 语言中,用于实现打开文件的库函数是( B )。

A) fclose()

B) fopen()

C) fseek()

D) rewind()

3.若要“为读/写建立一个新的二进制文件”,在fopen 函数中应使用的文件方式是( D )。

A) “w+”

B) “rb+” 来源:考试大网

C) “ab+”

D) “wb+”

4.若在fopen 函数中使用文件的方式是“ab”,该方式的含义是( B )。

A) 为读/写打开一个文件

B) 向二进制文件尾增加数据

C) 为输出打开一个文本文件

D) 为读/写建立一个新的二进制文件

5.若在fopen 函数中使用文件的方式是“r”,该方式的含义是( A )。

A) 为输入(读)打开一个文本文件

B) 为输出(写)打开一个文本文件

C) 为读/写打开一个文本文件

D) 为读/写建立一个新的二进制文件

6.在C 程序中,可把整型数以二进制形式存放到文件中的函数是( C )。

A) fprintf函数

B) fread函数

C) fwrite函数

D) fputc函数

7.若fp 是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是( C )。

A) EOF

B) 0

C) 非零值

D) NULL

8.下面的程序执行后,文件test.t 中的内容是( A )。 #include

void fun(char *fname., char *st)

{FILE *myf; int i;

myf=fopen(fname, "w");

for(i=0;i

fclose (myf);

}

main()

{fun("test.t", "new world"); fun("test.t", "hello,";)

A) hello,

B) new worldhello,

C) new world

D) hello, rld


相关文章

  • 2016-2022年中国二手车市场报告
  • 2016-2022年中国二手车市场运行态 势及投资战略研究报告 中国产业信息网 什么是行业研究报告 行业研究是通过深入研究某一行业发展动态.规模结构.竞争格局以及综合经济信息等,为企业自身发展或行业投资者等相关客户提供重要的参考依据. 企业 ...查看


  • 中国历年GDP(购买力平价)
  • 购买力平价 百万美元[1] 占世界GDP比例 百分比 (%) 公元纪年 中国纪年 1年汉平帝元始元年26 820 [2] 26.2 960年宋太祖建隆元年 辽穆宗应历十年 24 750 [3] -- 1000年宋真宗咸平三年 辽圣宗统和十八 ...查看


  • 二手车市场发展现状分析
  • 二手车市场发展现状分析 一.二手车交易量偏低 中投顾问发布的<2016-2020年中国二手车市场深度调研及投资前景预测报告>中指出,从汽车市场的发展规律看,总体呈现汽车市场越成熟,汽车发展阶段越高,经济发展水平越高的地区,二手车 ...查看


  • 孙中山银元中华民国二十三年
  • [藏品分类]中华民国银元 [藏品直径]直径39毫米:厚2.5毫米:重26.95克 中华民国二十三年 壹圆/孙像 孙小头 直径39毫米,厚2.5毫米,重26.95克,整体完好,图文清晰. 1929年初,财政部邀外国人设计新币,后由美.日.英. ...查看


  • 二乙苯市场研究报告
  • 中国二乙苯行业市场前景调查及投融资战略研究报告 2017-2022年 前 言 企业成功的关键就在于,能否跳出红海,开辟蓝海.那些成功的公司往往都会倾尽毕生的精力及资源搜寻产业的当前需求.潜在需求以及新的需求!随着行业竞争的不断加剧,大型企业 ...查看


  • 二异氰酸三甲酯市场研究报告
  • 中国二异氰酸三甲酯行业市场前景调查及投融资战略研究报告 2017-2022年 前 言 企业成功的关键就在于,能否跳出红海,开辟蓝海.那些成功的公司往往都会倾尽毕生的精力及资源搜寻产业的当前需求.潜在需求以及新的需求!随着行业竞争的不断加剧, ...查看


  • 二亚乙基三胺市场研究报告
  • 中国二亚乙基三胺行业市场前景调查及投融资战略研究报告 2017-2022年 前 言 企业成功的关键就在于,能否跳出红海,开辟蓝海.那些成功的公司往往都会倾尽毕生的精力及资源搜寻产业的当前需求.潜在需求以及新的需求!随着行业竞争的不断加剧,大 ...查看


  • 2016年中国二手车金融发展现状与趋势
  • 2016年中国二手车金融发展现状与趋势 尽管二手车金融享有行业规模增长的红利,但由于国内二手车行业起步较晚.发展不成熟等因素,导致能为二手车行业中经销商以及个人消费者提供金融服务的机构少之又少,二手车金融尚处于初始阶段. 中国汽车行业尤其是 ...查看


  • 2016-2022年中国二硝基氯化苯行业深度调研与战略咨询报告
  • 2016-2022年中国二硝基氯化苯行业 深度调研与战略咨询报告 什么是行业研究报告 行业研究是通过深入研究某一行业发展动态.规模结构.竞争格局以及综合经济信息等,为企业自身发展或行业投资者等相关客户提供重要的参考依据. 企业通常通过自身的 ...查看


  • [转载] 左丞相张齐贤敕命
  • 左丞相张齐贤敕命① 来源:2005-05-29 <张氏研究> 太宗皇帝制②曰:朕闻端揆③重臣,必资启沃之才④:师表朝班③,实赖调和之责⑥.苟非德望素优,曷克膺此特简⑦?是以古有梦卜旁求⑧之君,始获盐梅舟楫之佐⑨.今尔丞相张齐贤, ...查看


热门内容