C语言程序设计试题及答案完整版(70页).doc

上传人:1595****071 文档编号:34801238 上传时间:2022-08-18 格式:DOC 页数:69 大小:184.50KB
返回 下载 相关 举报
C语言程序设计试题及答案完整版(70页).doc_第1页
第1页 / 共69页
C语言程序设计试题及答案完整版(70页).doc_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《C语言程序设计试题及答案完整版(70页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计试题及答案完整版(70页).doc(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.5)一定要记住 二进制 如何划成 十进制。概念常考到的:、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。、每个C语言程序中main函数是有且只有一个。、在

2、函数中不可以再定义函数。、算法的是一定要有输出的,他可以没有输入。、break可用于循环结构和switch语句。、逗号运算符的级别最低。第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。maindefinescanfprintf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.33310-1。考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式::

3、 1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。 0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。5)转义字符的考查: 在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中 int a = 06d, 是一个八进制的形式。在转义字符中,x6d 才是合法的,0不能写,并

4、且x是小写。 141 是合法的, 0是不能写的。108是非法的,因为不可以出现8。6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。7)强制类型转换:一定是 (int)a 不是int(a),注意类型上一定有括号的。 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。8)表达式的考查: 是表达式就一定有数值。 赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。 自加、自减表达式:假设a=5,+a(是为6), a+(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个

5、+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后在下面的程序中再用到a的话都是变量a中的6了。考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。9)位运算的考查:会有一到二题考试题目。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:char a = 6, b;b = a2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算。例2:一定要记住,例3:在没有舍去数据的时候,右

6、移一位表示除以2。10)018的数值是非法的,八进制是没有8的,逢8进1。 11)%符号两边要求是整数。不是整数就错了。12)三种取整丢小数的情况:、int a =1.6;、(int)a;、 第二章1)printf函数的格式考查: %d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。 %ld对应 long int;%lf 对应double。2)scanf函数的格式考察: 注意该函数的第二个部分是&a 这样的地址,不是a; Scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。3)putchar ,getchar 函数的考查: chara = getc

7、har() 是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar(y)把字符y输出到屏幕中。4)如何实现两个变量x ,y中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) 这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。第三章特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式: 表达式的数值只能为1(表示为真),或0(表示假) 当关系的表达是为真的时候得到1。如 98这个是真的,所以表达式的数值就是1;2)逻辑表达式: 只能为1(

8、表示为真),或0(表示假)a) 共有& | ! 三种逻辑运算符号。b)!&|优先的级别。c)注意短路现象。考试比较喜欢考到。d)要表示 x 是比0大,比10小的方法。0x10是不可以的(一定记住)。是先计算0x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0x)&(x第一行a1 4 5 6 第二行a2 7 8 9 第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6。一定记住:只要是二维数组的题目

9、,一定是写成如上的格式,再去做题目,这样会比较简单。数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写int a=1,2 合法。 int a4=2,3,4合法。 但int a4=2,3,4非法。二维数组中的行指针int a12; 其中a现在就是一个行指针,a+1跳一行数组元素。搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用还有记住脱衣服法则: a2变成 *(a+2) a23变成 *(a+2)3再可以变成 *(*(a+2)+3)这个思想很重要! 第 69 页- 第一部分:基础知识(20项,共40分)】1一个C语言程序是由( ) 组成的

10、。 A主程序 B子程序 C函数 D过程2转换说明符%x的输出形式是( )。 A十进制 B八进制 C十六进制 D二进制3若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;+a,+b) printf ( “ -“) ;的正确说法是( ) 。 A循环体只执行一次 B死循环 C循环体一次也不执行 D输出-4若x、y、z均为int 型变量,则执行下列语句后的z值为 ( )。 x=1; y=2; z=3; z=(xy)?z :y ; z = (z=1;n-),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是( )。 A*S1+=*S2

11、+ BS1n-1=S2n-1 C*(S1+n-1)=*(S2+n-1) D*(+S1)=*(+S2)17调用函数的实参与被调用函数的形参应该有如下关系( ) 。 A只要求实参和形参个数相等 B只要求形参和实参顺序相同 C只要求实参和形参数据类型相同 D上述三点均需具备18联合体成员的数据类型 ( )。A相同 B可以不同也可以相同 C长度一样 D是结构体变量19由系统分配和控制的标准输出文件为( ) 。 A键盘 B磁盘 C打印机 D显示器20C语言标准库函数fread(fd,buffer,n)的功能是( )。 A从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域 B从文件fd

12、中读取长度不超过n-1个字节的数据送入buffer指向的内存区域 C从文件fd中读取长度不超过n个字符送入buffer指向的内存区域 D从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域第二部分:简单程序(12项,共30分)21下列程序main() int x,y,z; x=y=2;z=3;y=z+-1; printf(“%dt%dt”,x,y); y=+x-1;printf(“%d t%dn”,x,y); y=z-1; printf(“%dt%dt”,z,y); y=-z-1; printf(“%dt%dn”,z,y);运行后输出的数据为_。A. 3 1 4 2 B. 3

13、1 3 3 C. 2 2 3 2 D. 2 1 3 2 2 4 1 3 2 4 2 2 3 3 2 1 1 3 1 222.下列程序main() int i,j;char *a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;i%sn”,a);c=aj-1,i=2+j;printf(“a%d=%cn”,i,c);运行后输出的数据为_ .A. computer-computer B. computer-retupmoca3=u a5=mC. computer-retupmoc D. computer-retupmoca4=p a2=t23.下列程序int su

