




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 。A、 C语言简洁、紧凑B、 能够编制出功能复杂的程序C、 C语言可以直接对硬件进行操作D、 C语言移植性好2、以下不正确的C语言标识符是 A、 ABC B、 abc C、 a_bc D、 ab.c3、一个C语言程序是由 。A、 一个主程序和若干子程序组成B、 函数组成C、 若干过程组成D、 若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 A、 有零个或多个输入B、 有零个或多个输出C、 有穷性 D、 可行性5、 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为 A、 int B、 float C、 double D、 不确定6、在C语言中,char型数据在内存中的存储形式是 。A、 补码 B、反码 C、源码 D、ASCII码7、有如下程序,输入数据:12345M678cR后(表示回车),x的值是 。#includemain()int x;float y;scanf(%3d%f,&x,&y);A、 12345 B、 123 C、 45 D、 3458、若有以下定义int a,b; float x,则正确的赋值语句是 。A、 a=1,b=2B、 b+;C、 a=b=5D、 b=int(x);9、以下程序的执行结果是 。#includeint i=10,j=10;printf(%d,%dn,+i,j-);A、 11,10 B、 9,10 C、 11,9 D、 10,910、巳知字母A的ASCII码是65,以下程序的执行结果是 。#includemain()char c1=A,c2=Y;printf(%d,%dn,c1,c2);A、 A,Y B、 65,65 C、 65,90 D、 65,8911、下列运算符中优先级最高的是 。A、 B、 十 C、 % D、 !12、设x、y和z是int型变量,且x3,y4,z5,则下面表达式中值为0的是 。A、 x&yB、 xyC、 xy+z&y-zD、 !(xy)!z 1)13、判断char型变量cl是否为小写字母的正确表达式为 。A、 ac1fz B、 (c1a)&(c1z)C、 (a=c1) (zc1) D、 (c1a)&(c1z)14、字符串a在内存中占据的字节个数为 。A、 0 B、 1 C、 2 D、 315、下面有关for循环的正确描述是 。A、 for循环只能用于循环次数已经确定的情况B、 for循环是先执行循环体语句,后判定表达式C、 在for循环中,不能用break语句跳出循环体D、 for循环体语句中,可以包含多条语句,但要用花括号括起来16、下面程序的运行结果是 。#includemain()int num=0;while(numb!= c的值是 。4、下列程序运行后的输出结果是 。#includemain()int i,j;for(i=4;i=1;i-)printf(* );for(j=1;j=4-i;j+)printf(* );printf(n);5、若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是 ,a21得到的初值是 。6、在C语言中,二维数组元素的内存中的存放顺序是 。 得分阅卷人(签全名)三、程序分析题(本大题共2题,每题4分,共8分,描述程序功能并写出程序执行结果)1、#includemain( )int a,s,n,count;a=2;s=0;n=1;count=1;while(count=7) n=n*a; s=s+n; +count;printf(“s=%d”,s);2、#includemain()int a=33=1,3,5,7,9,11,13,15,17,sum=0,i,j;for (i=0;i3;i+) for(j=0;j3;j+) if (i=j) sum=sum+aij;printf(“sum=%dn”,sum); 得分阅卷人(签全名)四、编程题(本大题共4题,每题8分,共32分) 1、编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)9/5 。2、试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。3、判断数m是否为素数(只能被1和它本身整除的整数)?4、对15个数进行排序,按从小到大的顺序输出。C语言程序设计期末考试试卷(A卷)评分标准及标准答案一、单项选择题(本大题共20题,每题2 分,共40分)1、 B 2、 D 3、 B 4、 B 5、 C 6、 D 7、 B 8、 B 9、 A 10、D11、C 12、D 13、D 14、C 15、D16、C 17、C 18、D 19、C 20、B二、填空题(本大题共10空,每空2分,共20分)1、 顺序结构 分支结构 循环结构2、 单精度型(或:float型) 双精度型(或;double型3、 14、 * * * * * * *5、 0 66、 按行主顺序存放三、程序分析题(本大题共2题,每题4分,共8分)能正确表达出题目的含义、要求,即可得分,部分正确可按比例得分,否则不得分。 1、功能:求S=0+2+4+8+16+32+64+128 和。 输出结果:s=2542、功能:出矩形阵a的主对角线上的元素之和。输出结果:27四、编程题(本大题共4题,每题8分,共32分)能正确表达出题目的含义、要求,且格式正确,即可得满分,不要求形式完全相同。部分正确可按比例得分,否则不得分。1、 #includemain() float c,f; printf(input c:); .2分 scanf(%f,&c); .2分 f= (c+32.0)*9.0/5.0; .2分 printf(F=%.2f n ,f); .2分2、#include main()int x;scanf(%d,&x); .2分if(x%5=0&x%7=0) .2分printf(yes);.2分elseprintf(no);.2分3、 # include # include main()int m,i,k;scanf(%dn,&m);k=sqrt(m); .2分for(i=2;ik) printf(m is a prime number!n);.2分4、 # include main()int i,j,a15,t;printf(input 15 numbers:n);for(i=0;i15;i+)scanf(%d,&ai); .2分for(j=0;j15;j+).2分 for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; .2分for(i=0;i15;i+)printf(%6d,ai);试题21.(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/c 3.(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.pk 16. 有如下程序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 ; 试题3一、 单项选择题(每题2分,共20分)1、以下选项中属于C语言的数据类型是( )A复数型 B逻辑型 C集合型 D双精度型2、一个C程序的执行是从( )Amain()函数开始,直到main()函数结束 B第一个函数开始,直到最后一个函数结束C第一个语句开始,直到最后一个语句结束 Dmain()函数开始,直到最后一个函数结束3、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是( )A3 B-124、若有 char c5=c,d,0,e,0;则执行语句printf(%s,c);结果是( )。Acd0e Bcd Ccd Dcd e5、已知:int a23=1,2,3,4,5,6, (*p)3=a;则下列表达式不是4的是 ( )。A*(*p+3) B*p+3 C*(*(p+0)+3) Da036、以下有宏替换不正确的叙述( ).A宏替换不占用运行时间 B宏名无类型宏替换只是字符串替换 宏名必须用大写字母表示7、执行char str10=”Chnina”; strlen(str)的值是( )A5 B6 7 98、下面程序的输出结果是:( )#define POWER(x) (x*x)main()int i=4; printf(%d,POWER(i-2); A. -9 B. -7 C. 5 D. -69、在定义int a342;后,第10个元素是( )Aa212 a101 a201 a22110、下面程序的输出结果是:( )typedef structlong x2;short y4;char z8;MYTYPE;MYTYPE a;main() printf(%dn,sizeof(a);A. 2 B. 8 C. 14 D. 24二、 填空题(每空1分,共11分)1、字符串A在内存中占用的字节数为 。2、C语言中的标识符只能由字母、下划线和 组成。3、若有定义语句“ int a=25,b=14,c=19;,以下语句的执行结果是if(a+=25&b-=2&c+) printf(*a=%d,b=%d,c=%dn,a,b,c);else printf(#a=%d,b=%d,c=%dn,a,b,c);4、有如下定义a=B172a%;则执行语句printf(%d,strlen(a);的结果为 。5、若有定义:int a12=1,2,3,4,5,6,7,8,9,10,11,12,*p4,i; for(i=0;iy?x+:y+);x=0x02ff;y=0xff00;printf(2:%dn,(x&y)4|0x005f);x=y=z=-1; +x|+y&+z;printf(3:%d,%d,%dn,x,y,z);2、#define f(x) x*xmain()int a=6,b=2,c;c=f(a+b)/f(b);printf(“%dn”,c);3、fun(int k) printf(%d,k);if(k0)fun(k-1);main( ) int w=5; fun(w); printf(n); 4、#includemain()int x=1,y=0;switch(x) case 1:switch(y) case 0:printf(“firstn”);break;case 1:printf(“secondn”);break;case 2:printf(“thirdn”);5、#includemain() int k=4;func(k); func(k);func(int a) static int m=0;m+=a;printf(%d,m);6、struct st int x;int *y;*p;int s=30,20;struct st a=1,&s0,2,&s1;main() p=a; printf(%d,p-x);printf(%dn,+(*(+p)-y);7、假定在当前盘目录下有个文本文件,其名称和内容如下:文件名: a1.txt a2.txt内容: ABCDEF# abcdef#include stdio.hmain()FILE *fp;void fc();if(fp=fopen(a1.txt,r)=NULL)printf(Can not open file!n); exit(1);elsefc(fp);fclose(fp);if(fp=fopen(a2.txt,r)=NULL)printf(Can not open file!n); exit(1);elsefc(fp);fclose(fp);void fc(fp1)FILE *fp1;char c;while(c=fgetc(fp1)!=#)putchar(c);四、 程序填空(每空2分,共14分)1、下面程序求矩阵a的主对角线元素之和,请填空。main() int a33=2,4,6,8,10,12,14,16,18;int sum=0,i,j;for(i=0;i3; )for(j=0; ;j+)if(i= =j) sum=sum+ ;printf(sum=%dn,sum);2、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中, 复制时0也要复制过去,0后面的字符不用。coy(char s1,char s2) int i;for(i=0;s2i!= ;i+)s1i=s2i; ;3、下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。main() char a=students,t; int i,j;for(i=1;i7;i+=2)for(j=i+2;jz)?x+2;x+;则x的值是:_;设int a0,b0,c0;c+a | | b+; ,则a、b、c值分别是:_。9 与if (x=0) 等价的写法是if ( ! x );判断两个(float)变量x,z是否相等一般:if ( fabc(x-z)=y=z) B(x=y)AND(y=z)C(x=y)&(y=z) D(xy)&(y=z)8 根据定义int a =1,2,3,i,*p=a; 从语法分析_是不正确的。A ap-a B*(&a) Cp D*(*(a+i)9 若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为_。A12 34 B12,34 C1234 D12:3410union uex int i;float f;char c;ex;则sizeof(ex)的值是_。A4 B5 C6 D7三 分析程序,写出运行结果。(每题4分,共20分)1 源程序如下,运行时假定键盘输入字符串为2004#includevoid main(void)int n=0;char c;while( (c=getchar( ) ! =n ) /*字符型数字*/if (c=0&c=9 )n = n*10 + c- 0 ; /*数字*/printf(“value=%d|n” ,n);结果为: value=2004 。2 源程序如下:#includevoid main(void)int num9=399,398,397,396,395,299,290,311,301;int score9=81,85,59,77,90,66,89,93,73;int iMax,iPos,i;iPos=0;iMax=scoreiPos;for(i=1;iiMax)iPos=i;iMascoreiPox;printf(“num=%d,score=%d”,numiPos;scoreiPos);结果为: num=311, score=93 。3 源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10#includevoid main(void)int i,a10;int *p;p=a;for(i=0;i10;i+)scanf(“%d“,p+);for(p=a;p;p+)if (*p%2)printf(“%3d”,*p);结果为: 1 3 5 7 9 。4 源程序如下,两次运行,分别输入数据13和21#include#includevoid main(void)int n,s;scant (“%d”,&n);s=panduan( n);if(s=1)printf(“yesn”);else printf(“non);int panduan(int n)int k,j;k=(int)sqrt(double)n);for(j=2;jk) retum(1);else retum(0);结果为 yesno5.源程序如下,运行时假定键盘输入字符为:AxByCz#include#includevoid main(void)char str80;int i;gets(str);for(i=0;str!=0;i+)if(str=a&str=A&str=Z) str+=32;puts(str);结果为: aXbYcZ 。四 下列程序中每个划线处有一个错误,改正划线 中的错误,使其实现题目要求。(每体4分,共20分)1 求 s=1+2+3+、+100include 改正为_。void sum (void) 改正为_。int s,i;for (s=0,i=1;i=100;i+)s=s+ i +; 改正为_。printf (“s=%f”,s) 改正为_。2 源程序实现求x#includedouble pow(float . int) 改正为_。void main(void)int i, n;float x;scanf (“%f,%d”,&x,&n);for (i=1; i9;i+)printf(“%d,%en”, i, pow(i,x); 改正为_。double v v pow(float x, int n)int i;double p=0; 改正为_。for (i=1; i改正为_。p*=x;retum(p);3 源程序实现排升序。#includevoid main(void)int i, j, iMin, a10=4,3,5,1,10,12,2,6,7,9, iTemp;for (i=0; i9; i+)iMin=0; 改正为_。for (j=i+1; j10;j+)if(aiMin改正为_。if (iMin=i) 改正为_。 iTemp=a;aiMin=a; 改正为_。aiMin=iTemp;for(i=0; i10; i+)printf(“%4d”, a):4 源程序为求平均值。#includevoid main(void)int i, sum; 改正为_。floa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省唐山市玉田县2023-2024学年五年级下学期期末数学试题
- 西南财经大学-公司治理与战略管理
- 学校后勤工作经验交流分享会上校长讲话:全网疯传!最废的校长却带出了最强的后勤
- 幽默课件教学课件
- 巡视病房的观察要点
- 崖壁攀登概述课件
- 岩石书课件教学课件
- 尾矿工安全生产教育培训课件
- 河南省生态园区民宿租赁合同含环保设施租赁说明
- 环保技术研发工人计件合同
- 2024年河南省确山县卫生系统招聘考试(护理学专业知识)题含答案
- 病原微生物感染
- 【物理】2025届安徽省普通高中高三下学期高考全真模拟训练(三)试题(解析版)
- 自然保护区巡护监测员技能测试题库及答案
- 教育资源分配与教育公平的探索
- 消杀灭虫技术培训课件
- 中学实验室安全管理课件
- 中国风设计元素课件
- 北京市救助资金管理办法
- 陕西省西工大附中2022-2023学年七年级上学期第一次月考英语试卷(含答案)
- 新型医药销售外包(CSO)企业制定与实施新质生产力项目商业计划书
评论
0/150
提交评论