C语言历年题目一_第1页
C语言历年题目一_第2页
C语言历年题目一_第3页
C语言历年题目一_第4页
C语言历年题目一_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言历年题目(一)一、单项选择题(共40分 每题1分)说明:答案必须填在答题卡的单项选择题部分,否则不得分。1. 关于C程序的构成描述, D 是不正确的。A) 一个源程序至少且仅包含一个main函数,也可包含一个main函数和若干个其他函数。B) 函数由函数首部和函数体两部分组成,二者缺一不可。C) 函数首部通常是函数的第1行,包括:函数属性、函数类型、函数名、函数参数等,不管有无函数参数,函数名后的圆括号不能省。D) 函数体通常在函数首部下面,用一对花括号将声明部分和执行部分括起来,不能为空。2. C程序中,不管是数据声明还是语句,都必须有一个结束符,它是C语句的必要组成部分,该符号是 C

2、 。A) 逗号“,”B) 句号“。”C) 分号“;”D)单撇号“”3. 下列关于C程序的运行流程描述, C 是正确的。A) 编辑目标程序、编译目标程序、连接源程序、运行可执行程序。B) 编译源程序、编辑源程序、连接目标程序、运行可执行程序。C) 编辑源程序、编译源程序、连接目标程序、运行可执行程序。D) 编辑目标程序、编译源程序、连接目标程序、运行可执行程序。4. 下列关于算法特性的描述, D 是不正确的。A) 有穷性:指一个算法应该包含有限的操作步骤,而不能是无限的。B) 确定性:指算法的每一个步骤都应当是确定的,不应该是含糊的、模棱两可的。C) 有效性:指算法中的每一个步骤都应当能有效地执

3、行,并得到确定的结果。D) 输入/输出性:指算法中可以有输入/输出操作,也可以没有输入/输出操作。5. 描述或表示算法有多种方法, D 不是常用的表示方法。A) 自然语句B) 流程图或N-S图C) 伪代码D) 效果图6. 下面四个哪一个是C语言正确的标识符 B 。 A) 27. 下面数据中属于字符型常量的是 B 。 A) “AND” B)N C)“ABC” D)OR8. 执行下列程序段后,a的值是 D 。int a,b,c,m=10,n=9;a=(-m=n+)?-m:+n; A) 11 B) 10 C) 9 D) 89. 下面不正确的赋值语句是 A 。 A) a=b B) a+; C) a=1

4、,b=1; D) a+=b;10. 正确表示整型变量a在1,10区间的表达式是 D 。 A)1<=a<=10 B)1<a<10 C)a>=1,a<=10 D)1<=a&&a<=1011. 执行下列程序段,x的值为5的程序段是 D 。 A) m=5; B) m=5; C) m=5; D) m=5;m+; +m; x=+m; x=m+;x=m; x=m;12. 若定义int a=3,b=4,c=5;,则表达式a|b+c&&b=c的值是 B 。 A) 0 B) 1 C) 2 D) 313. 与y=(x>0?1:0)

5、;等价的是 C 。 A)if(x>0) y=1; B)if(x)y=1;else y=0; C)y=1;if(x<=0)y=0; D)if(x<=0)y=1;14. 在for(表达式1;表达式2;表达式3)循环中, B 常用于表示循环条件判断。 A)表达式1 B) 表达式2 C) 表达式3 D)都不是15. 下列程序段表示的数学关系是 A 。y=-1;if(x!=0) if(x>0)y=1; else y=0; A) -1 x=0 B) 1 x=0 C) 0 x>0 D) -1 x<2y= 1 x>0 y= -1 x>0 y= 1 x<0

6、y= 0 x=20 x<0 0 x<0 -1 x=0 1 x>216. int a6=1,2,3,则a0到a5各元素的值是 A 。 A) 1,2,3,0,0,0 B) 1,2,3,3,3,3 C) 1,2,3,1,2,3 D) 1,2,3,a3到a5不确定17. 下列程序段执行后,z的结果是 B 。#define p(x) x*xint x=5,y=3,z;z=p(x+y);A) 64 B) 23 C) 46 D) 3218. 有以下定义,且满足0<i<5,则 D 是对数组元素地址的正确表示。int a =1,2,3,4,5,*p,i;p=a;A) &(a

