C语言题库
- 格式:docx
- 大小:30.20 KB
- 文档页数:15
大学c语言考试题库及答案一、选择题1. 下列关于C语言中变量的描述,哪个是正确的?A. 变量必须先定义后使用B. 变量的类型不能改变C. 变量可以在任何地方定义D. 所有变量都必须初始化后才能使用答案:A2. C语言中,一个整数除以另一个整数,结果是什么类型的数据?A. 整数型B. 浮点型C. 长整型D. 无符号整数型答案:A3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 如果一个指针变量p指向一个int类型的变量,那么表达式*p++的值是什么?A. p指向的变量的当前值B. p指向的变量的下一个值C. p指向的变量的前一个值D. 无定义答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. intB. floatC. voidD. char答案:C二、填空题1. C语言中,________关键字用于定义一个结构体。
答案:struct2. 在C语言中,________运算符用于计算两个整数的乘积。
答案:*3. 当需要频繁修改数组中的元素时,应使用________类型的数组。
答案:动态4. C语言中,________函数用于将字符串s复制到t所指向的内存空间。
答案:strcpy()5. 在C语言中,________关键字用于声明一个无限循环。
答案:for 或 while三、简答题1. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指针使用。
数组的每个元素都可以通过数组名加上索引来访问。
指针变量可以指向数组的第一个元素,并通过指针算术来访问数组的其他元素。
数组的地址可以通过指针传递给函数,从而在函数内部访问数组。
2. 解释C语言中的“宏”是什么,并给出一个使用宏的例子。
答案:宏是C语言中的一个预处理指令,它允许定义一个可以被编译器替换的文本块。
宏通常用于定义常量、简化复杂的表达式或者创建可重复使用的代码块。
目录目录 (1)单元练习题一 C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题...................................... 错误!未定义书签。
单元练习题二 C语言程序结构.. (9)一、判断题 (9)二、单项选择题 (9)三、读程序选择题............................. 错误!未定义书签。
四、程序填空题 (17)五、编程题................................... 错误!未定义书签。
单元练习题三数组.. (21)一、判断题 (21)二、单项选择题 (22)三、读程序选择题................................ 错误!未定义书签。
四、程序填空题 (28)五、编程题...................................... 错误!未定义书签。
单元练习题四函数.. (33)一、判断题 (33)二、单项选择题 (34)三、读程序选择题 (40)四、程序填空题.................................. 错误!未定义书签。
五、编程题...................................... 错误!未定义书签。
单元练习题五预处理................................. 错误!未定义书签。
一、判断题................................... 错误!未定义书签。
二、单项选择题............................... 错误!未定义书签。
三、读程序选择题................................ 错误!未定义书签。
四、程序填空题.................................. 错误!未定义书签。
(完整版)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语言基础试题库及答案一、选择题1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的标准数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,用于实现循环的关键字是:A. whileB. forC. ifD. switch答案:A、B4. C语言中,用于定义函数的关键字是:A. functionB. defC. voidD. int答案:C5. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. int答案:B、C二、填空题1. C语言中,________关键字用于定义一个数组。
答案:int2. 在C语言中,________关键字用于定义一个指针。
答案:*3. C语言中,________关键字用于定义一个函数。
答案:int4. 在C语言中,________运算符用于求两个数的和。
答案:+5. C语言中,________运算符用于判断两个数是否相等。
答案:==三、简答题1. 请简述C语言中函数的定义和调用过程。
答案:函数定义包括函数的返回类型、函数名、参数列表和函数体。
函数调用则是通过函数名和参数列表来调用已定义的函数。
2. 解释C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针常用于动态内存分配、数组处理和函数参数传递。
四、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {if(i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d", sum);return 0;}```2. 编写一个C语言函数,用于交换两个整数变量的值。
C语言试题库(完整版)C语言试题库一、单项选择第一章 C语言概述1) 一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2) 以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3) C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4) 一个C程序是由函数组成。
5) 以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1) 若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2) 下列四组选项中,均不是C语言键字的选项是:define。
IF。
type。
3) 下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4) 若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5) 已知各变量的类型说明如下:int k。
a。
b。
unsigned long w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
第三章简单C程序设计C语言试题库一、单项选择第一章 C语言概述1.一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2.以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3.C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4.一个C程序是由函数组成。
5.以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1.若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2.下列四组选项中,均不是C语言关键字的选项是:define。
IF。
type。
3.下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4.若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5.已知各变量的类型说明如下:int k。
a。
b。
unsignedlong w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
C语言考试题库及答案1. 以下不是C语言的特点的是( C )A、C语言简洁,紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言的移植性好2. 一个C程序是由()BA、一个主程序和若干个子程序组成B、一个或多个函数组成C、若干过程组成D、若干子程序组成3.以下描述正确的是( ) CA、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。
D、do-while循环中,根据情况可以省略while。
4.以下对一维整形数组a的正确说明是( ) DA、int a(10);B、int n=10,a[n];C、int n;D、int a[10];5.以下对二维数组a的正确说明是( ) CA、inta[3][];B、float a(3,4);C、double a[1][4];D、float a(3)(4);6.数组名作为实参传给被调用的函数时,形参获得的是()CA、该数组第一个元素的值B、该数组所有元素的值C、该数组第一个元素的首地址D、该数组所有元素的首地址7. C程序的开始是从()AA、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束8.在C程序中,main()函数的位置()CA、必须作为第一个函数B、必须作为第二个函数C、可以任意D、必须放在它所调用的函数之后9. C编译程序是()CA、C语言的机器语言版本B、一组机器语言指令C、将C源程序编译成目标程序的程序D、是由自己编制的10.以下叙述中错误的是( )CA、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在文件中C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令非执行的语句不转换:例如//和/**/是注释的意思D、C语言源程序经编译后生成后缀为.obj的目标程序1.以下不正确的C语言标识符是( )D字母,数字,下划线组成,但是不能以数字开头A、ABCB、abcC、a_bcD、ab.c12.一个C语言程序是由( ) BA、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下叙述错误的是( ) C算法可以没有输入输入,但是一定不能没有输出A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有个相同的结果14.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i*f值的数据类型为( ) C强制类型转换A、intB、floatC、doubleD、不确定15.以下叙述中错误的是( )CA、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法16.以下叙述中错误的是()CA、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果17.以下选项中关于程序模块化的叙述错误的是()BA、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18. 关于C语言的符号常量,以下叙述中正确的是()CA、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写C、符号常量是指用一个符号名来代表一个常量D、符号常量的符号名必须是常量19.关于C语言的变量,以下叙述中错误的是()BA、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后使用D、由三条下划线构成的符号名是合法的变量名20.以下选项中合法的变量名是()CA、5aB、A%C、_10_D、sizeof21.在C语言中,char型数据在内存中的存储形式是( ) DA、补码B、反码C、源码D、ASCII码22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
一单项选择题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)6.C 语言中的简单数据类型包括( D )。
大学C语言考试题库第1章 C语言概述习题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语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
c语言编程基础题库及详解答案1. C语言是一种______语言。
A. 编译型B. 解释型C. 标记型D. 脚本型答案:A2. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B3. 在C语言中,整数类型int的范围是多少?A. -128到127B. -32768到32767C. -2147483648到2147483647D. 以上都不是答案:C4. 下列哪个是C语言中的控制语句?A. ifB. loopC. switchD. All of the above答案:D5. C语言中,以下哪个是正确的数组声明?A. int arr[10];B. int [10] arr;C. Both A and BD. None of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. int myFunction();D. Both A and C答案:D7. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. Both A and BD. None of the above答案:A8. 在C语言中,以下哪个操作符用于计算两个数的乘积?A. *B. /C. %D. +答案:A9. C语言中,以下哪个是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D10. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr[];C. Both A and BD. None of the above答案:A11. C语言中,以下哪个是正确的结构体声明?A. struct myStruct { int a; float b; };B. struct { int a; float b; };C. Both A and BD. None of the above答案:C12. 在C语言中,以下哪个是正确的枚举类型声明?A. enum Color { RED, GREEN, BLUE };B. enum { RED, GREEN, BLUE };C. Both A and BD. None of the above答案:C13. C语言中,以下哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. Both A and B答案:B14. 在C语言中,以下哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. min()D. Both A and C答案:B15. C语言中,以下哪个函数用于动态内存分配?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个是正确的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C17. C语言中,以下哪个是正确的位操作符?A. &B. |C. ^D. All of the above答案:D18. 在C语言中,以下哪个是正确的预处理指令?A. #includeB. #defineC. Both A and BD. None of the above答案:C19. C语言中,以下哪个是正确的递归函数调用?A. function();B. function(function());C. function(recursive);D. None of the above答案:B20. 在C语言中,以下哪个是正确的宏定义?A. #define PI 3.14159B. define PI 3.14159C. Both A and BD. None of the above答案:A。
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语言题库及答案详解C语言,作为一种广泛使用的编程语言,以其高效、灵活和跨平台的特性,在软件开发、系统编程等领域占据着重要地位。
为了帮助学习者更好地掌握C语言,本文将提供一些常见的C语言题目及其详细解答。
1. 基础语法题- 题目:请编写一个C程序,输出"Hello, World!"。
- 答案:以下是一个简单的C程序示例,用于输出"Hello,World!"。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 变量与数据类型题- 题目:声明一个整型变量`a`,初始化为10,并打印其值。
- 答案:在C语言中,可以使用`int`关键字来声明整型变量。
以下是实现题目要求的代码。
```c#include <stdio.h>int main() {int a = 10;printf("The value of a is: %d\n", a);return 0;}```3. 控制结构题- 题目:编写一个程序,判断输入的年份是否为闰年。
- 答案:闰年的判断规则是:如果年份能被4整除但不能被100整除,或者能被400整除,则该年为闰年。
```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```4. 数组与循环题- 题目:编写一个程序,求一个整数数组中所有元素的和。
一、填空题(每空 2分,共 20分)1、C程序是由函数构成的,其中有且只能有 1 个主函数,每个C程序总是从它开始执行,并且以 ; 作为结束符。
2、C语言中三大基本结构有:顺序结构、选择循环、。
3、‘A’+3的结果是 68 。
4、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 2.5 。
5、C语言中逻辑运算符 ! 的优先级高于算术运算符。
6、符号“a”和‘a’的区别是”a”为字符串,占两个字节空间,’a’为字符,占1个字节空间。
7、C语言的预处理语句以____#_____开头。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2。
二、选择题(每 2分,共 20 分)1、下列叙述中错误的是( D )。
A、 if语句允许用户选择是否执行某个操作。
B、 if else 语句允许用户选择执行两个操作中的某个操作。
C、 switch语句允许用户选择执行多个操作中的某个操作D、多分支选择结构只能使用switch语句实现2、以下不正确的C语言标识符是( D )A、ABCB、abcC、a_bcD、ab.c3、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( B )。
A、大写字母B、连接符C、数字字符D、下划线4、将int型变量n转换成float型变量的方法是( B )。
A、float nB、(float)nC、float(n)D、(int)n5、( A )是构成C语言的基本单位。
A、函数B、子函数C、过程D、子过程6、下面关于运算符优先顺序的描述中正确的是(B )。
A、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符B、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符C、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符D、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符7、在C语言中,要求参加运算的数必须是整数的运算符是( C )。
C语言考试题库及答案C语言理论上机考试选择题部分(共200题)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=11B) k=11,k=13,k=13C) k=11,k=013,k=0xbD) 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) 18C) 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 9 15、设有如下定义: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) 100 C) 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) 144C) 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,10C) 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) 2C) 1.5 D) 137、在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<15D) !(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;elsek=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"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;elseb=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);elseprintf("%d\n",y);else if (x<z)printf("%d\n",z);elseprintf("%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);elseprintf("%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,0C) 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");bre ak;case'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf(" 等级错误!\n");}C) switch (grade){case'A':printf("85--100\n");bre ak;case'B':printf("60--84\n");brea k;case 'C':printf("60以下\n");default:printf("等级错误!\n");}D) switch (grade){case'A':printf("85--100\n");bre ak;case'B':printf("60--84\n");brea k;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){case0:printf("first\n");break;case1:printf("second\n");break;}case2:printf("third\n");}}A) first B) firstsecondthirdC) first D) secondthird61、以下程序的执行结果是____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);else printf("%d %d\n",b,a);}A) -1 1 B) 0 1C) 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);elseprintf("%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);elseprintf("%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--);elseprintf("%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");elseprintf("####\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");elseprintf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####79、为了避免嵌套的if-else 语句的二义性,C语言规定else总是与___C___组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if 80、设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,12C) 20,8 D)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语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言题库(含答案)一、简答题。
( 共14题 ,共0分,每题0分 )1. int i=10, j=10, k=3; k*=i+j; k最后的值是?答:k = 60ok2. 写出程序结果:void Func(char str[100]){printf("%d\n", sizeof(str));}答:4或者8(如果操作系统为32位则为4,64位则为8)是地址吗3. 写出sizeof(struct name2)的结果struct name2{char str;int num;short x;}不会!看结构答:此题考察结构对齐的知识,结果为124. 写出sizeof(struct name1) 的结果struct name1{char str;short x;int num;}不会!答:同样考察的是结构对齐的知识,结果为85. A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)?答:没有问题,static变量只在当前文件中有效,也就是说static 变量的作用域属于所在的文件域。
static变量保存在全局/静态区6. (void *)ptr 和(*(void**))ptr的结果是否相同?答:相同。
首先第一个(void *)ptr将ptr转换为空指针类型(一级指针),(*(void**))ptr相当于先将ptr转换为空类型指针(二级指针)。
二级指针是指向指针的指针,在前面加上*(解指针),也就是空类型指针了(一级指针)。
7. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5);i 是多少?答: i = 5 * 5+5 = 30;看书上的结构理解下意思8. 下面的声明都是什么意思?const int a;int const a;const int *a;int * const a;int const * const a ;答:第一个定义常量a,第二个也是定义常量a,第三个定义常量指针a,第四个定义指针常量a,第五个定义指向常量的指针常量(相当于const引用)。
c语言c语言考试题库及答案一、选择题1. 在C语言中,用于定义变量的关键字是:A. defineB. varC. intD. let答案:C2. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-twoD. variable#答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A5. 以下哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C二、填空题6. 在C语言中,一个基本的程序结构包括____、____和____。
答案:预处理指令;函数定义;语句7. 一个C语言程序的执行从____函数开始。
答案:main8. 在C语言中,使用____关键字可以定义一个函数。
答案:void 或其他数据类型9. 一个C语言数组的元素默认情况下是按照____顺序存储的。
答案:连续10. C语言中的____运算符用于连接字符串。
答案:+三、简答题11. 解释C语言中指针的概念。
答案:指针是一种变量,它存储了另一个变量的内存地址。
通过指针,可以直接操作内存地址中的数据,实现数据的间接引用。
12. 描述C语言中结构体的定义和使用。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体时,使用struct关键字,然后定义结构体的名称和成员。
使用结构体时,可以创建结构体变量,并通过点(.)运算符访问其成员。
四、编程题13. 编写一个C语言程序,计算并输出1到100的整数之和。
C语言1、以下叙述不正确的是()。
——[单选题]A c程序中,语句之间必须用分号分隔。
B c程序中,多行语句可以写在一行上。
C c程序中,可以不必包含主函数。
D 一个c程序,可以由多个函数组成正确答案:C2、c语言规定,在一个源程序中,main函数的位置()——[单选题]A 必须在最开始B 必须在系统调用库函数的后面C 可以任意D 必须在最后正确答案:C3、以下叙述不正确的是()。
——[单选题]A main函数必须位于程序的最前面B c程序中,每行可以写多条语句C c语言本身不提供输入输出语句。
D 在对c语言程序进行编译的过程中,不能发现注释中的错误正确答案:A4、一个C程序的执行是从()——[单选题]A 本程序的main函数开始,到main函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序文件的第一个函数开始,到本程序main函数结束D 本程序的main函数开始,到本程序文件的最后一个函数结束正确答案:A5、以下叙述不正确的是()——[单选题]A 一个C源程序必须包含一个main函数B 一个C源程序可由一个或多个函数组成C C程序的基本组成单位是函数D 在C程序中,注释说明只能位于一条语句的后正确答案:D6、以下叙述不正确的是()。
(2分)——[单选题]A 1. 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,且b中的值不变。
B 1. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
C 1. 在C程序中,逗号运算符的优先级最低。
D 1. 在C程序中,MAX和max是两个不同的变量。
正确答案:B7、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句:c2='A'+'6'-'3';printf("%c",c2);后,屏幕输出内容为()。
一.选择题(单项)1.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。
A必须为字母B必须为下划线C 必须为字母或下划线D 可以是字母、数字和下划线中的任一种字符2.下面4个选项中,均是C语言关键字的选项是——。
Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面4个选项中,均是不合法的用户标识符的选项是——。
A A P_0 doBfloat la0 _AC b-a goto intD _123 temp INT4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数——。
A由用户自己定义B均为2个字节C 是任意的D 由所用机器的机器字长决定5.下面4个选项中,均是合法浮点数的选项是——。
A+1e+1 5e-9.4 03e2B-.60 12e-4 -8e5C 123e 1.2e-.4 +2e-1D -e3 .8e-4 5.e-06.下面不正确的字符串常量是——。
AˊabcˊB〞12ˊ12〞C 〞0 〞D 〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是——。
A7 B8C 6D 28.以下正确的叙述是——。
A在C语言中,每行只能写一条语句B若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C 在C程序中,无论整数还是实数,都能被准确无误的表示D 在C程序中,%是只能用于整数运算的运算符9.以下表达式值为3的是——。
A 16-13%10B 2+3/2C 14/3-2D (2+6)/(12-9)10. 设变量a是整型,f是实型,i是双精度型,则表达式10+ˊaˊ+i*f值的数据类型为——。
A intB floatC doubleD 不确定11.在C语言中,char型数据在内存中的存储形式是——。
A 补码B 反码C 原码D AS CⅡ码12.设有说明语句:char w;int x;float y;double z;w x z y*+-值的数据类型为——。
A floatB charC intD double13.在C语言中,要求运算数必须是整型的运算符是——。
A /B ++C !=D %14.在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为——。
A 0~255B 0~32 767C 0~65 535D 0~2 147 483 64715下面正确的字符常量是——。
A〞c 〞B〞\\〞C ˊWˊD ˊˊ16.已知各变量的类型说明如下:int k , a , b;unsigned long w=5;double x=1.42;则以下不正确的表达式是——。
A x%(-3)B w+= -2C k=(a=2,b=3,a+b)D a+=a-=(b=4)*(a=3)17.若定义语句:int a=7;float x=2.5;y=4. 7; 则表达式x+a%3*(int)(x+y)%2/4的值是——。
A 2.500000B 2.750000C 3.500000D 0.00000018.已知字母A的AS CⅡ码为十进制数65,且定义c2为字符型变量,则执行语句c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为:A DB 68C 不确定的值D C19.以下程序的运行结果是——。
# include<stdio.h>main(){int m=5,n=10;printf(“%d,%d\n”,m++,--n);}A 5, 9B 6,9C 5,10D 6,1020. 以下程序的运行结果是——。
# include<stdio.h>main(){int a=201,b=012;printf(“%2d,%2d\n”,a,b);}A 01,12B 201,10C 01,10D 20,0121.设有如下程序# include<stdio.h>main(){char ch1=’A’,ch2=’a’;printf(“%c\n”,(ch1,ch2));}则下列叙述正确的为——A 程序的输出结果为大写字母AB 程序的输出结果为小写字母aC 运行时产生错误信息D 格式说明符的个数少于输出项的个数,编译出错22.以下正确定义整型变量a,b和c并为其赋初值5的语句是——。
A int a=b=c=5;B int a,b,c=5;C int a=5,b=5,c=5;D a=b=c=5;23.设x,y均为float型变量,则不合法的赋值语句是——。
A ++x ;B y=(x%2)/10 ;C 8*=+; D x=y=0;x y24.输入数据的形式是25,13,10<回车>,则程序的输出结果是——。
main(){int x,y,z;scanf (“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A x+y+z=48B x+y+z=35C x+z=35D 不确定值25.若有如下定义,则正确的赋值语句是——。
int a,b; float x;A a=1,b=2,B b++;C a=b=5D b=int(x);1.已知学生记录描述为struct student{int no;char name[20];char sex;struct{int year;int month;int day;}birth;};struct student s;设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )A. year=1984;h.day=11;2.当说明一个结构体变量时系统分配给它的内存是( )A.各成员所需内存的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量3.设有以下说明语句struct stu{int a;float b;}stutype;则以下叙述不正确的是( )A. struct 是结构体类型的关键字B. struct stu 是用户定义的结构体类型C. stutype 是用户定义的结构体类型名D. a 和b 都是结构体成员名4.C语言结构体类型变量在程序执行期间( )A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在内存中D. 没有成员驻留在内存中5.在16位机动IBM-PC机上使用C语言,若有如下定义:struct data{int I; char ch; double f;}b;则结构体变量b占用内存的字节数是( )A.1B.7C.8D.116.以下程序的运行结果是( )main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A.6B.8C.10D.127.根据下面的定义,能打印出字母M的语句是( )struct person{char name[9];int age;};struct person class[10]={"John",17,"Paul",19,"Mary"18,"adam",16};A.printf("%c\n",class[3].name);B.printf("%c\n",class[3].name[1]);C.printf("%c\n",class[2].name[1]);D.printf("%c\n",class[2].name[0]);8.下面程序的运行结果是( )main(){struct cmplx{int x;int y;}cnumn[2]={1,3,2,7};printf("%d\n"),cnum[0].y/cnum[0].x*cnum[1].x;}A.0B.1C.3D.69.若有以下定义和语句struct student{int age;int num;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};main(){struct student *p;p=stu;……}则以下不正确的引用是( )A.(p++)->numB.p++C.(*p).numD.p=&stu.age10.以下scanf 函数调用语句中对结构体变量成员的不正确引用是( )struct pupil{char name[20]; int age; int sex;}pup[5],*p;p=pup;A.scanf("%s",pup[0].name);B.scanf("%d",&pup[0].age);C..scanf("%d",&(p->.sex));D.scanf("%d",p-age);11.若有以下说明和语句:struct student{int age; int num;}std.*p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是( )A. std.ageB.P->ageC.(*p).ageD.*p.age12.若有以下程序段:struct dent{int n; int *m;};int a=1,b=2,c=3;struct dent s[3]={{101,&a},{102,&b},{103,&c}};main(){struct dent *p;p=s; ……}则以下表达式值为2是( )A.(P++)->mB.*(P++)->mC.(*P).mD.*(++p)->m13.设有以下语句:struct st{int n; struct st *next;};struct st a[3]={5.&a[1],7,&a[2],9,'\0'};*p;p=&a[0];则以下表达式的值为6的是( )A.p++->nB.p->n++C.(*p).n++D.++p->n15.若有以下说明和语句,则下面表达式中的值为1002的是( )struct student{ int num;int age; };struct student stu[3]={{1001,20},{1002,19},{1003,21}};struct student *p;p=stu;A.(p++)->numB.(++p)-> numC.(*p).numD.(*++p).age16.以下对结构体变量stul中成员age的非法引用的是( )struct strudent{int age; int num;}stul,*p;p=&stul;C.p->ageD.(*p).age17.设有以下说明和定义语句,则下面表达式中值为3的是( )struct s{int il; struct s *12;};struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptrptr=&a[1];A.ptr->il++B.ptr++->ilC.*ptr->ilD.++ptr->il18.当说明一个共用体变量时系统分配给它的内存是( )A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需内存量D.结构中最后一个成员所需内存量19.以下对C语言中共用体类型数据的叙述正确的是( )A.可以对共用体变量名直接赋值B.一个共用体变量中可以同时存放其所有成员C.一个共用体变量中不能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员20.若有以下定义语句union data{int l; char c; float f;}a;int n;则以下语句正确的是( )A.a=5;B.a={2,'a',1.2};C.printf("%d\n",a.l);D.n=a;21.设有以下语句,则下面不正确的叙述是( )union data{int I; char c; float f;}UN;A.UN所占的内存长度等于成员f的长度B.UN的地址和它的各成员地址都是同一地址C.UN不可以作为函数参数D.不能对UN赋值,但可以在定义un时对它初始化22.C语言共用体类型变量在程序运行期间( )A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没有成员驻留在内存中23.以下程序的运行结果是( )#include<stdio.h>main(){union{ long a;int b;char c;}m;printf("%d\n",sizeof(m));}A.2B.4C.6D.825.以下程序的运行结果是:( )#include<stdio.h>union pw{ int i;char ch[2];}a;main(){ a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}A.13B.14C.208D.209文件选择题:1.下列哪个是字符写函数()。