C语言1-5章复习题及参考答案复习课程

合集下载

C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

C语言程序设计教程1-5章 课后答案

C语言程序设计教程1-5章 课后答案

第1章C语言概述一、简答题1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。

2.顺序结构,分支结构,循环结构3.所谓算法就是为解决一个问题而采取的方法和步骤。

算法的特性:有穷性、确定性、输入、输出、可行性。

表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。

二、算法1.瓶子A里盛有醋瓶子B里盛有酱油有一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2.输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3.如果a<btemp=aa=bb=temp如果c>atemp = aa=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4.i=1sum=0以下程序循环100遍:sum=sum+ii=i+1打印sum 的值5.如果(n 除以3的余数为0 并且 n 除以5的余数为0)n 能够同时被3和5整除否则 n 不能够同时被3和5整除 6.i=101以下语句循环50遍: j=2 flag=1 当j<(i 除以2的整数部分)时循环以下语句: 如果i 除以j 的余数为零 flag=0 退出该循环 如果flag==1 打印i 的值 i=i+2 7.如果m<n temp=m m=n n=temp i=n做以下循环,直到m,n 能够被i 整除:如果m 能够被i 整除并且n 能够被i 整除 i 即是m 和n 的最大公约数 跳出循环 否则 i=i-1 打印i 的值8.data=b*b —4*a*c 如果data >0否则 如果data=0 x1=x2=—b/2 否则 无实数解 三、编程题 1.main () { printf (“##############################\n ”); printf (“ How do you do ? \n”); printf(“##############################\n”); }a datab x 2)(1+-=adata b x 2)(2--=2.main(){int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“sum=%d”,a+b+c);}第二章数据类型与表达式一、单项选择题1. B2. C3. A4. A5. D6. B7.A8.C9.D二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=3三、编程题main(){char c1='c',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}第三章顺序程序设计选择题1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A填空题1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3编程题#define PI 3.1415926main( ){float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:\n”) ;scanf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2f\n”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2f\n”, sv, sz) ;}2、main( ){float c, f ;printf(“请输入一个华氏温度:\n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2f\n”, c) ;}第四章循环程序设计一、选择题1.D2.D3.D4.C5.D6.A7.B8.B9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D21.A二、填空题1.5858582.03.184.89215.20,06.67.1,3,28.Year%400==0year%100!=0count++三、编程题1.main(){long a;scanf(“%ld”,&a);if (a>=10000&&a<=99999) printf(“这是个五位数”);else if (a>=1000&&a<=9999) printf(“这是个四位数”);else if (a>=100&&a<=999) printf(“这是个三位数”);else if (a>=10&&a<=99) printf(“这是个二位数”);else if (a>=0&&a<=9)printf(“这是个一位数”);elseprintf(“输入错误”);}3.main(){int a;int g,s,b;//个位、十位、百位printf("水仙花数有:\n");for(a=100;i<=999;a++){g=a%10;s=a/10%10;b=a/100;if (a==g*g*g+s*s*s+b*b*b) printf("%d ",a);}printf("\n");}4、main(){int i,n;printf("input n:");scanf("%d",&n);printf("\n%d=",n);for(i=2;i<=n;i++){while(i!=n)if(n%i==0){printf("%d*",i);n/=i;}else break;}printf("%d\n",n);}5、#include “stdio.h”main(){char c;int w,x,y,z;w=x=y=z=0;while((c=getchar())!=’\n’){if((c>’a’&&c<’z’)||(c>’A’&&c<’Z’))w++;else if (c==’’)x++;else if (c>’0’&&c<’9’)y++;else z++;}printf(“英文字母个数:%d\n”,w);printf(“空格个数:%d\n”,x);printf(“数字个数:%d\n”,y);printf(“其他字母个数:%d\n”,z);}6、main(){float h=100,t=100;int j;for(j=1;j<10;j++){t=t/2;h=h+t*2;}printf(“共经过:%f 米\n”,h);printf(“第十次反弹%f 米\n”,t/2);}第五章数组一、单项选择题1. B2. A3. C4. C5. D6. B7.C8.B9.C 10. B二、写出下列程序的运行结果1.S=3682.*************************3.S1=18S2=104.!margorP5.数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1三、编程题1.#include "stdio.h"main(){int a[11];int i,j,t;printf("input 10 number:\n");for (i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for (i=1;i<=9;i++)for (j=1;j<=10-i;j++)if (a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("the sorted number is:\n");for (i=1;i<11;i++)printf("%4d",a[i]);}2.#include "stdio.h"main(){int a[11],i,b;printf("imput 10 sorted number:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("input an integer:\n");scanf("%d",&b);for (i=9;i>=0&&a[i]>b;i--)a[i+1]=a[i];a[i+1]=b;printf("sorted numbers:\n");for (i=0;i<11;i++)printf("%5d",a[i]);}3.#include "stdio.h"main(){int a[5],i,j,t;printf("input 5 integer:\n");for (i=0;i<5;i++) /*输入5个整数*/scanf("%d",&a[i]);for (i=0,j=4;i<j;i++,j--) /*逆序存放*/{t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<5;i++) /*逆序存放后重新输出*/printf("%5d",a[i]);}4.#include "stdio.h"main(){int i,j,a[10][10]={{1},{1,1}};for (i=2;i<10;i++) /*给二维数组每个元素赋值*/ {a[i][0]=1;for (j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for (i=0;i<10;i++) /*输出二维数组*/{for (j=0;j<=i;j++)printf("%-5d",a[i][j]);printf("\n");}}5.#include "stdio.h"{int a[3][4],i,j,max,row,col;printf("input 3*4 matrix:\n");for (i=0;i<3;i++) /*输入3*4矩阵*/for (j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0]; row=0; col=0;for (i=0;i<3;i++) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j<4;j++)if (max<a[i][j]){max=a[i][j]; row=i, col=j;}printf("\n数组中最大的数是%d,其行号是%d,列号是%d\n",max,row,col);}6.#define N 3#define M 4#include "stdio.h"main(){int a[N][M],i,j,k,max,row,col;printf("input %d*%d matrix: \n",N,M);for (i=0;i<N;i++) /*输入二维矩阵*/for (j=0;j<M;j++)scanf("%d",&a[i][j]);for (i=0;i<N;i++) /*求鞍点*/{max=a[i][0]; row=i; col=0;for(j=1;j<M;j++) /*求矩阵中每一行的最大值及其所行列号*/ if (max<a[i][j]){max=a[i][j]; col=j;}for (k=0;k<N;k++) /*判断每一行的最大值在其所在列是否最大*/ if (a[k][col]<max)break;if (k==N) /*得到鞍点*/{printf("the point is %d,row=%d,col=%d\n",max,row,col);break;}}if (i==N) /*没有鞍点*/printf("no point\n");}7.#include "stdio.h"main(){int num=0,word=0;/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/printf("please input a string :\n");while ((c=getchar())!='\n')if (c==' ')word=0;else if (word==0){word=1; num++;}printf("There are %d words in the line\n",num);}8.#include "stdio.h"main(){int i,j,uppn,lown,dign,span,othn;/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}9.#include "stdio.h"main(){int i,j;char str1[20],str2[20];printf("input two strings:\n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2[i]!='\0';i++,j++) /*字符串合并*/str1[j]=str2[i];str1[j]='\0'; /*加上字符串结束标志*/puts(str1);}10.#include "stdio.h"main(){int i,n;char str1[20],str2[20];printf("input two strings:(no more than 20 characters)\n");gets(str1); gets(str2);n=strlen(str1)<strlen(str2)?strlen(str1):strlen(str2); /*n中存放较短字符串的长度*/ for (i=0;i<n&&str1[i]==str2[i];i++);printf("%d\n",str1[i]-str2[i]);}11。

c语言习题1-5章

c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。

A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。

A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。

A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。

A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。

A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。

A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。

A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。

A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。

A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。

C语言1-5章复习题和参考答案.doc

C语言1-5章复习题和参考答案.doc

1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c;执行语句c=a/b+0.4;后,c的值为()。

A .1.4 B.l C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=l;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循坏D.O4、下列关于表达式的描述屮,错误的是()0A.常量和变量都是表达式。

B.运算符类型对应表达式的类型。

C.每一个表达式都有自己的值。

D.表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A.'\t'B."A"C.65D.a6、若已定义x和y为double类型,则表达式x=l;y= (x+3) /2的值是()。

A.lB.2C.2.00000D.2.500007、表达式:10!二9的值是()oA.trueB.非零值C.OD.l8、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A.不确定的B.OC.-lD.l9、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10^假设int b=2;表达式(b»2)/(b»l)的值是()。

A .0 B.2 C.4 D.811>关于语句printf("hello world\rT);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B.printf()括号屮的内容为函数的参数。

C.printf()括号中的内容会全部输出到控制台上。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个 main函数。

c) 在C语言中,输出操作是有库函数 printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为 main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。

《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]

《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]

