2024年5月5日发(作者:)

浙江大学2014–2015学年冬季学期

《程序设计基础》课程期末考试试卷

课程号: 211Z0040 , 开课学院: 计算机学院__

考试试卷:√A卷、B卷(请在选定项上打√)

考试形式:√闭、开卷(请在选定项上打√),允许带 ∕入场

考试日期: 2015 年 01 月 28 日,考试时间: 120 分钟

诚信考试,沉着应考,杜绝违纪.

考生姓名: 学号: 所属院系: _

(

注意:答题内容必须写在答题卷上,写在本试题卷上无效

)

Section 1: Single Choice(2 marks for each item, total 20 marks)

1. Which one below is NOT a valid identifier in the C programming language? _____.

A. printf B. _ever C. “char” D. true

2. Given a, b and c as three double variables, which one below is NOT equivalent to

a/b/c? _____.

A. (a/b)/c B. a/(b/c) C. a/(b*c) D. a/c/b

3. Which function header is NOT correct? _____.

A. void f(void) B. void f(int i) C. void f(int i,j) D. void f(int i, int j)

4. Given the code below, what will be the value of i after the loop? _____.

int i;

while ( i<10 ) i++;

A. 10 B. 11 C. 9 D. None of above.

5. Given the declarations: int a[5], *p=a; which expression is equivalent to the

expression p+1 ? _____.

B. &a+1

A.a[1]

y after executing y=(*p)++; ? _____.

A.y=1 B.y=2

C.a+1

D. p[2]-1

6. For the declarations: int a[]={1,2,3,4,5},*p=a+1, y; what will be the value of variable

C.y=3

D. Syntax error.

7. For the declarations: int *p[2], n[5]; which assignment expression is correct? _____ .

B. p=&n[0] D. p[0]=n++

A.p=n C.p[0]=n

8. Given the following code fragment, the loop condition str[i]!=’0’ could be replaced by

which choice? ______.

char str[20]=”hello, world”;

for (i = 0; str[i] != „0‟; i++) putchar(str[i]);

A.str[i]

B.i < 20 C.!(str[i] = „0‟) D.i <= 20

“Fundamentals of Programming”

Term Examination

Paper, Jan 28, 2015 1 / 8

9. Which function-calling statement could be used, to open a text file entitled “”

and located in the folder “user” within D diskette, which is opened for the reading and

writing operation? ______.

A.fopen("D:","r")

C. fopen("D:","rb")

A.int *p[5]; scanf("%d", p[0]);

C.int n[10], *p=n; scanf("%d", p);

B. fopen("D:","r+")

D.fopen("D:","w")

B.int *p; scanf("%d", p);

D.int n, *p; *p= &n; scanf("%d", p);

10. In the following code fragments, which item is completely correct? ______.

Section 2: Fill in the blanks

2 marks for each item, total 30 marks

1. The value of expression 3/6*2.0 is ________.

2. The value of expression '9'-'0' is _______.

3. Given:

char c = 255;

printf("%d", c);

The output should be: _______.

4. Given:

int b=50;

if ( 1

the output is _______.

5. The following code fragment will print out _____________________________.

void swap(int *pa, *pb)

{

int *t = pa;

pa = pb;

pb = t;

}

int a = 1, b = 2;

swap(&a, &b);

printf(“%d#%d#”, a, b);

6. The output of the code below is ________.

char *s=”abc”;

while ( *s++ ) if (*s) putchar(*s-1);

7. Given the declaration: char *s;, write a statement which could be used to allocate 10

bytes from the system and assign the first address to the variable s _____________.

8. Try to use the function-call of fscanf, to replace the function-call of scanf(”%d”,&m);

______________________________________________.

9. Given the declaration: char *s; , write an expression without any function-calling,

which is equivalent to the expression strlen(s)==1 _____________________.

10. Given the declaration: int a[3][2]={1,2,3,4,5,6}; what is the value of expression

(a[1]+1)[0] ?____________.

“Fundamentals of Programming”

Term Examination

Paper, Jan 28, 2015 2 / 8

11. The value of expression !*(“2015-01-28”+5) is ______________.

12. The output of the code below is ________.

char x[ ]=”hello,world012345”;

printf(”%d#%d#”,sizeof(x),strlen(x));

13. The output of the code below is ________.

char *a[3]={"one", "two",”three”}, **p=a;

printf("%s#", *(++p)+1);

printf("%c#", **p-1);

14. Given the declarations: FILE *infp, *outfp;, write a statement: it is used to write a

letter, which is read from a file pointer infp, into the file pointer outfp, which points to

an output file. ________________________________________________________.

15. Given the declaration: char s[10]=”12345678”; what will be the value of strlen(s)

after executing strcpy(s+2,s+5); ________.

Section 3: Read each of the following programs and answer questions

(

marks for each item, total 30 marks)

1. What is the output of the following program? _____________________________.

#include

void swap(int *a, int b)

{

int m, *n;

n=&m;

*n=*a;

*a=b;

b=*n;

}

int main()

{

int x=8,y=1;

swap(&x,y);

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

}

2. When input: 123, what is the output of the following program_______________.

#include

int f(char s[], int b)

{

int i=0, n=0;

“Fundamentals of Programming”

Term Examination

Paper, Jan 28, 2015 3 / 8

while (s[i]!=‟0‟) {

n=n*b+s[i]-'0';

i++;

}

return n;

}

int main()

{

char s[20];

int n;

scanf("%s",s);

printf("%d", f(s,5));

}

3. When the following program‟s input is

ing

This is a long test string

the output of the program is __________.

#include

#include

int main()

{

char s[100], t[100], ch, *p;

int count, i;

gets(s);

gets(t);

for (i = 0; i < strlen(s); i++) {

count=0;

p = t;

while (*p != '0') {

if (*p == s[i]) count++;

p++;

}

printf("%c %d ", s[i], count);

}

}

4. The output of the following program‟s is ____________.

#include

#include

void fun(char *s[], int n)

{

char *t;

int i,j;

“Fundamentals of Programming”

Term Examination

Paper, Jan 28, 2015

4 / 8