c语言习题答案
C语言练习题及其答案

C语言练习题及其答案C语言练习题及其答案C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
C语言能以简易的方式编译、处理低级存储器。
下面是店铺帮大家整理的C语言练习题及其答案,仅供参考,大家一起来看看吧。
C语言练习题及其答案1一、选择题(7分,每小题0.5分)1.C语言源程序的基本单位是(B)。
A过程 B函数 C子程序 D标识符2.下列程序的输出结果是(C)。
main( ){ int a=7,b=5;printf("%d ",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B)。
A 7B 8 C9 D 24.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534; a=(int)125.521%4; a=5<<2;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,205.设有如下程序段,下面描述中正确的是(C)。
int k=10;while(k=0) k=k-1;A循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D 循环体语句执行一次6.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。
A p="abcd";B a="abcd";C *p="abcd";D *a="abcd";13.设有以下程序段,则值为6的表达式是()。
struct st { int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,0},*p;p=&a[0];A p++->nB ++p->nC p->n++D (*p).n++14.C语言中的文件类型只有()。
c语言习题(带答案)

一、选择1若有表达式(a)(--x):(++y),则其中与a等价的表达式是A)a==1B)a==0C)a!=1D)a!=02有以下程序段intx,y,z;x=10;y=50;z=30;if(x>y)x=y,y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);程序的输出结果是A)x=10y=50z=10B)x=10y=50z=30C)x=10y=30z=10D)x=50y=30z=503下面的函数调用语句中func函数的实参个数是f(f2(u1,u2),(u3,u4),(u6,max(u7,u8)));A)3B)4C)5D)84 以下叙述中错误的是A)用户定义的函数中可以没有return语句B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达6有以下程序#include<>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={11,12,13,14,15,16,17,18,19,20},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的运行结果是A)11,12,13,14,15,16,17,18,19,20B)12,11,14,13,16,15,18,17,20,19C)20,19,18,17,16,15,14,13,12,11D)20,11,12,13,14,15,16,17,18,198有以下程序main(){ int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf("%d,%d,%d,%d\n",*p,"q,a,b);}程序运行后的输出结果是A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,79 .s1和s2已正确定义并分别指向两个字符串。
《C语言》练习题及答案解析

《C语言》练习题及答案解析一.选择题1.下列字符序列中,不可用作C语言标识符的是(B)。
A.abc123 B.no.1 C._123_ D._ok2.一个C语言源程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成3. 正确的C语言标识符是(A )。
A._buy_2 B.2_buy C.?_buy D.buy?4.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为(A)。
A.’D’B.68 C.不确定的值D.’C’5.下列说法中,错误的是(A)。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有且仅有一个主函数6.有如下程序段,从键盘输入数据的正确形式应是(B)。
(注:└┘代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123 B.x=1,y=2,z=3C.1,2,3 D.x=1└┘ y=2└┘ z=37.在C语言中,char型数据在内存中的存储形式是(D)。
A.补码B.反码C.原码D.ASCII码8. 下列符号中,不属于转义字符的是(B )。
A.\\ B.\0xAA C.\t D.\09. 不属于C语言关键字的是(D)。
A.int B.break C.while D.character10. 以下说法中正确的是(C)。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分11. C语言程序的基本单位是(C)。
C语言练习题(带详解答案)

C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言习题(详细解答)

程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
2.以下关于简单程序设计的步骤和顺序的说法中正确的是。
A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3,叙述中正确的是________。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
4.以下叙述中正确的是。
A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。
C程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项D)错误。
C语言习题集参考答案

C语言习题集一、程序设计基本概念1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是_B _。
A)有0个或多个输入。
B)有0个或多个输出。
C)有穷性。
D)可行性。
3、以下叙述中正确的是___C__。
A)C语言比其它语言高级。
B)C语言可以不用编译就能被计算机识别执行。
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D)C语言出现的,具有其它语言的一切优点。
4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。
A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
二、C程序设计初步1、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _0012、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int3、以下符合C语言语法的实型常量是__C__。
C语言习题与答案

一、单选题1、能将高级语言源程序转换成目标程序的是( C )。
编译程序的基本功能是把源程序翻译成目标程序 A)调试程序B)解释程序C)编译程序D)编辑程序 2、设有以下定义:int x=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y ));的结果是( D )。
A)1 B)0 C)4 D)33、若已定义x 和y 为整型,则表达式:x=1,y=x+3/2的值是( B )。
P56 A)1 B)2C)2.0D)2.5 4、C语言中 ( B )。
P115 A)不能使用 do - while 语句构成循环。
B)do-while 语句, 当 while 语句中的表达式值为零时结束循环。
C)do-while 语句, 当 while 语句中的表达式值为非零时结束循环 D)do-while 语句必须用 break 语句才能退出循环5、设有定义 int a =3;,则执行语句 a+ = a-=a*a 后,变量 a 的值是( C ).P64(a-a*a a = 3-3*3 a = -6 a = a + a a = -6 + (-6) a=-12)A)3 B)0 C)-12 D)9 6、以下程序的输出结果是 ( C )。
p93 # include <stdio.h> main( ) {int a,b,d=241; a=d/100%9; b=(-1)&&(-1);printf ("%d,%d\n",a,b);}A)2 1 B)1,-1 C)2,1 D)2 -17、以下程序的输出结果是 ( D )。
#include <stdio.h> #include <string.h> main( ){char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }求字符串的长度,strlen( )的参数必须是char*A)12B)7C)118、以下的 for 循环( A )。
C语言习题级答案

