院、系领导 审批并签名
A 卷 广州大学 2009-2010 学年第 1 学期考试卷
课程 程序设计 1 考试形式(闭卷,考试)
学院 数学与信息 系 专业 信安,计 题次 分数 评分 班级 学号 姓名_ 八 九 十 总分 评卷人 100 一 40 二 20 三 20 四 20 五 六 七 注意:所有答案请做在答题卡上!
一、单项选择题(每小题 2 分,共 40 分)
1. 十六进制数 CDE 转换成八制数是( )
A) 63363 B) 6363 C) 7337 D) 7373
2. 以下所列的C语言常量中,错误的是( )
A) 1UL B) e0.5 C) “A” D) '\\b'
3. 已知字母c的ASCII码为十进制的99,下面程序的输出是( )
int main() {
char c=’c’;
printf (\}
A) 101, f B) 99, f C) 101, e D) 101, 102
4. 表达式 5-3/2-1 的值是( )
A) 0 B) 3 C) 2.5 D) 2
5. 设x、z均为int型变量,x 的值为 1, 则求值表达式 z=x--, ++x 后,x, z的值分别为( )
A) 0, 1 B) 1, 0 C) 1,1 D) 0, 0
6. 设x、z均为int型变量,x 的值为 1, 则求值表达式 z=x--||x++ 后,x, z的值分别为( )
A) 0, 1 B) 1, 0 C) 1,1 D) 0, 0
7. 若函数 f 为
int f (int x)
1
{
return -(x<0)+(x>0); }
则 f(2009), f(-2008) 和 f(0) 的值分别为 () A) 0 1 2 B) 1 1 0 C) 1 -1 0
8. 下面函数的输出为:()
int x=1; int main() {
int x=2; {
extern int x; printf (“%d ”, x); }
printf(“%d\\n”, x); }
A) 1 1 B) 1 2
9. 下列程序的输出为:( )
int main() {
char *p=”hello”, *q; for (q=p; *q; q++);
D) -1 1 0
B) 2 1 D) 2 2
printf (“%d\\n”, (int)(q-p)); } A) 5
B) 4
C) 6
D) 不是一个确定的值
10. 想要表示若 x 既不能被 3 整除,又不能被 5 整除,则把 S 的值加 x,下面哪条语句
是错的?()
A) if ((x%3)*(x%5)) S+=x;
B) if ((x%3==0)+(x%5==0)-(x==0)) S+=x; C) if ((x%3)==0||!(x%5)); else S+=x; D) if ((x%3)!=0) if ((x%5)!=0) S+=x;
11. 下列程序段的输出结果是( )
void fun(int * x, int * y) {
printf(\ *x=3, *y=4; }
2
int main() {
int x=1,y=2; fun(&x,&y);
printf(\}
A) 2 1 4 3 B) 1 2 1 2
C) 1 2 3 4 D) 2 1 1 2
12. 若有定义: float x;int a,b; 则正确的switch 语句是( ) A) B) switch(x) switch(x) { {
case 1.0:printf(\ case 1,2:printf(\ case 2.0:printf(\ case 3:printf(\} } C) D) switch (a+b) switch (a+b); { { case 1:printf(\ case 1:printf(\ case 1+2:printf(\ case (int)x: printf(\} }
13. 以下程序的输出结果是 ( )
int main() {
int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)
printf(\}
A) 9,5,3 B) 7,4,3
14. 以下程序输出的结果是( )
int main() {
char w[][5]={\ int k;
for (k=1; k<3; k++)
printf(\} A) B) C) D) ABCD JKL EFG FGH FGH OP JK KL
3
C) 7,5,3 D)9,6,1
15. 以下程序的输出结果是( )
#define Zero(X) X-X int main() {
printf(\}
A) -6 B) -4 C) -2 D) -0
16. 若有代码
struct point {int x; int y;} pt, *p; p = & pt;
现要输出 pt 的成员 x,错误的语句为: ( ) A) printf (“%d\\n”, p->x); B) printf (“%d\\n”, p[0].x); C) printf (“%d\\n”, *p.x); D) printf (“%d\\n”, *p->x);
17. 下列代码的输出为:( )
printf (“%s\\n”, “HelloWorld”+4);
A) Hello B) HelloWorld C) World D) oWorld
18. 下列语句的输出结果是( )
putchar (putchar (‘a’))
A) a B) aa C) A D) ab
19. 下面代码的输出是( )
char foo[]=“Hello World”;
printf (“%d %d”, strlen(foo), sizeof(foo)); A) 11 11 B) 11 12 C) 12 11 D) 12 12
20. 有如下代码
main () {
___ int x=1;
printf (“%d\\n”, int); }
横线出不可填入的关键词为 ( ) A) auto B) register C) extern D) static
二、填空题(每空 2 分,共 20 分)
1. 若想通过以下输入语句给a赋于1,给b赋于2,
4
int a,b;
scanf(\”,&a,&b);
则输入数据的形式应该是____【1】
2. 写出能正确表示a是正偶数的关系表达式_____【2】
3. x 的类型为 doule, y 的类型为 float,用一个 printf 语句输出这两个值:
____【3】____
4. 若有如下代码
double s;
double a[4][4] = {{1,2,3,4},{2,3,4,1}, {3,4,1,2},{4,1,2,3}}; s = det4 (a);
推测函数 det4 的原型 ____【4】
5. 函数 stup 逆序输出一个字符串,并返回打印的字符总数,请补充空白部分。
int stup (const char *s) {
int n=0;
if (____【5】_____) {
n=1+stup(s+1);
_____【6】 }
return _____【7】 }
6. 以下程序的输出为_____【8】
int acc(int n) {
static int f; f=f+n; return f; }
main() {
int i;
for(i=1;i<=5;i++)
printf(\ }
5
广州大学C语言程序设计期末考试试卷zxl.doc



