C语言程序设计期末考试试题及其答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计期末考试试题及其答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试试题及其答案.pdf(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、单项选择题(本大题共 20 题,每题 2 分,共 40 分)1、以下不是 C 语言的特点的是()A、C 语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C 语言可以直接对硬件进行操作 D、C 语言移植性好 2、以下不正确的 C 语言标识符是()A、ABC B、abc C、a_bc D、ab.c 3、一个 C 语言程序是由()A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等 5 个特性,对另外 4 个特性的描述中错误的是()A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量 a 是整型,f 是实
2、型,i 是双精度型,则表达式 10+a+i*f 值的数据类型 为()A、int B、float C、double D、不确定 6、在 C 语言中,char 型数据在内存中的存储形式是()A、补码 B、反码 C、源码 D、ASCII 码 7、有如下程序,输入数据:12345M678cR后(表示回车),x 的值是()。#include main()int x;float y;scanf(%3d%f,&x,&y);A、12345 B、123 C、45 D、345 8、若有以下定义 int a,b;float x,则不正确的赋值语句是()A、a=1,b=2 B、b+;C、a=b=5 D、b=int(x
3、);9、以下程序的执行结果是()#include int i=10,j=10;printf(%d,%dn,+i,j-);A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母 A 的 ASCII 码是 65,以下程序的执行结果是()#include main()char c1=A,c2=Y;printf(%d,%dn,c1,c2);A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是()A、B、十 C、%D、!12、设 x、y 和 z 是 int 型变量,且 x3,y4,z5,则下面表达式中值为 0 是()。A、x&y B、xy C、x
4、y+z&y-z D、!(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、3 15、下面有关 for 循环的正确描述是()A、for 循环只能用于循环次数已经确定的情况 B、for 循环是先执行循环体语句,后判定表达式 C、在 for 循环中,不能用 break 语句跳出循环体 D、for 循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是()#include main(
5、)int num=0;while(numb!=c 的值是_ 4、下列程序运行后的输出结果是_#include main()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、#include main()int a,s,n,count;a=2;
6、s=0;n=1;count=1;while(count=7)n=n*a;s=s+n;+count;printf(“s=%d”,s);2、#include main()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+aj;printf(“sum=%dn”,sum);四、编程题(本大题共 4 题,每题 8 分,共 32 分)1、编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏 幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)9/5。2、试编程判断
7、输入的正整数是否既是 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、D 11、C 12、D 13、D 14、C 15、D 16、C 17、C 18、D 19、C 20B 二、填空题(本大题共 10 空,每空 2 分,共 20 分)1、顺序结构 分支结构 循环结构 2、单精
8、度型(或:float 型)双精度型(或;double 型 3、1 4、*5、0 6 6、按行主顺序存放 三、程序分析题(本大题共 2 题,每题 4 分,共 8 分)能正确表达出题目的含义、要求,即可得分,部分正确可按比例得分,否则不得分。1、功能:求 S=0+2+4+8+16+32+64+128 和。输出结果:s=254 2、功能:出矩形阵 a 的主对角线上的元素之和。输出结果:27 四、编程题(本大题共 4 题,每题 8 分,共 32 分)能正确表达出题目的含义、要求,且格式正确,即可得满分,不要求形式完全 相同。部分正确可按比例得分,否则不得分。1、#include main()float
9、 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 分 else printf(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
10、分 4、#include main()int i,j,a15,t;printf(input 15 numbers:n);for(i=0;i15;i+)scanf(%d,&a);.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,a)一 选择题 1以下关于运算符优先顺序的描述中正确的是(C )。A关系运算符 算术运算符 赋值运算符 逻辑与运算符 B逻辑 运算符 关系运算符 算术运算符 赋值运算符 C赋值运算符 逻辑与运算符 关系运算符 算术运算符 D算术运算符 关系运算
11、符 赋值运算符 逻辑与运算符 2下列选项中合法的变量名是_C_ A#define B int C a594_3 D abs(x)3以下正确的描述是(A )。A break 语句的作用是结束整个循环的执行 B在 C 程序中,注释说明只能位于一条语句的后面 C 在循环体内使用 break 语句或 continue 语句的作用相同 D 从多层循环嵌套中退出时,只能使用 goto 语句 4以下说法正确的是(C )A#define 和 printf 都是 C 语句。B#define 是 C 语句,而 printf 不是。C若程序中要调用数学函数,必须在文件开头输入语句#include“math.h”D#
12、define 和 printf 都不是 C 语句。5下面的函数定义正确的是_D_ A)float fun(float x;float y)return x*y;B)float fun(float x,y)return x*y;C)float fun(x,y)int x,y;return x*y;D)int fun(int x,int y)return x*y;6执行下面语句后的输出为(D)int i=-1;if(i=0|b=0)&(a0|b=0&b=0)|(a0&b0)&(a+b0)&(a-b=y&cha&!y)的值是(C )A)0 B)语法错 C)1 D)假 17下列关于单目运算符+、-的叙
13、述中正确的是(D )A)它们的运算对象可以是任何变量和常量 B)它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量 C)它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量 D)它们的运算对象可以是 char 型变量、int 型变量和 float 型变量 18下面的程序(B)void main()int x=3;do printf(“%dn”,x-=2);while(!(-x);A).输出的是 1 B).输出的是 1 和-2 C).输出的是 3 和 0 D).是死循环 19如下程序:void main()int a=6;
14、printf(“%dn”,(a+=3,2*a);执行后,输出结果是(D )A)9 B)6 C)2 D)18 20若有以下说明和语句,请选出哪个是对 C 数组元素的正确引用(D)int c45,(*cp)5;cp=c;A).cp+1 B).*(cp+3)C).*(cp+1)+3 D).*(*cp+2)21下面程序的输出是(B )main()int x=023;printf(%dn,-x);A).17 B).18 C).23 D).24 22执行下列程序的结果是(B)main()float x=1,y;y=+x*+x;printf(“%fn”,y);A).9.000000 B).6.000000
15、C).1.000000 D).程序有错误 23下面程序的输出是(A)main()int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(%dn,*(p+2);A).3 B).4 C).1 D).2 24执行下面程序中的输出语句后,a 的值是(B )main()int a;printf(%dn,(a=3*5,a*4,a+5);A).65 B).20 C).15 D).10 25下面程序的输出是(C)main()int a=-1,b=4,k;k=(a+=0)&(!(b-=0);printf(%d%d%d n,k,a,b);A).0 0 3 B).0 1 2 C).1 0
16、3 D).1 1 2 26设有如下的程序段:char str=Hello;char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为(B )A).0 B).0 C).不确定的值 D).0的地址 27在宏定义#define PI 3.14159 中,用宏名 PI 代替一个(C)A).单精度数 B).双精度数 C).常量 D).字符串 28若 i 是整型变量,pb 是基本型为整型的指针变量,则正确的赋值表达式是(A )A).pb=&i B).pb=i C).*pb=&i D).*pb=*i 29有以下程序段 int m=0,n=0;char c=d;scanf(%d%c%d,
17、&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:6D6,则输出结果是(C )A)0,d,6 B)6,d,6 C)6,D,6 D)6,D,0 30printf()函数中用到格式符%-7s,其中数字 7 表示输出的字符串占用 7 列。如果字符串长度小于 7,则输出按方式(A )A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 31以下能正确地定义整型变量 a,b 和 c 并为其赋初值 3 的语句是(A)A)int a=3,b=3,c=3;B)int a,b,c=3;C)a=3,b=3,c=3;D)a
18、=b=c=3;32以下程序的输出结果是(D )void main()int x=6,y=6,i;for(i=2;x4;y=+i)printf(%d,%d ,x-,y);A)5,5 5,3 B)6,6 2,3 C)6,5 5,2 D)6,6 5,3 33以下程序的输出结果是(B)void main()int w=4;int fun(int k);fun(w);printf(n);fun(int k)if(k0)fun(k-1);printf(%d,k);A)4 3 2 1 B)0 1 2 3 4 C)1 2 3 4 D)4 3 2 1 0 34下面程序的输出是(B)main()int x=023
19、;printf(%dn,-x);A).17 B).18 C).23 D).24 35以下程序的输出结果是(C )main()char ch34=123,456,78,*p3;int i;for(i=0;i3;i+)pi=chi;for(i=0;i3;i+)printf(%s,pi);A).123456780 B).123 456 780 C).12345678 D).147 36下面程序的输出结果为(B)char *alpha6=ABCD,EFGH,IJKL,MNOP,QRST,UVWX;char *p;void main()int i;p=alpha;for(i=0;i4;i+)printf
20、(%c,(*p)i);printf(n);A).EIMC B).ABCD C).EFGH D).AEIM 37根据下面的定义,能打印出字母 M 的语句是(D )struct person char name9;int age;struct person class10=John,17,Paul,19,Mary,18,Adam,16 A).printf(%cn,class3.name);B).printf(%cn,class3.name1);C).printf(%cn,class2.name1);D).printf(%cn,class2.name0);38有以下程序 void main()int
21、 p7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);执行后输出结果是(D )A)58 B)56 C)45 D)24 39以下程序的输出结果是(A )void main()int i,x33=9,8,7,6,5,4,3,2,1,*p;p=&x11;for(i=0;i6;i+=3)printf(%d,pi);A)5 2 B)5 1 C)5 3 D)9 7 40以下程序的输出结果是(A )#include void main()char*a=”abcdefghi”;void fun(char*s);fun(a)
22、;puts(a);void fun(char*s)int x,y;char c;for(x=0,y=strlen(s)-1;xy;x+,y-)c=sy;sy=sx;sx=c;A).ihgfedcba B).abcdefghi C).abcdedcba D).ihgfefghi 41void main()int i,a=5,6,9,11;for(i=0;i4;i+)if(ai%2=0)continue;printf(%d ,ai);执行后输出结果是(C )A)编译出错 B 6 C)5 9 11 D)5 6 9 11 42以下对数组的定义正确的是(D )A)int x(10);B)int x5=0
23、,1,2,3,4,5;C)int n=10;xn;D)int x=0,1,2,3,4;43.以下叙述中不正确的是(B )A)switch 是多分支结构语句 B)continue 语句的作用是使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和 switch 语句体内 D)在循环体内使用 break 语句和 continue 语句的作用不相同 44如下程序:void main()int i=1,j=2,k=3;if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是(D )A)1,2,3 B)2,2,4 C)2,3,4 D)2,3,3 4
24、5以下叙述中,不正确的是(C )A)算法应该具有有穷性、确定性以及有效性等特点 B)算法可以用传统流程图、N-S 流程图以及伪代码等形式来描述 C)基本结构只有顺序、选择、循环 3 种结构 D)结构化程序设计的思想是自顶向下、逐步细化、模块化设计以及结构化编码 46在 C 语言中,函数返回值的类型最终取决于(D )A)函数定义时形参的类型 B)return 语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时在函数首部所说明的函数类型 47以下程序的输出结果是(C)void main()int i;for(i=a;iname 49下面的程序输出是(B)int m=13;i
25、nt fun2(int x,int y)int m=3;return(x*y-m);main()int a=7,b=5;printf(%dn,fun2(a,b)/m);A).1 B).2 C).7 D).10 50下面的程序输出是(A)main()int x=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;x=-1;printf(%d n,x);A).-1 B).0 C).1 D).不确定的值 51若有以下定义:int a=1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3 的表达式是(A)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末考试 试题 及其 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内