2009届毕业生毕业总补考试卷 《C语言程序设计》考试试卷
(适用班级:非计算机专业)
得分 一、单项选择题(每小题1分,共30分)。
1. 一个C语言程序是由【
】。
A) 一个主程序和若干个子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成
2.以下运算符中,优先级最高的是【
A)->
B) — C) !=
D) &&
3. 以下算术运算符中,要求两侧均是整型的是【 】。
A) +
B) %
C) *
D) /
4. 设x是int.型变量,则表达式:x二3*5, x++, x+20的值为【 】。A) 15
B) 16
C) 36
D) 35
5. 设沪 1, b=2, c=3, d二4,则执行语句:if (aA) 1
B) 2 C) 4
D)有语法错误
6. 设一个int型数据在内存中占2个字节,则unsigned int.型数据的取值 范围是【
】。
A) 0〜255 B) 0〜32767 C) 0
〜65535
D) 0
〜2147483647
7.有以下定义和语句:
题号 二 三 四 总分 得分 int x=010, y=0xl0, z=10;
printf ( \"%d, %d, %d\" , x, y, z): 则输出结果为【 ]o A) 10, 10, 10 B) 8, 8, 10 C) 8, 10, 10 D) 8, 16, 10
8. 有输入语句:scanf ( “%d, %d, %d” , &a, &b, &c);为使变量a的值为
d
1, b为3, c为2,从键盘输入数据的正确形式应当是【 ]o A) 132〈回车〉 C) 1 3 2〈回车〉
B) 1, 3, 2〈回车〉
D) a二 1, b二3, c二2〈回车〉
9. 若i是整型变量,则以下循环执行次数是【 lo
for(i=2; i>0; i--) printf ( “%d ”,i); A)无限次
B) 0次 C) 1次
D)10. 以下能正确计算1+2+3+……+10的程序段是【
A)
do{ i=l; s=l;
B} do{ i=l; s二0;
s二s+i; s二s+i; i++; i++;
}while (i<=10);
}while (i<=10);
D) i=l; s二0; C) i=l; s=l;
do{ s二s+i;
do{ s二s+i;
i++;
i++;
}while (i<=10);
}while(i<=10);
lo
下面程序的运行结果是【 a=l; b=2; c二3;
b=t; c—; } while( ab; printf ( <<
%d, %d, %d”,a, b,
C) 1, 2, 2
D) 1
12.以下能对一维数组a进行正确初始化的是【
】。
A) 1, 2, 3
B) 2, 1, 2
B) int a[5]
二{1, 2, 3,
A) int a[5]二(0, 0, 0, 0, 0); C) int a[ ] = { };
D) int a[5] = {5*0};
13.若有说明:int a[3][4];则对a数组元素的正确引用是【 】。A) a[2][4]
B) a(l, 3) C) a[2] [0]
D) a⑵⑴
14.若有说明:int a[3][4]二{0};则下面正确的叙述是【 】。
A) 只有元素a[0] [0]可得到初值0。 B) 此说明语句不正确。
次 】。
2, 1
;
211.
4, 5}
C) 数组a中各元素都可得到初值,但不一定为0。 D) 数组a中每个元素都可得到初值0。
15.若二维数组a有x列,则计算元素在数组中位置的公式是(a[0] [0]的 位置是1)【 Jo A) i*x+j
B) j*x+i
C) i*x+jT
D) i*x+j+l
16•设在函数max中定义了一个局部变量a,则a的有效范围是【
】。
A) max函数。
B) 程序中所有的函数。
C) 源程序中max函数后面所有的函数。 D) 无法确定。
17. C语言中规定,函数返回值的类型是由【
】。
A) return语句中的表达式类型所决定。 B) 调用该函数时的主调函数类型所决定。 C) 调用该函数时系统临时决定。
D) 在定义该函数时所指定的函数类型所决定。 18. 下面函数调用语句含有实参的个数为【 】。
max(a, max (b, c)); A) 1
B) 2
C) 3
D) 4
19. 用指针变量对数据进行间接访问,用的运算符是【 A) +
B) -
C) &
D) *
20•设char *s二“ABCDEF” ;则指针变量s指向的字符串的长度是【A) 9
B) 5
C) 6
D) 7
21. 下面程序的运行结果是【main()
{
int a=3, b=4, c二5, max;
婷
max=a; I if(maxmax=c;
' printf( “%d” , max);
I A) 0
B) 3
C) 4
D) 5
】。 】。
】。 电22. 下面程序的运行结果是【 main () { int y=10;
】。
do { y--; } while (y>=0); printf ( “%d”,y); }
A) -1 B) 1
C) 8
D) 0
23. 分析下面程序,从A、B、C、D四个选择项中选择一个答案:【
】
main () {
float a[10] ; /*第 3 行*/
int i;
for(i=0; i<=10; i++) scanf(“%d”,&a[i]); /*第 5 行*/ for(i=0;i<10; i++) a[i]二a[i]+l;
printf (“%f”, a[0]) ; /*第 7 行*/ }
A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误
24. 有定义:
int i, a[3][3]二{1, 2, 3, 4, 5, 6, 7, 8, 9}; 则下面语句的输出结果是【 】。for(i=0; i<3; i++) printf( a
%d ” , a[i][i]); A) 3
5 7 B) 3
6 9
0 1
5 9 D) 1
4 7
25. 设有如下函数定义: int age (int n)
{ int s; if (n=l)
s=20;
else s=age (n —1) +2; return s;
若在main()函数中有下面的语句调用上述函数,则输出结果为【 printf ( \"%d” , age (5));
A) 20
B) 24
C) 28
26.以下程序的执行结果是【 Jo
int min(int a, int b)
{ int c; c=areturn c;
}
main()
{ int a=8, b=9; printf ( \"%d” , min(a, b)); }
A) 8
B) 9
C) 17
27. 下面能正确进行字符串赋值操作的是
【 A) char s[5]={ \"abcde” };
B) char C) char *s= \"abcde\";
D) char 28. 设有以下定义和语句:
int a[3]二{3, 5, 8}, b=10, P=a;
则表达式:* (p+3)的值是【
A) 5
B) 8
C)
10
29.以下程序的输出结果是【 main() { char *str= Goodmorning^ ; str=str+4;
printf ( \"%s” , str); }
Goodmorning B) morning
A) C) m
D) ning
D) 30
D) 1
;
; scanf ( \"%s\" , s[5])D)无法确定
s[5]= \"abcde\"*s;
30.若有以下定义,则值为4的表达式是【 ]o
int a[6]={0, 1, 2, 3, 4, 5}, *p=a; A) a[3] B) *(a+3) C) *(p+4) D) p+4
得分
二阅读程序,写出程序运行结果(每题5分,共25分)。
、
1. main()
{ int i二T; printf( \"%d, }
%u” , i, i) 程序的输出结果为【
2. main()
{ int sum=l, i; for(i=l; i<=5; i++) sum=sum*i;
printf ( \"%d\" , sum); }
程序的输出结果是【
3. main()
{ int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, i, sum for(i=0; i<=2; i++)
sum+二a[i][i];
printf ( “sum=%d”,sum); }
程序的输出结果是【
4. void exchange(int x, int y)
{ int t;
t=x; x二y; y=t; }
main ()
{ int a=3, b=4;
二0;】。
】。 lo
;
exchange (a, b); printf ( “%d, %d” , a, b); }
程序的输出结果是【
5. main()
Jo
{ int a[6]={l, 2, 3, 4, 5, 6}, i, t, *pl二a, *p2二&a[5]; for(i=0; i<=2; i++, pl++, p2--)
{ t二*pl; *pl=*p2; *p2二t; } for(i=0; i<=5; i++) printf ( “%3d\" , a[i]); }
程序的输出结果是【
Jo
得分 三、程序填空题(每空仅限填一条语句,每空15 分)。
1.下面程序的功能是求1+2+3+ ...... +100。请填空。 main()
{ int. i, sum二0; for(i=l;【
】;
i卄)
【
J;
printf( “1+2+3+……+100=%d”,sum); }
2.下面程序的功能是求3个整数的最大值。请填空。 int max(int a, int b, int c) { int max; max=a;
if(max3分,共计
main()
{ int x, y, z;
scanf (“ %d%d%d”,&x, &y, &z); printf ( “max二%d”,max (x, y, z)); }
3.以下程序的功能是把两个整数进行交换,请填空。 void swap(【
{ int t;
t二*p; *p二*q; *q二t; }
main ()
{ int a=3, b=7;
printf( a
a=%d, b=%d” , a, b);
}
得分 四、程序设计题(共
30分)。
1. (7分)编程求解问题:100元买100只鸡,母鸡母鸡、公鸡各多少只?
3元1只,公鸡2元1只。问
| I
评I
2. (8分)输入3个整型数据,请编写程序,将这3个数据按从小到大的顺序输出
显示。
3. (7分)写一个判断某一整型数据是否是素数的函数fun
void fun(int data)
r
4. (8分)编写一个能够完成两个字符串连接功能的函数string_cat,该函数首 咅匕为: void
string_cat(char ^pl, char *p2)
在main函数中输入两个字符串,通过调用该函数string_cat,完成两个字符串接后产生的一个新字符串通过呃in函数血出显示。
的连接,并将连
因篇幅问题不能全部显示,请点此查看更多更全内容