第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。

算法与数据结构C语言习题参考答案1-5章

算法与数据结构C语言习题参考答案1-5章

绪论1.将下列复杂度由小到大重新排序:A.2n B.n! C.n5D.10 000 E.n*log2 (n)【答】10 000< n*log2(n)< n5< 2n < n!2.将下列复杂度由小到大重新排序:A.n*log2(n) B.n + n2 + n3C.24D.n0.5【答】24< n0.5< n*log2 (n) < n + n2 + n33.用大“O”表示法描述下列复杂度:A.5n5/2 + n2/5 B.6*log2(n) + 9nC.3n4+ n* log2(n) D.5n2 + n3/2【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2)4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。

又n!应排在第几位?【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。

n!的增长率比它们中的每一个都要大,应排在最后一位。

5. 计算下列程序片断的时间代价:int i=1;while(i<=n){printf(“i=%d\n”,i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。

所以该程序段总的时间代价为:T(n) = 1 + n + 2n = 3n+ 1 = O(n)6. 计算下列程序片断的时间代价:int i=1;while(i<=n){int j=1;while(j<=n){int k=1;while(k<=n){printf(“i=%d,j=%d,k=%d\n”,I,j,k);k=k+1;}j=j+1;}i=i+1;}【答】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:T(n) = 1 + n + n{1 + n + n[1 + n + 2n +1] +1 +1}+ 1= 3n3 + 3n2 +4n +2= O(n3)2. 线性表1.试写一个插入算法int insertPost_seq(palist, p, x ),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。

C语言选择题(1-4章期末复习)

C语言选择题(1-4章期末复习)

C语言选择题(1・4章期末复习)第1章1 .以下叙述不正确的是()。

A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2 .C语言的注释定界符是()。

A、V *\B、{}C []D、/**/3 .C语言规定,在一个源程序中,main函数的位置()。

A、必须在最开始B、必须在系统调用的库函数的后面C、必须在最后D、可以任意4 .一个C程序的执行是从()。

A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序的main函数开始,到main函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束5 .以下叙述中正确的是()。

A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号〃{〃和〃 }〃只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名6 .以下叙述正确的是()。

52 .已有定义:int x=3/y=4,z=5; z则表达式!(x+y)+z-l && y+z/2的值是()A、6B、1C、0D、253 .若给定条件表达式(M)?(a + +):(a--),则其中表达式M( )oA、和(M! = l)等价B、和(M = = l)等价C、和(M!=0)等价D、和(M = =0)等价54 .用下列语句定义a , b , c ,然后执行b=a, c='b'+b,则b , c 的值是()olong a=3;int b; char c;A、2 和101B、3 和101C、3 和100D、3 和9955 .表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、不确定B、doubleC、intD、float56 .若a为int类型,且其值为3 ,则执行完表达式a+=a-=a*a后, a 的值是()。

c语言习题1-5章

c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。

A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。

A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。

A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。

A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。

A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。

A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。

A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。

A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。

A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。

c语言复习题(1~6章) (2)

c语言复习题(1~6章) (2)

注意:超纲题不需要做!1、C语言提供合法的数据类型关键字是( )A)Double B)short C)integer D)Char2、对于下列各字符串,请选取择正确的标识符( )。

