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 语⾔程序设计》期末试卷⼀、单项选择题(10x2’=20’)1、以下叙述正确的是()A )C 语⾔的源程序不必通过编译就可以直接运⾏。
B )C 语⾔中的每条可执⾏语句最终都将被转换成⼆进制的机器指令。
C )C 语⾔源程序经编译形成的⼆进制代码可以直接运⾏。
D )C 语⾔中的函数不可以单独进⾏编译。
2、⼀个C 语⾔的源程序中()A )必须有⼀个主函数B )可能有多个主函数C )必须有除主函数外其它函数D )可以没有主函数3、以下不能定义为⽤户标识符的是()A )scanfB )VoidC )_3comD )int4、若以下选项中的变量已正确定义,则正确的赋值语句是()A )x1=26.8%3;B )1+2=x2;C )x3=0x12;D )x4=1+2=3;5、设有定义:float a=2,b=4,h=3;以下C 语⾔表达式中与代数式h b a *)(21 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b)6、C 语⾔中⽤于结构化程序设计的3种基本结构是()A )顺序结构、选择结构、循环结构B )if 、switch 、breakC )for 、while 、do-whileD )if 、for 、continue7.在while (!x )语句中的!x 与下⾯条件表达式等价的是()A) x!=0 B) x==1 C) x!=1 D) x==08、有以下程序:#includevoid main(){int i=1,j=1,k=2;if( (j++||k++)&&i++ )printf(“%d,%d,%d\n ”,i,j,k);}执⾏后的输出结果是()A )1,1,2B )2,2,1C )2,2,2D )2,2,39、有以下程序:#includevoid main(){int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n ”,s);}程序执⾏后的输出结果是()A )⾃然数1~9的累加和B )⾃然数1~10的累加和C)⾃然数1~9中奇数之和D)⾃然数1~10中偶数之和10、有以下函数定义:void fun(int n,double x){……}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调⽤语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);⼆、填空题(10x2’=20’)11、C语⾔描述“x和y都⼤于或等于z”的表达式是:。
C语言期末复习.doc

C语言期末复习.doc第一章C语言概述一、选择题1、C语言程序由什么组成()A、子程序B、主程序和子程序C、函数D、过程2、源程序要正确地运行,必须要有什么函数()A、Printf函数B、自定义的函数C、main函数D、不需要函数3、指出下面哪些是合法的标识符()A、3abB、intC、ABCD、a_3E、sum..aF、#abcG、_stu2H、abc f二、问答题1、C语言程序由哪几部分组成?C语言程序结构有什么特点?参考答案一、选择题1、C2、C二、问答题见教案第二章基本数据类型、运算符及表达式一、选择题1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\\C、%和\\D、**4、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.55、若t为double类型,表达式t=1,t+5,t++的值就是()A、1B、6.0D、1.06、若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为()A、9B、4C、3D、27、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144D、-264二、问答题:1、简述‘a’和“a”的区别。
参考答案一、选择题1、C2、D3、A4、D5、D6、C7、D二、问答题‘a’是字符常量“a”是字符串常量C语言规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。
C语言规定以字符’\\0’作为字符串结束标志。
如果有一个字符串”china”,实际上在内存中是占内存不是5个字节,而是6个字节,最后一个是’\\0’。
C期末考试复习题(答案)

C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
(word版)C语言程序设计期末考试卷及答案.doc,文档

