试卷

一、选择题(***15题,每题2分,***30分)

1.定义该结构的关键字是()

A.联合b .枚举c .结构d .类型定义

2.设整数变量A为5,使B不为2的表达式是()

A.b = a/2b . b = 6-(-a)c . b = a % 2d . b = a & gt;3?2:1

3.下列哪一个是不正确的字符串赋值或初始值赋值方法()

A.char * strstr= "中国";

B.char str[7]= {'c ',' h ',' I ',' n ',' a ' };

C.char str1[]= "中国",str 2[]= " 123 ";

D.char str 1[10];str1= "中国";

4.下面的二维数组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 } };

5.选择下列标识符不合法的标识符是()

A.hot_do B. cat1 C. _pri D. 2ab

6.下列说法正确的是()

A.c语言程序总是从第一个函数开始。

b在c语言程序中,要调用的函数必须在main()函数中定义。

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

D. C语言程序中的main()函数必须放在程序的开头。

7.如果已经定义了:int a[9],* p = a;而p的值在后面的语句中是不变的,所以不能表示a[1]的地址的表达式是()。

A.p+1 B. a+1 C. a++ D. ++p

8.如果指定:int i,j = 7,* p = &;我;,并且I = j;等效的说法是()

A.I = * p;B. * p = * & ampj;C. i = & ampj;d . I = * * p;

9.如果变量C是char类型,能正确判断C是小写的表达式是()。

A.a ' & lt= c & lt= ' z ' b .(c & gt;= ' a ')| |(c & lt;= 'z ')

C.(' a ' & lt=c)和(' z ' & gt= c)d .(c >;= ' a ')& amp;& amp(c & lt= 'z ')

10.以下程序的输出是()

主()

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

p = a;

*(p+3)+= 2;

printf( "%d,%d\n ",*p,*(p+3));}

A.0,5 B. 1,6 C. 1,5 D. 0,6

11.以下程序的输出是()

主()

{ int a = 5;

float x = 3.14;

a* = x *(E '-' A ');

printf("%f\n ",(float)a);}

A.62.000000 b 62.800000 c 63.000000d 62

12.以下程序的输出是()

#定义f(x) x*x

主()

{ 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 I;int x[3][3]={1,2,3,4,5,6,7,8,9 };

然后语句for(I = 0;我& lt3;i++) printf("%d ",x[I][2-I]);的输出结果是()

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

14.下列程序段的输出是()

void main()

{ int k;

for(k = 1;k & lt5;k++)

{ if(k%2!=0)

printf(" # ");

其他

printf(" * ");}

}

A.#*#* B . *#*# C. ## D. **

15.执行以下程序后的输出结果是()

int d = 1;

资金(利息)

{ int d = 5;

d++ = p++;

printf("%d ",d);}

主( )

{ int a = 3;

好玩(一);

d++ = a++;

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

A.8,4 B. 9,6 C. 9,4 D. 8,5

2.填空(***7题,每题2分,***30分)

1.array int a[3][5];* * *定义了_ _ _ _ _ _ _ _ _ _个元素。

2.float f = 3.1415927;Printf ("%5.4f ",f);输出结果是_ _ _ _ _ _ _ _ _ _。

3.下面这个程序的作用是:输出100以内(不包括100)所有能被3整除的个位数为6的整数。请填空。

主( )

{ int I;

for(I = 1;_______________;i++)

如果(_______________)

printf("%d ",I);

}

4.如果提供了“int x=2,y”的描述,则逗号表达式“y=x+5,x+y”的值为_ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5.下面是一个用指针复制字符串的程序。请填空。

主()

{ char a[]= "清华大学",b[30],*p1,* p2

p 1 = a;

p2 = b;

for(;*p1!= '_______________';p1++,p2++)

_______________=_______________;

* p2 = ' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ';

printf("字符串a是:%s\n ",a);

printf("字符串b为:%s\n ",b);

}

6.下面的程序使用冒泡法对数组A进行降序排序。请填空。

主()

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

int i,j,m;

for(I = 0;我& lt4;i++)

for(j = 0;j & lt_______________;j++)

如果(_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ & lt_______________ )

{ m = a[j];

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

a[j+1]= m;}

for(I = 0;我& lt5;i++)

printf("%d ",a[I]);

}

7.fun的作用是逆序存储一个字符串。请填空。

void fun (char str[])

{ char m;int i,j;

for(i=0,j = strlen(str);我& lt_______________;i++,j -)

{ m = str[I];

str[I]= _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;

str[j-1]= m;

}

printf("旋转后的字符串是% s \ n " ,_ _ _ _ _ _ _ _ _ _ _ _);

}