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语言期末考试试题及详细答案

选择练习题1、C 语言中最简单的数据类型包括( B )。
A 、整型,实型,逻辑型B 、整型,实型,字符型C 、整型,字符型,逻辑型D 、整型,实型,逻辑型,字符型 2、C 语言中,运算对象必须是整型数的运算符是(A )。
A 、%B 、/C 、%和/D 、*3、为表示关系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)4、C 语言程序的基本单位是( C )。
A 、程序行B 、语句C 、函数D 、字符5、C 语言的程序一行写不下时,可以( D )。
A 、用逗号换行B 、用分号换行C 、用回车符换行D 、在任意一空格处换行6、下述标识符中,( C )是合法的用户标识符。
A 、A&B B 、voidC 、_studentD 、ab* 7、在C 语言中,字符型数据在内存中以( BA 、补码B 、ASCII 码C 、反码D 、原码8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B)。
A 、autoB 、externC 、staticD 、Register 9、以下关于switch 语句和break 语句的描述中,只有(B A 、在switch 语句中必须使用break 语句B 、在switch 语句中,可以根据需要使用或不使用break 语句C 、break 语句只能用于switch 语句中D 、break 语句是switch 语句的一部分10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。
A 、地址传递B 、值传递C 、由实参传给形参,并由形参传回给实参D 、由用户指定传递方式11、下述C 语言转义符中( D )是非法的。
A 、'\b'B 、'\037'C 、'\0xf 'D 、'\''12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是(D )。
c语言期末考试题及详细答案

c语言期末考试题及详细答案一、选择题(每题2分,共20分)1. 下列哪个关键字用于定义C语言中的函数?A. classB. functionC. voidD. int答案:D2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B4. C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B5. 在C语言中,哪个函数用于计算两个整数的乘积?A. powB. sqrtC. absD. multiply答案:D(注意:multiply不是C语言标准库函数,这里假设为题目中的自定义函数)6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. +=答案:A7. C语言中,哪个关键字用于循环结构?A. ifB. forC. whileD. switch答案:B8. 在C语言中,哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. 以上都是答案:D10. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:B二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。
答案:char2. C语言中,用于定义一个双精度浮点型变量的关键字是________。
答案:double3. C语言中,用于定义一个布尔型变量的关键字是________。
答案:_Bool(或int,取决于编译器)4. 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语言期末考试题及答案详

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语言期末复习试题附答案一、选择题(每题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语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在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语言期末复习试题(附答案)
试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(2.0分)设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A). A:k++B:k+=1C:++kD:k+1第2题(2.0分)已知inti=5,执行语句i+=++i后,i的值是(C).A:10B:11C:12D:A、B、C都不对第3题(2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=p*r*r;printf("s=%f\n",s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(2.0分)"\\\″ABC\″\\″的长度是(B).A:11B:7C:5D:3第5题(2.0分)已知intj,i=1;,执行语句j=–i++;后,j的值是(C).A:1B:2C:-1D:-2第6题(2.0分)有以下程序:#include<stdio.h>voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a–2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘输入给n的值是(B). A:-1B:-3C:-5D:0第7题(2.0分)执行以下程序后,输出的结果是(D).#include<stdio.h>voidmain(){inty=10;do{y––;}while(––y);printf("%d\n",y––);}A:-1B:1C:8D:0第8题(2.0分)以下循环体的执行次数是(C).#include<stdio.h>voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j––)printf("%d\n",i);}A:3B:2C:1D:0第9题(2.0分)有以下程序段:intk=0;while(k=1)k++;while循环执行的次数是(A).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题(2.0分)有以下程序#include<stdio.h>voidmain(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A). A:m=123n=456p=789B:m=123n=456p=789C:m=123,n=456,p=789D:123456789第11题(2.0分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)A:f=0;for(i=1;i<=n;i++)f*=i;B:f=1;for(i=1;i<n;i++)f*=i;C:f=1;for(i=n;i>1;i++)f*=i;D:f=1;for(i=n;i>=2;i––)f*=i;第12题(2.0分)在下列程序中,没有构成死循环的程序段是(B).A:inti=100;while(1){i=i%100+1;if(i>100)break;}B:intk=1000;do{++k;}while(k>=10000);C:for(;;);D:ints=36;while(s);--s;第13题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是(B).A:987B:876C:8765D:9876第14题(2.0分)以下程序的输出结果是(D).#include<stdio.h>voidmain(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x––,y);}A:10192B:9876C:10990D:101091第15题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++){printf("%d\n",n[k]);}}该程序的输出结果是(D).A:不确定的值B:2C:1D:0第16题(2.0分)下列程序执行后的输出结果是(A).#include<stdio.h>voidmain(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&';printf("%s\n",arr);}A:you&meB:youC:meD:err第17题(2.0分)以下程序的输出结果是(C).#include<stdio.h>voidmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2–i]); }A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题(2.0分)以下数组定义中不正确的是(D).A:inta[2][3];B:intb[][3]={0,1,2,3};C:intc[100][100]={0};D:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};第19题(2.0分)以下能正确定义数组并正确赋初值的语句是(D). A:intN=5,b[N][N];B:inta[1][2]={{1},{3}};C:intc[2][]={{1,2},{3,4}};D:intd[3][2]={{1,2},{3,4}};第20题(2.0分)有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("d\n",s);}程序运行后的输出结果是(B)A:24B:28C:32D:36第21题(2.0分)以下正确的函数定义形式为(A)A:doublefun(intx,inty)B:doublefun(intx;y)C:doublefun(intx;inty)D:doublefun(intx,y)第22题(2.0分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题(2.0分)有以下程序:输出结果是()(注:5353)voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); }A:3553B:5335C:3535D:5353第24题(2.0分)以下程序的输出结果是(A).amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}A)56B)25C)34D)程序错误第25题(2.0分)有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a–*b);}该函数的功能是(D).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题(2.0分)有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));}程序执行后的输出结果是(B).A:1B:2C:3D:0第27题(2.0分)有以下程序:main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是(B).A:ChinaB:BeijingC:ngD:ing第28题(2.0分)有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4)i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是(C).A:64,28B:4,4C:4,3D:64,64第29题(2.0分)有以下程序:结果是(A)voidchange(intk[]){k[0]=k[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}A)678910B)13579C)12345D)62345A:678910B:13579C:12345D:62345第30题(2.0分)在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是(C). A:main()int*p;fun(p);…}intfun(int*p){ints;p=&s;}B:main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}C:#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}…D:#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}二、程序填空共1题(共计10分)第1题(10.0分)/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。
大学c语言期末考试题及答案
大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,表示逻辑与运算的运算符是____。
答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言期末复习试题附答案Newly compiled on November 23, 2020试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++B:k+=1C:++kD:k+1第2题(分)已知int i=5,执行语句i+=++i后, i的值是( C).A:10B:11C:12D:A、B、C都不对第3题(分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.#include <>void main( )/* Beginning */{ int r; float s;scanf("%d",&r);s=p*r*r; printf("s=%f\n",s);出错的原因是(D ).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(分)"\\\″ABC\″\\″的长度是( B ).A:11B:7C:5D:3第5题(分)已知int j,i=1;,执行语句j=–i++;后,j的值是( C ).A:1B:2C:-1D:-2第6题(分)有以下程序:#include <>void main( ){ int s=0, a=1, n;scanf("%d", &n);do{s+=1; a=a–2;}while(a!=n);printf("%d\n", s);}若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1B:-3C:-5D:0第7题(分)执行以下程序后,输出的结果是( D ).#include <>void main( ){ int y=10;do{y––;}while(––y);printf("%d\n",y––);}A:-1B:1C:8D:0第8题(分)以下循环体的执行次数是( C ).#include <>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j––)printf("%d\n",i);}A:3B:2C:1D:0第9题(分)有以下程序段:int k=0;while循环执行的次数是(A ).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题(分)有以下程序#include <>void main( ){ int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( A ). A:m=123n=456p=789B:m=123 n=456 p=789C:m=123,n=456,p=789D:123 456 789第11题(分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)A:f=0;for(i=1;i<=n;i++) f*=i;B:f=1;for(i=1;i<n;i++) f*=i;C:f=1;for(i=n;i>1;i++) f*=i;D:f=1;for(i=n;i>=2;i––) f*=i;第12题(分)在下列程序中,没有构成死循环的程序段是( B ).A: int i=100;while(1){i=i%100+1;if(i>100) break;}B:int k=1000;do{++k;} while(k>=10000);C:for(;;);D:int s=36; while(s); --s;第13题(分)有如下程序:#include <>void main( ){ int n=9;{ n--;printf("%d",n);}}该程序段的输出结果是( B ).A:987B:876C:8765D:9876第14题(分)以下程序的输出结果是( D ).#include <>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x––,y);}A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1第15题(分)有如下程序:#include<>void main( ){ int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++){ printf("%d\n",n[k]);}}该程序的输出结果是( D ).A:不确定的值B:2C:1D:0第16题(分)下列程序执行后的输出结果是( A ).#include<>void main( ){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me"); arr[0][3]='&';printf("%s \n",arr);}A:you&meB:youC:meD:err第17题(分)以下程序的输出结果是( C ).#include<>void main( ){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++) printf("%d,",x[i][2–i]);}A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题(分)以下数组定义中不正确的是( D ).A:int a[2][3];B:int b[ ][3]={0,1,2,3};C:int c[100][100]={0};D:int d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};第19题(分)以下能正确定义数组并正确赋初值的语句是(D ). A:int N=5,b[N][N];B:int a[1][2]={{1},{3}};C:int c[2][ ]={{1,2},{3,4}};D:int d[3][2]={{1,2},{3,4}};第20题(分)有以下程序:int a=4;int f(int n){int t=0; static int a=5;if(n%2) { int a=6; t+=a++; }else { int a=7; t+=a++; }return t+a++;}main( ){int s=a,i=0;for( ; i<2; i++) s+=f(i);printf("d\n",s);}程序运行后的输出结果是(B)A:24B:28C:32D:36第21题(分)以下正确的函数定义形式为(A)A:double fun(int x, int y)B:double fun(int x; y)C:double fun(int x; int y)D:double fun(int x, y)第22题(分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题(分)有以下程序: 输出结果是() (注:5353)void swap1(int c0[ ], int c1[ ]){ int t ;t=c0[0]; c0[0]=c1[0]; c1[0]=t;}void swap2(int *c0, int *c1){ int t;t=*c0; *c0=*c1; *c1=t;}main( ){ int a[2]={3,5}, b[2]={3,5};swap1(a, a+1); swap2(&b[0], &b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); }A:3 5 5 3B:5 3 3 5C:3 5 3 5D:5 3 5 3第24题(分)以下程序的输出结果是( A ).amovep(int*p, int (*a)[3],int n){ int i, j;for( i=0;i<n;i++)for(j=0;j<n;j++){ *p=a[i][j];p++; }}main( ){ int *p,a[3][3]={{1,3,5},{2,4,6}};p=(int *)malloc(100);amovep(p,a,3);printf("%d %d \n",p[2],p[5]);free(p);}A) 5 6B) 2 5C) 3 4D) 程序错误第25题(分)有以下函数:fun(char *a,char *b){ while((*a!='\0')&&(*b!='\0')&&(*a==*b)){ a++; b++; }return (*a–*b); }该函数的功能是(D ).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题(分)有以下程序:fun(char p[ ][10]){ int n=0,i;for(i=0;i<7;i++)if(p[i][0]== 'T' ) n++;return n;}main( ){ char str[ ][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));}程序执行后的输出结果是( B ).A:1B:2C:3D:0第27题(分)有以下程序:main( ){ char str[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是( B ).A:ChinaB:BeijingC:ngD:ing第28题(分)有以下程序:#define f(x) (x*x)main( ){ int i1, i2;i1=f(8)/f(4) i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是( C ).A:64, 28B:4, 4C:4, 3D:64, 64第29题(分)有以下程序: 结果是(A)void change(int k[ ]) { k[0]=k[5]; }main( ){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4) { change(&x[n]); n++; }for(n=0;n<5;n++) printf("%d",x[n]);printf("\n");}A) 678910B) 13579C) 12345D) 62345A:678910B:13579C:12345D:62345第30题(分)在以下程序中,能够通过调用函数fun( ),使main( )函数中的指针变量p指向一个合法的整型单元的是(C ).A:main( )int *p;fun(p);… }int fun(int *p){ int s;p=&s; }B:main( ){ int *p;fun(&p);…}int fun(int **p){ int s;*p=&s; }C:#include <>main( ){ int *p;fun(&p);… }int fun(int **p){ *p=(int*)malloc(2); } …D:#include <>main( ){ int *p;fun(p);… }int fun(int *p){ p=(int*)malloc(sizeof(int)); }二、程序填空共1题(共计10分)第1题(分)/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:计算平均成绩并统计90分以上人数。