c语言期末测试题(附答案)

合集下载

c语言期末考试题库及详解答案

c语言期末考试题库及详解答案

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语言期末考试题(含答案)

C语言期末考试题(含答案)

C语言期末考试题 ( 含答案 )4程序行后的出果是:四、编程题( 3x15’ = 45 ’)19、写一个程序。

入一个小写字母,程序出它的大写字母。

(提示:小写字母的ASCII 比大些字母大 32)20、写一个程序,算100+101+102+⋯+300 的。

21、已知学生成 (100 分分 ) 与等的关系:成( grade )等90<=grade<=100A80<=grade<90B70<=grade<80C60<=grade<70Dgrade<60E你写一个程序,要求:入学生成,出学生成的等。

(提示:使用 switch ⋯ .case 句)期末答案1、B2、A3、D4、C5、B6、A7、D8、C9、D10、C11、 x>=z && y>=z12、函数名、形式参数、函数体13、 while、do-while、for14、a%5==0 && a%7==015、12,716、11,1317、318、3,2,-119、程序代以下:#include <stdio.h>void main(){char ch;5scanf("%c",&ch);printf("%c\n",ch-32);}20、程序代码以下:#include <stdio.h>void main(){int i,sum=0;for (i=100;i<=300;i++)sum+=i;printf("sum=%d\n",sum);}21、程序代码以下:#include <stdio.h>void main(){int grade;scanf("%d",&grade);switch(grade/10){case 10:case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;case 6:printf("D\n");break;default:printf("E\n");break;}}期末试题答案备用卷1、B2、A63、D4、D5、B6、A7、A8、B9、B10、A11、整型、实型、字符型12、313、2,114、9,015、return16、double17、718、219、2,1,120、程序代码:#include <stdio.h>void main(){int a,b,c;float pinjun;scanf("%d%d%d",&a,&b,&c);pinjun = (a+b+c)/3.0;printf("%.2f\n",pinjun);}21、程序代码:#include <stdio.h>void main(){int a;scanf("%d",&a);if(a<0)a=-a;printf("%d\n",a);}22、程序代码:#include <stdio.h>void main(){float x,y;scanf("%f",&x);if(x<=0)7y=3*x+5;else if(x>0 && x<=1)y=x+5;elsey=-2*x+8;printf("%.2f\n",y);}8。

c语言期末考试题及详细答案

c语言期末考试题及详细答案

c语言期末考试题及详细答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. intC. _first_variableD. for答案:C2. C语言中,用于定义一个整型数组的关键字是?A. charB. intC. floatD. double答案:B3. 在C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <答案:B4. 下列哪个函数用于计算数组中元素的个数?A. strlenB. sizeofC. strcpyD. strcmp答案:B5. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A6. 下列哪个选项是C语言中合法的常量?A. 0x1AB. 1.23e-5C. 2.3.4D. 0b101答案:A7. 在C语言中,哪个关键字用于定义一个函数?A. intB. voidC. structD. return答案:B8. C语言中,用于定义一个指针的关键字是?A. intB. charC. floatD. *答案:D9. 下列哪个选项是C语言中合法的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\nWorld"D. "Hello\tWorld"答案:A10. 在C语言中,哪个运算符用于执行算术运算?A. %B. &C. +D. ||答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:______。

答案:int variable_name;2. 用于将一个字符串复制到另一个字符串的C语言函数是:______。

答案:strcpy3. C语言中,用于声明一个指向整型变量的指针的语法是:______。

c语言期末考试题及答案详

c语言期末考试题及答案详

c语言期末考试题及答案详一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. defineB. declareC. definetypeD. type答案:B2. 下列哪个是C语言中的合法标识符?A. 123abcB. intC. _123abcD. if答案:C3. 在C语言中,哪个运算符用于计算两个整数的平均值?A. /B. %C. +D. /答案:D4. 下列哪个是C语言中正确的字符串定义?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. string str = "Hello, World!";D. str "Hello, World!";答案:A5. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. square()C. root()D. power()答案:A6. 下列哪个语句用于在C语言中交换两个变量的值?A. swap(a, b);B. exchange(a, b);C. a = b; b = a;D. a, b = a + b;答案:C7. 在C语言中,哪个关键字用于声明一个函数?A. functionB. defC. funcD. void答案:D8. 下列哪个是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3, 4};D. int arr = {1, 2, 3, 4, 5};答案:B9. 在C语言中,哪个语句用于结束程序的执行?A. break;B. end;C. exit();D. stop;答案:C10. 下列哪个是C语言中正确的条件语句?A. if (x > 0) { ... }B. condition (x > 0) { ... }C. if (x > 0) then { ... }D. if (x > 0) { ... } else { ... }答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用________关键字来定义一个结构体。

