《C语言期末试题(带答案).doc》由会员分享,可在线阅读,更多相关《C语言期末试题(带答案).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、13-14-2 48课时C语言模拟练习总共42题共100分答卷编号:答题开始时间:2014-06-09 10:14:49答题结束时间:2014-06-09 10:46:47考生姓名:翟方正考试时间:00:31:58分钟总得分:25分评卷人:系统自动评卷评卷时间:2014-06-09 10:46:47一、单选题 (共15题,共30分)1. 设p1和p2是指向同一个字符串的指针变量,C为字符变量,则以下不能正确执行的赋值语句是() (2分)A.C=*p1+*p2; B.p2=C C.p1=p2 D.C=*p1*(*p2); .标准答案:B考生答案:B2. 在32位计算机中,一个字长所占的字节数为(
2、 ) (2分)A.1 B.2 C.4 D.8 .标准答案:C考生答案:A3. C语言中,运算对象必须是整型数的运算符是() (2分)A.% B./ C.%和/ D.* .标准答案:A考生答案:A4. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是() (2分)A.有零个或多个输入 B.有零个或多个输出 C.有穷性 D.可行性 .标准答案:B考生答案:D5. printf(%dn,34&27);的输出结果为: (2分)A.3 B.12 C.9 D.2 .标准答案:D考生答案:D6. 若以下选项中的变量已正确定义,则正确的赋值语句是() (2分)A.x1=26.8%3;
3、B.1+2=x2; C.x3=0x12; D.x4=1+2=3; .标准答案:C考生答案:C7. 有以下程序:main()int a,b,d=25;a=d/10%9;b=a&(-1);printf(%d,%d,a,b);程序运行后的输出结果是() (2分)A.6,1 B.2,1 C.6,0 D.2,0 .标准答案:B考生答案:D8. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值“假”,则以下不能满足要求的表达式是()。 (2分)A.A%2=1 B.!(a%2=0) C.!(A%2) D.A%2 .标准答案:C考生答案:B9. 已知对于一个二进制文件,调用标准库函数fr
4、ead的语句形式如下 fread(buffer,size,count,fp); 那么其中buffer所代表的是() (2分)A.一个整型变量,表示要读入的数据项总数B.一个文件指针,指向要读入的文件C.一个指针,指向要存放读入数据的地址D.一个存储区,存放要读入的数据项.标准答案:C考生答案:D10. 以下为合法语句标号的是() (2分)A.flag: B.tag C.int D.-here: .标准答案:B考生答案:A11. 有以下程序程序运行后的输出结果是( )main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m); (2
5、分)A. B. C. D. .标准答案:A考生答案:B12. 若已知int a34, *p; p=a; 那么对数组a的第2行第2列的正确引用是() (2分)A.a22 B.p5 C.a9 D.p11 .标准答案:D考生答案:A13. 设文件stu1.dat已存在,且有如下列程序段#include stdio.hint main() FILE *fp1, *fp2; fp1=fopen(stud1.dat,r); fp2=fopen(stud2.dat,w); while(feof(fp1) putc(getc(fp1),fp2);该程序段的功能是 (2分)A.将文件file1.c的内容输出到屏
6、幕B.将文件file1.c的内容输出到文件C.将文件file1.c的第一个字符输出到屏幕D.什么也不干.标准答案:D考生答案:D14. 有以下程序main() char *s=n123;printf(%d,%dn,strlen(s),sizeof(s);执行后输出结果是() (2分)A.赋初值的字符串有错 B.6,7 C.5,4 D.5,6 .标准答案:C考生答案:A15. C.语言对文件的操作提供了若于个标准库函数,其中对格式化读函数fscanf的函数调用正确格式是() (2分)A.fscanf(文件指针,格式控制字符串,输入项表);B.fscanf(格式控制字符串,输入项表,文件指针);C
7、.fscanf(格式控制字符串,文件指针,输入项表);D.fscanf(文件指针,输入项表,格式控制字符串);.标准答案:A考生答案:二、判断题 (共10题,共10分)1. 在C中,形式参数是局部变量 (1分) ( ).标准答案:正确考生答案:正确2. 30lu是合法的无符号长整型常量表示形式。 (1分) ( ).标准答案:正确考生答案:正确3. 数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度 (1分) ( ).标准答案:正确考生答案:错误4. C程序中的main函数必须放在整个程序的最前头() (1分) ( ).标准答案:错误考生答案:错误5.
8、用do-while语句构成循环时,只要while后的表达式为0时就结束循环 (1分) ( ).标准答案:正确考生答案:错误6. 语言不能嵌套定义函数,也不可以嵌套调用函数,也就是说,在调用一个函数的过程中,不可以调用另一个函数 (1分) ( ).标准答案:错误考生答案:错误7. 用数组名作函数形参和实参时,应在主调函数和被调函数中分别定义数组 (1分) ( ).标准答案:正确考生答案:正确8. if(ab); max=a;else max=b;假设a,b,max为已定义的整型变量,且a和b变量已有初值,则以上代码运行完毕后,max中存储的为a和b的最大值 (1分) ( ).标准答案:错误考生答
9、案:正确9. max=ab?a:bc?b:c;假设a,b,c,max均已定义,则这条语句有语法错误 (1分) ( ).标准答案:错误考生答案:错误10. 条件运算符的结合方向为“自左而右”。 (1分) ( ).标准答案:错误考生答案:错误三、填空题 (共10题,共20分)1. C语言运算符中,优先级最低的是_。 (2分).标准答案:1. , & 逗号运算符;考生答案:1. 逗号运算符;2. 一个C源程序中至少应包含一个_。 (2分).标准答案:1. 主函数&main函数;考生答案:1. 主函数;3. 设x为int型变量。与逻辑表达式!x等价的c语言关系表达式是_ (2分).标准答案:1. x=
10、0;考生答案:1. 相反;4. 若有以下程序:main() int i,j; scanf(“i=%d,j=%d”,&i,&j); printf(“i=%d,j=%d”,i, j);要求给i赋10,给j 赋20,则应该从键盘输入_ (2分).标准答案:1. i=10,j=20;考生答案:1. ,;5. 以下程序的执行结果是_。#include main( ) int x=5,y=2; printf(1:%d,!(y=x/2); printf(2:%d,y!=x%3); printf(3:%d,x0&y=y); (2分).标准答案:1. 1:0,2:0,3:0,4:1;考生答案:1. ;6. 下列
11、程序执行后的输出结果是_。#define MA(x) x*(x-1)main() int a=1,b=2; printf(%dn,MA(1+a+b); (2分).标准答案:1. 8;考生答案:1. ;7. 要使下面的程序从键盘输入一个大写字母给c1,用小写字母输出,请填空:#include stdio.hmain() char c1,c2; _;/输入一个字符给变量c1 printf(%c,%dn,c1,c1); c2=_; printf(%c,%dn,c2,c2); (2分).标准答案:1. scanf(%c,&c1);2. c1+32;考生答案:1. c1=getchar();2. get
12、char();8. 若从键盘输入58,则以下程序输出的结果是 _。 main() int a; scanf(%d,&a); if(a50) printf(%d,a); if(a40) printf(%d,a); if(a30) printf(%d,a); (2分).标准答案:1. ;考生答案:1. ;9. 设有字符型变量x的值是1(对应二进制数是),要通过“xy”运算,使得x的高3位不变,低5位取反,y的值用二进制数来表示应为_. (2分).标准答案:1. ;考生答案:1. ;10. 有以下程序main( ) int t=1,i=5; for(;i=0;i-) t*=i; printf(%dn
13、,t); 执行后输出结果是_。 (2分).标准答案:1. 0;考生答案:1. 0;四、读程序题 (共5题,共20分)1. 阅读下述程序,写出运行结果_。#include main() int a,y; a=10; y=0; do a+=2; y+=a; printf(a=%d,y=%dn,a,y); if (y20) break; while (a=14); printf(a=%dn,a); (4分).标准答案:1. a=12,y=12a=16,y=28a=16;考生答案:1. ;2. 以下程序的输出结果是_#includemain() int i,j,x=0; for (i=0;i2;i+)
14、 x+; for(j=0; j3; j+) if (j%2)continue; x+; x+; printf(x=%dn,x); (4分).标准答案:1. x=8;考生答案:1. ;3. 阅读下述程序/*progran echo.c */#include int main(int argc, char* argv) int i,j; printf(No.=%dn,argc); for (i=1;iargc;i+) printf(%c,*argvi); printf(n); return 0; 设对于此名为echo.c的源文件,经编译、连接后生成可执行文件echo.exe。今在DOS提示符下键如
15、下命令行 echo c c+ Java 请写出运行结果_。 (4分).标准答案:1. No.=4ccJ;考生答案:1. ;4. 请写出执行下述程序的输出结果_。 #include main() int i=100,j=34,k=-63,m=4; int u=-15,v=71,w=27; i+=j; j-=k; k*=-m; m/=3*j-1; u%=v-2*w; printf(i=%d,j=%d,k=%d,m=%d,u=%d,i,j,k,m,u); (4分).标准答案:1. i=134,j=97,k=252,m=0,u=-15;考生答案:1. ;5. 有以下程序,若输入的字符串是:abc123
16、edf456gh,则执行程序后输出:_#include #include main() char s80, d80; int i,j;gets(s);for(i=j=0;*(s+i)!=0;i+)if(*(s+i)=0 & *(s+i)=9 ) *(d+j)= *(s+i); j+; *(d+j)=0;puts(d); (4分).标准答案:1. ;考生答案:1. ;五、程序设计题 (共2题,共20分)1. 有一10个数的数组,求其最小值,和最大值,及最小值,最大值的不标。 (10分)标准答案:main()int a10,i,j,min,max,n; for(n=0;n10;n+) scanf(
17、%d,&an); i=j=0;min=max=a0; for(n=1;nan) min=an;i=n; else if (maxan) max=an;j=n; printf(mix=%d,i=%dt max=%d,j=%dn,min,i,max,j);考生答案:2. 马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计30人,在一家饭店里吃饭,共花了50先令,每个男人各花3先令, 每个女人各花2先令,每个小孩各花1先令,请编程计算男人、女人和小孩各有几人。 (10分)标准答案:#include main() int x, y, z; printf(MantWomentChildrenn); for (x=0; x=30; x+) for (y=0; y=30; y+) for (z=0; z=30; z+) if (x+y+z=30 & 3*x+2*y+z=50) printf(%3dt%5dt%8dn, x, y, z); 或#include main() int x, y, z; printf(MantWomentChildrenn); for (x=0; x=16; x+) for (y=0; y=25; y+) z = 30 - x - y; if (50 = 3*x+2*y+z) printf(%3dt%5dt%8dn, x, y, z); 考生答案:
限制150内