c语言期末试题_第1页
c语言期末试题_第2页
c语言期末试题_第3页
c语言期末试题_第4页
c语言期末试题_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、c语言期末试题 篇一:c语言期末试题试卷编号:10183所属语言:Turbo C试卷方案:fny-13试卷总分:110分共有题型:7种一、填空 共5题 (共计15分)第1题 (3.0分)int x=4,y=z=2;z=x=(y=z); 则z的值为【1】。答案:1). 0第2题 (3.0分)设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是【1】。答案:1). 9第3题 (3.0分)设x=72,表达式x=(x>=60)的值为【1】。 答案:1). 1第4题 (3.0分)sqrt()函数的原型在头文件【1】中。 答案:1). math.h第5

2、题 (3.0分)int x=2;z=-x+1; 则z的值为【1】。 答案:1). -1二、判断 共5题 (共计10分) 第1题 (2.0分)若有说明int c;则while(c=get);是正确的C语句。 答案:Y第2题 (2.0分)结构体类型只有一种。答案:N第3题 (2.0分)若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义, 所以此宏定义是错误的。答案:N第4题 (2.0分)参加位运算的数据可以是任何类型的数据。答案:N第5题 (2.0分)若有 int i=10,j=2;则执行完i*=j+8;后的值为28。 答案:N三、单项选择 共10题 (共计10分)第

3、1题 (1.0分)若有下列定义,则对a数组元素地址的正确引用是()。 int a5,*p=a;A:*(p+5)B:*p+2C:*(a+2)D:*&a5答案:C第2题 (1.0分)在C语言的函数中,下列正确的说法是()。A:必须有形参B:形参必须是变量名C:可以有也可以没有形参D:数组名不能作形参答案:C第3题 (1.0分)若有说明:int a34;则数组a中各元素()。A:可在程序的运行阶段得到初值0B:可在程序的编译阶段得到初值0C:不能得到确定的初值0D:可在程序的编译或运行阶段得到初值0答案:C第4题 (1.0分)设C语言中,int类型数据占2个字节,则short类型数据

4、占()。 A:1个字节B:2个字节C:4个字节D:8个字节答案:B第5题 (1.0分)若变量a与i已正确定义,且i已正确赋值,合法的语句是()。 A:a=1B:+i;C:a=a+=5;D:a=int(i);答案:B第6题 (1.0分)若有说明:int a10;则对a数组元素的正确引用是()。 A:a10B:a3,5C:a(5)D:a10-10答案:D第7题 (1.0分)若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,值是()。A:-3B:9C:-12D:6 a的答案:C第8题 (1.0分)若有说明:int *p,m=5,n;以下正确的程序段是()。 A:p=&

5、n;scanf("%d",&p);B:p=&n;scanf("%d",*p)C:scanf("%d",&n);*p=n;D:p=&n;*p=m;答案:D第9题 (1.0分)以下叙述中不正确的是()。A:C语言中的文答案:D第10题 (1.0分)经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为()。char x=65;float y=7.3;int a=100

6、;double b=4.5;A:2,2,2,4B:1,2,2,4C:1,4,2,8D:2,4,2,8答案:C四、多项选择 共5题 (共计10分)第1题 (2.0分)以下对二维数组a进行正确初始话的是()。A:static char word=Turbo0;B:static char word=T,u,r,b,o,0;C:static char word="Turbo0"D:static char word="Turbo0"答案:BCD第2题 (2.0分)以下描述正确的是()。A:调用函数时,实参可以是表达式B:调用函数时,

7、实参与形参可以共用内存单元 C:调用函数时,将为形参分配内存单元D:调用函数时,实参与形参的类型必须一致答案:ACD第3题 (2.0分)continue语句功能正确的描述是() A:终止当前所在的循环B:结束本轮循环,开始下一轮循环 C:跳过循环体下面的语句D:只能用在3种循环语句的循环体中答案:BCD第4题 (2.0分)有说明语句char str="football"正确的描述是() A:数组str的长度是9B:strlen(str)的值是8C:str4的值是98D:str8的值是0答案:ABCD第5题 (2.0分)下列中是C语言的合法标识符的有() A:

8、good_morningB:mainC:stdio.hD:8abc答案:AB五、程序填空 共3题 (共计15分) 第1题 (5.0分)/*-【程序填空】-功能:用函数调用方式,实现字符串的复制。-*/void string_copy(char *str_from, char *str_to) int i=0;/*SPACE*/for(; (*(【?】)=*(str_from+i)!=0; i+) ; main()static char array_str120="I am a teacher." char array_str220;/*SPACE*/【?】(

9、array_str1, array_str2);/*SPACE*/【?】("array_str2=%sn",array_str2);答案:1). str_to+i 或 i+str_to2). string_copy3). printf第2题 (5.0分)/*-【程序填空】-功能:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。-*/#includevoid main(void)int n,i,j;printf("Enter INT numb

10、er,with 0 to endn"); i=j=0;scanf("%d",&n);while(n!=0)/*SPACE*/ if(n>0) i=【?】;/*SPACE*/ if(n/*SPACE*/ scanf("%d",【?】);printf("i=%4dnj=%4dn",i,j);答案:1). i + 1 或 i+1 或 1+i 或 1 + i2). j+1 或 1+j 或 1 + j 或 j + 13). &n第3题 (5.

11、0分)/*-【程序填空】-功能:输入字符串,再输入一个字符,将字符串中与输入字符相 同的字符删除。-*/#include "stdio.h"void fun(char a,char c)int i,j;/*SPACE*/for(i=j=0; 【?】;i+)if(ai!=c) aj+=ai;/*SPACE*/【?】;void main(void)char a20,cc;gets(a);/*SPACE*/【?】;/*SPACE*/【?】;puts(a);答案:1). ai != 0 或 ai 或 ai!=NULL2). aj=0 或 aj=NULL 或 aj=0

12、3). cc=get) 或 scanf("%c",&cc)4). fun(a,cc)六、程序改错 共2题 (共计20分) 第1题 (10.0分)/*-【程序改错】-功能:读入一行英文文本,将其中每个单词的最后一个字母改成 大写,然后输出此文本行 (这里的“单词”是指由空格 隔开的字符串)。例如:若输入“I am a student to take the examination.”,则应输出“I aM A studenT tO takE thE examination.”。-*/#include "conio.h&q

13、uot;#include "stdio.h"#include "ctype.h"#include "string.h"up1st ( char *p )/*FOUND*/integer k = 0;for ( ; *p; p+ )if ( k )/*FOUND*/ if ( *p = )k = 0;/*FOUND*/ *(p -1 ) = toupper( *( p - 1 ); else if ( *p != ) k = 1;*( p-1 ) = toupper( *(p-1) );

14、main( )char chrstr81;clrscr();printf( "nPlease enter a string: ); gets ( chrstr );printf( "nnBefore changing:n %s", chrstr ); up1st( chrstr );printf( "nAfter changing:n %s", chrstr );答案:1). int k=0;2). if ( *p = )3). *(p -1 ) = toupper( *( p - 1 );第2题 (10

15、.0分)/*-【程序改错】-功能:将八进制转数的字符串换为十进制数。如输入“127”,结果为87-*/#include "stdio.h"void main(void)/*FOUND*/ char p,s6;int n;p=s;gets(p);/*FOUND*/ n=0;/*FOUND*/ while(*p=0)n=n*8+*p-0;p+;printf("%d",n);getch();答案:1). char *p,s6;2). n=0;3). while(*p!=0) 或 while(*p) 或 while(*p!=0)七