7、+i) B) a+ C) &p D) &pi19. 下列程序段执行后,i的值是 A 。int i=100,*p;p=&i;i=*p+10;A) 110 B) 100 C) 120 D) 9020. 在数组名作函数实参时,传递给函数形参的是 A 。A) 数组首地址 B) 数组全部元素 C) 数组第1个元素 D)数组最后一个元素21. 下列的函数原型声明, D 是正确的。A) void f(int x;int y); B) void f(x,y);C) void f(intx,y); D) void f(int,int);22. 若int i=10;执行下列程序后,变量i的

8、正确结果是_D_。switch(i)case 9:i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;A) 10 B) 11 C) 12 D) 1323. 以下判断两个字符串相等的正确方法是_D_。A) if(str1=str2) B) if(str1=str2)C) if(strcpy(str1,str2)=0) D) if(strcmp(str1,str2)=0)24. C语言对嵌套if语句的规定是:else总是_D_配对。A) 与之前最近的ifB) 与第一个ifC) 与缩进位置相同的ifD) 与其之前最近的且尚为配对的if25. 在下面的条件语句中(其

9、中s1和s2表示C语言的语句),只有一个在功能上与其它三个语句不等价,它是_D_。A) if(a)s1;else s2;B) if(a=0)s2;else s1;C) if(a!=0)s1;else s2;D) if(a=0)s1;else s2;26. 以下错误的描述是_B_。A) break语句不能用于循环语句和switch语句外的任何其它语句。B) 在switch语句中使用break语句或continue语句的作用相同。C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环。D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。27. 以下四

10、个关于C语言的结论中,只有一个是错误的,它是_D_。A) 可以用while语句实现的循环一定可以用for语句实现B) 可以用for语句实现的循环一定可以用while语句实现C) 可以用do-while语句实现的循环一定可以用while语句实现D) do-while语句与while语句的区别仅是关键字“while”出现的位置不同28. 以下不是死循环的语句是_D_。A) for(;x+=i);B) while(1)x+;C) for(i=10;i-)sum+=i;D) for(;(c=getchar()!='n')printf("%c",c);29. 定义in

11、t i=1;,执行语句while(i+<5);后,i的值为_D_。A) 3B) 4C) 5D) 630. 下面程序段中,for语句的循环次数是_B_。sum=0;for(i=0;i<100;i+=2)sum+=i;A) 100B) 50C) 49D) 9931. 在C语言中,引用数组元素时,其数组下标的数据类型允许是_C_。A) 整型常量B) 整型表达式C) 整形常量或整形表达式D) 任何类型的表达式32. 若有定义:int a10,则对数组a元素的正确引用是_D_。A) a10B) a3.5C)a(5)D) a10-1033. 以下能对二维数组a进行正确初始化的语句是_A_。A)

12、 int a2=1,0,1,5,2,3;B) int a3=1,2,3,4,5,6;C) int a24=1,2,3,4,5,6;D) int a3=1,0,1,1,1;34. 若二维数组a有m列,则在aij之前的元素个数为_B_。A) j*m+iB) i*m+jC) i*m+j-1D) i*m+j+135. 以下说法中正确的是C。A) C语言程序总是从第一个函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分36. 下列叙述中正确的是A。A) 函数定义不能嵌套,函数调

13、用能嵌套B) 函数定义和函数调用都不能嵌套C) 函数定义能嵌套,函数调用不能嵌套D) 函数定义与函数调用都能嵌套37. 以下说法中正确的是C。A、#define和printf都是C语句B、#define是C语句,而printf不是C、printf是C语句,#define不是D、#define和printf都不是C语句38. 以下关于函数叙述中,正确的是D。A) 在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B) 在函数体中至少必须有一个return 语句C) 在函数体中可以定义另一个函数D) 在函数体中可以调用函数自身39. 在C语言中,若对函数类型未加显式说明,则函数

14、的隐含类型是C。A) voidB) doubleC) intD) char40. 下面不正确的描述为D。A) 调用函数时,实参可以是表达式B) 调用函数时,实参与形参可以共用内存单元C) 调用函数时,将为形参分配内存单元D) 调用函数时,实参与形参的类型必须完全相同二、填空题(共10分 每空1分)说明:答案必须填在答题卡的填空题部分,否则不得分。1. 函数由主要由_函数声明_、_函数体_组成。2. 结构化程序设计中的三种基本结构是顺序结构、_选择结构_、_循环结构3. C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为_字母_。4. 字符串是以_0_为结束标志的一维

