预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《C程序设计》试卷(B) 姓名学号班级分数 题号一二三四五六总分分数一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其代码填入题干后的括号内。每小题3分,共45分) 1.表达式9&&-3&&1的值为(A)。 A.1B.3C.5D.7 2.若x=5,则x*=x+2的值为(A) A.35B.12C.7D.25 3.以下运算符中,运算对象必须是整型的是(B) A./B.%C.!D.〈 4.假设指针p已经指向某个整型变量m,则*p相当于(C) A.&mB.&pC.mD.*m 5.以下c语言函数声明中,不正确的是(C) A.voidfun(intx,inty);B.fun(intx,inty); C.intfun(intx,y);D.char*fun(char*s); 6.下列选项中,不合法的C语言关键字是(D) A.autoB.externC.staticD.mian 7.C语言中while和do-while循环的主要区别是(D) do-while的循环体不能是复合语句。 while循环比do-while循环控制条件严格。 do-while允许从外部转到循环体内。 do-while循环体至少要无条件执行一次。 8.若有定义:chars[10];则对a数组元素的正确引用是(C) s[10]B.s[15]C.s[1]D.s(1) 9.C语言允许函数值缺省定义,此时该函数值隐含的类型是(C) floatB.charC.intD.double 10.下列关于宏替换的叙述不正确的是(D) 宏替换不占用运行时间B.宏名无类型 C.宏替换只是字符替换D.宏名必须用大写字母表示 11.变量的指针,其含义是指该变量的(B) A.值B.地址C.名D.一个标志 12.设有定义intx=2;inty=‘a’<‘A’?x--:x++;,则变量y的值是(B) A.0B.2C.1D.3 13.以下对结构体变量stu1中的成员age的非法引用是(B) structstudent {intage; intnum; }stu1,*p; p=&stu1; A.stu1.ageB.student.ageC.p->ageD.(*p).age 14.若x=2,y=3则x&y的结果是(B) A.0B.2C.3D.5 15.系统的标准输入文件是指(A) A.键盘B.显示器C.软盘D.硬盘 二、填空题(每空2分,共20分) 1、下面程序的功能是计算1到10之间的奇数之和及偶数之和,请在下划线处填完整程序。 Main() {inta,b,c,i; for(i=0;i<=10;i+=2) {a+=i;b=i+1;c+=b;} printf(“偶数之和=%d\n”,a); printf(“奇数之和=%d\n”,c-11)} 2、以下程序的功能是显示1到3的阶乘的值。 intfac(intn) {staticintf=1; f=f*n; return(f);} main() {intx for(x=1;x<=3;x+=)printf(“%d!=%d\n”,x,fac(x));} 3、有intx,y,z;且x=3,y=4,z=5则表达式x++-y+(++z)的值为5。 4、main() {intx=1,y,z; x*=2+4; x*=y=z=5; printf(“%d\n”,x);} 以上程序的运行结果是30。 5、有人卖1020斤南瓜,第一天卖一半多2斤,以后每天卖剩下的一半多2斤,问几天能买完?请填空。 Main() {intday,x1,x2; day=0;x1=1020; while(X1) {x2=X1/2-2;x1=x2;day++;} printf(“day=%d\n”,day);} 6、下面程序段的运行结果是fgh。 charstr[]=”XYZ\0defgh\0abcghi”,*p=str; printf(“%s”,p+6); (注以下每空1分共4分)。 7、在C程序中,指针变量能够赋地址值或空值。 8、在C语言中,文件可以用顺序和随机两种形式存取。 三、计算题(每小题5分共10分) 1、X=0123则求表达式(5+(int)(x))&(-2)的值 答:0130或88或0x58 2、X=100101,Y=110111,求X&Y的值。 答:X&Y的值为100101。 四编程题(8分+10分+7分=25分) 1、输出以下图案(8分) * *** ***** ******* ***** *** * 参考答案: main() {inti,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++)printf(““); for(k=0;k<=2*i;k++)printf(“*”); printf(“\n”);} for(