2014C语言程序设计期末复习题
- 格式:docx
- 大小:259.29 KB
- 文档页数:28
c语言期末考试复习题C语言作为一门基础而强大的编程语言,其期末考试通常包含对语言基础、数据结构、控制结构、函数、指针、数组、文件操作等多个方面的考察。
以下是一份C语言期末考试的复习题,旨在帮助同学们全面复习和巩固所学知识。
一、选择题1. 在C语言中,以下哪个关键字用于定义函数?A. ClassB. FunctionC. voidD. int2. 以下哪个选项是C语言中的合法变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name3. C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. +D. -4. 以下哪个语句可以用于输入一个整数?A. scanf("%d", &variable);B. printf("%d", &variable);C. getchar(&variable);D. input(&variable);5. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 随机数二、填空题1. 在C语言中,一个基本的数据类型包括______、______、______、______等。
2. 用于定义一个整型变量的关键字是______。
3. 一个C语言程序的执行从______函数开始。
4. 用于输出一个浮点数的函数是______。
5. 字符串在C语言中以______字符结尾。
三、简答题1. 解释C语言中的指针是什么,并给出一个简单的例子。
2. 描述C语言中数组和指针之间的关系。
3. 什么是函数的递归调用?请给出一个简单的递归函数示例。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和、差、积、商。
2. 编写一个C语言程序,实现对一个字符串进行反转。
3. 编写一个C语言程序,实现对一个整数数组进行排序。
五、综合应用题1. 描述如何在C语言中实现文件的读写操作,并给出一个简单的文件写入和读取的例子。
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
第 1 页 共 7 页5. 有输入语句:scanf(“a=%d,b=%d,c=%d ”,&a,&b,&c);为使变量 a 的值为1,b 的值为2,c 的值为3,则正确的数据输入方式是( )。
(↙表示回车) (A )123↙ (B )1,2,3↙ (C )a=1 b=2 c=3↙ (D )a=1,b=2,c=3↙6.已知字母A 的ASCII 码值为十进制的65,下面程序的输出结果是( )。
#include<stdio.h> 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 )不确定的值 7. 为表示关系x ≥y ≥z ,应使用C 语言表达式( )。
(A )(x>=y)&&(y>=z) (B )(x>=y)AND(y>=z) (C )(x>=y>=z) (D )(x>=y) & (y>=z)8. 设有数组定义:char array[]=“China ”;则数组array 所占的存储空间为( )。
(A )4个字节 (B )5个字节 (C )6个字节 (D )7个字节 9. 以下程序的输出结果是( )。
#include<stdio.h> main(){ int x=1,a=0,b=0; switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf(“%d,%d”,a,b);}(A)2,1 (B)1,1 (C)1,0 (D)2,210. 若k为整型变量,则下列while循环执行的次数为()。
2013 C语言程序设计复习提纲考试试题题型:(1)选择题(每小题2分,共40分)(2)填空题(每小题2分,共20分)(3)读程序写结果(每小题3分,共18分)(4)程序填空题(每小题2分,共12分)(5)编程题(每小题5分,共10分)注意: 答案要写在答题卡上,试卷上要填写教师姓名,试卷和答题卡都要写学号、姓名和专业。
选择题可以用任意笔填涂,当然最好是铅笔。
第1章程序设计和C语言1、函数与主函数程序由一个或多个函数组成。
必须有且只能有一个主函数main()。
程序执行从main开始,在main中结束。
2、程序语句C语言程序语句分号作为语句终止符。
3、注释/* */, // 注释不产生编译代码。
4、VC6.0编程流程编辑(.c)—编译(.obj)—连接(.exe)—运行。
运行的是可执行文件.exe5、预处理命令行都必须以#号开始第2章算法1、计数、求和、求阶乘等简单算法2、最大数、最小数和平均数3、判断奇数、偶数、素数4、冒泡、选择排序算法冒泡(升序):n为数组的长度for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]>a[j+1]) 交换选择(升序): n为数组的长度for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[j]<a[k]) k=j;交换 a[i]和a[k]}5、查找算法(顺序查找、二分查找)顺序查找:在数组中查找值为K的元素for(i=0;i<n;i++)if(a[i]==k) break;if(i<n) 找到,显示此时i的值else 未找到二分查找(对数组有要求:数组中的元素值是有序):在数组中查找值为K的元素采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。
补充完善程序,以实现其功能。
6、字符指针处理字符串第3章顺序结构程序设计1、常量:整型、实型、字符(转义字符)、字符串、符号常量①整型常量(int) 123②实数常量(double)341.56 或 3.1456e2③字符常量(char) 单引号定界‘A’④字符串常量(无名字符数组,是一个地址常量)双引号定界“asdf”2、变量:先定义,再使用。
C语言考试期末考试复习题及答案一、选择题(1)一个C语言程序总是从()开始执行A)书写顺序的第一个函数B)书写顺序的第一条执行语句C)主函数main( )D)不确定(2)设int x=3,y=4,z=5,则下列表达式中的值为0的是()A) ‘x'&&’y’B)x||y+z&&y—z C) x〈=y D)!((x〈y)&&!z||1)(3)执行以下程序段后,i的值是()int i=10;switch(i+1){case 10:i++; break;case 11:++i;case 12:++i;break;default :i=i+1;}A) 11 B)13 C) 12 D) 14(4)语句while(!e);中的条件!e等价于()A)e==0 B)e!=1 C) e!=0 D)运行时出错(5)用int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是()A)随机值B) 0 C) 1 D)F(6)在执行char str[10]=“china\0”;strlen(str)的结果是()A)5 B) 6 D) 7 D 9(7)若有定义,char *p=”computer";则语句printf(“%c”,*(p+2))运行结果是()A) 随机值B) m C)o D)omputer(8)在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)));函数fun1参数的个数为()A) 8 B) 4C)5 D)编译出错(9)在说明一个结构体变量时系统分配给它的存储空间是()A)该结构体中第一个成员变量所需存储空间B)该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和Key:CDCAB ABBD1。
用C语言编写的代码程序A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行2。
c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( ).A)_1234_ B) _1_2 C)int_2_ D) 2_int_3。
以下定义语句中正确的是()。
A)char a='A’b=’B’; B)float a=b=10.0;C)int a=10,*b=&a;D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1。
25; char c=’A’;则下面语句中错误的是()。
A) a++;B)b++ C)c++;D) d++;5。
以下4个选项中,不能作为一条C语句的是().A) {;} B) a=0,b=0,c=0; C)if(a〉0); D) if(b==0)m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是().A)a=a+b=b++ B)w%(int)a+b)C)(c+w)%(int)a D)w=a==b; 7。
设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A)p=1; B)*q=2;C)q=p; D) *p=5;8。
设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B)scanf(“%d",a);C) scanf(“%d”,&pa); D)scanf(“%d”,*pa);9。
C语言模拟试题一一—一一、填空题1、____________________________________________ C语言中基本的数据类型有:________________________________________2、C语言中普通整型变量的类型说明符为___________________ ,在内存中占____________ 字节,有符号普通整型的数据范围是3、____________________________________________ 整数-35在机内的补码表示为4、执行下列语句int a=8;a+=a-=a*a; 后,a的值是5、有如下语句:char A[ ]={ “lam a student ”};该字符串的长度是,N31=6、符号” a”和'a'的区别是7、所谓“指针”就是“ &”运算符的作用是“* ”运算符的作用是&有如下输入语句:sca nf( “ a=%d,b=%d,c=%d ,&a,&b,&c); 为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是___________________________ 。
二、选择题1、设整型变量a为5,使b不为2的表达式是(A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句定:C程序中的else总是与(A. 缩排位ifB. 在其之前未配对的if if-else 的二义性,) 组成配对关系置相同的C 语言规C. 在其之前未配对的最近的ifD. 同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf( “ %d %d\n ”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果那么A中第i个元素的地址为(A. P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i5、下列标识符中不是合法的标识符的是(A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是()int a=5;float x=3.14;a*=x*( ‘ E' - ‘ A );A的首地址为P,)。
T C语言程序设计复习题 判断题: • C语言编写的源程序经过编译、连接后,如果没有错误,则运行结果一定正确。(×)不一定正确 • 在C语言中,变量是不区分大小写的,如:a 和A是同一个变量。(×) • double类型数据的输入必须用格式“%lf”。(√) • while和do-while循环,肯定是可以相互替换的。(√)× • 若有定义int a = 2,则语句printf(“%d”,a++); 的输出结果为3。(×)2 • 在循环体中,使用continue语句,可以跳出该循环。(×)结束本次循环 • 表达式3 * 5 / 2 和表达式3 / 2 * 5的值相等。(×) • 任何变量都必须要定义其类型。(√) • 表达式(double)(1/2)的值为0.5。(×) • 若有定义int a=0,b; 执行语句if(a=0) b=0; else b=1; 后,b的值是1。(×)√ • C语言中用于结构化程序设计的三种基本结构是if、switch、break。(×)顺序,选择,循环 • 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则计算表达式:(m=a>b)&&(n=c>d)后,n的值为2。(√) • 在可执行的C语言程序中有且只有一个主函数main(),并且应该写在程序的最前面。(×)任意位置 • 若有int x,则(x+1)++是一个合法的c语言表达式。(×) • 设int x = 7,y = 5,则x *= y - 3后,x的值为14。(√) • 如果i的原值为3,则执行语句:j = i++;后,j的值为3。(√) • do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。(√) • 表达式4.0 *(1 / 2) 的值为2.0。(×)0 • ‘\n’是一个字符常量。(√) • 表达式 3.5%2 是合法的C语言表达式。(×)%运算符两侧必须要是整数 • C的任何类型数据在计算机内部都是以二进制形式存储的。(√) • 定义函数时,必须要有形参和返回值。(×)可以没有返回值 • 在C程序中,main函数和自定义的函数都可以有多个。(×)main只能有一个 • 语句return(a,b);则函数可以返回两个值。(×) • 传值调用时,在函数中形参变量值改变后,不改变实参变量的值。(√) • 构成数组的各个元素的数据类型不一定要相同。(×)必须要相同 • 有定义:int a[5]={10,11,12,13,14},*p=a;,语句printf(“%d”,*p++);的输出结果为11。(×)10 • 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。(×)函数不可以嵌套定义 • 传值调用的形参只有在被调用时,才被创建(分配存储单元)。(√) • 在C程序中,若对函数类型未加说明,则函数的隐含类型为void。(×)int • 若a为一维数组名,则*(a+i)与a[i]等价。(√) • C文件使用前需要打开,使用后需要关闭。(√) • 定义为void类型的函数,其含义是调用函数后,被调用的函数的返回值为任意的类型。(×) • C语言程序中,若实参是变量,当调用函数时实参和形参各占一个独立的存储单元。(√) • 在C语言中,所有函数之间都可以相互调用。(×)主函数不可以调用 • 若有定义char s1[]=”Hello”,s2[]=”world!”,则strlen(s1) + strlen(s2) 等于strlen(strcat(s1,s2))。(×)√ • 若有定义int a,*p=&a,*q=p;则p指向a,q指向p。(×) • 若有定义int a,*p=&a; char *t;由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不能将p赋给t。(×)√ • 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是0。(√)× • 在使用fopen()函数时必须先定义一个类型为FILE的文件指针。(√) • void类型的函数一定无形参。(×) • 数组元素的下标必须是整数,不能用实数。(√) • 若有定义语句“int a[10];”则a[10-9/2] 是合法的数组元素。(√) • 若有定义语句“int a[10],i=2;”,则&a[i]与a+i等价。(√) • 数组定义语句“char c[ ]= "Hello";”与“char c[ ]={‘H’,’e’,’l’,’l’,’o’};”等价。(√)× 与char c[]={‘H’,’e’,’l’,’l’,’o’,'\0'}等价 • 语句“double *p=&x,x;”使指针变量p指向变量x。(×) 指向变量X的地址 • C语言规定,实参应与其对应的形参类型一致。(√) • 系统判断字符串结束的标志是’\n’。 (×)'\0' • 若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。(×)√
单选题: • 能够把由高级语言编写的源程序翻译成目标程序的系统软件叫( B ) A. 源程序 B.编译程序 C. 汇编程序 D. 解释程序 • 下列结构中,不属于结构化程序设计中的3种结构的是( D ) A.循环结构 B.顺序结构 C.选择结构 D.网状结构 • 程序中调用了库函数exit(0),必须包含头文件( B ) A.string.h B.stdlib.h C.ctype.h D.math.h • x、y是整型变量,执行语句scanf("x=%d, y=%d", &x, &y);使x和y的值分别为7和9,正确的输入是( C ) A. 7 9 B. 7, 9 C. x=7, y=9 D. x=7 y=9 • 条件“-6≤x≤4”,对应的C逻辑表达式是( D ) A. x>=-6 and x<=4 B. -6<=x<=4 C. x>=-6 || x<=4 D. x>=-6 && x<=4 • 假设变量x、k都已定义,下列语句片段中,无语法错误的是( B ) A. switch(x) X应为常量或字符 { case x>=80: putchar(„A‟); case后面应该跟常量表达式 case x<70: putchar(„E‟); } B. switch(x) { case 2+4: k=‘A’; defualt: k=‘E’; case 3*5: k=‘B’; } C. switch(x){ case 3+x: k=x-2; case 5*x: k=x+3; default: k=0; } D. switch(x){ case 4.5: k=0.5*x; case后面应该跟常量表达式
case 6.8: k=8*x; default: k=0; } • 判断下面的while循环体的执行次数( D ) i=5; k=10; while(i=1) i=k--; A. B.10次 C.2次 D.无数次 • 能正确地定义符号常量的是( B ) A.#define n=6 B.#define n 6 C.#define n 6; D. #DEFINE N 10 • 若有定义语句“char c=‘\134’;”则变量c ( A ) A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 包含4个字符 • 设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是( D ) A.把x和y按从小到大排列 B.把x和y按从大到小排列 C.无确定结果 D.交换x和y中的值X=X+Y Y=X-Y X=X-Y • 下列运算符中,优先级最低的是( D ) A. ?: B.&& C./= D. , • 若有条件表达式“x?a++:b--”,则以下表达式中( B )等价于表达式x A.x==0 B.x!=0 C.x==1 D.x!=1 • 以下关于switch语句和break语句的描述,只有( C )是正确的 A.在switch语句中必须使用break语句 B.break 语句只能用于switch语句中 C.在switch语句中,可以根据需要使用或不使用break语句 D.break语句是switch语句的一部分 • 以下程序段的循环次数是( D )A for (i=3; i==0; ) printf(“%d”, i--) ; A. 0次 B. 3次 C. 2次 D. 无数次 • while(scanf(“%f”,&n),n<=0);下列描述正确的是 ( C )A A.当输入n>0的值时循环终止 B. 当输入n<=0的值时循环终止 C.scanf(“%f”,&n),n<=0不能充当循环条件 D. 循环体不能为空 • 以下不正确的C语言标识符是( C )。 A._next B.a_1_2 C.f(x,y) D.Prog • 若有定义:int k=2,x;则能使变量x的值为3的表达式是( B )。 A.x=5/k+0.5 B.x=5/k+1; C.x=x+k D.x=2*k-- • 设char c=‘y’;,表达式c>=„a‟&&c<=„z‟|| c>=„A‟&&c<=„Z‟的值为( B ) A.0 B. 1 C.“假” D.“真” • 若有定义int a=1,b=2,c=3; 在下列选项中,不正确的赋值语句是( D )。 A. a++; B. a=b=c=0; C. a=b==c; D. a=b+c=1; • 判断下面的while循环体的执行次数( D )。 k=10,s=0; while( k>=0 ) s+=k--; A. 0次 B. 1次 C. 10次 D. 11次 • 设整型变量a为9,使b不为4的表达式是( B )。 A. b=a/2 B. b= (--a)-5 C. b=a>3?4:5 D. b=a%5 • 循环语句 for(x=0,y=0;(y!=123)||(x<4);x++);执行( A )。 A. 无限次 B. 4次 C.3次 D. 0次 • 若有定义:int a=8,b=5,c;,则执行语句c=a/b+0.4;后,c的值为( B )。 A.1.4 B.1 C.2 D.2.2 • 已知int x=10,y=20,z=30;,执行if(x>y)z=x; x=y; y=z;后x,y,z的值是( B )。 A. 10,20,30 B. 20,30,30 C. 20,30,10 D. 20,30,20 • 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与( B )配对。 A. 缩排位置相同的if B. 其之前最近的没有else配对的if C. 其之后最近的if D. 同一行上的if • 下列各m的值中,能使表达式m%3==2&&m%5==3&&m%7==2值为1的是( A )。 A. 23 B. 17 C. 8 D. 6 • 以下4个选项中,不能看作一条语句的是( D )。 A. ; B. a=0,b=0,c=0; C. while(i--); D. if(b==0) m=1;n=2; • 逻辑运算符两侧运算对象的数据类型( D )。 A. 只能是0或1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以是任何类型数据 • 以下程序段输出结果是( C )。 int x=3; do { printf(“%3d”,x-=2); }while(!(--x)); A.1 B. 3 0 C. 1 -2 D.死循环 • 有定义”int a=5;”, 语句”a+=a-=a+a;”, 执行后,变量a的值为( C )。 A. 10 B. 5 C. -10 D. -5 • 下列各语句中,能够将变量u、s中最大值赋给变量t的是( A )。C A. if(u>s)t=u;t=s; B. t=u;if(u>s)t=s; C. t=s;if(u>s)t=u; D. if(u>s)t=s;else t=u; • 下列可以正确表示字符型常量的是 ( B )。 A.“a” B.’\t’ C.”\n” D.18 • 执行x=(6*7%8+9)/3;后,x的值为( C )。