浙江大学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 “abc.txt”
and located in the folder “user” within D diskette, which is opened for the reading and writing operation? ______. A.fopen(\C. fopen(\A.int *p[5]; scanf(\C.int n[10], *p=n; scanf(\
B. fopen(\D.fopen(\B.int *p; scanf(\
D.int n, *p; *p= &n; scanf(\
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(\
The output should be: _______. 4. Given:
int b=50;
if ( 1
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,world\\012345”; printf(”%d#%d#”,sizeof(x),strlen(x)); 13. The output of the code below is ________.
char *a[3]={\ printf(\printf(\
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 (5marks 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(\}
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(\
printf(\}
3. When the following program?s input is
ing
This is a long test string
the output of the program is __________.
#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(\ }
}
4. The output of the following program?s is ____________.
#include
void fun(char *s[], int n) {
char *t; int i,j;
“Fundamentals of Programming” Term Examination Paper, Jan 28, 2015
4 / 8 for (i=0; i if (strlen(s[i])> strlen(s[j])) { t=s[i]; s[i]=s[j]; s[j]=t; } } int main() { char *s[]={\ “has reached”, “top level\ fun(s,4); printf(\ } 5. The following program will print out ____________. #include void p1(int v[]) { int i,j,temp; for (i=1; i<4; i++) for (j=i-1; j>=0&&v[j] v[j]=v[j+1]; v[j+1]=temp; } } void p2(int v1[], int v2[]) { int i=0, j=0; while (i<4 && j<4) { if (v1[i]>v2[j]) { printf(\ } else { printf(\ } } while (i<4) printf(\ while (j<4) printf(\} main() { int a[2][4]={{5,3,7,2},{4,1,8,6}}; p1(a[0]); p1(a[1]); p2(a[0],a[1]); } “Fundamentals of Programming” Term Examination Paper, Jan 28, 2015 5 / 8