(word 版)C 语言程序设计期末考试卷及答案.doc,文档1 / 91装 装 .--C 语言程序设计期末考试卷及答案- -- -- -- - --- -- - - - - - --- - 得分 阅卷人 复核人 --- -- -- - - - - -- ---- -A 、B 、C 、D 四个选项中,选择一个最正确答案填入括号内 (每题 1分,共计 30分)。
- -一、单项选择题。
从- -- -- -- -〕。
- -1.一个C 语言程序的执行是从〔- -2 1 - -- 号 - A 〕本程序文件的第一个函数开始,到本程序文件的最后一个函数结束-- - - -- 学 -- - -- - - B 〕本程序的main 函数开始,到main 函数结束- - -- - -- - -- - -- - - C 〕本程序的main 函数开始,到本程序文件的最后一个函数结束- - -- - -- - - - -- D 〕本程序文件的第一个函数开始,到本程序的main 函数结束- --- - -- - -- - -C 语言关键字的是〔 〕。
- - -2.以下选项中不属于- - - ...- --- ---- -- A 〕switch B 〕printf C〕default D 〕case- --- - -- -3.设有语句inta=4; ,那么执行了语句a+=a-=a*a; 后,变量a 的值是〔 〕。
-- --名A 〕24B 〕-24C 〕4D 〕16-- -姓第 第 --- 4.inti;floatd; ,那么正确的表达式是〔 〕。
--- --A 〕(intd)B 〕int(d)%i C 〕(int)d%iD 〕int(d%i) -- -- -,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是〔 - 线 -5.inti,a;〕。
- - - - -- - - - --- - -A 〕5B 〕16C 〕27D 〕38 - - - - - - - - -- - - 〕。
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语⾔期末考试题及答案教案资料1、给定n个数据, 求最⼩值出现的位置(如果最⼩值出现多次,求出第⼀次出现的位置即可)。
最⼤值第三⾏i<=n五⾏k+1 2、编写程序求⽆理数e的值并输出。
计算公式为:e=1+1/1!+1/2!+1/3!+......+1/n!当1/n!<0.000001时e=2.718282。
3、求⼀批数中最⼤值和最⼩值的积。
4、某⼀正数的值保留2位⼩数,对第三位进⾏四舍五⼊。
5、从键盘上输⼊任意实数x,求出其所对应的函数值。
z=(x-4)的⼆次幂(x>4) z=x的⼋次幂(x>-4)z=z=4/(x*(x+1))(x>-10)z=|x|+20(其他)6、求出N×M整型数组的最⼤元素及其所在的⾏坐标及列坐标(如果最⼤元素不唯⼀,选择位置在最前⾯的⼀个)。
例如:输⼊的数组为:1 2 34 15 612 18 910 11 2求出的最⼤数为18,⾏坐标为2,列坐标为1。
7、求⼀个n位⾃然数的各位数字的积。
(n 是⼩于10的⾃然数)8、计算n门课程的平均值,计算结果作为函数值返回。
例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。
9、求⼀批数中⼩于平均值的数的个数。
10、编写函数判断⼀个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。
调⽤该函数找出100~200之间满⾜条件的所有数。
11、请编⼀个函数void fun(int tt[M][N],int pp[N]),tt指向⼀个M⾏N列的⼆维数组,求出⼆维数组每列中最⼤元素,并依次放⼊pp所指⼀维数组中。
⼆维数组中的数已在主函数中赋予。
12、编写函数fun⽤⽐较法对主程序中⽤户输⼊的具有10个数据的数组a按由⼤到⼩排序,并在主程序中输出排序结果。
13、编写main程序调⽤函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是:组合数=m!/(n!.(m-n)!)。
C语言期末复习

