高级语言程序设计(c语言)

  • 格式:docx
  • 大小:31.41 KB
  • 文档页数:7

徐州 08 计、徐州 08 机、江苏 08 机、江阴 08 计、

江阴 08 电、江阴 08 数、江阴 08 机、江技 08 数、

江技 08 电、常州 08 电、常州 08 数、

ZH 计 0824、ZH 机 0821

《高级语言程序设计( C 语言)》复习

一、选择题

1、设 x、y、z 都是整型变量,x、y 的初值都是 5,执行 z=(++x)+(y- -)+1 后,x、y、z 三变量的值按顺序是( D )。

A. 5, 5, 11 B.6, 6, 13 C.4, 6, 12 D.6, 4, 12

2、C 语言中运算对象必须是整型的运算符是( A )。

A、% B、/ C、! D、**

3、以十六进制形式输出整数的格式说明符是( D )。

A. %u B.%ld C.%x D.%o

4、引用结构体变量中的一个成员的方法是( D )

A、结构体变量名&成员名

C、结构体变量名*成员名 B、结构体变量名->成员名

D、结构体变量名.成员名

5、在 Turbo 2.0 中,若定义 char c;.则变量c 在内存中分配的字节数是( A )。

A.1 个 B .2 个 C.4 个 D.8 个

6、合法的 C 语言赋值语句是( D )。

A、a=b=58 B、k=int(a+b) C、a=58,b=58 D、+ + i

7、设有变量定义: int x=1,y=0;则表达式 x-->(y+x)?5:3 的值是(A )

A.3 B.5 C.0 D.1

8、C 语言规定:简单变量作实参时,它和对应形参之间的数据传递方式是( C )

A、由用户指定传递方式 B、地址传递

C、单向值传递 D、由实参传给形参,再由形参传回给实参

9、以下转义符中的表示“退格”的符号是( B )。

A.\n B.\b C.\t D.\f

10、下列运算符中优先级最高的运算符是( A )。

A、! B、% C、- = D、&&

11、下列程序段的输出结果是( C)。

x=9;

while(x>7)

{ printf("*");x--;}

A.**** B.*** C.** D.* 12、以下叙述不正确的是( D )

A、一个 C 源程序可由一个或多个函数组成

B、一个 C 源程序必须包含一个 main 函数

C、C 程序的基本组成单位是函数

D、在 C 程序中,main 函数可以被其他函数调用

13、结束 while(表达式)循环的条件是 (B )

A.当表达式的值为 0 时 B.当表达式的值不为 0 时

C.当表达式的值为 1 时 D.当表达式的值为非 1 时

14、为表示关系:x≥y≥z,应使用的 C 语言表达式是( A )。

A、( x > = y )&&( y > = z ) B、( x > = y ) AND ( y > = x )

C、( x > = y > = z ) D、( x > = y ) & ( y > = x )

15 定义一个变量使之保存值的范围是 0-65535,应该选择(A )类型。(2^16-1)

A.unsigned short int B. int

C.short int D.long int

16、下面不正确的字符串赋值或赋初值的方式是( A )

A、char str[7]; str[7]="string";

C、char str[ ]="string"; B、charstr[7]={'s','t','r','i','n','g'};

D、char str2[ ]="12345678";

17、请问:下面这个程序段的输出是( B )

int a,b,c;

a=7;b=8;c=9;

if(a>b)

a=b ; b=c ; c=a ;

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

A、a=7 b=8 c=7 B、a=7 b=9 c=7 C、a=8 b=9 c=7 D、a=8 b=9 c=8

18、能正确表示逻辑关系:“a≥10 或 a≤0”的 C 语言表达式是( D)。

A.a>=10 or a<=0 B.a>=10| a<=0

C.a>=10 && a<=0 D.a>=10||a<=0

19、合法的数组定义是( B )

A、int a={1,2,3,4}; B、int a[5]={0,1,2,3,4}; C、int a[]=”string”; D、float

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

20、以下程序段共循环( A )次?

for(i=0;i<5;i++)

for(j=6;j>=1;j--)

{„„}

A、30 B、5 C、6 D、25

21、对以下说明语句的正确理解是( B )

int a[10]={6 ,7,8,9,10};

A、将 5 个初值依次赋给 a[1]至 a[5] B、将 5 个初值依次赋给 a[0]至 a[4]

C、将 5 个初值依次赋给 a[6]至 a[10] D、因为数组长度与初值的个数不相同,所以此语 句不正确

22、设有以下程序段:

int k=10;

while(k=0)

k=k-1;

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

A、while 循环执行 10 次 B、循环是无限循环

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

23、C 语言中 while 与 do-while 循环的主要区别是( A )

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

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

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

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

24、下面程序当输入 11 时,输出是( B )

main()

{ int sum=0,i;

scanf(“%d”,&i);

do

{ sum=sum+i;

i++; } while(i<=10);

printf(“sum=%d”,sum);

}

A、sum=0 B、sum=11 C、sum=55 D、没有结果

25、以下运算符中优先级最高的是( C(算术运算符) )。

A.&& B.+、- C.( ) D.%

二、填空题

1、C

语言中的标识符可分为

关键字 、用户标识符和预定义标识符三类。

2、C 语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 实参传递给形参。

3、指针变量是用来存放变量的 地址 ,用来指向另一个变量。

4、循环语句:for(k=1;k<=5;k++) 执行结束后,K 的值为 6 。

5、表达式“ 5.5+1/2 ”的计算结果是 5.5 。

6、C 语言中,数组元素的下标下限隐含为 0 。

7、写出下列矩阵的初始化语句

(1) x=

(2) y= 1 2

3 4

5 6

1 0 0

0 2 0

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

int y[2][3]={1,0,0,0,2,0} 8、中止循环语句机构的命令是

break

9、for( i=0;i<=6;i++)

的循环次数为

7 。

10、一个 C 语言程序中必须存在的函数是 主函数。

11、若有以下整型的 a 数组,数组元素和它们的值如下所示:数组元素: a[0] a[1] a[2] a[3] a[4] a[5]

元素的值: 1 2 3 4 5 6

(1) 请写出对该数组的说明,并赋以上初值。

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

(2) 该数组的最小下标值为 0 ,最大下标值为 5 。

(3) 写出下面各式的值: a[a[2]]的值为 4 ,a[a[0]+a[3]]的值为 6 。

12、定义函数时,默认的函数类型是 auto

13、C 语言中的逻辑运算符“ &&”比“||”的优先级 高 。

14、在函数外部定义的变量统称为 局部变量 。

15、数组中的每一个数组元素具有 相同 的名称, 不同 的下标。

16、若 a 是 int 型变量,则表达式((a=4*5,a*2),a+6)的值为 46 (,号运算取最后一个值)

17、C 语言中用 非 0 表示逻辑值“真”,用 0 表示逻辑值“假”。

18、若有定义: int x=3, y=2; float a=2.5,b=3.5;,则表达式 (x+y)%2+(int)a/(int)b

的值为 1

19、C 语言的语句都以 ; 结束。

20、在一个字符数组中,表示一个字符串结束的转义符为 '\n' 。

三、阅读下列程序,写出执行结果

1、main( )

{ int i,sum=0;

int a[3]={10,20,30};

for(i=0;i<3;i++)

sum=sum+a[i];

printf(“sum=%d\n”, sum); 结果:SUM=60

}

2、main( )

{ char c[ ]=”BASIC \nFoxbase”; 结果: BASIC

printf(“%s\n”,c); Foxbase

}

3、main( )

{ struct student