A)Boo B)for C)5abc D)I like C3、下列不属于字符型常量的是()A)‘A’B)“B”C)‘\n’ D)‘D’4、下面四个选项中,均是正确的八进制数或十六进制数的选项是。

A)-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa5、若有定义:int a = 7; float x = 2.5 , y = 4.7 ;则表达式x + a % 3 * (int) (x + y) % 2/4 的值是A) 2.750000 B) 0.00000 C) 3.5000006、已知ch是字符型变量,下面不正确的赋值语句是。

A)ch = 5 + 9; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6';7、错误的转义字符是 ( )A)'\091' B)'\\' C)'\0' D)'\''8、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是 ( )A)2,1,2 B)2,0,3 C)2,2,3 D)2,1,39、在C语言中,错误的常数是 ( )A)1E+0.0 B)5. C)0xaf D)0L10、下列正确的标识符是:A)12ab B)float C)aw~1e D)b6ty11、对y在[3,23]和[100,200]范围内为真的确表达式为:A)(y>=3)&&(y<=23)&&(y>=100)&&(y<=200)B)(y>=3)||(y<=23)||(y>=100)||(y<=200)C)(y>=3)&&(y<=23)||(y>=100)&&(y<=200)D)(y>=3)||(y<=23)&&(y>=100)||(y<=200)12、在一个C程序中A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置13、8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是A)int a=b=c=5;B)int a,b,c=5;C)int a=5,b=5,c=5;D)a=c=b=5;14、C语言中,long类型的数据占字节数为()A) 1 B) 2 C) 4D) 815、下列为合法的用户标识符为()A) _98B) P#d C) a* D) void16、如果x为float类型变量,则以下语句输出为()x=213.82631;printf(“%4.2\n”,x);A) 宽度不够,不能输出B) 213.82 C) 213.82631 D) 213.8317、在C语言中,合法的字符常量是( )A)'\084' B)'\x43' C)'ab' D)"\0"18、不能正确表示ab除以cd的C语言表达式是()A) a*b/c*d B) a/(c*d)*b C)a*b/c/d D) a*b/(c*d)19、以下不符合C语言语法的赋值语句是(D)A) i++; B) i=i=5; C) k=(2*4,k*4); D) y=float(i);20、若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为(D)A) float B) int C) char D) double21、下列程序的输出结果是#include<stdio.h>main(){float x,y;scanf("%f",&x);if(x<0.0)y=0.0;else if((x<5.0)&&(x!=2))y=1.0/(x+2.0);else if(x<10.0)y=1.0/x;else y=10.0;printf("%f\n",y) ; }输入:2.0A)0.000000 B)0.250000 C)0.5000000 D)1.00000022、下列程序的输出结果是main(){int m=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--) ; }A)7 B)6 C)5D)423、下列程序的输出结果是main(){int a=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a); }A)-1 1 B)0 1 C)1 0D)0 024、下列程序的输出结果是main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;elsex=-1;print("%d\n",x);}A)-1B)0 C)10 D)225、下列程序的输出结果是main(){int a,b,c,x;a=b=c=0;x=35;if(!a) x--;else if(b);if(c)x=3;elsex=4;print("%d\n",x) ; }A)34 B)4C)35 D)326、下列程序的输出结果是2 main(){int a=2,b=-1,c=2;if (a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c) ; }27、下列程序的输出结果是103 main(){int a=-1,b=4,k;k=(a++<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 28、下列程序的输出结果是004 main(){int a=-1,b=4,k;k=(++a<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 29、下列程序的输出结果是#include<stdio.h>main(){int x=1,y=0,a=0,b=0;switch(x){case 1 : switch(y){ case 0:a++;break;case 1:b++;break;}case 2 : a++;b++;break ; }printf("a=%d,b=%d\n",a,b) ; }A)a=2,b=1B)a=1,b=1C)a=1,b=0 D)a=2,b=230、当a的值分别为:1,2,3时,程序的结果是main(){int a;printf("Please enter a=");scanf("%d",&a);switch(a){case 1:printf("*");break;default:print("#");case 2:printf("-") ; } }1:*2:-3:#-31、下列程序运行结果#include<stdio.h>main(){int x=23;doprintf("%2d",x--);while(!x) ; }A)321 B)23C)无D)死循环32、下列程序运行结果#include<stdio.h>main(){int i=0,sum=1;dosum+=i++;while(i<6);printf("%d\n",sum) ; }A)15 B)16C)17 D)1833、下列程序运行结果#include<stdio.h>main(){int xfor (x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x) ; }A)**3##4B)##3 C)##3**4 D)**3##4**5 **4##5 **5 ##534、下列程序的输出结果是main(){float x,y,z;scanf(%f%f",&x,&y);z=x/y;while(1){if (fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak; }printf("%f\n",y) ; }输入3.6 2.4回车,则结果为A)1.500000 B)1.600000 C)2.000000 D)2.40000035、下列程序的输出结果是main(){int i=0,a=0;while(i<20){for(;;)if (i%10==0) break; else i--;i+=11;a+=i ; }printf("%d\n",a) ; }A)21 B)32C)33 D)1136、下列程序的输出结果是main(){int u=24,v=16,w;while(v){w=u % v; u=v ; v=w;}printf("%d\n",u); }A)7 B)8C)9 D)1037、假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a;a++;}while (b--<0);A) 9 B) -2 C) -1 D) 838、以下程序的输出结果是(超纲)main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2339、有以下程序(程序错误)main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11。

