C复习题
- 格式:doc
- 大小:64.00 KB
- 文档页数:15
《C语言》课程综合复习资料一、单项选择1. 若有如下语句: int *p1,*p2; 则其中int所指的是(D )A. p1的类型B. *p1和*p2的类型C. p2的类型D. p1和p2所能指向变量的类型2. 下列程序段的输出结果是(C )x=9; while(x>7) {printf(“*”);x--;}A. ****B. ***C. **D. *3. 下列变量的定义及赋值正确的是(C)A. int i=0;j;B. char c=”A”;C. double x,y,z; x=y=z=100;D. float a=b=100;4. 设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为(B )A. 30B. 20C. 10D. 405. 设有语句:float x=1,y; y=x 3/2; 则y的值是(C )A. 1B. 2C. 2.0D. 2.56. 设有如下定义和执行语句,其输出结果为(A )int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b);A. 3 2B. 4 2C. 2 2D. 2 37. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为(C )A. strcpy(str1,str2);B. strcpy(str1, “China”);C. strcat(str1,“China”)D. strcat(“Beijing”,str2);8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是(C )A. 0B. 5C. 7D. 209. 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是(A )C. 5 9D. 有错误10. 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是(D )A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,011. 设有定义:int x=12,n=5; 则表达式x%=(n%2) 的值为(A )A. 0B. 1C. 2D. 312. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是(D )A. a&&bB. a<=bC. a||b c&&b-cD. !((a<b)&&!c||1)13. 设有定义int a[ ]={1,5,7,9,11,13}, *p=a 3; 则*(p-2) , *(a 4) 的值是(A )A. 5 11B. 1 9C. 5 9D. 有错误14. 设有定义char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是(D )A. 12B. 15C. 6D. 515. 设有int x=11;则表达式(x *1/3)的值是(A )A. 3B. 4C. 11D. 1216. 设a=3,b=4,c=-5,则逻辑表达式:a || b c && b==c 的值是(A )A. 1B. 0C. 非0D. 语法错17. 若有以下定义:int a[10],*p=a; 则*(p+3)表示的是(B )A. 元素a[3]的地址B. 元素a[3]的值C. 元素a[4]的地址D. 元素a[4]的值18. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是(A )A. ps 3D. ps =3,*ps19. C语言中,函数返回值的类型是由(D )A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定20. C语言提供的合法关键字是(D )A. swicthB. chaC. CaseD. default二、读程序题1. "#include <stdio.h>void main(){ int a=4,x=3,y=2,z=1;printf(""%d\n"",(a<x ? a : z<y ? z : x)); }"2. "#include <stdio.h>void main(){ int x=12,y=0;if(x>=0){ if(x>0) y=10; }else y=-10;printf(“y=%d\n”,y);}"3. "#include <stdio.h>void main(){ int k=1;switch(k){ case 0: printf(""A""); break;case 1: printf(""B"");case 2: printf(""I"");case 3: printf(""G""); break;default: printf(""E"");}}"4. "#include <stdio.h>#define S(x) x*xvoid main(){int a,k=3,m=1;a=S(k+m);printf(""%d"",a);}"5. "#include <stdio.h>int fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(""%d\n"", r);}"6.#include <stdio.h&>void main(){ int k=4,n=0;for(;n<k;){ n++;if(n%3!=0) continue;k- -;}printf(""%d,%d\n"",k,n);}三、编程题1. 写一个判断素数的函数。
第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。
A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从 B 开始执行。
A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以。
A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是: C 。
A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是 D 。
A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是: A 。
A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是: C 。
A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是: D 。
A. ...\2‟ B. "" C. ...3‟ D. (483)9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。
int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. w+=-2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以 D 形式存放。
A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是: A 。
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。
一、填空题(每空2 分,共 20 分)1.数据结构分为逻辑结构与()。
2.在面向对象方法中,对象之间进行通信的构造称为()。
3.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其()是度量一个模块功能强度的一个相对指标。
4.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于()的联系。
5.数据模型包括数据结构、()和数据条件。
6.若有定义:int a=10,b=8,c=4;然后顺序执行下列语句后,变量a中的值是()。
c=(b-=(a-4));a=(c%2)+(b-1);1.C语言中,用关键字()定义基本整型变量,用关键字(),定义单精度实型变量,用关键字()定义字符型变量。
2.表达式3*20/4%10的计算结果是()。
3.复合语句是将多个语句用()括起来组成一个语句。
4.程序中使用putchar( )函数和getchar( )函数,在程序的开头必()。
5.C语言的预处理语句以()开头。
6.goto语句为(),当程序执行到该语句时,转向指定位置执行。
7.return语句的功能是使程序控制从被调用函数返回到()中。
1.一个算法应具有的特点有:()、()、有零个或多个输入、有一个或多个输出、有效性。
2.在程序执行过程中,其值不发生改变的量称为(),其值可变的量称为()。
3.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是()。
4.在三种正规循环中,当条件表达式的值为()时,就结束循环。
5.C语言中函数的参数分为()和()。
1.程序的三种基本结构为()、()和()。
2.在C语言中,用()表示语句的结束。
3.语句printf("%%d%d",123);将输出:()。
4.逻辑运算的结果值是()或()。
5.数组 int a[3][4];共定义了()个数组元素。
6.在C语言中,正确的标识符是由()组成的,且由()开头的。
以下作业编程练习,每个主题至少选择4道题作为作业题(各主题中所列题目不足4题的按实际数量选做)。
每次作业计2分,作为平时成绩。
另外,此练习题作为C 语言上机考试的考题来源之一(共49题)。
一、 顺序结构程序设计========================================1 已知三角形的三边长为a ,b ,c ,计算三角形面积的公式为: area = ))()((c s b s a s s ---,s =)(21c b a ++ 要求编写程序,从键盘输入a ,b ,c 的值,计算并输出三角形的面积。
2 编程从键盘输入圆的半径r ,计算并输出圆的周长和面积。
二、 选择结构程序设计==========================================1 从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes ”,否则输出“No ”。
已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。
能被400整除。
2 通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
3 华氏和摄氏温度的转换公式为C =5/9×(F -32)。
其中,C 表示摄氏温度,F 表示华氏温度。
要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。
4 编程判断输入整数的正负性和奇偶性。
5 编程计算分段函数e 1exx y -⎧⎪=⎨⎪-⎩ 000x x x >=< 输入x ,打印出y 值。
流程图如图1-2所示。
6 输入三角形的三条边a ,b ,c ,判断它们能否构成三角形。
若能构成三角形,指出是何种三角形(等腰三角形、直角三角形、一般三角形)。
7 在屏幕上显示一张如下所示的时间表:*****Time*****1 morning2 afternoon3 nightPlease enter your choice:操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Good morning", 选择2时显示"Good afternoon", 选择3时显示"Good night",对于其他选择显示"Selection error!",用switch 语句编程实现。
1. 若有定义:long int j,*p;,则操作j=(long int)p;是合法操作。
√ ×正确2. 设有说明int(*ptr)[M];其中ptr是指向含有M个整型元素的一维数组的指针。
()√ ×正确3. 对同一类型的两个指针变量而言,一个变量向另外一个变量赋值的结果是使得两个指针指向同一个对象。
√ ×正确4. 定义一个指向某种类型函数的指针后,就可以讲任何函数的首地址赋给这个指针变量。
√ ×错误正确答案为×5. 可以将一个整型指针变量的值赋给一个实型指针变量,但可能引起符号位扩展。
√ ×错误正确答案为×6. 可以将一个实型指针变量的值赋给一个整型指针变量,但可能影响指针的精度。
√ ×错误正确答案为×7. 由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不通数据类型的指针变量不能相互赋值。
√ ×正确8. 函数中使用指针变量作为形式参数,就有可能在被调函数中操作主调函数中的实参。
√ ×正确9. 若有定义:int a[5],*p;,则操作p=a;是合法的操作。
√ ×正确10. 若有定义:int a[5],*p;,则操作p=&a[2];是合法的操作。
√ ×正确11. 若有定义:int a[5][5],*p;,则操作p=a;是合法操作。
√ ×错误正确答案为×12. 若有定义:int a[5][5],*p;,则操作p=*a;是合法操作。
√ ×正确13. 若有定义:int a[5][5],*p;,则操作p=a[0];是合法操作。
√ ×正确14. 若有定义:int a[5][5],*p;,则操作p=&a[0][0];是合法操作。
√ ×正确15. 若有定义:int a[5][5],(*p)[5];,则操作p=a;是合法操作。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
一、选择题(每题3分,计60分)1、下面有关for 循环的正确描述是(D)。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C. 在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。
2、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是(C)A. int a=b=c=5;B. int a,b,c=5;C. int a=5,b=5,c=5;D. a=b=c=5;3、逻辑运算符两侧运算对象的数据类型(D)A. 只能是0和1B. 只能是0或非0的正数C. 只能是整型或字符型数据D. 可以是任何类型的数据4、下列运算符中优先级别最高的是(B)A. <B. +C. &&D. =5、为了避免嵌套的if…else语句的二义性,c语言规定else总是与( C )组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD. 同一行上的if6、程序段如下:则以下说法中正确的是:(D)。
int k=5;do{k--;}while(k<=0);A. 循环执行5次B. 循环是无限循环C. 循环体语句一次也不执行D. 循环体语句执行一次7、判断char型变量c1是否为小写字母的正确表达是(D)A. ‘a’<=c1<=’z’B. (c1>=a)&&(c1<=z)C. (‘a’>=c1)||(‘z’<=c1)D. (c1>=’a’)&&(c1<=’z’)8、C语言中,char类型数据占(A)A. 1个字节B. 2个字节C. 4个字节D. 8个字节9、以下关于数组的描述正确的是(C)。
A. 数组的大小是固定的,但可以有不同的类型的数组元素。
B. 数组的大小是可变的,但所有数组元素的类型必须相同。
C. 数组的大小是固定的,但所有数组元素的类型必须相同。
D. 数组的大小是可变的,但可以有不同的类型的数组元素。
10、在定义int a[10];之后,对a的引用正确的是(D)。
A. a[10]B. a[]C. a(6)D. a[10-10]11、以下能正确定义数组并正确赋初值的语句是(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 a[3][2]={{1,2},{3,4}};12、在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是(A)。
A. 4B. 1C. 2D. 513、下面变量说明语句中,正确的是(D)A. char. a b c;B. char a;b;c;C. int x;zD. int x,y;14、下列数据中,为字符串常量的是(B)A. AB. “house”C. How do you do.D. $abc15、不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以(C)形式存在磁盘上。
A. 内存B. 缓冲区C. 文件D. 寄存器16、已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是(C)。
A. 0B.语法错C. 1D. “假”17、C语言的注释界定符是(D)。
A. {}B. [ ]C. \* *\D. /* */18、若int a,b scanf(“%d%d”,&a,&b);不可以用(A)作为输入的分隔符。
A. ,B. 空格键C. 回车D. Tab键19、在C语言中,引用数组元素时,其数组下标的数据类型允许是(B)。
A. 整型常量B. 整型表达式C. 整型变量D. 任何类型表达式20、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)A. 必须为字母B. 必须为下划线C. 必须为字母或下划线D. 可以是字母、数字和下划线中任一字符21、以下四项中属于C语言关键字的是(C)A. CharB. defineC. unsignedD. return22、以下选项中属于C语言的数据类型是(C)A. 复数型B. 逻辑型C. 双精度型D. 集合型23、下列常数中不能作为C语言的常量的是(C)A. 0xA5B. -2C. 3e2D. 058224、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为追假”的表达式是(C)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)25、设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为(C)。
A. 12B. 144C. 0D. 13226、以下程序段的输出结果是(C)。
int a=12345; printf(“%2d\n”,a);A. 12B. 34C. 12345D. 提示错误,无结果27、程序段如下:则以下说法中正确的是:(C)。
int k=-20;while(k=0) k=k+1;A. while循环执行20次B. 循环是无限循环C. 循环体语句一次也不执行D. 循环体语句执行一次28、C语言中用于结构化程序设计的三种基本结构是(A)。
A. 顺序结构、选择结构和循环结构B. if、switch 、breakC. for、while、do-whileD. if、for、continue29、以下叙述中正确的是(A)A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号“{”和“}”只能作为函数体的定界符C. 构成C程序的基本单位是函数,所以函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分30、以下说法中正确的是(C)A. C语言程序总是从第一个函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始的执行D. C语言程序中main()函数必须放在程序的开始部分31、以下说法中正确的是(C)A. C程序书写时,不区分大小写字母B. C程序书写时,一行只能写一个语句C. C程序书写时,一个语句可分成几行书写D. C程序书写时每行必须有行号32、以下说法不正确的是(C)A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. 在C程序中,注释说明只能位于一条语句的后面D. C程序的基本组成单位是函数33、以下关系运算符优先顺序描述中正确的是(C)A. 关系运算符<算术运算符<赋值运算符<逻辑运算符B. 逻辑运算符<关系运算符<算术运算符<赋值运算符C. 赋值运算符<逻辑运算符<关系运算符<算术运算符D. 算术运算符<关系运算符<逻辑运算符< 赋值运算符34、设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)A. ‘x’&&’y’B. x<=yC. x||y+z&&!yD. !(x<y)&&(!z||1)35、选择中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或者“假”。
哪个作为逻辑“假”值( D )。
A. -1B. 1C. 非零的数D. 036、已知字母A的ASCⅡ码为十进制数为65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后,c2中的值为(A)A. DB. 68C. 不确定的值D. C37、在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)A. 由用户自己定义B. 均为2个字符C. 是任意的D. 由所用机器的机器字长所定38、设C语言中,int类型数据占2个字节,则long类型数据占(C)。
A. 1个字节B. 2个字节C. 4个字节D. 8个字节39、以下标识符中,不能作为合法的C用户定义标识符的是( C )。
A. answerB. toC. signedD. _if40、下面不正确的字符串常量是(A)。
A. ‘abc’B. “12’12”C. “0”D.““41、以下运算符中,优先级别最高的运算符是(C)。
A. *=B. >=C. (类型)D. +42、下列程序的输出结果是(B)Main( ){char c1=97,c2=98;Printf(“%d %c”,c1,c2);}A. 97 98B. 97 b C, a 98 D, a b43、putchar函数可以向终端输出一个(D)A. 整型变量表达式B. 字符串C. 实型变量值D. 字符或字符型变量值44、用C语言编写的代码程序(B)A. 可立即执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行45、以下不正确的C语言标识符是(D)A. intB. a_1_2C. ablexeD. -x46、若希望当A值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(C)A. A%2= =1B. !(A%2= =0)C. !(A%2)D. A%212、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c<d)后的值为(A)A. 0B. 2C. 3D. 447、设x、y、z、t均为int型变量,则执行以下语句后,t的值为(C)x=y=z=1;t=++x||++y&&++z;A. 不确定B. 4C. 3→1D. 048、已知int a=1,b=2,c=3;以下语句执行后a,b,c的值是( B)if (a>b)c=a; a=b; b=c;A. a=1,b=2,c=3B. a=2,b=3,c=3C. a=2,b=3,c=1D. a=2,b=3,c=249、以下对一维数组a的定义中正确的是(C)。
A. char a(10);B. int a[0..100];C. int a[5];D. int k=10; int a[k]50、以下说法正确的是(D)。