《C语言程序设计》期末复习题一、选择题1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. C2. C语言程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数3. 设x和y均为逻辑值,则x||y为假的条件是()。
A.它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假4. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==55. 在下面的字符数据定义中,()语句有语法错误。
A. char a[20]=”abcdefg”;B. char a[]=”x+y=55”;C. char a[15]={‘1’,’2’};D. char a[10]=’5’;6. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数7. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。
A. 4B. 8C. 16D. 328. 下列给字符数组赋初值时,正确的是()。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p; p=&s;9. 变量s已定义为“char *s=”Hello world!”;”要使变量p指向s所指向的同一个字符串,则定义为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
期末总复习(基础知识+程序设计部分)一.填空1.已知char ch=’A’; 则下列表达式的值是: aCh=(ch>=’A’ && ch<=’Z’)? (ch+32):ch;2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是73.若x=2,y=3,则x%=y+3之值为 24.. 若有定义int y=3; float z=5.2, x=4.8; 则表达式y+=(int)x+x+z的值为175. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值1)(x&&y)==(x||z) 12)!(x>y)+(y!=z)||(x+y)&&(y-z) 03)x++-y+(++z) 136. 设x,y,z为int型变量,请用C语言表达式描述下列命题1)x和y中有一个小于z (x<z&&y>z||x>z&&y<z )==12) x,y和z中有两个为负数(x<0&&y<0&&z>=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==13)y是奇数y%2 !=07. 下面for循环语句最多可执行 4 次For (x=0,y=0 ;(y !=99)&&(x<4) ;x++)8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是10for (i=0,j=10 ;i<=j ;i++,j--)k=i+j ;9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为7 y的值为9z的值为7m=10 ; n=5;x=(--m==n++)? --m : ++n;y=m++;z=n;10. 若有说明语句:w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 411. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。
15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。
N*j+m+116.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占16 个字节。
17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0 。
18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。
\0为停止符19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 620. 执行下列程序段后,*p等于 3int a[5]={1,3,5,7,9}; *p=a;p++;二.判断(true or false)1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。
T2.函数可以嵌套定义F3.函数必须有返回值,否则不能正确作用F4.C程序中有调用关系的所有函数必须放在同一源程序文件中。
F5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。
F6.函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F7.当函数定义放在main()函数前面时,可以缺省函数声明。
T8.C语言中允许函数嵌套调用T9.局部静态变量是在编译时赋初值的,即只赋一次初值。
T10.外部变量必须定义在文件的开头部分F11.字符’\0’是字符串的结束标记,其ASCII码为0.T12.若有说明 :int a[3][4]={0};则数组a中每个元素的初值都为0.T13.若有说明 :int a[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0,其余元素的初值均不为0. F14.若有说明 :int a[3][4];则数组a中各元素可在程序的编译阶段达到初值0.F15.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。
F16.在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。
F17.当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。
T18.在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。
F19.&b指的是变量b的地址处所存放的值;F20.指针变量可用于保存同类型变量的地址值;F21.存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F22.指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。
F23.如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址T24.char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。
F25.语句y=*p++;和y=(*p)++;是等价的。
F26.函数指针指向的是函数的入口地址。
T27. int *p;定义了一个指针变量,其值是整型的。
F28.用指针作为函数参数时,采用的是“地址传送”方式.T三、选择题1.下列变量名中哪些是合法的?π 2a a# C$ t3 _var θ int2.语言中用________表示逻辑值“真”。
A) true B) 整型值0C) 非零整数值D) T3.下列合法的字符常量为________。
A) "a" B) '\n' C) 'china' D) a4. 设有语句char c='\72'; 则变量c________。
A) 包含1个字符 B)包含2个字符 C) 包含3个字符 D) 不合法5. 字符串"\t\"Name\\Address\n"的长度为________。
A) 19 B) 15 C) 18 D) 不合法6. 设a,b,c 为 int 型变量,且a = 3 ,b = 4 , c = 5,下面表达式值为0的是________。
A) 'a' && 'b' B) a <= bC) a || b+c && b-c D) !((a<b) && !c || 1)7. 若有以下定义:char a ; int b ; float c ; double d ;则表达式 a * b + d – c 的值的类型为_____________ A) float B) int C) charD) double 8. 设有语句int a = 3; 执行了语句a += a -= a * a; 后,变量a 的值是________。
A) 3 B) 0 C) 9 D) -129. 设有语句int a = 3; 执行了语句printf("%d", -a ++); 后,输出的结果是__C______,变量a 的值是__D_____。
A) 3 B) 4 C) -3 D) -210. 将下列数学表达式表示为合法的C 语言表达式。
(1) cb a 222+ (2) 2))((+++d c b a (3) 2/))sin((ln y x + (4) r π2 (5) x111+ (6) xxy y e ++22)30sin(ο 12. 下列可作为C 语言赋值语句的是:_____________。
A) x = 3, y = 5 B) a = b = c C) i -- ; D) y = int ( x ) ;13. 以下程序的输出结果为:_____________。
main(){int a = 2, c = 5;printf("a = %%d, b = %%d\n", a, c); }A) a = %2, b = %5 B) a = 2, b = 5 C) a=%%d, b=%%d D) a=%d, b=%d14. 在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中s1和s2表示它是C 语句),这个不等价的语句是: 。
A) if (a) s1; else s2;B) if (!a) s2; else s1;C) if (a != 0) s1; else s2;D) if (a == 0) s1; else s2;15. 设有声明语句:int a=1,b=0;则执行以下语句后输出为: 。
switch (a){case 1:switch (b){case 0: printf("**0**");break;case 1: printf("**1**");break;}case 2: printf("**2**");break;}A)**0** B) **0****2** C)**0****1****2** D)有语法错误16.在while (x)语句中的x与下面条件表达式等价的是:。
A) x == 0 B) x == 1 C) x != 1 D) x != 017. 若int x;且有下面的程序片断,则输出结果为:。
for (x=3; x<6; x++){printf((x%2)==0? "**%d" : "##%d\n", x);}A) **3B) ##3C) ##3D) **3##4##4 **4 **4##5 **5**5 ##518. 以下能对外部的一维数组a(含有10个元素)进行正确初始化的语句是:。
A) int a[10] = (0,0,0,0,0);B) int a[10] = {};C) int a[] = {0};D) int a[10] = {10*1};19. 以下能对外部的二维数组a进行正确初始化的语句是:。
A) int a[2][] = {{1,0,1},{5,2,3}};B) int a[][3] = {{1,2,1},{5,2,3}};C)2 int a[2][4] = {{1,2,1},{5,2},{6}};D) int a[][3] = {{1,0,2},{},{2,3}};20. 若二维数组a有m列,则在a[i][j]之前的元素个数为:。