浙江大学C语言总复习题--综合(7)

2018-12-15 17:34

else result = cal(cal(x,y,op1),z,op2); printf(“%d\\n”, result); }

问题: (1) 当输入为 3+4*5时,上述程序将输出________

(2) 当把上述if语句op1= =?+? && op2= =?*?中的op1,op2对调后, 对于输入为3+4*5时,上述程序将输出:__________ 2.写出下列程序的运行结果(8分) #include

int x[3]={1,2,3}, sum=0, i; void f0(int a[])

{ a[1]=a[0]; a[0]=a[2]; a[2]=a[1];} void f1(void)

{ for(i=0;i<3;i++) sum+=x[i];} void f2(int *p)

{ int sum=0; sum++; *p=sum;} main()

{ int y[3]={3,2,1};

printf(\ f0(y);

printf(\ f1();

printf(\ f2(&sum); f2(&sum); printf(\ }

3.写出下列程序的运行结果(8分) #include

void f(int a[], int n, int m) { int i,j,t;

for(i=0; i

while(j

{ int a[]={0,1,2,3,4,5,6,7,8,9},i; f(a,10,3);

for(i=0; i<10; i++) putchar(a[i]+'0'); }

4.写出下列程序的运行结果(6分) #include #include struct node { char c;

struct node *next;

30

}; main()

{ struct node *head=NULL, *p=NULL, *q, *t; char *s=\ while(*s) {

q=(struct node *)malloc(sizeof(struct node)); q->c=*s; q->next=NULL; if(head = = NULL) head=q; else p->next=q; p=q; s++; }

p=q=head;

while(q!=NULL) {

if(!(q->c>='A' && q->c<='Z')) { if(q = = head) head=q->next; else p->next=q->next; t=q; q=q->next; free(t); }

else {p=q; q=q->next;} } q=head;

while(q!=NULL) {putchar((*q).c); q=q->next;} }

四、程序设计题 (每题10分,共20分)

1. 有一100个元素的整数数组,假设已存放了99个从小到大的整数, 最后一个空缺。编写一程序,从键盘输入任一整数,把它放到数组中, 使数组中数据仍然有序并输出。

2. 请编写一个带命令行参数的程序prog.c. 当运行prog filename时将文本文件filename按原样在标准输出(终端)上输出;当运行prog -u filename时将文本文件filename全部以大写方式(指字母)在标准输出(终端)上输出; 当运行prog -l filename时将文本文件filename全部以小写方式(指字母)在标准输出(终端)上输出;其它运行方式均显示出错信息.

31

综合自测题3

一、单项选择题(每题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 (\的输出结果是________________________。 2.下列程序段的输出结果是________________________。

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

printf(\

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

int k ; char *s = ―ABC‖; for( k=10; k != 0; k-- ) ; printf ( \

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); }

32

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

main( )

{ struct st { int x, y;

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

struct st *p=a;

printf(\ printf(\ printf(\}

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

#include \ void main()

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

for(k=0; k

for(j=0; j

for(k=0; k

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

# include long fib(int g) { switch(g){

case 0: return(0); case 1:

case 2: return(2); }

printf(\

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

main()

{ long k; k = fib(4);

printf(\}

8.用typedef定义一个长度为10的整型数组NUM是________________________。三、程序分析题 (每题5分,共20分) 1.写出下列程序的输出结果。

#include int x, y, z;

void p(int *x, int y) { --*x;

33

y++;

z = *x+y;

printf(\}

void main()

{ x=5; y=2; z=0; p(&x, y);

printf(\ p(&y, x);

printf(\}

2.写出下列程序的输出结果,并指出该程序的功能。 #include void main() { int x, k; x =14;

for ( k = 0; x!=0; x &= x-1 ) ++k; printf(\}

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(\}

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(\ while (p1->num != 0){

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

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

34


浙江大学C语言总复习题--综合(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微机原理与接口技术试题库(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: