
c语言程序设计(第四版)考试题.doc
8页C程序设计(第四版)期末考试题本卷共有4道大题: 一、单项选择题(20道小题,共20分) 1、以下对C语言函数的有关描述中,正确的是( )(1分) A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中 2、strcpy库函数用于复制一个字符串若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分) A、strcpy(str2,str1) B、strcpy(str3,str1) C、strcpy(str4,str1) D、strcpy(str5,str1) 3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"}; char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分) A、strp B、str[k] C、strp[k] D、*strp 4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分) A、typedef v1 int; B、typedef v2=int; C、typedef v1 int v3; D、typedef v4: int; 5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0b?"* * *a=%d":"# # #b=%d",a ,b); 则程序段( )(1分) A、没有正确的输出格式控制 B、输出为:* * * a=2 C、输出为:# # # b=2 D、输出为:* * * a=2# # # b=2 12、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( )(1分) A、a=a-=(b=4)*(a=3) B、x%(--3); C、a=a*3=2 D、y=float(i) 13、假设所有变量均为整型,表达式 (a=2,b=5,a>b? a++:b++,a+b)的值是( )(1分) A、7 B、8 C、9 D、2 14、以下标识符中,不能作为合法的C用户定义标识符的是( )(1分) A、For B、print C、WORD D、sizeof 15、以下合法的赋值语句是( )(1分) A、x=y=100 B、d--; C、x+y; D、c=int(a+b); 16、在下列选项中,没有构成死循环的程序是( )(1分) A、int i=100;whine(1) {i=i%1001;if (i>100)break;} B、for (;;); C、int k=1000;do {k;}while(k>=1000); D、int s=36;while(s);--s; 17、设a=1,b=2,c=3,d=4,则表达式:a
2分) -------------------------------------------------------------------------------- 9、将p定义为数组,数组元素类型为字符指针,数组大小为10,可写成:(2分) -------------------------------------------------------------------------------- 10、设已定义P为指向某一结构体类型的指针,如引用其成员可以写成,也可以写成(*P).成员名(2分) -------------------------------------------------------------------------------- 11、有一函数如下,编一程序,输入一个x值,输出y值 -1 x<0 y= 0 x=0 +1 x>0main() { int x,y; scanf("%d",&x); if (x<0) y = -1; else if () y = 0; y = 1; printf("x=%d,y=%d\n",x,y); } (8分) -------------------------------------------------------------------------------- 12、一球从100米高度自由落下,每次落地后反弹跳回原高度的一半,再落下,求他在第10次落地时,共经过多少米?第10次反弹多高?main(){float sn=100.0,hn=sn/2; int n; for(n=;n<=10;n++) {sn=; hn=;} printf("%f%f",sn,hn);}(12分) -------------------------------------------------------------------------------- 三、判断题(10道小题,共10分) 1、C程序中的注释部分可有可无,。