算法与数据结构C语言习题参考答案1-5章

算法与数据结构C语言习题参考答案1-5章

置*/ palist->element[q] = palist->element[q+1]; palist->n = palist->n - 1; /* 元素个数减 1 */ return 1 ; } return 0; } 3. 设有一线性表 e = (e0, e1 , e2 , …, e n-1 ),其逆线性 表定义为 e'= (e n-1 , …, e2 , e1 ,e0)。 请设计一个算法,将用顺序表表示的线性表置逆,要求逆线性表 仍占用原线性表的 空间。 【答】 数据结构 采用 2.1.2 节中顺序表的定义。 思路 考虑对数组 element[ ]进行置逆,即把第一个元素和最后一个 元素换位置,把第二个元素和倒数第二个元素换位置……。 注意 这种调换的工作只需对数组的前一半元素进行,所以设置整数变 量 count 用于存放数组长度的一半的值。大家可以考虑一下:为 什么不能对整个数组进行如上的对元素“换位置”的工作?(提
PNode p1; if(llist==NULL) return 0; p1=llist; while(p1!=NULL&&p1->link!=p)p1=p1->link; /*寻找 p 所指结 点的前驱结点*/ if(p1=NULL) return 0; PNode q=(PNode)malloc(sizeof(struct Node));/*申请新结点 */ if(q=NULL) {printf(“Out of space!!!\n”);return 0;} q->info=x; q->link=p1->link; p1->link=q; return 1; } 7.写一算法,在带头结点的单链表 llist 中,删除 p 所指的结点, 并返回删除成功与否的标 志。 【答】 数据结构 采用 2.1.3 节中单链表定义。 思想: 由于在单链表中,只有指向后继结点的指针,所以只有首先找到