c语言期末复习试题附答案

c语言期末复习试题附答案

c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。

答案:42. C语言中,一个浮点型数据占____个字节。

答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。

答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。

期末c语言考试题库及答案

期末c语言考试题库及答案

期末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语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。

2、以下能正确表示八进制整数的是()A 018B 0x18C 0o18D 18答案:C解释:在 C 语言中,八进制整数以 0 开头,数字取值范围 0 7,所以 0o18 能正确表示八进制整数。

3、若有定义:int a = 5, b = 2; 则表达式 a / b 的值是()A 25B 2C 20D 3答案:B解释:在 C 语言中,两个整数相除,结果为整数,舍去小数部分,所以 5 / 2 的结果是 2 。

4、以下程序段的输出结果是()int x = 10;printf("%d\n",++x);A 10B 11C 9D 12答案:B解释:++x 是先将 x 的值增加 1,然后再使用 x 的值,所以输出11 。

5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2的值是 3 。

6、以下函数声明中,正确的是()A void fun(int a, b);B void fun(int a, int b);C void fun(int a; int b);D void fun(int, int);答案:B解释:函数参数列表中,每个参数都需要明确指定其类型,所以 B 选项正确。

7、若有定义:char str ="hello";则 sizeof(str)的值是()A 5B 6C 20D 不确定答案:B解释:str 数组不仅包含字符'h','e','l','l','o',还包含一个字符串结束符'\0',所以 sizeof(str)的值是 6 。

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。

A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。

A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。

x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。

A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。

A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。

A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程代码:A100002座位号:《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业:学院: 班级:20 年月日分)一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分)1、以下关于C语言标识符的描述中,正确的是【】。

A)标识符可以由汉字组成 B)标识符只能以字母开头C)关键字可以作为用户标识符 D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。

int i,j,k;scanf(“%d,%3d%d”,&i,&j,&k);printf(“%d,%d,%d\n”,i,j,k);3、判断char类型的变量c1是否为数字字符的正确表达式为【】。

A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’)C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。

A)’a’&&’b’ B)a<=b C)((a>b)||(b<c) D)(!(a+b)==c&&a)5、已知:int a[2][3]; 则对数组元素的非法引用是【】A. *(a[0]+2)B. a[1][3] C . a[1][0] D. *(*(a+1)+2)6、在循环语句的循环体中执行break语句,其作用是【】。

A)跳出该循环体,提前结束循环B)继续执行break语句之后的循环体各语句C)结束本次循环,进行下次循环D)终止程序运行7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。

A)10 B)9 C)0 D)18、若有int *p1, *p2,k; 不正确的语句是【】A. p1=&kB. p2=p1C. *p1=k+12D. k=p1+p29、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】A. 静态(static)B. 外部(extern)C. 自动(auto)D. 寄存器(register)10、如下程序的输出结果是【】main( ){ int x=2,a=0,b=0;switch(x){ case 2: a++; b++;case 1: ++a; b--; break;case 0: b++;}printf("a=%d, b=%d\n", a, b);}A. a=2, b=0B. a=2, b=1C. a=1, b=1D. a=1, b=011、表示关系a<b<=c的C语言表达式为【】A. (a<b)&&(b<=c)B. (a<b)AND(b<=c)C. (a<b<=c)D. (a<b)&(b<=c)12、有以下程序#include <>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x); }程序运行时,输入的值在哪个范围才会有输出结果。

【】A.不等于10的整数B.大于3且不等于10的整数C.大于3或不等于10的整数D.小于3的整数13、break语句的正确用法是【】A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。

B. 在多重循环中,只能退出最靠近的那一层循环语句。

C. 跳出多重循环。

D. 只能修改控制变量。

14、若a, b, c, d均为整型变量,执行以下程序段后的t的值为【】#define MAX(A,B) (A)<(B)(A):(B) ................ a=5; b=3; c=3; d=4; t=MAX(a+b,c+d) *10;A. 70B. 7C. 8D. 80 15、执行以下程序段后, m 的值为 【 】int a[6]={1,2,3,4,5,6}, m, *p; p=&a[0];m=(*p)*(*(p+2))*(*(p+4));A) 15 B) 14 C) 13 D) 12第二部分 非选择题(共 70分)二、判断题(本大题共 10 小题,每题1分,共 10 分,答T 表示说法正确.答F 表示说法不正确,本题只需指出正确与错误,不需要修改)16. 字符型数据不可以进行加减运算。

【 】 17. 函数定义与函数的声明是一回事。

【 】 18.在C 语言中函数能嵌套调用,也能嵌套定义。

【 】19. 在C 语言中switch 语句必须使用break 语句。

