c语言题库
- 格式:doc
- 大小:839.50 KB
- 文档页数:320
c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
大学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分)1。
函数即可以嵌套定义,又可以嵌套调用。
(×)2。
unsigned 和void 在C 中都是保留字.(√ )3.表达式 ++i 表示对变量i 自加1。
(√)4.C 语言源程序的基本结构单位是main 函数。
( ×)5。
字符常量的长度肯定为1. (√ )6.char a[]={’a','b’,’c'};char b[]={”abc"};数组a和数组b 占用的内存空间大小不一样。
(√ )7。
若有int i=10,,j=2;则执行完i*=j+8;后i 的值为28。
(×)8.int i,*p=&i;是正确的C 说明。
( √ )9.While 循环语句的循环体至少执行一次。
( ×)10.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
(√ ) 11。
7&3+12的值是15。
(× )12。
C 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
( √)13。
若 a=3,b=2,c=1 则关系表达式”(a〉b)==c" 的值为"真"。
(√ )14. 在C 语言中,整型数据在内存中占2个字节。
(× )15. 对二维数组a 来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。
(× )16. break 语句可用于循环体内,它将退出该重循环。
(√)17。
将一个字符串"abc”赋给字符串变量str 的方法是str=”abc”。
. (×)18。
参加位运算的数据可以是任何类型的数。
(×)19. C 语言规定:在一个源程序中,main 函数的位置必须在最开始. ( × )20. 静态外部变量只在本文件内可用. (√)21。
若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的.( ×)22. 字符串只能存放在字符型数组中。
C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为: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、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#incl ude “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
c语言c操作题库及详解答案C语言C操作题库及详解答案1. 请编写一个C程序,实现两个整数的加法运算,并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数相加的结果是:%d\n", sum);return 0;}```2. 编写一个C程序,实现字符串的复制功能。
答案:```c#include <stdio.h>#include <string.h>int main() {char src[] = "Hello, World!";char dest[50];strcpy(dest, src);printf("复制后的字符串是:%s\n", dest);return 0;}```3. 请编写一个C程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%d\n", num, factorial(num)); return 0;}```4. 编写一个C程序,实现判断一个数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。
(完整版)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语言考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2nd_variableB. _variableC. variable-nameD. variable$name答案:C3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. intD. void答案:C6. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. <=答案:B7. 下列哪个选项是C语言中的循环结构?A. ifB. forC. switchD. case答案:B8. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. C语言中,以下哪个关键字用于定义一个指针?A. *B. &C. %D. #答案:A10. 下列哪个选项是C语言中的数组?A. int a[10];B. int *a;C. int a=10;D. int a;答案:A二、填空题(每题2分,共10分)1. 在C语言中,用于定义一个字符常量的数据类型是______。
答案:char2. 在C语言中,用于定义一个整型变量的数据类型是______。
答案:int3. 在C语言中,用于定义一个浮点型变量的数据类型是______。
答案:float4. 在C语言中,用于定义一个双精度浮点型变量的数据类型是______。
答案:double5. 在C语言中,用于定义一个布尔型变量的数据类型是______。
c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
c语言考试题库及答案一、选择题1. 下列哪个关键字是C语言中定义函数的关键字?A. funcB. defC. mainD. int答案:C. main2. 下列哪个选项是C语言中的注释符号?A. //B. **C. <>D. ##答案:A. //3. 下列哪个选项是C语言中的逻辑与运算符?A. ||B. &&C. !D. <答案:B. &&二、填空题1. 完成以下C语言代码,实现两个变量的值交换。
```int a = 10;int b = 20;// 在这里填写代码printf("a = %d, b = %d", a, b);```答案:```int temp = a;a = b;b = temp;```2. 完成以下C语言代码,实现输出1~10的累加和。
```int sum = 0;int i;for (i = 1; i <= 10; i++) {// 在这里填写代码}printf("Sum = %d", sum);```答案:```sum += i;```三、编程题编写一个程序,实现输入两个整数,输出它们的最大公约数。
答案:```c#include <stdio.h>int main() {int num1, num2, i, gcd;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);for (i = 1; i <= num1 && i <= num2; ++i) {if (num1 % i == 0 && num2 % i == 0) {gcd = i;}}printf("最大公约数为:%d", gcd);return 0;}```四、简答题1. C语言中的数据类型有哪些?请至少列举出5个。
c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。
答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。
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语言考试题库及答案C语言考试题库及答案一、选择题1. C语言中,用于表示逻辑“与”操作的关键字是()。
A. &&B. ||C. &D. or答案:A2. 下列哪个选项是C语言中的合法整型常量?A. 0x10FB. 01FC. 8181D. 0.8181答案:A3. 在C语言中,定义一个字符变量可以使用哪种数据类型?A. intB. floatC. charD. double答案:C4. 下列哪个函数用于计算字符串的长度?A. strlen()B. strcmp()C. strcpy()D. printf()答案:A5. C语言中,若要交换两个变量的值,通常使用哪种方法?A. 递归调用B. 位运算C. 三元运算符D. 临时变量答案:D二、填空题1. 在C语言中,使用关键字________声明一个全局变量。
答案:extern2. 一个C语言程序的执行是从________函数开始的。
答案:main3. 在C语言中,使用________运算符可以实现对整型数值的强制类型转换为浮点型。
答案:(float)4. 为了在C语言中定义一个无限循环,可以使用________语句。
答案:while(1)5. 当需要在C语言中动态分配内存时,可以使用函数________。
答案:malloc三、判断题1. C语言中的数组下标是从1开始的。
(错)答案:错2. 在C语言中,函数可以作为另一个函数的参数传递。
(对)答案:对3. C语言中,结构体是一种可以包含不同数据类型成员的用户自定义数据类型。
(对)答案:对4. 使用C语言编写的程序在运行时,所有的变量存储在堆内存中。
(错)答案:错5. C语言中的指针变量必须在使用前初始化。
(错)答案:错四、简答题1. 请简述C语言中的指针和引用的主要区别。
答案:指针是一个变量,其值为另一个变量的地址,而引用是另一个变量的别名,它必须在定义时初始化,并且不能重新指向其他变量。
C语⾔试题库(带答案解析)~排版⼀、选择题1、以下不能定义为⽤户标识符的是()。
(A) MAIN (B) _HJ(D) LINE1 2、以下不能定义为⽤户标识符的是() (A) If(B) H_J (D) LINE12 3、下⾯属于C 语⾔标识符的是( )。
(A) 2ab (B) @f(C) b 4、下列符号中⽤来表⽰C 语⾔中的回车换⾏的是()。
(A) \r(C) \b (D) \t 5、在计算机系统中,可执⾏程序是() (A)源代码(B)汇编语⾔代码(D) ASCII 码6、在Visual C++ 环境下,C 源程序⽂件名的默认后缀是()。
(A) .obj (B) .txt (D) .doc7、Microsoft Visual C++ 中,C 语⾔可执⾏程序的扩展名是:( )(B) obj (C) c 或cpp (D) txt 8、C 程序由()组成。
(A)⼦程序 (B) 主程序和⼦程序 (D) 过程 9、C 程序的基本组成单位()。
(A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语⾔中主函数的个数是( )。
(A) 2个 (C) 任意个 (D) 10个 11、⼀个C 程序的执⾏是从() (B)本程序⽂件的第⼀个函数开始,到本程序⽂件最后⼀个函数结束. (C)本程序⽂件的第⼀个函数开始,到本程序main 函数结束. (D)本程序的main()函数开始,到本程序⽂件的最后⼀个函数结束. 12、以下叙述正确的是(A)在C 语⾔程序中,main 函数必须放在其他函数的最前⾯ (C)在C 语⾔程序中,只有main 函数才可单独进⾏编译 (D)每个后缀为.C 的C 语⾔源程序都应该包含⼀个main 函数13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是()。
(A) int (B) float 14、以下选项中表⽰⼀个合法的常量是(说明:符号□表⽰空格)A) 9□9□9 C) D)15、以下选项中⾮法的字符常量是A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表⽰逻辑值“假”的是A)1 B) D)17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语⾔变量,以下说法不正确的是() (A) 变量名由程序员定义,必须符合标识符的命名规则。
C语言题库1. 输入一个整数,判断它是几位数?(*)2. 编制一函数,得到一个整数的某一位的数字。
(*)3. 求出所有的水仙花数。
水仙花数是一个三位数,其各位数字的立方和等于该数。
例如153=1^3+5^3+3^3。
(**)4、编写函数fun求1000以内所有7的倍数之和。
(*)int fun(int m){ }5、将一个数组中的元素按逆序存放。
(*)6、输入三个整数x,y,z,请把这三个数由小到大输出。
(*)7、递归调用计算阶乘, 输入n,求n的阶乘(*)8、删除字符串中的数字字符。
例如:输入字符串:48CTYP9E6,则输出:CTYPE。
(**)9、计算并输出500以内最大的10个能被13或17整除的自然数之和。
(*)10、统计一个字符串中的字母、数字、空格和其它字符的个数。
(*)11、不用第三个变量,实现两个数的对调操作。
(**)12、求1!+3!+5!+……+n!的和。
(**)13、求一批数中最大值和最小值的差。
(*)14、编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
每一分数的分母是前两项的分母之和;每一分数的分子是前两项的分子之和。
例如:求前20项之和的值为32.660259。
(**)15、打印出如下图(菱形)(**)*************************16、用冒泡法对数组a进行由小到大的排序。
(*)17、求出二维数组中的最大元素值(*)18、输入一个字符串,对字符串逆序输出(*)19、已知一个数列,它的头两项分别是0和1,从第三项开始以后的每项都是其前两项之和。
编程打印此数,直到某项的值超过200为止。
(***)20、计算平均成绩并统计90分以上人数。
(*)21、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(***)22、判断101-200之间有多少个素数,并输出所有素数。
第一章概述一、单选题1、C语言的前身是(B )。
A.A语言B.B语言C.C++语言D.BASIC语言2、C语言规定,必须用(C )作为主函数名。
A.FunctionB.includeC.mainD.void3、一个C程序可以包含任意多个不同名的函数,但有且仅有一个(B )。
A.过程B.主函数C.函数D.进程4、一个C程序总是从(B )开始执行。
A.过程B.主函数D.进程5、C程序的基本构成单位是(A )。
A.函数B.过程C.进程D.子程序6、下列说法正确的是( D)。
A.main函数必须放在C程序的开头B.main函数必须放在C程序的最后C.main函数可以放在C程序中间部分,执行C程序时是从程序开头执行的D.main函数可以放在C程序中间部分,执行C程序时是从main函数开始的7、下列说法正确的是(C )。
A.在执行C程序时不是从main函数开始的B.C程序书写格式严格限制,一行内必须写一个语句C.C程序书写格式自由,一个语句可以分写在多行上D.C程序书写格式严格限制,一行内必须写一个语句,并要有行号8、在C语言中,每个语句和数据定义结束都是用( C)。
A.句号C.分号D.括号9、不是C语言提供的合法关键字(B )。
A.switchB.printfC.caseD.default10、不是C语言提供的合法关键字(D )。
A.intB.floatC.charD.scanf11、C语言提供的合法关键字是( A)。
A.breakB.printfC.functionD.end12、C语言提供的合法关键字是( A)。
A.continueB.procedureC.begin13、下列说法正确的是(C )。
A.一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B.一个函数的函数体必须要有执行部分,可以没有变量定义C.一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D.一个函数的函数体必须要有变量定义,可以没有执行部分14、下列说法正确的是(D )。
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语言题库
全国计算机等级考试C语言题库
一、选择题
C语言中,注释部分由 _______ 组成。
A. //和/*/
B. //和////
C. //
D. //和// 和 ///*/
答案:C
在C语言中,字符型数据在内存中以 _______ 形式存储。
A. ASCII码
B. 16进制码
C. 补码
D. 原码
答案:A
下列叙述中,正确的是 _______ 。
A. C语言程序将从源文件的第一行开始执行
B. 凡是以main作为函数名的函数,其功能都必须是作为C程序的入口点
C. 编译预处理命令写在程序的开头,凡是在编译预处理命令后面的语句都必须在编译之前执行
D. 注释部分对程序的运行结果不产生影响,它只是起到帮助理解代码的作用
答案:D
二、填空题
在C语言中,整数类型包括 _______ 、 _______ 、 _______ 和 _______ 。
答案:short、int、long、long long
在C语言中,sizeof(float)的值是 _______ 。
答案:4
函数中局部变量的生命周期是 _______ 。
答案:从定义开始到函数结束
三、简答题
1. 写出C语言中的三种基本控制结构,并简要说明它们的作用。
答案:C语言中的三种基本控制结构是顺序结构、选择结构和循环结构。
顺序结构按照程序中语句的顺序执行,选择结构根据条件判断执行不同的分支,循环结构重复执行某段代码直到满足某个条件为止。
1. C语言是编译型语言。
(对)2. 在C语言中,数组的索引是从1开始的。
(错)3. 在C语言中,所有变量必须在使用前先声明。
(对)4. C语言支持函数重载。
(错)5. C语言中,`/*...*/`用于单行注释。
(错)6. C语言中,字符常量用单引号括起来。
(对)7. C语言中,字符串常量用双引号括起来。
(对)8. 在C语言中,`int`类型变量的大小在所有平台上都是一样的。
(错)9. C语言中,`sizeof`运算符用于求变量或数据类型的大小。
(对)10. 在C语言中,`main`函数可以没有返回值。
(错)11. C语言中的`printf`函数用于输出信息到屏幕。
(对)12. C语言中的`scanf`函数用于从键盘输入信息。
(对)13. C语言中,指针变量存储的是变量的地址。
(对)14. C语言中,`*`运算符用于获取指针变量所指向的值。
(对)15. C语言中,数组名本身就是指针。
(对)16. C语言中,`&`运算符用于获取变量的地址。
(对)17. C语言中,字符串结尾是以'\0'标识的。
(对)18. C语言中,`malloc`函数用于动态内存分配。
(对)19. 在C语言中,不能对空指针进行解引用操作。
(对)20. C语言中,`free`函数用于释放动态分配的内存。
(对)21. C语言中的`enum`类型用于定义枚举。
(对)22. C语言中的`struct`用于定义结构体。
(对)23. C语言中的`union`和`struct`是相同的。
(错)24. C语言中,`void`表示无返回值的函数。
(对)25. C语言中,`const`关键字用于定义常量。
(对)26. C语言中,`#define`用于定义宏。
(对)27. C语言中,`#include`用于包含头文件。
(对)28. C语言中,`break`用于跳出当前循环。
(对)29. C语言中,`continue`用于跳过本次循环的剩余部分,直接开始下一次循环。
试卷编号:9143所属语言:C语言试卷方案:练习1试卷总分:100分共有题型:5种一、填空共8题(共计8分)第1题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为【1】.答案:30第2题(1.0分)题号:94已知a=13,b=6, a%b的十进制数值为【1】.答案:1第3题(1.0分)题号:432执行下列语句的结果是【1】,a=3;printf("%d,",++a);printf("%d",a++);答案:4,4第4题(1.0分)题号:87输入整型变量a的值.int a; scanf("%d",【1】);答案:&a第5题(1.0分)题号:572执行下列语句后,b 的十进制值是【1】.int x=240,y=15,b;char z='A';b=(( x && y ) && ( z < 'a' ));答案:1第6题(1.0分)题号:306当a=1,b=2,c=3时,执行以下程序段后b=【1】.if (a>c) b=a;a=c;c=b;答案:2第7题(1.0分)题号:438以下程序的输出结果为【1】,#include "stdio.h" main(){int a;for(a=0;a<10;a++);printf("%d",a);}答案:10第8题(1.0分)题号:312以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】. ch=getchar();while(ch ____ 'Y')/*在括号中填写*/ch=getchar();答案:==二、判断共15题(共计15分)第1题(1.0分)题号:933在C语言中,变量必需先定义后使用答案:Y第2题(1.0分)题号:935在C程序中,%是只能用于整数运算的运算符答案:Y第3题(1.0分)题号:940int a[9]; 则a数组的下标范围是1-9答案:N第4题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double答案:Y第5题(1.0分)题号:719C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.答案:Y第6题(1.0分)题号:721语句scanf("%7.2f",&a);是一个合法的scanf函数.答案:N第7题(1.0分)题号:943使用putchar函数时,必须在之前包含头文件stdio.h答案:Y第8题(1.0分)题号:720语句printf("%f%%",1.0/3);输出为0.333333.答案:N第9题(1.0分)题号:936在C语言中,逻辑"真"等价于不等于0的数答案:Y第10题(1.0分)题号:959在switch-case语句中,不是每个case后都要使用break语句.答案:Y第11题(1.0分)题号:722关系运算符<= 与== 的优先级相同.答案:N第12题(1.0分)题号:869若有int i=10, j=0;则执行完语句if (j=0)i++; else i--; i的值为11.答案:N第13题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第14题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第15题(1.0分)题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N三、单项选择共20题(共计40分)第1题(2.0分)题号:2033下列程序的输出结果是().main(){int a=7,b=5;printf("%d\n",b=b/a);}A:0B:5C:1D:不确定值答案:A第2题(2.0分)题号:2051设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是().A:552B:144C:264D:-264答案:D第3题(2.0分)题号:2056以下程序的输出结果是().main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A:x=3.600000,i=4B:x=3,i=3C:x=3.600000,i=3D:x=3 i=3.600000答案:C第4题(2.0分)题号:2029以下不符合C语言语法的赋值语句是().A:a=1,b=2B:++j;C:a=b=5;D:y=(a=3,6*5);答案:A第5题(2.0分)题号:2226设有int x=11; 则表达式(x++ * 1/3) 的值是(). A:3B:4C:11D:12答案:A第6题(2.0分)题号:2039若k为int型变量,则以下程序段的执行结果是(). k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C:输出为|0-8567|D:输出为|-8567|答案:B第7题(2.0分)题号:2222语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)().A:a\bre\'hi\'y\\\bouB:a\bre\'hi\'y\bouC:re'hi'youD:abre'hi'y\bou答案:C第8题(2.0分)题号:2128下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82B:213.83C:213D:3.8答案:C第9题(2.0分)题号:2043已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(). char a='a'; a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A:b,cB:a--运算不合法,故有语法错C:98,cD:格式描述和输出项不匹配,输出无定值答案:C第10题(2.0分)题号:2044下列程序的输出结果为().main(){int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}A:27.000000B:27.500000C:28.000000D:28.500000答案:A第11题(2.0分)题号:2255下列运算符中优先级最高的是().A:<B:+C:&&D:!=答案:B第12题(2.0分)题号:2057经过以下语句定义后,表达式z+=x>y?++x:++y的值为().int x=1,y=2,z=3;A:2B:3C:6D:5答案:C第13题(2.0分)题号:2064下列程序的输出结果是().main(){ int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;case 3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2答案:B第14题(2.0分)题号:2190选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为"真"或"假". 哪个数作为逻辑"假"值().A:-1B:1C:非零的数D:0答案:D第15题(2.0分)题号:2144int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第16题(2.0分)题号:2068设j和k都是int类型,则for循环语句for(j=0,k=-1;k=1;j++,k++) printf("****\n");().A:循环结束的条件不合法B:是无限循环C:循环体一次也不执行D:循环体只执行一次答案:B第17题(2.0分)题号:2147while(fabs(t)<1e-5)if(!(s/10))break;循环结束的条件是().A:t>=1e-5||t<=-1e-5||s>-10&&s<10B:fabs(t)<1e-5&&!s/10C:fabs(t)<1e-5D:s/10==0答案:A第18题(2.0分)题号:2258以下描述中正确的是().A:由于do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B:do-while 循环由do开始,用while结束,在while(表达式)后面不能写分号C:在do-while 循环体中,一定要有能使while 后面表达式的值变为零("假")的操作D:do-while 循环中,根据情况可以省略while答案:C第19题(2.0分)题号:2254对for(表达式1; ;表达式3) 可理解为().A:for(表达式1;0;表达式3)B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3)D:for(表达式1;表达式3;表达式3)答案:B第20题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B四、程序填空共3题(共计27分)第1题(9.0分)题号:405/*------------------------------------------------------- 【程序填空】---------------------------------------------------------题目:要求输出结果为:A,B65,66-------------------------------------------------------*/ #include<stdio.h>void main()/***********SPACE***********/{char a,【?】/***********SPACE***********/a=【?】;b='b';a=a-32;/***********SPACE***********/b=b-【?】;printf("%c, %c\n%d,%d\n",a,b,a,b);}答案:=======(答案1)=======b;=======(答案2)======='a'=========或=========97=======(答案3)=======32第2题(9.0分)题号:430/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:计算一元二次方程的根。