第1章 c语言概述(习题答案及解析)

第1章 c语言概述(习题答案及解析)

习题1 参考答案一、选择题1.1 C 分析:简单程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故答案为C选项。

1.2 D 分析:一个算法应该具有以下五个重要的特征:有穷性,确定性,输入,输出以及可行性,故答案选D选项。

1.3 A 分析:编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,A选项正确。

算法不一定要包含所有三种基本结构,也可以只包含一种或两种,B选项错误。

结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,C选项错误。

算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量,D选项错误。

1.4 A 分析:计算机只能识别机器语言,不能直接识别由高级语言编写的程序,答案为A选项。

1.5 A 分析:C语言程序必须要定义main()函数,B选项错误;只有同时包含三种基本结构时,程序才是结构化程序,C选项错误;程序中的语法错误在编译时能显现,排除D选项,答案选A。

1.6 A 分析:计算机只能识别机器码,机器码是由二进制构成的,因此只能识别二进制构成的代码程序,不可以直接识别由十六进制代码构成的程序,十六进制的代码必须转为二进制才能在计算机上直接执行。

因此选项A错误。

1.7 A 分析:书写风格良好的程序易读性好,方便团队合作,分模块来完成复杂的程序设计,B选项叙述正确。

但是书写风格与程序执行效率无关,程序执行效率与程序的数据结构有关,由算法的时间复杂度和空间复杂度决定,A选项叙述错误。

C语言程序书写规范中,良好的书写习惯中一般一行上写一条语句,这样方便阅读,但是一行写多条语句是符合C程序编写规则的,C选项叙述正确。

C程序允许将一条较长的语句分写在多行,D选项叙述正确。

叙述中错误的是A选项,故选择A选项。

1.8 A 分析:程序中,注释可以出现在程序的任何位置,B选项错误;注释中间不能嵌套另一个注释,C选项错误;注释内容不影响程序编译,D选项错误,答案为A选项。

C语言1_6章复习题及答案

C语言1_6章复习题及答案

一、单项选择题1、以下说法中正确的是(C)(2分)A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、以下选项中,不合法常量的是(B)(2分)A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e03、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型4、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分)A、 10>=a>=0B、 a>=0 and a<=10C、 a>=0||a<=10D、 a>=0&&a<=105、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、 6.500000B、 6C、 5.500000D、 6.0000006、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分)A、 INPUT x、y、z;B、 scanf("%d%d%d",&x,&y,&z);C、 scanf("%d%d%d",x,y,z);D、 read("%d%d%d",&x,&y,&z);7、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值8、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、 0B、 0.5C、 1D、 29、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。

C语言讲义--复习(1-5)-2012

C语言讲义--复习(1-5)-2012
1、在c语言中(以16位pc机为例),5种基本 数据类型的存储空间长度的排列顺序为() A)char<int<long int<=float<double B)char=int<long int<=float<double C)char<int<long int=float=double D)char=int=long int<=float<double