16、、程序设计 共3题 (共计30分) 第1题 (10.0分)/*-【程序设计】-功能:求一个四位数的各位数字的立方和。-*/#include "stdio.h"int fun(int n)/*Program*/* End */void main()int k;k=fun(1234);printf("k=%dn",k);yzj();getch();yzj()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen("in.dat","r"

17、);if(IN=NULL)printf("Please Verify The Currernt Dir.It May Be Changed"); OUT=fopen("out.dat","w");if(OUT=NULL)printf("Please Verify The Current Dir. It May Be Changed"); for(i=0;ifscanf(IN,"%d",&iIN);iO

18、UT=fun(iIN);fprintf(OUT,"%dn",iOUT);fclose(IN);fclose(OUT);答案:-int d,k,s=0;while (n>0)d=n%10;s+=d*d*d;n/=10;return s;-第2题 (10.0分)/*-【程序设计】-功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上。例如:当a=45,b=12。调用该函数后,c=4251。-*/#include "std

19、io.h"void fun(int a, int b, long *c)/*Program*/* End */ void main()int a,b;long c;clrscr();printf("Input a, b:"); scanf("%d%d", &a, &b); fun(a, b, &c);printf("The result is: %ldn", c); getch();NONO();NONO ( )FILE

20、*rf, *wf ;int i, a,b ;long c ;rf = fopen("in.dat", "r") ;wf = fopen("out.dat","w") ;for(i = 0 ; i fscanf(rf, "%d,%d", &a, &b) ;fun(a, b, &c) ;fprintf(wf, "a=%d,b=%d,c=%ldn&q

21、uot;, a, b, c) ; fclose(rf) ;fclose(wf) ;答案:-*c=a/10*1000+a%10*10+b/10+b%10*100; -第3题 (10.0分)/*-【程序设计】-功能:求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。例如:输入的数组为:1 2 34 15 612 18 910 11 2求出的最大数为18,行坐标为2,列坐标为1。-*/#define N 4#define M 3#includeint Row,Col;void main()int aNM,i,j,max,row,col;

22、printf("input a array:");for(i=0;ifor(j=0;jscanf("%d",&aij);for(i=0;ifor(j=0;jprintf("%d",aij);printf("n");max=fun(a);printf("max=%d,row=%d,col=%d",max,Row,Col); getch();yzj();int fun(int arrayNM)/*Prog

23、ram*/* End */yzj()FILE *IN,*OUT;int iINNM,iOUT,i,j;IN=fopen("in.dat","r");if(IN=NULL)printf("Please Verify The Currernt Dir.It May Be Changed"); OUT=fopen("out.dat","w");if(OUT=NULL)printf("Please Veri

24、fy The Current Dir. It May Be Changed"); for(i=0;ifor(j=0;jfscanf(IN,"%d",&iINij);iOUT=fun(iIN);fprintf(OUT,"%d %d %dn",iOUT,Row,Col);fclose(IN);fclose(OUT);答案:-int max,i,j;max=array 00;Row=0;Col=0;for(i=0;ifor(j=0;jif(maxmax=array ij;Row=i; Col=j

25、; return(max); C语言考试题库 综合篇二:c语言期末试题C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 ( C)A、 C语言简洁、紧凑B、 能够编制出功能复杂的程序C、 C语言可以直接对硬件进行操作D、 C语言移植性好2、以下不正确的C语言标识符是 (D )A、 ABC B、 abc C、 a_bc D、 ab.c3、一个C语言程序是由 (B )A、 一个主程序和若干子程序组成B、 函数组成C、 若干过程组成D、 若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 (B )A

26、、 有零个或多个输入B、 有零个或多个输出C、 有穷性D、 可行性5、 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为 (C )A、 int B、 float C、 double D、 不确定6、在C语言中,char型数据在内存中的存储形式是 (D )A、 补码 B、反码 C、源码 D、ASCII码7、有如下程序,输入数据:12345M678后(表示回车),x的值是 ( ) 。#includemain()int x;float y;scanf("%3d%f",&x,&y);A、 12345 B、

27、 123 C、 45 D、 3458、若有以下定义int a,b; float x,则正确的赋值语句是 ( B)A、 a=1,b=2B、 b+;C、 a=b=5D、 b=int(x);9、以下程序的执行结果是 ( A)#include int i=10,j=10; printf("%d,%dn",+i,j-); A、 11,10 B、 9,10 C、 11,9 D、 10,910、巳知字母A的ASCII码是65,以下程序的执行结果是 ( D)#includemain()char c1=A,c2=Y;printf("%d,%dn&qu

28、ot;,c1,c2);A、 A,Y B、 65,65 C、 65,90 D、 65,8911、下列运算符中优先级最高的是 (C )A、 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是 (D ) 。A、 x&&yB、 xC、 x|y+z&&y-zD、 !(x13、判断char型变量cl是否为小写字母的正确表达式为 ( D)A、 a=a)&&(c1C、 (a>=c1) (z=a)&&(c114、字符串"a&

29、;quot;在内存中占据的字节个数为 (B )A、 0 B、 1 C、 2 D、 315、下面有关for循环的正确描述是(D )A、 for循环只能用于循环次数已经确定的情况B、 for循环是先执行循环体语句,后判定表达式C、 在for循环中,不能用break语句跳出循环体D、 for循环体语句中,可以包含多条语句,但要用花括号括起来16、下面程序的运行结果是(C )#includemain()int num=0;while(numnum+;printf(“%d ,num);A、 1B、 1 2C、 1 2 3D、 1 2 3 417、以下描述正确的是 ( C)A、 由于do-while循环中

30、循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。B、 do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。C、 在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。D、 do-while循环中,根据情况可以省略while。18、以下对一维整形数组a的正确说明是 (D )A、 int a(10); B、 int n=10,an;C、 int n; D、 int a10;scanf(“%d”,&n);int an;19、以下对二维数组a的正确说明是 (C )A、 inta3; B、 float a

31、(3,4);C、 double a14; D、 float a(3)(4);20、若二维数组a有m列,则在aj前面的元素个数为 (B )A、 j*m+iB、 i*m+jC、 i*m+j-1D、 i*m+j+1二、填空题(本大题共10空,每空2分,共20分)1、结构化设计中的三种基本结构是 _顺序结构,分支结构,循环结构_2、在C语言中的实型变量分为两种类型,它们是_单精度型_ 和 _双精度型_3、当a=5,b=4,c=2时,表达式 a>b!= c的值是 _1_4、下列程序运行后的输出结果是 _*#includemain()int i,j;for(i=4;i>=1;i-)printf

32、("*");for(j=1;jprintf("*");printf("n");5、若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是_0_ a21得到的初值是 _6_6、在C语言中,二维数组元素的内存中的存放顺序是_三、程序分析题(本大题共2题,每题4分,共8分,描述程序功能并写出程序执行结果)1、#includemain( )int a,s,n,count;a=2;s=0;n=1;count=1;while(countprintf(“s=%d”,s)

33、;2、#includemain()int a=33=1,3,5,7,9,11,13,15,17,sum=0,i,j;for (i=0;ifor(j=0;jif (i=j) sum=sum+aj;printf(“sum=%dn”,sum);四、编程题(本大题共4题,每题8分,共32分)1、编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 。2、试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。3、判断数m是否为素数(只能被1和它本身整除的整数)?4、对15个数进行排

34、序,按从小到大的顺序输出。 C语言期末考试试题3篇三:大学C语言期末考试练习题(带详解答案) 一、 单项选择题 1( A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2C语言程序从 开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B ) 。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.ai C.a2_i D.int t 58题为相同类型题 考点:标识符的命名规则 (1) 只能由字母、数字、下划线构成 (2) 数字不能作为标识符的开头 (3) 关键字不能作为标识符 选项A中的“-” ,

温馨提示

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

评论

0/150

提交评论