ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:23.38KB ,
资源ID:10121744      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10121744.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言复习资料和习题.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言复习资料和习题.docx

1、C语言复习资料和习题算法题1.单词转换程序#include int main()char a; /初始化,如果需要转换很多个单词字母就可以定义一个数组an,n的大小就是你的单词字母数。但是数组要用for循环进行输入a=getchar(); /单个字母输入a+=4; /将字母转换为指定的Assica码值自己就要记住三个关键的阿斯克码规律putchar(a);/输出转换后的字母,这里只进行转换了一个字母return 0;2.九九乘法表#includeint main() int i,j,k; for(i=1;i=9;i+) /双重循环 for(j=1;j=i;j+) /最重要的一点这里的j=i k

2、=i*j; printf(%d*%d=%dt,i,j,k); printf(n); 3.水仙花数#include int main() int sum,i,m,p,n; for(i=100;i=999;i+) m=i%10;/个位 n=i/10%10;/十位 p=i/100;/百位 sum=m*m*m+n*n*n+p*p*p; if(sum=i) printf(%dt,i); 简便方法:#includeint main() int a,b,c,m; for(a=1;a10;a+) for (b=0;b10;b+) for (c=0;c10;c+) m=a*100+b*10+c; if(m=a*

3、a*a+b*b*b+c*c*c) printf(%dn,m); return 0;4.杨辉三角#includeint main() int i=5,j,k; /定义一个5行的输出杨辉三角,可以自行定义 int a2020; for(k=0;k=5;k+) for(j=0;j=2&j0&jk) akj=ak-1j-1+ak-1j; /上面两个数相加 printf(%-5d,akj); printf(n); 5.菱形输出#includeint main() int k,m,n; int i=9; /定义一个长度为9行的菱形,自己决定,一般为奇数 for(k=1;k=i/2+1;k+) /这是上半部

4、分的菱形,记住循环条件为总数的一半加一 for(m=1;m=i/2+1-k;m+) /记住循环条件,空格的条件 printf( );/输出空格 for(n=1;n=2*k-1;n+)/记住循环条件,星号的条件 printf(*);/输出星号 printf(n); for(k=1;k=i/2;k+) /这是下半部分的菱形,记住循环条件为总数的一半 for(m=1;m=k;m+)/记住循环条件,空格的条件 printf( ); for(n=1;n=i-2*k;n+) if(n%2=0|n%3=0)/记住循环条件,星号的条件 printf( ); continue; printf(*); print

5、f(n); 6.检测素数法(求一段数据之间的素数值多少的,由此算法也可得知) #includeint main() int i,n; printf(输入一个大于3的数n);/素数必须要大于3 scanf(%d,&n); for(i=2;in;i+) /这里比较难 要好好理解 if (n%i=0) break; if(in) /要依据上面的循环来理解 printf(%d不是素数n,n); else if(i=n) printf(%d是素数n,n);7.冒泡排序#includeint main() int n,i,t=0,m; int a10;/数组的大小取决于你要排序的数有多少,自己可以随便设置

6、 printf(请输入10个数字;n); for(n=0;n10;n+) scanf(%d,&an); for(i=0;i9;i+)/要记住一定是要双重循环,要一一进行比较 for(n=0;nan+1) t=an;/引入第三个变量,进行赋值 an=an+1;/把大的数往后移 an+1=t; for(n=0;n=0;i-) ai=10-i; printf(%d%d%d,a2,a5,a8); A:369 B:741 C:852 D:2583、以下程序的输出结果是_。 main() int a,b; for(a=1,b=1;a=10) break; if(b%3=1) b+=3; continue;

7、 printf(%dn,a); A:4 B:6 C:5 D:101* 4、若变量均已正确定义并赋值,以下合法的C语言赋值语句是_。 A:x=5=4+1; B:x+n=i; C:x=y=5; D:x=n%2.5;* 5、若有以下说明和定义:typedef int *INTEGER;INTEGER p,*q;以下叙述正确的是_。A:q是基类型为int的指针变量B:p是int型变量C:程序中可用INTEGER代替int类型名D:p是基类型为int的指针变量* 6、以下定义语句中正确的是_。 A:float a=1,*b=&a,*c=&b; B:char A=65+1,b=b; C:int a=b=0

