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
(
5
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
发布评论