15、.若有如下语句 int x=3; do{printf("%d\n",x-=2);} while(!(--x)); 则上面程序段输出结果是( ) A)1 B)1和-2 C)3和0 D)是死循环
16、下面程序是从键盘输入学号,然后输出学号中百位数字是3的学 号,输入0时结束循环。请选择填空() #include <stdio.h> main() { long int num; scanf("%ld",&num); do {if([1]) printf("%ld",num); scanf("%ld",&num); } while([2]); } [1]A)num%100/10==3 B)num/100%10==3 C)num%10/10==3 D)num/10%10==3 [2]A)!num B)num>0==0 C)!num==0 D)!num!=0
6、以下C程序正确的运行结果是( ) main() {long y=-43456; printf("y=%-8ld\n",y); printf("y=%-08ld\n",y); printf("y=%08ld\n",y); printf("y=%+8ld\n",y);} A)y= -43456 B)y=-43456 C)y=-43456 D)y= -43456 y=- 43456 y=-43456 y=-43456 y=-0043456 y=-0043456 y=-0043456 y=-0043456 y=00043456 y=-43456 y=+ -43456 y= -43456 y=+43456

程序设计基础(C)第1——5章复习题答案

程序设计基础(C)第1——5章复习题答案

程序设计基础(C)第1——5章复习题及参考答案一、单选题1.可以在C语言中使用的一组用户标识符是(C)。

A. 3BB. KEYC. _123D. voidsizeof cl_c2 T3_al_ CHA TDO -for scanf 6B2.while(!x)中的!x与下面条件(A)等价。

A. x==0B. x==1C. x!=5D. x!=03.增1减1运算只能作用于(B)。

A. 常量B. 变量C. 表达式D. 函数4.下面四个选项中,均是字符常量或数值常量的选项是(A)。

A. 0.0B. “A”C. …3‟D. +0010f 3.9E-2.5 011 0xabcd8.9e 1e1 0xff00 2e3…&‟ …\”‟ 0a 50.5.下选项中正确的实型常量是(D)。

A. 0B. 0.618*10^2C. .871D. 3.1415 6.C语言中运算对象必须是整型的运算符是(D)。

A. %= 与/B. = 与&C. * 与^D. % 与|7.设a=2,b=2;则++a+b的结果是( D),a的结果是( B ),b的结果是( A)。

A. 2B. 3C. 4D. 59.下列运算符中优先级最低的是(B)。

A. +B. &&C. <=D. sizeof10.设int a=2;则表达式(a++*1/3)的值是(A),a的值是(D)。

A. 0B. 1C. 2D. 311.字符数据在内存中的存储采用的是(D)。

A. 反码B. 补码C. EBCDIC码D. ASCII码12.在C语言类型说明中,int、char、short等类型数据的长度是(D)。

A. 固定的B. 由用户自己定义的C. 任意的D. 与机器字的长度有关的13.在C语言中,不同类型的两个数据混合运算时,要先转换成相同类型再进行运算,设有int,long,unsigned和char类型的变量和数据,则它们的转换规律是(C),表达式最后的运算结果是(D)类型的数据。

C语言1-5章复习题 参考答案

C语言1-5章复习题 参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。

A .-3 B.9 C.-12 D.62、若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是(C)。

A .6 B.3 C.死循环 D.0 。

4、下列关于表达式的描述中,错误的是(D)。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是(C)。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是(D)。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是(B)。

#include<stdio.h>void main(){printf("%d\n",NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

(B)A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设int b=2;表达式(b>>2)/(b>>1)的值是(A)。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是(C)。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

c语言全部章节习题答案

c语言全部章节习题答案

c语言全部章节习题答案C语言是一门广泛应用于计算机编程的高级编程语言。

它的简洁和强大使得它成为了许多程序员的首选语言。

然而,学习一门新的编程语言并不总是容易的,特别是对于初学者来说。

为了帮助那些正在学习C语言的人们,本文将提供C语言全部章节习题的答案,以期为读者提供一些指导和帮助。

在学习C语言时,习题是巩固所学知识的重要方式。

通过解决习题,学生可以加深对C语言的理解,并提高他们的编程技能。

然而,有时候习题的解答并不容易找到,特别是对于初学者来说。

因此,本文将提供C语言教材中的全部章节习题的答案,以供读者参考。

在第一章中,我们学习了C语言的基本概念和语法。

习题主要涉及变量的声明和赋值,以及简单的算术运算。

以下是第一章习题的答案:1. 声明一个整型变量x,并将其赋值为10。

答案:int x = 10;2. 声明一个字符型变量ch,并将其赋值为'A'。

答案:char ch = 'A';3. 声明两个整型变量a和b,并将其相加的结果赋值给变量c。

答案:int a = 5;int b = 3;int c = a + b;第二章主要介绍了C语言中的控制结构,如条件语句和循环语句。

