C语言历年考题真题解析
c语言笔试选择题和答案解析
c语言笔试选择题和答案解析c语言笔试题及答案(1)算法的时间复杂度是指_______。
A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数答案:C评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
(2)下列叙述中正确的是________。
A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构答案:A评析:一般将数据结构分为两大类型:线性结构与非线性结构。
线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(3)下面关于完全二叉树的叙述中,错误的是_________。
A)除了最后一层外,每一层上的结点数均达到最大值B)可能缺少若干个左右叶子结点C)完全二叉树一般不是满二叉树D)具有结点的完全二叉树的深度为[log2n]+1答案:B评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。
完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。
(4)结构化程序设计主要强调的是_________。
A)程序的规模B)程序的易读性C)程序的执行效率D)程序的可移植性答案:B评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
(5)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计B)详细设计C)可行性分析D)需求分析答案:D评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。
编写软件规格说明书及初步的用户手册,提交评审。
(3)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是_________。
A)控制流B)加工C)数据存储D)源和潭评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
C语言程序设计试题及答案解析
C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
c语言期末考试题库及详解答案选择题
c语言期末考试题库及详解答案选择题在C语言期末考试中,选择题是常见的题型之一,它考查学生对C语言基础知识点的掌握程度。
以下是一些典型的C语言选择题及其详解答案,供同学们参考:1. 下列哪个是合法的C语言常量?A. 0.123E-2B. .123C. 0x12AB34D. 0L答案:C。
解析:C语言中的常量可以是整型常量、浮点型常量、字符常量等。
选项A中缺少整数部分,选项B中没有整数部分或指数部分,选项D中的'L'是长整型后缀,但前面没有数字,因此选项C是合法的十六进制常量。
2. 以下哪个语句不能通过编译?A. int a = 5;B. int b = 0x12;C. int c = 0755;D. int d = 1.23e0;答案:C。
解析:选项C中的0755是一个八进制常量,但是八进制常量不能以数字5开始,因此选项C是错误的。
3. 以下哪个是正确的C语言数组声明?A. int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int arr[5] = {0, 1, 2, 3, 4, 5};D. int arr[10];答案:B。
解析:选项A中数组的大小是10,但初始化列表中只有9个元素,这是不正确的。
选项C中初始化列表有6个元素,但数组的大小是5,这会导致编译错误。
选项D没有初始化列表,但数组的大小是10,这是合法的。
选项B是正确的,因为它允许数组的大小由初始化列表中的元素数量决定。
4. 下列哪个是正确的C语言函数声明?A. void myFunction();B. int myFunction(int a, int b);C. double myFunction(double);D. void myFunction(int);答案:B。
解析:选项A中没有参数,但函数名后没有括号,这是不正确的。
C语言题库(带详解答案)
一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C开始执行。
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.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
大一c语言考试题及答案解析
大一c语言考试题及答案解析1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B解析:在C语言中,变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A以数字开头,选项C和D包含非法字符(-和$),因此选项B是唯一合法的变量名。
2. C语言中,哪个关键字用于定义一个函数?A. classB. functionC. defD. void答案:D解析:在C语言中,定义函数的关键字是`void`,通常与`return`关键字一起使用来指定函数的返回类型。
例如,`void functionName()`定义了一个没有返回值的函数。
选项A和B不是C语言中的关键字,选项C是Python中的关键字。
3. 以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. <!-- This is a single line comment -->D. Both A and B答案:D解析:在C语言中,单行注释可以使用`//`,而多行注释则使用`/*`开始和`*/`结束。
因此,选项A和B都是正确的注释方式,选项C是HTML中的注释方式,不适用于C语言。
4. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,`*`运算符用于计算两个数的乘积。
选项A是加法运算符,选项B是减法运算符,选项D是除法运算符。
5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};D. Both A and C答案:D解析:在C语言中,字符串可以通过字符数组来定义,可以是直接赋值的字符串字面量(选项A),也可以是字符的列表(选项C),列表的末尾需要添加空字符`\0`来标识字符串的结束。
C语言考试试题及解答 一
C语言试题(A卷)班级:姓名:学号一、填空(每空1分,共10分)1、设x为整型变量,值为1,则表达式(x&&1)= =(x%2)的值为2、与二进制数101等值的十进制数为3、若已知a=10,b=20,则表达式!a<b的值为4、结构化程序设计所规定的三种基本控制结构是结构结构和结构。
5、定义int i=1;执行语句while(i++<5);后,i的值为_______6、定义3行4列的整型二维数组a的语句是___________7、int *p,a;则语句p=&a;中的运算符&是________符号。
8、设y是int型变量,请写出判断y为奇数的关系表达式二、选择(每小题2分,共30分)1、下列优先级最低的算符是( )A&& B & C || D =2、已知int j,i=1;执行语句“j=i++;”后,变量i的值是( )A 1B 2C –1D -23、已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是( )A 6B 12C 30D 364、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )A a< >0B !aC a=0D a5、以下错误的if语句是( )A if (x>y);B if(x= =y) x+=y;C if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D if (x<y) {x++;y++;}6、为了判断两个字符串s1和s2是否相等,应当使用( )A if (s1= =s2)B if (s1=s2)C if (strcpy(s1,s2))D if (strcmp(s1,s2)= =0)7、若有说明int x,y;不能实现以下函数关系的程序段是( )y=-1 (x<0)y=0 (x=0)y=1 (x>0)A if (x<0) y= -1 ;B y= -1;else if(x= =0) y=0;if (x!=0)else y=1;if (x>0) y=1;else y=0;C y=0;D if (x>=0)if (x>=0) if (x>0) y=1;{if (x>0) y=1;} else y=0;else y= -1;else y= -1;8、以下错误的描述是( )A break语句不能用于循环语句和switch语句外的任何其他语句B 在switch 语句中使用break语句或continue语句的作用相同C 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环D 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环9、若int i=10;执行下列程序后,变量i的正确结果是( )switch ( i ){case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A10 B 11 C 12 D 1310、下列程序是求1到100的累加和,其中有1个不能够完成规定的功能,是( )A s=0;i=0;B s=0;i=1;while (i<=100) while (i++<100)s+= i++;s+=i;C s=0;i=0;D s=0;i=0;while (i<100) while (++i<=100)s+= ++i;s += i ;11、选择程序输出结果( )f(int b[ ],int m,int n){ int i,s=0;for(i=m;i<n;i++)s+=b[i];return s;}main(){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A 30B 15C 18D 2212、C语言中函数返回值的类型由( )决定的。
大一c语言期末考试题及答案解析
大一c语言期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,用于定义单精度浮点数的关键字是?A. intB. floatC. doubleD. char答案:B3. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制结构?A. ifB. forC. whileD. switch答案:D6. C语言中,用于定义字符数组的关键字是?A. charB. stringC. arrayD. vector答案:A7. 下列哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A8. C语言中,用于定义整型变量的关键字是?A. intB. floatC. doubleD. char答案:A9. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ||D. ==答案:D10. 在C语言中,用于定义布尔变量的关键字是?A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。
答案:int variable_name;2. C语言中,用于输入一个整数的函数是:___________。
答案:scanf3. 如果要定义一个字符串常量,应该使用___________符号。
答案:"4. 在C语言中,使用___________关键字可以定义一个函数。
答案:void 或者其他返回类型5. C语言中,用于定义一个数组的语法是:___________。
c语言历年真题及答案
c语言历年真题及答案【篇一:c语言试题及答案】t>1. 单项选择题(1) c 语言是在 b 语言的基础上产生的。
a. ab. bc. dd. e(2) 在 c 语言中,每个语句必须以 d 结束。
a. 回车符b. 冒号c. 逗号d. 分号(3) 标识符和关键字间,要用c 隔开。
a. 回车符b. 冒号c. 空格d. 分号(4) 用 c 语言编写的源文件经过编译,若没有产生编译错误,则系统将( b )。
a. 生成可执行目标文件b. 生成目标文件c. 输出运行结果d.自动保存源文件(5) 下列说法中正确的是( b )。
a. 由于 c 源程序是高级语言程序,因此一定要在 tc 软件中输入b. 由 c 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入c. 由于c 程序是高级语言程序,因此输入后即可执行d. 由于 c 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( a )。
a. c 语言程序由主函数和 0 个或多个函数组成b. c 语言程序由主程序和子程序组成c. c 语言程序由子程序组成d. c 语言程序由过程组成(7) 下列说法中错误的是( d )。
a. 主函数可以分为两个部分:主函数说明部分和主函数体b. 主函数可以调用任何非主函数的其他函数c. 任何非主函数可以调用其他任何非主函数d. 程序可以从任何非主函数开始执行2. 填空题(1) c 语言只有 32个关键字和 9 种控制语句。
(2) c 语言是一种“ 中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行c 语言程序。
(4) 在 c 语言程序中允许出现的字符集是 ascii码字符集。
(5) c 语言的程序中有特殊含义的英语单词称为保留字。
(6) c 语言标识符的长度是前8位有效。
(7) c 语言中,标识符的定义规则是以字母或下划线为开头。
大一c语言考试题及答案详解
大一c语言考试题及答案详解大一C语言考试题及答案详解一、选择题(每题2分,共20分)1. C语言中,以下哪个是正确的数据类型?A. IntegerB. intC. floatD. all of the above答案:D2. 下列哪个运算符不能用于整数和浮点数的运算?A. 加(+)B. 减(-)C. 乘(*)D. 模(%)答案:D3. 在C语言中,以下哪个关键字用于定义函数?A. ifB. forC. functionD. void答案:D4. C语言中,哪个函数用于计算并返回一个浮点数的平方根?A. sqrt()B. pow()C. abs()D. log()答案:A5. 在C语言中,以下哪个是正确的数组声明语句?A. int numbers[];B. int [10] numbers;C. Both A and BD. None of the above答案:C6. 以下哪个语句可以正确地交换两个变量的值?A. a = a + b;B. a = a - b;C. a = a / b;D. a = a + b; b = a - b; a = a - b;答案:D7. C语言中,哪个预处理指令用于包含头文件?A. #includeB. #importC. #include_onceD. #header答案:A8. 在C语言中,哪个关键字用于声明一个指针变量?A. varB. pointerC. ptrD. * (asterisk)答案:D9. 下列哪个不是C语言中的控制结构?A. if-elseB. switch-caseC. whileD. goto答案:D10. C语言中,以下哪个函数用于将整数转换为字符串?A. intToString()B. itoa()C. toStr()D. None of the above答案:B二、填空题(每空2分,共20分)1. 在C语言中,字符常量用________表示。
c语言试卷集(10套)-试题及答案
c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。
A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。
A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。
A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。
A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。
C语言必考100题解析
49.编程输入一个班的某课程的学生成绩,计算其平均分,然后输出,班级人数由键盘 输入。
50.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符 串(要求:使用头指针和尾指针来实现) 。
51.编程判断输入的一串字符是否为 “回文”。所谓回文是指顺读和倒读都一样的字符串, 如“ABCCBA”是回文。
44.从键盘任意输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能, 然后将交换后的数据重新输出。
45.用字符指针编程实现字符串复制函数。
46.用字符指针编程实现求字符串长度函数。
47.编写一个程序,可以实现在一个数组中删除指定的元素。如:数组元素为1,2,3,
输入3,便删除3,输出1,2;若输入4,则继续输出1,2,3。
为止,要求统计总共累加了多少项。
19.编程输出正三角格式的九九乘法表。
20.编程输出下三角格式的九九乘法表。
21.从键盘任意输入一个正整数,编程判断它是否是素数, 若是素数,输出“YES”,
否则输出“NO!”。
22.编写一个程序实现输出1—100之间所有素数。
23.编写一个程序实现输出任意指定m、n之间的所有素数。
分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,
单位为kg,h为身高,单位为m)。当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t仝27时, 为肥胖。编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。
12.利用switch语句将百分制成绩转化为五分制成绩。
52•用指针数组编程实现: 从键盘任意输入一个数字表示月份值n,程序输出该月份的英 文 表 示 ,若n不 在1~12之 间 , 则 输 出 “Illegal month”。 ("January","February","March","April","
C语言考试试题库和答案解析
1、下面程序的输出是___D______#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是______A____.A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值 C) 0 D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码 B) 补码 C) EBCDIC码 D) ASCII码7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是____B__.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010、下面程序的输出是____B______.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是_____C____.#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____D_____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 0 C) 4 D) 316、为表示关系x≥y≥z,应使用C语言表达式___A___.A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)C) (x>=y>=z) D) (x>=y) & (y>=z)17、C语言中非空的基本数据类型包括____B____.A) 整型,实型,逻辑型 B) 整型,实型,字符型C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是____A___.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17 D) -1,1721、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是______C____.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是____D____.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是____A____.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是____A____.int a;int b=65536;a=b;printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_____B____.A) 2.4 B) 2.5 C) 2.75 D) 030、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是____C____.A) 5.5 B) 5 C) 3 D) 4.031、以下程序的输出结果是____D____.#include<stdio.h>void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____A_____A) 14 B) 15 C) 11 D) 1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) 2.0 D) 1.034、表达式5!=3的值是____D____.A) T B) 非零值 C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值______A____.A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A) 0 B) 2 C) 1.5 D) 1 37、在C语言中,以下叙述不正确的是_____A____.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型是___D____.A) float B) char C) int D) double40、一个C语言的执行是从_____A______.A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#include <stdio.h>void main( ){ int a=5,b=60,c;if (a<b){c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 1243、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')44、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是____D____.#include <stdio.h>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include <stdio.h>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c)printf("%d\n",a);elseprintf("%d\n",c);elseif (b>c)printf("%d\n",b);elseprintf("%d\n",c);}A) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 10 47、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是___B_____.#include <stdio.h>void main( ){ float a,b;scanf("%f",&a);if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}A) 0.000000 B) 0.500000C) 1.000000 D) 0.25000048、执行下面程序后,运行结果是____A____.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是_____A____.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 452、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是__B___.A) Z B) a C) z D) A53、下面程序的输出结果是____C____.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_____B___.#include <stdio.h>void main( ){ int a ;scanf("%d",&a);if (a++>5)printf("%d\n",a);else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是____B___.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b); s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2056、下列程序的执行结果是_____D____.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,157、假定等级和分数有以下对应关系:等级:A 分数:85~100等级:B 分数:60~84等级:C 分数:60 以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.A) switch (grade){case 'A':printf("85--100\n");case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf("等级错误!\n");}B) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf(" 等级错误!\n");}C) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");default:printf("等级错误!\n");}D) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下 \n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是__B____.┌ -1 x<0y= ┤ 0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;59、有如下程序#include <stdio.h>void main( ){ float x=5.0,y;if(x<0.0) y=0.0;else if (x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是____C_____.A) 0.000000 B) 0.50000C) 0.200000 D) 1.00000060、以下程序的执行结果是___B_____.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break; case 1:printf("second\n");break; }case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) second third61、以下程序的执行结果是____A____.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2562、有如下程序:#include <stdio.h>void main( ){ int a=2,b=-1,c=2;if (a<b)if (b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是___C_____.A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是____B____.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息64、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______A____.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是____C_____.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是____D_____.A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D______.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入9,则输出结果是.______B________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869、以下程序输出结果是_____D_____.#include <stdio.h>void main( ){ int m=4;if (++m>5) printf("%d\n",m--); else printf("%d\n",--m);}A) 7 B) 6 C) 5 D) 470、若执行下面的程序从键盘上输入5,则输出结果是.#include <stdio.h>void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是____A____.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值72、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是____A____.A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D____.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x的是____B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a输入15,则输出结果是___A___.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1077、运行下面程序后,输出是___D___.#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是____C____.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出 ****D) 输出 ####79、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if80、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为____C_____.x=y=z=1;t=++x || ++y && ++z;A) 不定值 B) 4 C) 1 D) 081、以下程序段____C______.x=-1;do{x=x*x;} while (!x);A)是死循环 B)循环执行两次C)循环执行一次 D)有语法错误82、对下面程序段描述正确的是___B____.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、下面程序段的输出结果是____C____.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环 D)输出错误信息84、下面程序的运行结果是____B____.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D)4,985、下面程序段的运行结果是____B______.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息86、下面程序段的运行结果是___D_____.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8D)8,2087、下面程序的运行结果是___B_____.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 688、函数pi的功能是根据以下近似公式求π值:____C______(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。
专升本c语言真题及答案解析
专升本c语言真题及答案解析C语言真题及答案解析近年来,随着社会的发展和对高素质人才的需求增加,考试成为许多人提升学历和职业发展的重要途径。
而在考试中,C语言成为了不可或缺的一部分。
以下将针对C语言真题进行解析,帮助广大考生更好地备考。
一、选择题解析1. 下列关于C语言程序的说明中,哪个是正确的?A. 函数的定义一定在主函数前面B. 函数的定义和主函数的定义可以随意排序C. 主函数的定义必须在函数的定义前面D. 函数的定义和主函数的定义不能分别放在不同的源程序文件中答案解析:选项C正确。
在C语言中,主函数的定义必须在函数的定义前面,否则编译器无法识别函数的声明,会报错。
2. 下列程序段执行后i的值为多少?int i = 5;do{--i;}while(i--);A. 1B. 2C. 3D. 4答案解析:选项D正确。
循环语句do-while先执行一次循环体,再判断条件是否成立。
在本题中,i的初始值为5,经过一次循环体后,i的值变为4。
然后条件判断i--,结果为4,再次执行循环体,i的值减1变为3。
此时i的值为3,满足循环条件,再次执行循环体,i的值为2。
然后条件判断i--,结果为2,再次执行循环体,i的值减1变为1。
此时i的值为1,满足循环条件,再次执行循环体,i的值为0。
然后条件判断i--,结果为0,再次执行循环体,i的值减1变为-1。
此时i的值为-1,不满足循环条件,循环结束。
所以最终i的值为4。
二、填空题解析1. 下列关于C语言程序的命令中,用于定义某个常量的关键字是__。
答案解析:const。
关键字const用于定义某个常量,表示该变量的值不能被修改。
2. 下列代码段中,第一个#的作用是__。
#include <stdio.h>答案解析:预处理命令。
#include是一个预处理命令,用于包含系统的标准输入输出头文件<stdio.h>。
三、编程题解析题目:编写一个C语言程序,输入一个正整数n,输出1到n之间所有能被3整除但不能被5整除的数。
计算机C语言考试试题带答案
计算机C语言考试试题带答案1). 关于C语言的变量,以下叙述中错误的是( )A.所谓变量是指在程序运行过程中其值可以被改变的量B.变量所占的存储单元地址可以随时改变C.程序中用到的所有变量都必须先定义后才能使用D.由三条下划线构成的符号名是合法的变量名正确答案:B答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。
在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。
变量命名要符合标识符的规定,其中下划线是标识符的组成字符。
程序中所有变量都必须先定义后使用。
2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )A.(c==2)||(c==4)||(c==6)B.(c>=2 && c<=6)&& !(c%2)C.(c>=2 && c<=6)&&(c%2!=1)D.(c>=2 && c<=6) || (c!=3) || (c!=5)正确答案:D答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。
3). 在C语言中,函数返回值的类型最终取决于A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型正确答案:A答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。
在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。
如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。
C语言经典习题及其答案详解
C 语言经典习题及其答案详解第二章基本数据类型和表达式2.1 单项选择题1.下列字符列中,可以作为“字符串常量”的是()① ABC ②“ABC“ ③‘abc’ ④‘a’ 「解」C 程序中,一个字符率常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列。
所以只有“ABC”是一个正确的字符率常量,其余都不是。
其中,ABC 可作为标识符,字符列‘abc’不能出现在C 程序中,‘a’是一个字符常量。
所以解答是②。
2.在以字节存储字符的系统中,‘\n ’在内存占用的字节数是()①1 ②2 ③3 ④4「解」一般来说,一个字符在内存中只占 1 个字节,‘\n’是转义字符,其意义是换行符,它作为一个字符存储,在内存也只占1 个字节。
所以解答是①。
3.字符串“xyz”在内存占用的字节数是()①3 ②4 ③6 ④8「解」字符串中的每个字符占 1 个字节,但 C 程序在存储字符串时,要在后一个有效字符后面接上1 个字符串结束的标记符‘\0’。
这样,存储字符串常量“xyz”需要 4 个字节。
所以解答是②。
4.在以下字符列中,合法的长整型常数是()① 0L ② 4962710 ③ 0.054838743 ④2.1869el0「解」为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的高位的不同理解,又分别分成无符号和带符号两种。
若要明确指明一个整数是长整型的,必须在整数之后接上字符‘L’。
所以0L 是一个长整型的整型常量,而4962710 是基本整型数据,而对于用 2 个字节表示一个基本整型数据的系统来说,该整数将因超出范围而是一个错误的整数;0.054839743 和2.1869el0 都是double 型的实数。
所以解答是①。
5.一个char 型数据,它的值在内存中存放的是()①ASCll 代码值②BCD 代码值③内码值④ 十进制代码值「解」计算机存储字符,通常是存储字符的某种代码值。
C语言历年考题真题解析
1.C语言规定,在一个源程序中main函数的位置______ 。
(2010年春选择题第21题)A.必须在最开始???????????? ??B.必须在最后C.必须在预处理命令的后面? ?? ?D.可以在其他函数之前或之后【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。
C程序总是从main函数的第一条语句开始执行。
【答案】D2.以下叙述中正确的是________ 。
(2009年秋选择题第21题)A.C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数【解析】C语言系统以程序为单位编译源程序,程序由函数组成。
main函数可以放在其他函数之前或之后。
除了main函数外,函数可以被其他函数多次调用。
函数不能定义在其他函数体内,即不能嵌套定义。
【答案】C3.以下叙述中正确的是_________ 。
(2008年秋选择题第21题)A.在编译时可以发现注释中的拼写错误B.C语言程序的每一行只能写一条语句C.main(){}必须位于程序的开始D.C语言程序可以由一个或多个函数组成【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
main函数可以放在程序中的任何位置。
C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。
【答案】D4.以下关于C语言源程序的叙述中错误的是________。
(2007年春选择题第21题)A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义B.函数定义由函数头部和函数体两部分组成C.在一个函数定义的函数体中允许定义另一个函数D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。
c语言期末考试题库解析
习题一一、选择题1.C语言是一种(C )。
A. 低级语言B. 汇编语言C. 高级语言D. 机器语言2.以下不是C语言的特点的是( D )。
A. 语言简洁紧凑B. 可以直接对硬件进行操作C. 数据类型丰富D. 是面向对象的程序设计语言3.一个C程序的执行是从( A )。
A. 本程序的main函数开始,到main函数结束B. 本函数的第一个数开始,到本程序文件的最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本函数的第一个数开始,到本程序main函数结束4.以下叙述正确的是(C )。
A. 在C程序中,main函数必须位于程序的最前面B. C程序的每行只能写一条语句C. C语言的本身没有输入输出语句D. 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误5.以下叙述不正确的是(D )。
A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包括一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面6.C语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后7.一个C语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成8.以下叙述中正确的是( C )。
A. C程序的基本组成单位是语句B. C程序中的每一行只能写一条语句C. C语句必须以分号结束D. C语言必须在一行内写完9.以下叙述中正确的是( C )。
A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中10.以下叙述中正确的是( C )。
A. C语言程序将从源程序中第一个函数开始执行B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C. C语言规定必须用main作为主函数名,程序从此开始执行,在此结束D. main可作为用户标识符,用以命名任意一个函数作为主函数11.下列叙述中正确的是( A )。
全国计算机等级考试二级C语言笔试试题及答案解析
全国计算机等级考试二级C语言笔试试题及答案解析一、选择题1. 以下哪个选项不是C语言的关键字?A. autoB. includeC. ifD. static答案:B解析:C语言中,auto、if和static都是关键字,而include不是关键字,它是预处理命令的一部分。
2. 在C语言中,下列哪个选项是非法的整型常量?A. 012B. 0x123C. 0X123D. 0123答案:D解析:C语言中,以0开头的数字表示八进制常量,以0x 或0X开头的数字表示十六进制常量。
选项A表示八进制常量,选项B和C表示十六进制常量,而选项D表示非法的常量。
3. 有以下程序段:```cint a = 5, b = 4;printf("%d\n", a/b);```输出结果是:A. 1B. 1.25C. 5D. 4答案:A解析:在C语言中,整数除法的结果仍然是整数。
因此,5除以4的结果为1。
4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A解析:在C语言中,malloc()函数用于动态分配内存。
calloc()函数也用于动态分配内存,但会初始化分配的内存空间。
alloc()和new()不是C语言中的标准函数。
二、填空题1. 在C语言中,若要定义一个指向整型的指针变量,应使用______。
答案:int解析:在C语言中,使用int 来定义一个指向整型的指针变量。
2. 有以下程序段:```cint a = 5, b = 3;printf("%d\n", a % b);```输出结果是______。
答案:2解析:在C语言中,%运算符表示求余运算。
因此,5除以3的余数为2。
3. 有以下程序段:```cint a = 5;printf("%d\n", sizeof(a));```输出结果是______。
(完整版)C语言题库(带详解答案)
一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C开始执行。
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.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言历年考题真题解析 This model paper was revised by the Standardization Office on December 10, 2020语言规定,在一个源程序中main函数的位置 ______ 。
(2010年春选择题第21题)A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。
C程序总是从main函数的第一条语句开始执行。
【答案】D2.以下叙述中正确的是________ 。
(2009年秋选择题第21题)语言系统以函数为单位编译源程序函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数【解析】C语言系统以程序为单位编译源程序,程序由函数组成。
main函数可以放在其他函数之前或之后。
除了main函数外,函数可以被其他函数多次调用。
函数不能定义在其他函数体内,即不能嵌套定义。
【答案】C3.以下叙述中正确的是_________ 。
(2008年秋选择题第21题)A.在编译时可以发现注释中的拼写错误语言程序的每一行只能写一条语句(){}必须位于程序的开始语言程序可以由一个或多个函数组成【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
main函数可以放在程序中的任何位置。
C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。
【答案】D4.以下关于C语言源程序的叙述中错误的是________。
(2007年春选择题第21题)A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义B.函数定义由函数头部和函数体两部分组成C.在一个函数定义的函数体中允许定义另一个函数D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。
函数可以嵌套调用也可以递归调用,但不能嵌套定义。
C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。
【答案】C基本数据类型1.以下选项中,___________ 是C语言关键字。
(2010年春选择题第22题)【解析】default是关键字,用在switch语句中。
printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。
fun是用户自定义标识符。
【答案】D2.在以下各组标识符中,均可以用作变量名的一组是_____。
(2007年秋选择题第22题),Int ,a*.1 ,W12 ,point【解析】选项A中两个都符合标识符的命令规则,Int与关键字int是不同的标识符,选项B的第2个标识符中有*号,不符合标识符命名规则,选项C数字开头,不允许,选项D中的for是关键字,不能做变量名。
【答案】A3.以下定义和声明中,语法均有错误的是___________。
(2009年春选择题第21题)①int _f(int x){} ②int f(int f){} ③int 2x=1; ④struct for{int x;};A.②③B.③④C.①④D.①②③④【解析】本题考的是标识符的命名规则。
③定义的整型变量名数字开头,不符合命名规则。
④中定义的结构体类型名for属于关键字,不能作为结构体类型名。
②中使用的函数名和形式参数名相同,在语法上可以,但在实际编程时不提倡使用。
【答案】B4.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占________个字节。
(2010年春填空题第3题)【解析】表示范围为整数-32768~32767的属于int型或short型的变量,它们在内存占2个字节。
【答案】25.若有声明“int x;”且sizeof(x)的值为2,则当x值为___________时“x+1>x”为假。
(2009年春填空题第2题)【解析】x为int型,其表示范围为-32768~+32767,当x为32767时,再加1就变成了-32768了,此时,就是x+1>x”为假的情况。
这是由int型数据在内存中的存储情况决定的。
int型数据在内存中占2个字节,以补码的形式为-32768的补码,这种情况为溢出,数处于边界时会溢出。
sizeof(x)是求字节数运算符。
【答案】327676.已知sizeof(int)的值为2,为将10!的值存储到变量f中(10!=3628800),变量f的类型应声明为___________ 。
(2008年秋选择题第23题)A. long intB. intC. short int int【解析】10!=3628800,超过了int的范围-32768~+32767,而长整型在内存占4个字节,表示范围大到,应该要用长整型才可以存放3628800。
【答案】A7.以下常量表示中正确的是__________ 。
(2008年春选择题第22题)【解析】选项A若想表示成十六进制常量,正确的表示应该是0xff,如果表示成转义字符,应该放在单引号内:'\0xff'。
选项B表示的是长整型常量,选项C是一个标识符,不能表示常量,选项D表示的是无符号整数,但无符号整数不应该有小数。
【答案】B8.以下表示中不能用作C语言常量表示的是____。
(2007年春选择题第22题)B.(long)123 D.'\x2a'【解析】0UL意为将0以无符号长整型存放,B为强制类型转换,是表达式,表示长整型常量应该在123后加字母l或L。
C是实常量,指数表示法,意为1乘以10的0次方,e前面必须有数字,后面的数字必须是整数。
D是转义字符,表示十六进制数2a。
【答案】B9.在C语言源程序中,不带任何修饰的浮点数直接量(例如:)都是按_________类型数据存储的。
(2008年春填空题第1题)【解析】实型常量的类型默认为double类型, 在内存中占8个字节。
带f修饰即或,则认为它是float 型,在内存中占4个字节。
【答案】double10.已知有声明“char ch='g';”,则表达式ch=ch-'a'+'A'的值为字符__________的编码。
(2010年春填空题第2题)【解析】本题的功能是将小写字母转换成大写字母。
-'a'+'A'实际上就是减去32,对于一个小写字母来说,减去32就变成对应的大写字母。
【答案】G11.若有程序段“char c=256;int a=c;”,则执行该程序段后a的值是______。
(2007年秋选择题第24题)【解析】将256转换成二进制,为10000 0000,占9位,而char在内存只占一个字节,即8位,截取低8位赋给字符变量c,得c=0,将c的值赋给a,结果为0。
【答案】C运算符和表达式1.已知有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值为_______ 。
(2010年春选择题第23题)【解析】本题考查的是两整数相除,结果为整数,截取的是整数部分,不是四舍五入。
1/2等于0,0乘于任何一个整数结果还是0,最后结果为0。
【答案】A2.已知有声明“long x,y;”且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是________ 。
(2009年秋选择题第25题)=x/(10*(n-1)) =x%(10*(n-1))=x%(long)pow(10,n-1) =x%(10(n-1))【解析】本类型的题目,拿一个具体的数,放到四个选项中去计算,就能得到正确答案。
假设x为1234,代入A中,为1234/(10*3),肯定不是234,代入B中,为1234%(10*3)也不对,代入C中为1234%(long)103,结果为234,正确,选C。
而D中的“”在C语言中是指位运算中的“异或”运算,不是求指数。
【答案】C3.若有声明“float y=;int x;”,则计算表达式“x=y*100+,y=x/”后y的值是___________ 。
(2009年春填空题第3题)【解析】x=y*100+=*100+=315,因为x为int,截取整数部分赋给x。
然后计算y=x/=315/100=,y是浮点数。
【答案】4.若有声明“int a=32767,b;”,则在Turbo C 系统中执行语句“printf("%d",b=++a);”后输出结果是_________ 。
(2006年秋填空题第3题)【解析】本题有4个知识点:一是printf语句,输出%d格式,二是赋值运算及赋值表达式的值,三是++运算,四是int型数据的表示范围及整数在内存的存储情况。
b=++a是将a的值加1后赋给b,a、b是int型,处于-32768~32767范围内,32767+1=后为若是long型,满足32767+1等于32768。
【答案】-327685.已知有声明“int a=3,b=4;”,下列表达式中合法的是______ 。
(2010年春选择题第25题)+b=7 =|b| =b=0 D.(a++)++【解析】本题考查的是赋值运算符和“++”运算符的左值要求。
左值必须是变量,不能是常量和表达式。
选项A左边是表达式,不允许,选项D括号中的a++也是表达式,不能进行++运算。
选项B是一个代数式,必须转换成C语言合法的表达式,表示成a=abs(b)。
选项C正确,将0赋给b,再赋给a,a和b的值不再是初始化的值,而变成0了。
【答案】C6.已知有声明“int n;float x,y;”,则执行语句“y=n=x=;”后,y的值为________ 。
(2010年春选择题第28题)【解析】本题考查的是不同类型间的赋值。
赋值运算符右结合。
先将赋给x,表达式的值也为,再将赋给n,n是int,自动截取整数部分,将3赋给n。
最后将3赋给y,y是float,将整数3转换成实数后赋给y,y值为。
【答案】B7.以下程序运行时输出到屏幕的结果是___________。
(2010年春阅读程序第7题)#include <>void main(){ int a=1,b=2;a+=b;b=a-b;a-=b;printf("%d,%d\n",a,b);}【解析】本题的考点是复合赋值运算符,程序功能是不用临时变量,实现两个变量的值的交换。