选折题1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。
A、1B、不一定C、3D、22.以下选项中不合法的用户标识符是 BA、DimB、printfC、_123D、A$3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是(C)。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;C、for(i=1;i<=6;i++)a[i][i]=i;D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;4.以下所列的C语言常量中,错误的是___A___。
A、1.2e0.5B、0xFFC、2LD、'\72'5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、此说明语句不正确D、数组a中各元素都可得到初值,但其值不一定为06.以下正确的字符串常量是 DA、'abc'B、'A'C、OlympicGamesD、"\\\"7. C语言中,char类型数据占(C)。
A、8个字节B、4个字节C、1个字节D、2个字节8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____D__。
A、非法的常量B、字符aC、字符eD、字符A9.以下函数的类型是(D)fff(float x){return 5;}A、与参数x的类型相同B、void 类型C、无法确定D、int类型10.以下叙述中正确的是(A)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一(1)编程求37+29的值,实习VC环境。
#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio.h>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio.h>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=b2 -4ac的结果并输出。
#include<stdio.h>void main(){float a,b,c,s;a=1.5;b=5.3;c=2.9;s=b*b-4*a*c;printf("s的值是%f\n",s);}2.1.2输入某学生的三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。
#include <stdio.h>void main(){int math,english,c_program;float sum ,average;printf("input math,english,c_program:");scanf("%d,%d,%d",&math,&english,&c_program);sum=math+english+c_program;average=sum/3;printf("sum=%.0f,average=%.5f",sum,average);}2.1.3输入圆的半径,计算圆的面积,设圆周率为3.1416.#include<stdio.h>int main(){float r,s;printf("请输入半径:");scanf("%f",&r);s=3.1416*r*r;printf("圆的面积为%.6f",s);}2.1.4输入一个两位数,将其个位数和十位数互换后变成一个新的数,输出这个数。
#include <stdio.h>int main(void){int n,a,b;printf("input n:");scanf("%d",&n);b=n%10;a=n/10;n=b*10+a;printf("%d\n",n);return 0;}2.1.5输入两个数a和b,将两数的值互换后输出新值。
#include <stdio.h>void main(){int x,y,t;scanf("%d%d",&x,&y);t=x;x=y;y=t;printf("x=%d,y=%d\n",x,y);}2.2简单分支结构2.2.1输入两个整数,求出其中的较小值输出。
#include<stdio.h>int main(){int a,b,min;printf("请输入 a,b:\n");scanf("%d,%d",&a,&b);if (a<b)min=a;elsemin=b;printf("最小值是 %d\n",min);return 0;}2.2.2 输入x的值并计算分段函数y的值。
x2+2x x<2Y=f(x)=2x-1 x>=2#include <stdio.h>int main(void){double x,y;scanf("%lf",&x);if(x<2)y=x*x+2*x;elsey=2*x-1;printf("%.6f",y);return 0;}2.2.3 输入两个整数并判断两数是否相等,输出相应结论。
#include<stdio.h>int main(){int a,b;printf("请输入两个整数:\n");scanf("%d,%d",&a,&b);if(a==b)printf("a等于b");elseprintf("a不等于b");return 0;}2.2.4输入一个整数,若为负数,求出它的平方;若为正数,求出它的立方,并输出结果。
#include<stdio.h>void main(){printf("请输入一个整数:");double x,y;scanf("%lf",&x);if(x<0)y=x*x;elsey=x*x*x;printf("y=f(%f)=%f\n",x,y);}2.2.5输入三个整数,用if-else结构求出其中的最大值。
提示:首先求出两个数的较大值放在一个变量里,然后用这个变量和第三个数再进行一次比较。
#include<stdio.h>int main(){int a,b,c,max;printf("请输入三个数");scanf("%d,%d,%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(c>max)max=c;elsemax=a;printf("最大值为%d\n",max);return 0;}2.3简单循环结构2.3.1计算1+4+7+ (301)#include <stdio.h>void main(){int i,sum;sum=0;for(i=1;i<=301;i=i+3)sum=sum+i;printf("sum=%d\n",sum);}2.3.2循环输入某学生八个科目期末考试成绩,计算出该学生成绩总分和平均分。
#include<stdio.h>int main(void){int i,a;float sum,average;sum=0;for(i=1;i<=8;i++){scanf("%d",&a);sum=sum+a;}printf("成绩总分为%f\n",sum);printf("平均分为%f\n",sum/8);return 0;}2.3.3输入n的值,计算n!#include<stdio.h>int main(void){int n,i,a;a=1;printf("请输入n的值:%d\n");scanf("%d",&n);for(i=1;i<=n;i++)a=a*i;printf("积=%d\n",a);return 0 ;}2.3.4显示1~10平方,输出结果如下图所示:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100#include<stdio.h>int main(void){int i,a;for(i=1;i<=10;i++){a=i*i;printf("%d*%d=%d\n",i,i,i*i);}return 0;}2.3.5计算1-3/4+5/7-7/10+…的前n 项之和。
#include <stdio.h>void main(){int i,n;float item,flag,sum;sum=0;flag=1;printf("input n:");scanf("%d",&n);for(i=1;i<=n;i++){item=flag*(2*i-1)/(3*i-2);sum=sum+item; flag=-flag;}printf("%f\n",sum);}实验三3.1.1输入一个整数x,判定是否为5的倍数。
#include<stdio.h>int main(void){int x;printf("x= ");scanf("%d",&x);if(x%5==0)printf("能整除5");elseprintf("不能整除5");return 0;}3.1.2输入x,计算并输入下列分段函数对应的值。