以下是第二章习题的答案:1. 编写一个程序,判断一个整数是否为偶数。

如果是偶数,输出"Even",否则输出"Odd"。

答案:#include <stdio.h>int main() {int num;printf("Enter an integer: ");scanf("%d", &num);if(num % 2 == 0) {printf("Even");} else {printf("Odd");}return 0;}2. 编写一个程序,计算1到100之间所有偶数的和。

《C语言程序设计(第五版)》习题答案

《C语言程序设计(第五版)》习题答案

《C语⾔程序设计(第五版)》习题答案各章习题参考答案第1章习题参考答案1. 简述C程序的结构特点。

答:(1) ⼀个C语⾔源程序由⼀个或多个源⽂件组成。

每个源⽂件由⼀个或多个函数构成,其中有且仅有⼀个主函数(main函数)。

(2) ⼀个函数由函数⾸部(即函数的第⼀⾏)和函数体(即函数⾸部下⾯的⼤括号内的部分)组成。

函数⾸部包括函数类型、函数名和放在圆括号内的若⼲个参数。

函数体由声明部分和执⾏部分组成。

(3) C程序书写格式⾃由,⼀⾏内可以写多条语句,⼀个语句也可以分写在多⾏中,每个语句必须以分号结尾。

(4)程序的注释内容放在“/*”和“*/之”间,在‘/’和‘*’之间不允许有空格;注释部分允许出现在程序中的任何位置处。

2. 分析例1.3程序的结构。

答:下⾯是例1.3的程序,它的结构是:有且只有⼀个主函数main以及若⼲个其它函数,还有⼀个被主函数调⽤的sumab函数。

函数有⾸部,包括类型和名称,⾸部下的⼤括号中有变量定义、输⼊、计算和输出等语句。

#includeint sumab (int x, int y); /*函数声明*/int main () /*主函数*/{ int a,b,sum; /*定义变量*/printf("请输⼊变量a与b的值:"); /*提⽰信息*/scanf ("%d %d", &a, &b); /*输⼊变量a和b的值*/sum=sumab(a,b); /*调⽤sumab函数*/printf("a与b的和等于%d", sum);/*输出sum的值*/return 0;}int sumab (int x, int y) /*定义sumab函数,并定义形参x、y */{ int z;z=x+y;return z;}3. 分别编写完成如下任务的程序,然后上机编译、连接并运⾏。

(1) 输出两⾏字符,第1⾏是“The computer is our good friends!”,第2⾏是“We learnC language.”。

c语言第五版课本课后习题答案

c语言第五版课本课后习题答案

c语言第五版课本课后习题答案C语言是一门广泛应用的编程语言,其第五版课本通常包含了大量的理论知识和实践练习。

课后习题是帮助学生巩固和检验学习成果的重要部分。

以下是一些C语言第五版课本课后习题的答案示例,请注意,这些答案仅供参考,具体答案可能因课本版本和习题内容的不同而有所变化。

# 第一章:C语言概述习题1:简述C语言的特点。

答案: C语言是一种结构化编程语言,具有高效性、可移植性、丰富的运算符和数据类型等特点。

它广泛应用于系统软件、嵌入式系统等领域。

习题2:解释编译型语言和解释型语言的区别。

答案:编译型语言在执行前需要通过编译器将源代码转换为机器语言,生成可执行文件;而解释型语言在执行时由解释器逐行解释执行,不需要编译过程。

# 第二章:数据类型与变量习题1:列举C语言中的基本数据类型。

答案: C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)等。

习题2:什么是变量?变量声明的一般形式是什么?答案:变量是存储数据值的容器,其名称可以代表内存中的一个存储位置。

变量声明的一般形式为:`数据类型变量名;`。

# 第三章:控制结构习题1:什么是条件语句?列举C语言中的条件语句类型。

答案:条件语句用于根据条件的真假来控制程序的执行流程。

C语言中的条件语句包括if语句、if...else语句和switch语句。

习题2:循环语句的作用是什么?C语言中有哪些循环语句?答案:循环语句用于重复执行一段代码直到满足特定条件。

C语言中的循环语句包括for循环、while循环和do...while循环。

# 第四章:函数习题1:函数的定义是什么?函数的作用是什么?答案:函数是一段具有特定功能的代码块,可以被重复调用。

函数的作用是实现代码的模块化,提高代码的复用性。