8、; D:double a=0.0;b=1.1;7、有以下程序#include struct st int x,y; data2=1,10,2,20;main() struct st *p=data; printf(%d,p-y); printf(%dn,(+p)-x);程序的运行结果是_。 A:20,2 B:20,1 C:10,2 D:10,1* 8、C语言中下列叙述正确的是_。 A:do-while语句构成的循环,当while语句中的表达式值为零时结束循环 B:do-while语句构成的循环,必须用break语句才能退出 C:do-while语句构成的循环,当while语句中的表达式值为非零

9、时结束循环 D:不能使用do-while语句构成的循环9、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(int xN) int i=0; while(iN) scanf(%d,_);在下划线处应填入的是_。 A:x+(i+) B:&xi+1 C:x+i D:&x+i10、有如下程序main() float x=2.0,y; if(x0.0) y=0.0; else if(xb?(bc?1:0):0;功能等价的是_。 A:if(ab)|(bc)k=1;else k=0; B:if(ab)&(bc)k=1;else k=0; C:if(a

10、=b) k=0;else if(bb) k=1;else if(bc) k=1; else k=0;16、以下选项中,与k=n+完全等价的表达式是_。 A:k=+n B:n=n+1,k=n C:k=n,n=n+1 D:k+=n+1* 17、下列叙述错误的是_。 A:C程序可以由一个或多个函数组成 B:一个C语言程序只能实现一种算法 C:一个C函数可以单独作为一个C程序文件存在 D:C程序可以由多个程序文件组成* 18、以下程序的输出结果是_。 main() char st20=hello0t; printf(%d%dn,strlen(st),sizeof(st); A:2020 B:520 C

11、:1320 D:9919、以下选项中不合法的标识符是_。 A:_00 B:FOR C:&a D:print20、有以下程序#define P 3 void F(int x)return(P*x*x); main() printf(%dn,F(3+5);程序运行后的输出结果是_。 A:编译出错 B:29 C:25 D:19221、有以下程序:main() int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(%d,%dn,k,n);程序运行后的输出结果是_。 A:2,2 B:1,1 C:3,3* 22、按照C语言规定的用户标

12、识符命名规则,不能出现在标识符中的是_。 A:下划线 B:连接符 C:数字字符 D:大写字母* 23、以下叙述中正确的是_。 A:C语言中的每条可执行语句最终都将被转换成二进制的机器指令 B:C语言中的函数不可以单独进行编译 C:C语言的源程序不必通过编译就可以直接运行 D:C语言程序经编译形成的二进制代码可以直接运行* 24、以下叙述中正确的是_。 A:在C语言中,预处理命令行都以#开头 B:C语言的预处理不能实现宏定义和条件编译的功能 C:预处理命令行必须位于C源程序的起始位置 D:每个C程序必须在开头包含预处理命令行:#include 第1题答案: C评析: 本题的考查点是格式输入函数S

13、canf()的使用。 scanf函数输入形式为:scanf(格式控制,地址表列); 选项B中,p=(long*)malloc(8)是分配8个字节的long型存储单元,所以能通过scanf语句正确给输入项读入数据; 选项A中,p=&a,求出变量a的内存地址并赋给p; 选项D中,能正确给输入项读入数据;第2题答案: C评析:本题是通过循环语句给数组元素赋值。 C语言中for循环语句的一般形式为:for(表达式1;表达式2;表达式3) 语句部分; 第3题答案: A评析:本题主要考查考生对C语言中的循环语句和程序的执行逻辑。本题中for循环语句共执行3次,所以a的值累加3次,结果为4。第4题答案: C

14、评析: 本题的考查点是C语言赋值语句。赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式;由于在赋值符=右边的表达式也可以又是一个赋值表达式,因此,形式变量=(变量=表达式);是成立的,从而形成嵌套的情形,故选项C是正确的;选项A看上去是嵌套形式,而实际上,并非是一个正确的赋值表达式,因为赋值表达式=的左边只能是变量,不能为常量或表达式,所以4+1的值不能赋值给常量5,所以选项A错误,选项B也是错误的;由于求余运算符%的两侧必须为整型数据,所以选项D错误。第5题答案: D评析: 本题的考查点是别名。 p是基类型为int的指针变量; *q是基类型为int的指针变量; 程

15、序中可用*INTEGER代替int类型名。第6题答案: B评析: 本题的考查点是数据类型、运算符与表达式。 C语言允许在定义变量的同时使变量初始化,当定义多个变量为同一类型时,各变量之间用逗号隔开,所以选项D错误;当定义多个变量赋同一个值时,不能用等式连写的方式,如选项C的int a=b=0;应写成int a=0, b=0; 所以选项C错误;选项A中定义了一个浮点型变量a和两个指向浮点型数据的指针变量b和c,而&a表示的是取变量a的地址,所以将变量a的地址赋给指向浮点型数据的指针变量b是错误的。选项B中将整数赋给字符变量,相当于将字符B赋给字符变量A,因为字符B的ASCII码是66。所以选项B

16、正确。第7题答案: C评析: 本题的考查点是结构体数组。 本题定义了一个包含两个元素(data0、data1)的结构体数组data,其中data0.x=1; data0.y=10; data1.x=2; data1.y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p-y访问的是第一个结构体数组元素的第二个值,即data0.y;(+p)-x访问的是第二个结构体数组元素的第一个值,即data1.x,所以程序输出结果为10,2。第8题答案: A评析: 本题的考查点是do-while语句。 选项D是错误的,C语言支持do-while语句;选项C是错误

17、的,do-while构成的循环, 当while语句中的表达式值为零时结束循环,而不是非零;选项B也是错误的。第9题答案: A评析: 本题的考查点是不同类型数据的输入输出。 使用scanf()函数可以输入任何类型的多个数据,一般形式为:scanf(格式控制,地址表列)。C语言规定,数组名代表数组的首地址,也就是第一个元素的地址,由于该题要求对数组中所有元素赋值,所以应该包含一个循环变量自加的过程,选项B、C明显不正确;对于选项D,+i是先自加后使用i,因此x0没有赋值,选项D也不符合题目要求。第10题答案: A评析: 本题考查的是IFELSE语句的使用。x=2.0,符合第二个IF语句的条件xb成

18、立则执行(bc?1:0),如果bc成立则结果为1,其它情况则为0。也就是说只有ab与bc同时成立时k值才能为1。第16题答案: C评析: 本题的考查点是自增及赋值运算。 n+是自增运算,是先使用,然后再使n加1,分开来写即为:k=n,n=n+1。第17题答案: B评析: 本题考查的是C程序的构成。 一个C语言程序可以实现多种算法。一个C程序可以由一个或多个源程序文件组成,一个源程序文件由一个或多个函数组成,构成C语言程序的基本单位是函数,函数也是C程序中模块化程序设计的基础,C函数可分为标准库函数和用户定义函数两类。 第18题答案: B评析:本题主要考查C语言的字符串与库函数。C语言中字符串是

19、以0字符结束的,且strlen()函数计算的是0字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。第19题答案: C评析: 本题的考查点是标识符的基本概念。 C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线,所以选项C不符合规定。第20题答案: A评析: 本题考查的是宏定义。return语句用于从被调函数带回一个函数值。void关键字表示无类型,即不需要从被调函数中带回函数值,所以

20、不需要return语句,故编译时出错。第21题答案: C评析: 本题的考查点是循环和continue语句。 continue语句是结束本次循环。n从0开始循环,判断n%3!=0是否成立,为真,跳出循环,继续下一轮for循环条件的判断,为假,执行k-,并继续下一轮for循环条件的判断,当条件不满足时,则结束循环,输出k、n的值。第22题答案: B评析:本题考查的是标识符。C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。第23题答案: A评析: 用Turbo C运行C程序的步骤先将Turbo C装入磁盘。1、调用Turbo C程序;2、编辑源文件。根据需要修改输入或修改源程序;3、编译源程序,编译时先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序。4、执行程序。第24题答案: A评析: 本题考查的是预处理命令。 选项B正确,原因是这部分语句与C程序其他部分的语句是有区别的,所以在每个预处理语句之前都有一个#符号以示区别。C提供三种预处理语句:(1)宏替换,(2)文件包含,(3)条件编译。如果一个文件中要引用另外一个文件时才需要在开头包含预处理命令行:#include。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2