C语言考试试题三套

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

C语言辅导试题一

一、单项选择题(每小题 2 分,共20 分)

1.C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A、循环

B、递归

C、转移

D、嵌套

2.若x是单精度实型变量,表达式(x = 10/4) 的值是_____ 。

A、2.5

B、2.0

C、3

D、 2

3. 表达式!x 等价于_____。

A、x==0

B、x==1

C、x != 0

D、x != 1

4.若变量已正确定义且k 的值是4,计算表达式( j = k--) 后,_____。

A、j=3, k=3

B、j=3, k=4

C、j=4, k=4

D、j=4, k=3

5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。

A、算术运算、赋值运算、关系运算

B、关系运算、赋值运算、算术运算

C、算术运算、关系运算、赋值运算

D、关系运算、算术运算、赋值运算

6.C语言中,形参的缺省的存储类说明是______。

A、auto

B、static

C、register

D、extern

7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。

A、float f, *pf = f;

B、float f, *pf = &f;

C、float *pf = &f, f;

D、float f, pf = f;

8.表达式sizeof(“key”) 的值是______。

A、1

B、2

C、3

D、4

9.将程序prog.c编译后运行:prog –nla hello world 则*(*(argv+2)) 是______。

A、‟p‟

B、…-…

C、…h‟

D、…w‟

10.若a是整型变量,表达式~(a ^ ~a ) 等价于______。

A、~a

B、1

C、0

D、2

二、填空题(每小题 3 分,共24 分)

1.写出语句printf ("%d, %o, %x", 0x12, 12, 012); 的输出结果。

2.写出下列程序段的输出结果。

#define F(x) x - 2

#define D(x) x*F(x)

printf("%d,%d", D(3), D(D(3))) ;

3.写出下列程序段的输出结果。

int k ; char *s = “ABC”;

for( k=10; k != 0; k-- ) ;

printf ( "%d", k );

while( *s++ ) putchar( *s );

4.写出下列程序的输出结果。

void fun(int k)

{ static int a;

printf(”%d,”, a);

a += k;

}

main()

{ int k;

for (k=1; k<=3; k++)

fun(k);

}

5.写出下列程序的输出结果。

main( )

{ struct st {

int x, y;

} a[4]={{10,20},{30,40},{50,60},{70,80}};

struct st *p=a;

printf("%d,", p++->x);

printf("%d,", ++p->y);

printf("%d\n", (a+3)->x);

}

6.写出下列程序的输出结果。

#include "stdio.h"

void main()

{ int k, j, m, n, a[6][6], b[6];

m=3, n=2;

for(k=0; k

for(j=0; j

a[k][j] = k*n+j+1;

for(k=0; k

b[k] = 0;

for(j=0; j

b[k] += a[k][j];

}

for(k=0; k

printf("%d, ", b[k]);

}

7.写出下列程序的输出结果。

# include

long fib(int g)

{ switch(g){

case 0: return(0);

case 1:

case 2: return(2);

}

printf("g=%d,", g);

return ( fib(g-1) + fib(g-2) );

}

main()

{ long k;

k = fib(4);

printf("k=%ld\n", k);

}

8.用typedef定义一个长度为10的整型数组NUM。

三、程序阅读题(每题 5 分,共20 分)1.写出下列程序的输出结果。

#include

int x, y, z;

void p(int *x, int y)

{ --*x;

y++;

z = *x+y;

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

}

void main()

{ x=5; y=2; z=0;

p(&x, y);

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

p(&y, x);

printf("%d,%d,%d\n", x, y, z);

}

2.写出下列程序的输出结果,并指出该程序的功能。

#include

void main()

{ int x, k;

x =14;

for ( k = 0; x!=0; x &= x-1 )

++k;

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

}

3.写出下列程序的输出结果。

#include

void main()

{

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

int gap, j, k, temp;

for( gap = n/2; gap > 1; gap /= 2 )

for( j = gap; j < n; j++ )

for( k = j-gap; k >= 0 && v[k] > v[k+gap]; k -= gap ){

temp = v[k];

v[k] = v[k+gap];

v[k+gap] = temp;

}

for(k=0; k<5; k++) printf("%d, ", v[k]);

}

4.输入1 2 3 4 5 0后,写出下列程序的输出结果。

#define LEN sizeof(struct line)

#define NULL 0

struct line{

int num ;

struct line *next ;

}

main()

{ struct line *p1 , *p2 , *head ;

int j, k = 0;

p1 = p2 = head = (struct line *) malloc (LEN) ;

scanf("%d", &p1->num) ;

while (p1->num != 0){

p1 = (struct line *) malloc (LEN) ;

scanf("%d", &p1->num) ;

if ( p1->num == 0 ) p2->next = NULL ;

else{ p2->next = p1 ;

相关文档
最新文档