PAGE
13 -
天津工业大学信息与通信工程学院
05-06-2学期
《C语言程序设计》期末试卷(A卷)标准答案
学号 班级 姓名
大题号
一
二
三
四
总分
得分
核分人
一、单选题(每题2分,共42分)
本大题得分
阅卷人签字
1.下列字符串中不是正确的C语言标识符的是:
A. longint
B. Average
C. Day5
D. π ★
2. 四个运算符>.,+优先级由高到低的顺序是:
A. >.,+
B. +>,.
C. .+>, ★
D. ,>+.
3. 表达式((int)3.7+8.5)%3的值是:
A. 0
B. 1
C. 2
D. 这是一个错误的表达式,不会有值 ★
4. 已知int i=1 , j ; 经过j=(i++,i++||i++);语句之后,j的值是:
A. 1 ★
B. 2
C. 3
D. 4
5. 已知int a=5; 经过语句a+=a*=a-=a;语句之后,a的值是:
A. 0 ★
B. 5
C. 15
D. 20
6. 程序段如下:
char k=1; while (k>0) k=k+1;
则以下说法正确的是:
A. while循环执行32767次
B. while循环执行255次
C. while循环执行127次 ★
D. while循环是死循环
7.关于return语句,下列说法中不正确的是:
A.函数的返回值是通过return语句获得的
B.void函数的函数体内最后一条语句也可以是return语句
C.return语句后面可以是常量、变量名或表达式,只要有确定的值即可
D.函数的返回值也可以通过函数体内的一条给函数名赋值的语句得到 ★
8. 按照C语言的规定,下列说法不正确的是:
A.实参可以是常量、变量或表达式,在传递给形参时,要求实参必须有确定的值
B.形参不可以是常量
C.实参的个数应该与形参一样多
D.形参的值能传递给实参 ★
9. 关于C语言的控制语句,下列说法错误的是:
A. 循环体可以是一个循环语句
B. break能结束一个函数的调用 ★
C. else必定与它上面最近的没有配对的if相配对,且这个if与else之间只可以有一条语句相隔
D. continue语句不能使用在goto构成的循环中
10. 下一函数的作用是:
void fun(char a[],char b[])
{ char *p=a,*q=b;
for(;(*p=*q)!='\0';p++,q++);
}
A. 将字符串b复制到a ★
B. 将字符串a复制到b
C. 将字符串b连接到a中的字符串后面
D. 将字符串a连接到b中的字符串后面
11.
#include "stdio.h"
long f(int n)
{
if(n==0||n==1) return 1;
else return n*f(n-1);
}
main()
{ printf("%ld\n",f(5)); getch( ); }
上一程序的输出结果是:
A. 120★
B. 15
C. 5
D. 25
12.
#define M(a,b) a*b
main()
{
printf("%d",M(1+2,3+4));
getch();
}
上一程序的输出结果是:
A. 3
B. 7
C. 11 ★
D. 21
13.
int f(char *a)
{
char *p=a;
for(;;)if(*p++=='\0') break;
return p-a-1;
}
这一函数的功能是:
A. 求出指针a所指向的字符串的长度 ★
B. 求出指针a所指向的字符串的长度-1
C. 求出指针a所指向的字符串的第一个字符的ASCII码
D. 求出指针a所指向的字符串的末尾一个字符的ASCII码
14.
main()
{ char c[20]="ABCD";
puts(c+2);
}
上一程序的输出结果是:
CD ★
6
ABCDAB
ABCDCC
15. (提示:'A'的ASCII码是65。)
main( )
{ char c1='A',c2='B';printf("%c%c%d%d\n",c1,c2,c1,c2);
}
上一程序的输出结果是:
AB6566 ★
A
B
65
66
ABAB16. 已知 char c;执行scanf("%c",&c);语句之后,判别“c是英文字母”的C语言错误表达式是(提示:'A'的ASCII码是65,'a'的ASCII码是97。):
A. c