已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言期末考试 试题及答案 免费下载 最新2011年一、单项选择题1.(D)是合法的用户自定义标识符。A、 b-b B、float C、 D、 _isw2.若变量已正确定义并赋值,表达式(B)不符合C语言语法。A、a*b/c;B、3.14%2 C、2, b D、a/b/c3.(C)是不正确的字符常量。A、nB、1C、a D、1014.在 C 程序中,用(B)表示逻辑值“真”。A、1B、非 0 的数C、非 1 的数 D、 大于 0 的数5.(C)把x、y定义成float类型变量,并赋同一初值3.14。A、float x, y=3.14;B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14;6.若变量已正确定义,表达式(C)的值不是2。A、2&3 B、1b) k=0; else k=1;”和(C)等价。A、k=(ab)?1:0; B、k=ab;C、k=a=b;D、apk B、*p.pkC、*p-pkD、*x.pk16. 有如下程序int runc(int a,int b) return(a+b);main0 int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);该程序的输出的结果是 (D)A) 12 B) 13 C) 14 D) 1517. 对于基类型相同的两个指针变量之间,不能进行的运算是 (C)A) 2) return(fib(n-1)+fib(n-2);else return(2);main0 printf(“%dn”,fib(3); 该程序的输出结果是 (B)A 2 B 4 C 6 D 819. 有如下定义struct personchar name9; int age;strict person class10=“Johu”, 17,“Paul”, 19“Mary”, 18,“Adam 16,;根据上述定义,能输出字母M的语句是 (D)A) prinft(“%cn”,class3.mane);B) pfintf(“%cn”,1);C) prinft(“%cn”,1);D) printf(“%cn”,0);20. 以下所列的C语言常量中,错误的是 (B)A) 0xFF B) 1.2e0.5 C) 2L D) 7221. 有以下程序段int k=0while(k=1)k+;while 循环执行的次数是 (A)A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执行1次22. 以下程序的输出结果是 (C)fun(int x, int y, int z) z=x*x+y*y; main() int a=31;fun(5,2,a);printf(“%d”,a);A) 0 B) 29 C) 31 D) 无定值23. 下列程序段的输出结果是 (A)void fun(int *x, int *y) printf(“%d %d”, *x, *y); *x=3; *y=4;main() int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 224. 当调用函数时,实参是一个数组名,则向函数传送的是 (B)A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值25. 以下程序的输出结果是 (A)long fun( int n) long s;if(n= =1 | n= =2) s=2;else s=n-fun(n-1);return s;main() printf(“%ldn”, fun(3); A) 1 B) 2 C) 3 D) 426. 以下程序的输出结果是 (B)#define SQR(X) X*Xmain() int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);A) 16 B) 2 C) 9 D) 127. 以下函数返回a所指数组中最小的值所在的下标值,在下划线处应填入的是 (D)fun(int *a, int n) int i,j=0,p;p=j;for(i=j;iN;I+)if(ai=y & y=z _。2.下列程序段的输出是_1_。printf(%on, 01011); 3. 下列程序段的输出是_6,90_。int k;float s;for (k=0, s=0; k 7; k +)s += k/2;printf(%d, %fn, k, s); 4. 下列程序段的输出是_5,25_。#define f(a, b, x) a*x+bprintf(%d, %dn, f(3,2,1), f(6, 5, f(3, 2, 1);5. 下列程序段的输出是_*#*#_。main() int k;for(k=1; k5; k+) if(k % 2) printf(*);else continue;printf(#);6. 下列程序段的输出是_5 8_。# include int f(int x) static y=1;y+;x += y;return x;void main() int k;k=f(3);printf(%d %dn, k, f(k);7.下列程序段的输出是_5_。int *p, *q, k = 5 , j = 6 ;q = &k ; p = q ;q = &j ;printf(%d, *p);8.函数void f(char s , char t )int k=0;while (sk=tk)k+;等价于void f(char *s, char *t)while (_*s+=*t+_);9. 下列程序段的输出是_ ne,s _。char *a2=one, two, *p=a;printf(%s, *(p+)+1);printf(%cn, *p-1); 10. 下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输出结果是_zoo_。void main(int argc, char * argv ) int k;char *p=argv1;for(k=2; k0) p=argvk;printf(%sn, p); 11. 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。void main( )int a=3, b=5;swap(&a, &b );printf(After swap %d, %d, a, b);swap( int *p, int *q )int t;t=*p; ;*p=*q ;*q=t ;一、选择题(1)-(40)题每小题1分,(41)-(50)题每小题2分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)在32位计算机中,一个字长所占的字节数为_。 A) 1 B) 2 C) 4 D) 8 (2)与十进制511等值的十六进制数为_。 A) 1FF B) 2FF C) 1FE D) 2FE (3)能将高级语言编写的源程序转换成目标程序的是_。 A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序 (4)在计算机系统中,存储一个汉字的国标码所需要的字节数为_。 A) 1 B) 2 C) 3 D) 4 (5)下列带有通配符的文件名,能表示文件ABC.TXT的是_。 A) *BC.? B) A?.* C) ?BC.* D) ?.? (6)在多媒体计算机系统中,不能用以存储多媒体信息的是_。 A) 光缆 B) 软盘 C) 硬盘 D) 光盘 (7)DOS命令“COPY/?”的功能是_。 A) 将当前盘当前目录中的所有文件复制到当前盘的根目录下 B) 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下 C) 以提示方式复制文件 D) 显示COPY命令的帮助信息 (8)在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按_。 A) Ctrl+PrintScreen键 B) Shift+PrintScreen键 C) PrintScreen键 D) Alt+PrintScreen键 (9)在Windows环境下,单击当前应用程序窗口的“关闭”按钮,其功能是_。 A) 将当前应用程序转为后台运行 B) 退出Windows后再关机 C) 退出Windows后重新启动计算机 D) 终止当前应用程序的运行 (10)在Windows环境下,粘贴快捷键是_。 A) Ctrl+Z B) Ctrl+X C) Ctrl+C D) Ctrl+V (11)以下叙述中正确的是_。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行定义 (12)以下选项中合法的实型常数是_。 A) 5E2.0 B) E-3 C) .2E0 D) 1.3E (13)以下选项中合法的用户标识符是_。 A) long B) _2Test C) 3Dmax D) A.dat (14)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是_。 A) 字符A B) 字符a C) 字符e D) 非法的常量 (15)以下非法的赋值语句是_。 A) n=(i=2,+i); B) j+; C) +(i+1); D) x=j0; (16)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是_。 A) 6.500000 B) 6 C) 5.500000 D) 6.000000 (17)已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。 A) scanf(%2d%2d%2d,&i,&j,&k); B) scanf(%d %d %d,&i,&j,&k); C) scanf(%d,%d,%d,&i,&j,&k); D) scanf(i=%d,j=%d,k=%d,&i,&j,&k); (18)与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是_。 A) 3*xn/(2*x-1) B) 3*x*n/(2*x-1) C) 3*pow(x,n)*(1/(2*x-1) D) 3*pow(n,x)/(2*x-1) (19)设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是_。 A) printf(x=%d ,x); B) printf(x=%ld ,x); C) printf(x=%8dL ,x); D) printf(x=%LD ,x); (20)若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); printf(%d,%d ,m,i); 执行后的输出结果是_。 A) 8,6 B) 8,3 C) 6,4 D) 7,4 (21)已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是_。A) 6 B) 0 C) 2 D) 1 (22)有一函数 1 x0 y= 0 x=0 -1 x0) y=1;else if(x=0) y=0;else y=-1; B) y=0;if(x0) y=1;else if(x=0)if(x0) y=1;else y=-1; D) if(x=0) if(x0) y=1;else y=0;else y=-1; (23)以下选项中,与k=n+完全等价的表达式是_。 A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+1 (24)以下程序的功能是:按顺序读入10名学生4门课程的成绩, 计算出每位学生的平均分并输出,程序如下: main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%f ,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句 出现在程序的位置不正确。这条语句是_。 A) sum=0.0; B) sum+=score; C) ave=sum/4.0; D) printf(NO%d:%f ,n,ave); (25)有以下程序段 int n=0,p; do scanf(%d,&p);n+; while(p!=12345&n3); 此处do-while循环的结束条件是_。 A) p的值不等于12345并且n的值小于3 B) p的值等于12345并且n的值大于等于3 C) p的值不等于12345或者n的值小于3 D) p的值等于12345或者n的值大于等于3 (26)有以下程序 main() int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; printf(%d ,m); 程序运行后的输出结果是_。 A) 1 B) 2 C) 3 D) 4 (27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是_。 A) void B) int C) float D) double (28)若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是_。 A) p=q; B) *p=*q; C) n=*q; D) p=n; (29)有以下程序 float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(%3.0f ,fun(int)fun(a+c,b),a-c); 程序运行后的输出结果是_。 (30)有以下程序 void fun(char *c,int d) *c=*c+1;d=d+1; printf(%c,%c,*c,d); main() char a=A,b=a; fun(&b,a); printf(%c,%c ,a,b); 程序运行后的输出结果是_。 A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b (31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a,int n) int i,j,t; for(i=0;ifor(j=i+1;jif(a main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(&aa3,5); for(i=0;i10;i+) printf(%d,aa); printf( ); 程序运行后的输出结果是_。 A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7,6,5,4,9,10, D) 1,2,10,9,8,7,6,5,4,3, (32)有以下程序 int f(int n) if (n=1) return 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+) j+=f(i); printf(%d ,j); 程序运行后的输出结果是_。 A) 4 B) 3 C) 2 D) 1 (33)有以下程序 main() char a=a,b,c,d,e,f,g,h,; int i,j; i=sizeof(a); j=strlen(a); printf(%d,%d ,i,j); 程序运行后的输出结果是_。 A) 9,9 B) 8,9 C) 1,8 D) 9,8 (34)以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。 void reverse(int a,int n) int i,t; for(i=0;it=a;a=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=b; printf(%d ,s); 程序运行后的输出结果是_。 A) 22 B) 10 C) 34 D) 30 (35)有以下程序 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0; for(i=0;i4;i+) s+=aa1; printf(%d ,s); 程序运行后的输出结果是_。 A) 11 B) 19 C) 13 D) 20 (36)有以下程序 #include main() char *p=abcdefghjik; printf(%d ,strlen(p); 程序运行后的输出结果是_。 A) 12 B) 15 C) 6 D) 5 (37)程序中头文件type1.h的内容是: #define N 5 #define M1 N*3 程序如下: #include type1.h #define M2 N*2 main() int i; i=M1+M2; printf(%d ,i); 程序编译后运行的输出结果是_。 A) 10 B) 20 C) 25 D) 30 (38)有以下程序 #include main() FILE *fp; int i=20,j=30,k,n; fp=fopen(d1.dat,w); fprintf(fp,%d ,i);fprintf(fp,%d ,j); fclose(fp); fp=fopen(d1.dat,r); fscanf(fp,%d%d,&k,&n); printf(%d%d ,k,n); fclose(fp); 程序运行后的输出结果是_。 A) 20 30 B) 20 50 C) 30 50 D) 30 20 (39)以下叙述中错误的是_。 A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B) 在程序结束时,应当用fclose函数关闭已打开的文件 C) 利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据 D) 不可以用FILE定义指向二进制文件的文件指针 (40)有以下程序 #include main(int argc,char *argv) int i,len=0; for(i=1;iprintf(%d ,len); 程序编译连接后生成的可执行文件是ex1.exe, 若运行时输入带参数的命令行是: ex1 abcd efg 10 则运行的结果是_。 A) 22 B) 17 C) 12 D) 9 (41)有以下程序 int fa(int x) return x*x; int fb(int x) return x*x*x; int f(int (*f1)(),int (*f2)(),int x) return f2(x)-f1(x); main() int i; i=f(fa,fb,2); printf(%d ,i); 程序运行后的输出结果是_。 A) -4 B) 1 C) 4 D) 8 (42)有以下程序 int a=3; main() int s=0; int a=5; s+=a+; s+=a+; printf(%d ,s); 程序运行后的输出结果是_。 A) 8 B) 10 C) 7 D) 11 (43)有以下程序 void ss(char *s,char t) while(*s) if(*s=t) *s=t-a+A; s+; main() char str1100=abcddfefdbd,c=d; ss(str1,c); printf(%s ,str1); 程序运行后的输出结果是_。 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd (44)有以下程序 struct STU char num10; float score3; main() struct STU s3=20021,90,95,85, 20022,95,80,75, 20023,100,95,90,*p=s; int i; float sum=0; for(i=0;iscore; printf(%6.2f ,sum); 程序运行后的输出结果是_。 A) 260.00 B) 270.00 C) 280.00 D) 285.00 (45)设有如下定义: struct sk int a; float b; data; int *p; 若要使p指向data中的a域,正确的赋值语句是_。 A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a (46)有以下程序 #include struct NODE int num; struct NODE *next; main() struct NODE *p,*q,*r; p=(struct NODE *)malloc(sizeof(struct NODE); q=(struct NODE *)malloc(sizeof(struct NODE); r=(struct NODE *)malloc(sizeof(struct NODE); p-num=10;q-num=20;r-num=30; p-next=q;q-next=r; printf(%d ,p-num+q-next-num); 程序运行后的输出结果是_。 A) 10 B) 20 C) 30 D) 40 (47)若有以下说明和定义 typedef int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生态环境工程师招聘面试题库及参考答案
- 2025年高级秘书招聘面试参考题库及答案
- 2025年文化创意经理招聘面试参考题库及答案
- 2025年广告文案撰写师招聘面试题库及参考答案
- 2025年新媒体运营专员招聘面试参考题库及答案
- 2025年产线管理专员招聘面试题库及参考答案
- 2025年游戏开发者招聘面试题库及参考答案
- 2025年媒体关系经理招聘面试题库及参考答案
- 2025年教学督导招聘面试参考题库及答案
- 2025年应用程序测试员招聘面试题库及参考答案
- 广州长隆调研报告
- 沁园春雪朗读技巧指导教案设计
- 温度检测及仪表
- 急需学科专业引导发展清单
- 国开电大应用写作(汉语)形考任务4参考答案
- 人教版四年级数学上册四年级数学上册典型例题系列之第4单元:面积问题专项练习(解析版)人教版
- 青少年心理健康教育课件
- JJF 1975-2022 光谱辐射计校准规范
- 布袋除尘器技术协议
- 危大工程验收记录表(模板工程)
- 短视频:策划+拍摄+制作+运营课件(完整版)
评论
0/150
提交评论