习题2:函数声明和函数定义的区别是什么?答案:函数声明提供了函数的名称、返回类型和参数列表,但不包含函数的实现细节;函数定义则包含了函数的实现代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言1-5章复习题及参考答案
一.选择题
1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3 B.9C.-12D.6
2、若有定义:int a=8, b=5, c;执行语句c=a/b+0.4;后,c的值为()。
A.1.4B.1C.2.0 D.2
3、有如下程序:
void main()
A.a+=a-=(b=4)*(a=3)B.x%(-3)
C.a=a*3=2D.y=float(i)
29、若a为int型变量,则下列C语言表达中,不能表达数学关系式10<a<15的是()。
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
if (x++ > 5)
printf("%d",x);
else
printf("%d\n",x--);
}
A.7和5B.6和3C.7和4D.6和4
23、若已定义x和y为double类型,则表达式:x=1, y=x+3/2的值是()。
A.1 B.2C.2.0D.2.5
24、执行下面程序片段的结果是()。
int x=23;
#include<stdio.h>
void main()
{
printf("%d\n", NULL);
}
A.不确定的B.0C.-1 D.1
9、请选出合法的C语言赋值语句。()
A.a=b=58B.i++;C.a=58,b=58D.k=int(a+b);
10、假设int b=2;表达式(b>>2)/(b>>1)的值是()。
{
int i,sum;
for(i=1;i<=3;sum++)
sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是()。
A.6B.3C.死循环D.0
4、下列关于表达式的描述中,错误的是()。
A.常量和变量都是表达式。B.运算符类型对应表达式的类型。
C.每一个表达式都有自己的值。D.表达式必须以分号结尾。
15、以下循环体的执行次数是()。
void main()
{
int i,j;
for (i=0,j=1; i<=j+1; i+=2,j--)
printf("%d\n",i);
}
A.3 B.2C.1D.0
16、下列运算符中优先级最高的是()。
A.|| B.&&C.+D.=
17、若有以下定义和语句:char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A');那么输出结果是()。
A.&B.||C.~ D.^
13、以下程序的输出结果是()。
void main()
{
char c='z';
printf("%c", c-25);
}
ห้องสมุดไป่ตู้A.aB.Z C.z-25 D.y
14、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A.a<>0B.!aC.a=0D.a
5、C语言中,合法的长整型常数是()。
A.'\t'B.”A”C.65 D.a
6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是()。
A.1 B.2C.2.00000D.2.50000
7、表达式:10!=9的值是()。
A.trueB.非零值C.0D.1
8、以下程序的输出结果是()。
A.0B.2 C.4 D.8
11、关于语句printf(“hello world\n”);,下列描述中错误的是()。
A.printf()是格式化输出函数,用于输出信息。
B.printf()括号中的内容为函数的参数。
C.printf()括号中的内容会全部输出到控制台上。
D.\n表示换行操作。
12、下列选项中,哪一项不是C语言中的位运算符()。
21、假定有以下变量定义:int k=7,x=12;那么能使值为3的表达式是()。
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
22、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。
void main()
{
int x;
scanf("%d",&x);
A.a的值是字符’C'B.a的值是浮点型
C.不允许字符型和浮点型相加D.a的值是字符’A’的ASCII值加上1
20、若有定义:int x ,i;则下列for循环语句:
for(i = 0,x = 0; i<= 9 && x!=876;i++)
scanf(“%d”,&x);
下列选项中,描述正确的是()
A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行
30、表示关系x<=y<=z的C语言表达式为()。
A.(X<=Y)&&(Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)
D.(X<=Y)&(Y<=Z)
二.判断题
1、C语言属于机器语言。(×)
2、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。(√)
3、在C语言中转义字符有特殊的含义,它以反斜杠\开头,后面接特定的字符。(√)
do
{
printf("%2d",x--);
} while (!x);
A.打印出321B.打印出23C.不打印任何内容D.陷入死循环
25、以下选项中合法的字符常量是()。
A."B"B.'\010'C.68 D.D
26、将二进制数00001011进行>>位运算,将其结果转换为十进制是()。
A.101 B.1 C.11D.5
27、下列说法中正确的是()。
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一部分
D.break只能用于switch语句中
28、假设有如下的变量定义:int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;则以下符合C语言语法的表达式是()。
A.2,MB.3,EC.2,E D.输出项与对应的格式控制不一致,输出结果不确定
18、若有以下程序段:int c1=1,c2=2,c3; c3=1.0/c2*c1;那么执行后,c3中的值是()。
A.0B.0.5 C.1 D.2
19、若变量a是int类型,并执行了语句:a='A'+1.6;则下列描述中,正确的是()。
相关文档
最新文档