15、字符数组。5. 定义int a1,2,3,4,5,6,*pa;表达式(*p)的值是_3_。6. 若x=5,y=10,则x>y和x<=y的逻辑值分别为0和_1_。7C语言中,数组是一种重要的数据结构,它的下标总是从_0_开始。8若有定义FILE *fp;,要求以二进制读写方式(rb+)打开文件list,正确打开文件list的语句是fp=fopen(“list”, “rb+”); 。三、程序运行题(共20分 每题4分)说明:答案必须填在答题卡的程序运行题部分,否则不得分。1. 下面程序的运行的结果是 。#include <stdio.h>void main()int i,j

16、,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);2. 下面程序段执行后,sum的值为 。#include <stdio.h>void main()int sum=0,i;for(i=1;i<=10;i+)if(i%5=0)break;else sum+=i;3. 下面程序运行的结果是: #include <stdio.h>void main()int s=0,k;for(k=7;k>=4;k-)switch(k)case 1:case 2:case 3:s+;break;case 4:case 5:

17、case 6:s+=2;break;case 7:case 0:s+=3;break;printf(“s=%dn”,s);4. 程序清单如下:#include <stdio.h>void main()int sum=0,number,i=1,finished=0;while(i<=8&&!finished)scanf(“%d”,&number);if(number>0) sum+=number;else if(number=0) finished=1;i+;printf(“sum=%d,number=%d”,sum,number);若运行该程序,

18、并输入数据为:5 6 3 7 4 0,则结果为 。5. 下面程序运行的结果是: 。#include <stdio.h>int max(int,int);int a=3,b=5,c=100;void main()int s=0;s+=max(max(a,b),c);printf(“s=%dn”,s);int max(int x,int y)int a=15,b=20,max;max=(a>b)?a:b;return(max);1. 9,11,9,10 2. 10 3. s=9 4. sum=18,number=0 5. s=20 四、完善程序题(共20分 每空2分)说明:每空必

19、须且只能填写一个语句或一个表达式,答案必须填在答题卡的完善程序题部分,否则不得分。1.打印输出100200间的所有素数,要求每行输出10个素数。其中判定m是否为素数的方法:用2到m-1范围内的各整数去除m,若都除不尽,则m是素数。程序清单如下:#include <stdio.h>#include <math.h>void main()int m,i,n=0;for(m=100;m<=200;m+)for(i=2;i<=m-1;i+)if( (1) ) break;if(i>=m)printf(“%d”,m); (2) ;if(n%10=0) (3) ;

20、printf(“n”);2下列程序的功能是:从键盘输入一行字符,统计其中单词个数,单词之间用空格分隔开。程序清单如下:#include <stdio.h>void main()char string81;int i,num=0,word=0;char c;gets( (1) );for(i=0;(c=stringi) (2) 0;i+)if(c= )word=0;else if( (3) )word=1; (4) ;printf(“There are %d words in the line.n”, num);3下列程序用于输出下面的图形。要求:图形第一行的第一个字符输出在第40列

21、且字符0之间以一个空格隔开。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0程序清单如下:#include <stdio.h>void main()int i,j;char a5=0, 0, 0, 0, 0,space= ;for(i=1;i<= (1) ;i+) for(j=1;j<= (2) ;j+) printf(“%c”,space);for(j=0;j<5;j+) printf(“%c%c”,aj,space); (3) ;1. (1)m%i=0 (2)n+ (3)printf(“”n) 2. (1)s

22、tring (2)!= (3)word=0 (4)num+ 3. (1)5 (2)38+i (3)printf(“n”) 五、编程题(共10分 第1题4分,第2题6分)说明:答案必须填在答题卡的编程题部分,否则不得分。1 编程序,从键盘输入三个整数,求出其中的最大数和最小数(4分)。2用/41-1/3+1/5-1/7+公式求的近似值,直到最后一项的绝对值小于10-6为止(6分)。第1题:程序清单#include <stdio.h>void main()int a,b,c,max,min;printf(“Please input three numbers:n ”);scanf(“%

23、d,%d,%d”,&a,&b,&c);max=a;min=a;if(b>max)max=b;if(b<min)min=b;if(c>max)max=c;if(c<min)min=c;printf(“Max=%d,Min=%dn”,max,min);第2题:程序清单#include<math.h>main()int s;float n,t,Pi;t=1;Pi=0;n=1.0;S=1;while(fabs(t)>1e-6)Pi=Pi+t; n=n+2; s=-S; t=S/n;Pi=Pi*4;printf("Pi=%10.6fn",Pi);C语言历年题目(一)参考答案一、单项选择题(共40分 每题1分)12345678910DCCDDBBDAD11121314151617181920DBCBAABDAA21222324252627282930DDDDDBDDDB3132

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论