【 】 20. for 循环中的三个表达式都可以省略。

【 】21. do-while 循环是先进行循环体语句,后判断表达式。

【 】 22. 只能在main()函数中定义静态变量。

【 】23. char *s1=“I love china ”;定义了一个指针变量s1,它的初值为字符串“I love china ”的首地址。

【 】24. int *p[4];与int (*p)[4];的作用相同,都是定义了一个指向数组的指针。

【 】25. 预处理命令行最后也是以分号(;)结尾的。

【 】 三、填空题(本大题共 6 小题,每题 3 分,共 18 分。

)26、在C 语言中 * 作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。

27、表达式(a=3*5,a*4),a+5中a 的值是__________,整个表达式的值是 _________。

28、设有如下的类型说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;若数组所占内存单元的起始地址为446且整型数据占2个字节,则p+5=_______,*(p+5)=______。

29、若定义了如下的共用体类型变量x 和结构类型变量y ,则x 和y 所占用的内存字节数分别为_________和__________。

union stu1 struct stu2{ int num; {int num;char name[5]; char name[5];char s; }x; char s; }y; 30、在TC 中CTRL+F9的功能是__________、__________和_____________。

31、有以下程序 #include <> main(){char c1,c2;scanf(“%c ”,&c1);while(c1<65||c1>96) scanf(“%c ”,&c1); c2=c1+32;printf(“%c,%c ”,c1,c2); }程序运行输入65回车后,能否输出结果。

(请回答能或不能)______。

四、简答题(本大题共 2 小题,每题 3 分,共 6 分。

)32、C 语言中变量的存储类别有几种局部变量的缺省存储类别是哪种。

33、请解释以下与一个C 程序有关的3种文件(需要说明这些文件是什么文件、如何形成的):(1) (2) (3)五、阅读程序回答问题(本大题共 4 小题,每题 5分,共 20分) 34、#include <>void main(){ int a=10,b=18;fun1(a,b); }int fun1(int x,int y) { if(x>y)printf("a>b\n");else if(x<y) printf("a<b\n"); else printf("a==b\n"); }问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解释#include <>。

35、int fun(int a) { int b=0;static int c=3;b=b+1; c=c+1;return(a+b+c);} main( ){ int a=2, i;for(i=0; i<3; i++)printf(“%d”, fun(a)); }问题:(1) 写出该程序的运行结果;(2) 如果将static int c=3; 语句改写成int c=3; ,则运行结果如何变化为什么36、main( ){ int a[2][3]={1,2,3,4,5,6}, b[3][2], i, j;printf(“array a:\n”);for(i=0;i<=1;i++){ for(j=0;j<=2;j++){printf(“%5d”, a[i][j]);b[j][i]=a[i][j];} /*第七行*/printf(“\n”);}printf(“array b:\n”);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(“%5d”, b[i][j]);printf(“\n”);}}问题:(1) 写出程序的运行结果;(2)如果将第七行中的b[j][i]=a[i][j];语句改写成b[i][j]=a[i][j];,则结果如何变化。

37、#include<>void fun(int *p1, int *p2){ int t;t=*p1; *p1=*p2; *p2=t; }void main(){ int x,y;int *p1,*p2;scanf("%d %d",&x,&y);p1=&x; p2=&y;if(x>y) fun(p1,p2);printf("x=%d,y=%d", x, y); }问题:(1) 该程序的功能是什么;(2) 程序中的 * 和 & 分别代表什么运算符(3六、编写程序(本大题共1小题,共 10 分。

)38、输入两个正整数m和n,求其最大公约数和最小公倍数。

(先画N-S图,然后再编写程序代码)七、程序填空(本大题共1小题,共 6 分。

)39、invert( )函数的功能是将一个字符串str的内容倒序存放。

例如:字符串str原内容为:abcde,函数调用后变为:edcba。

void invert(char str[]){ int i,j,k;j= ______________;for (i=0;i<strlen(str)/2;i++,j--){ k=str[i];str[i]=str[j];str[j]=_____________;}}main(){ char test[]="abcde";invert(test);printf("%s\n",test);}课程代码:A100002座位号:《计算机技术基础(C语言)》试卷A标准答案学院: 班级:20 年月日第一部分选择题(共 30 分)一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分)1、D2、C3、B4、D5、B6、A7、C8、D9、C 10、A11、A 12、B 13、B 14、A 15、A第二部分非选择题(共 70 分)二、判断题(本大题共 10 小题,每题1分,共 10 分,答T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)16、F 17、F 18、F 19、F 20、T21、T 22、F 23、T 24、F 25、F三、填空题(本大题共 6 小题,每题 3 分,共 18 分。

相关文档
最新文档