14、m(int n) int p=1,s=0,i;for(i=1;i=n;i+) s+=(p*=i);return s;main() printf(“sum(5)=%dn”,sum(5);运行后输出的数据为_ _A.sum(5)=151 B.sum(5)=152 C.sum(5)=153 Dsum(5)=15524.下列程序main() static int a=5,6,7,3,2,9;int s1,s2,i,*ptr;s1=s2=0;ptr=&a0;for(i=0;i5;i+2=2) s1+=*(ptr+i);s2+=*(ptr+i+1);printf(“s1=%d,s2=%dn”,s1,s2)

15、;运行后输出的数据为_A.s1=18,s2=14 B.s1=14,s2=32 C.s1=14,s2=18 D.s1=15,s2=1925.下列程序int c=1;main()static int a=5;int b=6;printf(“a=%d b=%d c=%dn”,a,b,c);func();printf(“a=%d,b=%d,c=%dn”,a,b,c);func();func() static int a=4;int b=10;a+=2;c+=10;b+=c;printf(“a=%d,b=%d,c=%dn”,a,b,c);运行后输出的数据为_ _.A. a=5 b=6 c=1 B. a=

16、5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=5 b=6 c=11 a=5 b=6 c=11 a=8 b=31 c=21 a=9 b=17 c=21 C. a=5 b=6 c=1 D. a=5 b=6 c=1a=6 b=21 c=11 a=7 b=17 c=11a=6 b=21 c=11 a=7 b=17 c=11a=8 b=31 c=21 a=9 b=38 c=2126已知struct studentchar name; int student_n; char grade; struct student temp,*p=&temp;temp.name=”ch

17、ou”;则下面不正确的是_。 表达式 值A.pname chou B.(*p)name+2 h C.*pname+2 e D.*(pname+2) o27.下列程序 #define MAX 10 main() int i,sum,a =1,2,3,4,5,6,7,8,9,10; sum=1;for(i=0;iMAX;i+)sum-=ai;printf(“SUM=%d”,sum); 程序运行结果是: A.SUM=55 B.SUM=-54 C.SUM=-55 D.SUM=5428.下列程序 void inv(int*x,int n) int *p,t,*i,*j,m=(n-1)/2;i=x;j=x

18、+n-1;p=x+m;for(;ip;i+,j-) t=*i;*i=*j;*j=t; return; main( ) static int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10);for(i=0;i10;i+) printf(“%d,”,ai); 程序运行结果: A.0,2,3,4,5,6,7,7,9,11 B.11,9,7,7,6,5,4,3,2,0 C.3,7,9,11,0,6,7,5,4,2 D.2,4,5,7,6,0,11,9,7,329.下列程序 main() int a10,b10,*pa,*pb,i; pa=a;pb=b; for(i=0;i3

19、;i+,pa+,pb+) *pa=i;*pb=2*i; printf(“%dt%dn”,*pa,*pb);printf(“n”);pa=&a0;pb=&b0;for(i=0;i3;i+) *pa=*pa+i; *pb=*pb*i; printf(“%dt%dn”,*pa+,*pb+); 运行后输出的数据为_。A. 0 0 B.0 0 C. 0 0 D. 0 0 1 2 1 2 1 2 2 2 2 4 2 4 2 4 2 4 0 0 0 0 0 0 0 0 2 2 2 2 1 2 1 2 4 8 2 4 2 4 4 830.下列程序 copy_string(from,to) char *from

20、,*to; while(*from) *to+=*from+; *to=0; main() static char s1 =”c_program.”; static char s280; copy_string(s1,s2); printf(“%sn”,s2);copy_string(“123”,s2);printf(“%sn”,s2); 运行后输出的数据为( )。 A. c_program 123 B.123 C. c_program123 D. c_program 12331.下列程序: #include main() char a40,b40; int i,j;printf(“Enter

21、 the string:”);scanf(“%s”,a); i=j=0;while(ai!=0) if(!(ai=0&ai=9) bj=ai; j+; +i; bj=0;printf(“%s”,b); 运行后输出的结果是( ) 。A. 把键盘输入的字符串显示在屏幕上B. 把键盘输入的字符串中的数字字符删掉,然后显示该字符串C. 把键盘输入的字符串中的字符0和9删掉,然后显示该字符串D. 只保留由键盘输入的字符串中的字母数字,然后显示该字符串32下列程序#includemain() char a80; int i,j; printf(“Enter the string:”);scanf(“%s”

22、,a);i=0;while(ai!=0) if(ai=A&ai=Z) ai=ai-A+a; printf(“%s”,a);运行后输出的结果是( )。A. 把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B. 把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C. 把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D. 把键盘输入的字符串原封不动地显示在屏幕上。第二卷说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏填对得3分,两大题共10

23、个空栏,全填对得30分。试题一一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,因为它是9的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12)、676(26*26)等,从程序中找出并输出所有满足上述条件的三位数。程序如下:main() int n,k,a,b,c; for(k=1; ;k+)_ if(n100) _ if(n1+2&2|2*44-!0后,x的值为( )。(A)-l (B)O (C)1 (D)56、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)

24、/(yz)的c语言表达式是( )。(A)x/y*z (B)x*(1/(y*z) (C) x/y*1/z (D)x/y/z7、设有以下说明语句struct exint x;float y; char z;example;则下面的叙述不正确的是( )。(A)struct是结构体类型的关键字 (B)example是结构体类型名(C)x,y,z都是结构体成员名 (D)struct ex是结构体类型8、假定w、x、y、z、m均为int型变量;有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x; m=(my)?m:y; m=(mz)?m:z;则该程序段执行后,m的值是( )。(A)4 (B)3 (C)2 (D) 19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) 。 (A) 地址传递

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